Şimdi şöyle, C# sevmiyorum ve Unity'i seviyorum diye bir şey yok. Oyun geliştirmek için ikisini de sevmen gerekiyor. Oyun geliştirmek için gereken yazılım dilini ve bir oyun motoru bilmen gerekiyor. İkisinden birisi olmazsa, olmaz.
C# için şöyle bir öğrenme listesi bırakayım:
- Konsola yazdırma.
- Yorum satırları.
- Veriler.
- Veri türleri.
- Veri dönüştürmeleri.
- User input.
- Operatörler.
- Matematik işlemleri.
- String ve metotları.
- True ve false çıkışları.
- Karar ifadeleri.
- Karar ifadeleri 2 (farklı yöntem, bunu da bilmelisin).
- While döngüsü.
- For döngüsü.
- Break ve continue kullanımı.
- Array.
- Dosya işlemleri (yazma, okuma vs.).
- Try-catch blokları.
Üstteki konuları anladıktan sonra da öğrenmen gerekenler var. Sakın üsttekileri anlamadan bu konulara geçme. Tam anladıktan sonra geç. 2. seviye konular:
- Metotlar.
- Metot parametreleri.
- Metot aşırı yüklenmesi.
- OOP nedir?
- Sınıflar ve objeler.
- Sınıf üyeleri.
- Sınıf yapıcıları.
- Erişimler.
- Get ve set.
- Kalıtımlar.
Üstteki konuları da öğren. Onları öğrendikten sonra yine öğrenmen gerekenler var. Sorun yaşama diye bu şekilde ayırıyorum. Dediğim gibi, üsttekileri anlamadan bu konulara geçme. 3. seviye konular:
- Katılım.
- Polymorphism.
- Soyut sınıflar.
- Interface.
- Enumlar.
Bunlar C#'ın temel konularıdır ve bilmen gerekir. Gözünde büyütme, aşırı kolaylar. 1. seviye konuları belki de birkaç dakikada öğrenirsin. Daha önce yazılımla alakan olmadıysa birkaç gün de sürebilir. Moral bozma. Tüm yazılımcılar işin başında böyleydi.
Ayrıca İngilizce kaynak koymamın sebebi: Yazılım hayatında İngilizce önemlidir. O yüzden İngilizce kaynak koydum. Ve koyduğum kaynak aşırı mükemmel. Fazla boş yapmadan, kısa ve öz şekilde açıklıyor.
- 1. seviye konulara günlük 2 saatten, her konuya 1 gün verebilirsin. Ek olarak sonraki gün de: Önceki günün konusunu 2 örnek yaparak tekrar et.
- 2. seviye konularda biraz zorlanabilirsin. Benim tavsiyem: Konu başına 3 saatten 3 gün çalışabilirsin. Eğer kolay anlarsan örnek yapar, pekiştirirsin. Eğer zorlanırsan da süreyi arttırabilirsin. Dediğim gibi, bu konularda biraz zorlanabilirsin. Ek olarak bir konuyu bitirdiğin zaman, sonraki gün, o bitirdiğin konuyu birkaç örnek yaparak tekrar et.
- 3. seviye konularda çok fazla kafan karışabilir. Kafana takma, gayet normal. Sadece anlamaya bak, yazdıklarını anla ve bolca örnek yap. Aynı şekilde önceki günkü konuyu, sonraki gün biraz tekrar et ve bolca örnek yap.
2. ve 3. seviye konular, 1. seviyelere göre biraz zordur. Tabii yeni başlayana zordur. Şahsen bana aşırı basit geliyor. Ek olarak şunu da belirteyim: Öğrenirken sakın ezber yapma. Ezber yaparsan boşa uğraşırsın. Ezberden çok mantık ara. Tabii bazı terimlerini ezberlemen gerekiyor. Mesela
var
,
string
gibi. Ama kodların nasıl yazıldığını ezberleme, mantıkla yaz.
Ek olarak: Bir dili öğrenmek bitmez. Çünkü bir dilin %90'ı frameworkleridir. Frameworkleri araştırabilirsin. Yazılım hayatında sıkça karşına çıkacak. Bundan sonra öğrenmen gerekenleri de yapacağın projelere göre öğrenirsin zaten.
Başka sorun varsa sorabilirsin, veya aklına takılan bir şey varsa sorabilirsin. Ama bu konuda sorma. Başka konuda sor ki konunun amacı sapmasın. Kolay gelsin.