Yazılıma C# dilinden mi başlanmalı?

Ben ilk Web programlama ile başladım, ardından Python ile iyice kavradıktan sonra direk Cpp'e geçtim başta biraz zorlansamda projeler geliştirdikçe alıştım. Sende bu yol haritasını izleyebilirsin.
Zaten Cpp'i kavradıktan sonra gerisi çorap söküğü gibi gelir.
 
Yazılımda ilk başlkanacak dil önemlidir. Öğrenilecek ilk dilde temellerini sağlam atarsan, algoritma ve temel yazılım ilkeleri gibi konuları iyi kavrarsan, hem o dilde hem de ilerde başka bir dil öğreneceğin zaman çok çok rahat edersin.

Kesin bir yargı oluşturamama ama burada ilk olarak C++ gelir. Zira C++ ile hem yazılım temellerini hem de algoritmaları öğrenmek mümkündür. Son dönemlerde Python da veriliyor, özellikle üniversitelerde. Ancak özellikle Python'da anlatan kişi çok önemli. Python'u sıfırdan başlayan birisine anlatan birini bulmalısın.

YouTube'daki çoğu rehber, temel altyapısı olan kişiler baz alınarak yapılmıştır. Eğer altyapın yoksa, zorlanabilirsin.
 
Masaüstü uygulama ve Unity ile oyun geliştirmeyi istiyorsanız en mantıklı dil C# olacaktır. C# oldukça popüler bir dil ve başlangıç seviyesi kaynaklar da var. Kaynak sıkıntısı çekeceğinizi sanmıyorum.

C#'ın en temel şeylerine baktıktan sonra ne yapmak istiyorsanız direkt o teknolojiye de bakmanızı önerebilirim. C#'ın her şeyini öğreneyim sonra masaüstü uygulama veya oyun geliştirmeye bakayım diye bir mantığa girmeyin. C#'ın gelişmiş özelliklerini öğrenmeden de masaüstü uygulama ve oyun geliştirmeye başlayabilirsiniz. Bu da daha motive edici olacaktır. Oyun geliştirme için programlama bilgisi olmadan sıfırdan anlatan dersler de var. Masaüstü uygulama geliştirme artık eskisi kadar popüler olmadığı için başlangıç seviyesinde yeterli kaynak var mı bilmiyorum. Bulabilirseniz onlara da bakabilirsiniz.

Bir programlama dilini uygulama geliştirmeden öğrenmek çok zor. Kalıtım, Arayüz, Genel türler gibi soyut kavramları gerçekten ihtiyacınız olmadığı zamanlar ne işe yarar nerede kullanılır anlamak zor olabiliyor. Onun için çok temel şeyleri yani değişken, koşullu dallanma, döngü, sınıflar gibi konuları temel olarak anlayıp ne yapmak istiyorsanız ona bakmak detayları onun üzerinden öğrenmek daha kolay olacaktır. Unity mesela genel türleri kendi içinde kullanıyor. Sadece onun nasıl kullandığına bakarak bile karmaşık bir konu gerçek dünyada ne işe yarıyor görebilirsiniz.

Bir diğer konu da programlama ve uygulama geliştirme ayrımı. Burası çok tartışmalı bir alan ama şunu söyleyeyim C# ile kod yazarken C++ ya da C'deki çoğu şey ile siz uğraşmıyorsunuz. Bunları C# arka planda kendi hallediyor. Yani siz yapacağınız işe odaklanıyorsunuz. C++ da ise her şeyi siz yapıyorsunuz. Bilgisayara neyi nasıl yapacağını siz anlatıyorsunuz. Bence programlama budur. Açıkçası ben C++'ı ve bellek yönetimi iyi derecede bilmiyorum ona rağmen diğer diller ile uygulama geliştirebiliyorum. Veri yapıları da benzer bir konu. Eğer çok özel bir sistem geliştirmiyorsanız uygulama geliştirme diller içindeki dahili veri yapıları yeterli oluyor. Kendi temel veri yapılarını oluşturmanız gerekmiyor bunlar dillerin dahili kütüphanelerinin içinde hazır olarak bulunuyor. Amaç bilgisayar nasıl çalışır tam olarak her şey nasıl işliyor onu görmekse C, C++ gibi sistem dilleri çok daha detaylı ve kapsamlı şekilde bunu öğrenmeyi sağlar. C#, python, javascript vs. diller ise bu konular ile neredeyse hiç ilgilenmez. Size uygulama geliştirmeniz için lego parçaları verir bunları birleştire birleştire uygulama, oyun vs. yaparsınız. Bence artık günümüzdeki hakim yaklaşım da bu.
 

Geri
Yukarı