Rehber Programlama nasıl öğrenilir?

aleksmc

Kilopat
Katılım
1 Şubat 2018
Mesajlar
1.741
Makaleler
2
Çözümler
6
Bir programlama dili öğrenmeye karar verdiniz. Öncelikle bir amacınız olmalı (İngilizce bildiğinizi varsayıyorum)
Her amacı burada açıklayamayacağım için programlama dilini C# ve amacı da Unity'de oyun yapmak olarak anlatacağım, yaygın olduğundan.

Büyük çoğunluğun yaptığı şey, YouTube'a Unity tutorials veya C# tutorials yazmak oluyor. Bu kesinlikle yapmamanız gereken bir şey.

Neden Tutorial takip etmemelisiniz?

1- YouTube'a Unity tutorial yazdınız ve karşınıza çıkan ilk videoya tıklayıp öğrenmeye başlamayı tercih ettiniz.

1707054435301.png


2- İlk 30 dakika içinde arayüzü ve ekranda görünen şeylerin ne olduğunu anladığınızı sandınız.

1707054550928.png


3- Tebrikler! Tutorialların neden izlenmemesi gerektiğinin en önemli kısmına geldiniz, kod yazma. Burada adamın yazdığı kodları projenize yazdınız ve kendi projenizde çalışınca öğrendiğinizi sandınız

1707054611543.png


4- Tebrikler! Hayatınızdan 2 saat boşa gitti. Çünkü artık kendiniz tutorial izlemeden bir şeyler yapmaya karar verdiniz ama script oluşturup Visual stüdyoyu bile açamıyorsunuz, açsanız bile yazmanız gereken kodlar aklınızdan uçmuş gitmiş.

1707054681274.png


Neden?
Peki neden kendiniz hiçbir şey yapamıyorsunuz? Çünkü insan beyninin öğrenme mekanizması bir şeyleri takip edip aynısını yapmak değildir. Tüm tutorialları takip etseniz, hepsinde ustalaşsanız bile sıfırdan yapabileceğiniz projeler tutoriallara benzer olmaktan kaçınamaz. Unity ve bir programlama dilinde iyi olmak için sürekli pratik yapmanız, hata yapmanız gerekiyor. Mesela basit bir 2D platformer yapmaya karar verdiniz, harika! YouTube'da tonlarca tutorial olsa da, bunu kendiniz bir şeyler öğrenerek ve ileride yeni projelerinize aktarabilmek için şu adımları takip etmeniz gerek;

* Projeyi küçük dallara aktar, mesela 2D platformerda neler vardır? Hareket eden bir karakter, yer, havada duran üstüne zıplanabilen platfromlar, düşmanlar, toplanabilen eşyalar.
* Küçük dallara ayırdığınız için artık tutorial değil ama Google'ı veya Unity learn programındaki girdileri okuyabilirsiniz.

Ayırdığınız dalları oyuna nasıl aktaracaksınız?
* Her dalı gösteremeyeceğimden, sadece hareket eden bir karakter için; Kendinize sorun, illaki 2D platformer oynamışsınızdır. Karakter nasıl hareket ediyordu?

0 - Karakter ekranda gözüküyor (Google: How to make character appear in scene in Unity)
1 - Sağa, sola yürüme. (Google: How to get Player inputs in Unity for 2D platformer)
2 - Yukarı zıplama (Google: How to get jump Player input in Unity)
3 - Yukarı zıplayınca yeniden yere düşme (Google: How to add gravity to my character (gameobject) in Unity)


Harika! Şimdi bunları nasıl yapabileceğinizi Google'da veya Unity forumlarında gezerek bulabilirsiniz. Parantez içlerinde yazdıklarım sadece örnekler. Okuma tabanlı öğrenme tutoriallardan her zaman daha iyidir. Çünkü kendinizin bir amacı olur ve bu amaçlar doğrultusunda öğrenirseniz aklınızda daha kalıcı olur. Tutoriallardaki projeler eğitmenlerin kendi projeleri ve beyniniz bunlara yeteri kadar ilgi göstermeyebilir haliyle hiçbir şey öğrenemeyebilirsiniz. Ayrıca beyniniz hep adam kod yazsa da ben de yazsam sonuçları hemen görsem bir dopamin patlatsam modundadır. Bu, öğrenmeyi cidden kısıtlandırır.

Daha iyi bir öğrenme yolu:
learn.unity.com

1707055581055.png


Oyun motorunu yapmış kişiler tarafından, yazı tabanlı, bol pratik ve deneme yanılmalı ve kendi fikirlerinizi denemeye fırsat sunan bir eğitici içerik. (manueller) Sana bir şeyler öğretiyor ama kopyala yapıştır mantığıyla değil, kendi oyununa nasıl entegre edebilirsin, nasıl başka yollarla kullanabilirsin, bu neden kullanılır nerede kullanılır vs.

Başarılar! :). Kendi projenizi yaparken çok spesifik bir yerde takılırsanız, YouTube tutoriallarını hala kullanabilirsiniz ama ana öğrenme aracınız kesinlikle olmamalı.
 
Son düzenleme:
Python öğreniyorum sorumluluk sınavlarımdan dolayı konuları anlayıp projeleri yapamıyorum. BTK Akademi'den öğreniyorum sadık hocanın yazdığı kodları VS Code ile dosyalarımda muhafaza ediyorum. Öneriniz nedir bana?( 3gün sonra sorumluluyk sınavım var)
 
Kesinlikle çok doğru. Arkadaşlar hemen hemen kodlamayı iş haline getirmiş herkesin kafasına en başta sallamalık bir fikir oluyor. Örneğin "dur ulan şu Skyrim'e bir kılıç yapayım alevli malevli olsun undeadlere fazladan hasar versin". Bu kafayla creation kit öğreniyor ve sonrasında diğer dallara ister istemez atlıyor (eğer sevdiyse bu işi tabii). İşin en güzel tarafı aklınızda bir proje varsa bunu Google'da aratamıyor olmanız. Google'da alevli kılıçlı undeadleri patlatarak öldüren kılıç tutorial yazarsanız hiçbir şey çıkmayacaktır. El mahkum ustalaşıyorsunuz yani :D
 
Kesinlikle çok doğru. Arkadaşlar hemen hemen kodlamayı iş haline getirmiş herkesin kafasına en başta sallamalık bir fikir oluyor. Örneğin "dur ulan şu Skyrim'e bir kılıç yapayım alevli malevli olsun undeadlere fazladan hasar versin". Bu kafayla creation kit öğreniyor ve sonrasında diğer dallara ister istemez atlıyor (eğer sevdiyse bu işi tabii). İşin en güzel tarafı aklınızda bir proje varsa bunu Google'da aratamıyor olmanız. Google'da alevli kılıçlı undeadleri patlatarak öldüren kılıç tutorial yazarsanız hiçbir şey çıkmayacaktır. El mahkum ustalaşıyorsunuz yani :D

Aynen öyle. Kodlamadan bile önce realtime Engine'in temellerini öğrenmek çok önemli. Bir küp oluşturup parent child yapmak kadar basit de olsa :) Tüm temellerde ustalaştıktan sonra onlara geçilebilir. İnsanlar göz ardı ediyor ama ileride projelerinde çok basit bir yeri anlayamayabiliyorlar bu da vakit kaybına sebep oluyor ve düzensiz öğrenmenin sonucu.

Python öğreniyorum sorumluluk sınavlarımdan dolayı konuları anlayıp projeleri yapamıyorum. BTK Akademi'den öğreniyorum sadık hocanın yazdığı kodları VS Code ile dosyalarımda muhafaza ediyorum. Öneriniz nedir bana?( 3gün sonra sorumluluyk sınavım var)

Maalesef yardımcı olamam. Sadık hocayı da sorumluluk sınavları hakkında da bir fikrim yok. Ben oyun yapmak için kod yazıyorum. 3 gün bir şeyi öğrenmek ve yaratıcı şekilde pratikte sıfırdan yapmak için çok kısa bir süre. Ezberden başka şansınız yok bunun için.
 
Python öğreniyorum sorumluluk sınavlarımdan dolayı konuları anlayıp projeleri yapamıyorum. BTK Akademi'den öğreniyorum sadık hocanın yazdığı kodları VS Code ile dosyalarımda muhafaza ediyorum. Öneriniz nedir bana?( 3gün sonra sorumluluyk sınavım var)

Bence GitHub'da bol bol gezip Python projelerini inceleyin. Bilgi topladıkça oturur veya GitHub'da bir Python projesine kendi küçük eklemelerinizi yapın. Eminim gelişirsiniz.
 
Tekrar etmek değil kafaya yazmak mühim olan güzel bir rehber ellerine sağlık hocam.
 
Python öğreniyorum sorumluluk sınavlarımdan dolayı konuları anlayıp projeleri yapamıyorum. BTK Akademi'den öğreniyorum sadık hocanın yazdığı kodları VS Code ile dosyalarımda muhafaza ediyorum. Öneriniz nedir bana?( 3gün sonra sorumluluyk sınavım var)
Konular ne bilmiyorum ancak nasıl bir proje yapmanız gerekiyor ? Ne kadar BTK fanları olsa da forumda ingilizceniz yoksa yazılım öğrenemezsiniz. Konuları anlamanız için o projeyi yapmadan önce dediklerini yapmayı dene. Projeye bakarak yap sonra ise kendin için değiştir en azından. Ama asla projenin aynısını yazma.
 
Aynen öyle. Kodlamadan bile önce realtime Engine'in temellerini öğrenmek çok önemli. Bir küp oluşturup parent child yapmak kadar basit de olsa :) Tüm temellerde ustalaştıktan sonra onlara geçilebilir. İnsanlar göz ardı ediyor ama ileride projelerinde çok basit bir yeri anlayamayabiliyorlar bu da vakit kaybına sebep oluyor ve düzensiz öğrenmenin sonucu.

Maalesef yardımcı olamam. Sadık hocayı da sorumluluk sınavları hakkında da bir fikrim yok. Ben oyun yapmak için kod yazıyorum. 3 gün bir şeyi öğrenmek ve yaratıcı şekilde pratikte sıfırdan yapmak için çok kısa bir süre. Ezberden başka şansınız yok bunun için.

3 günde sıfırdan demiyorum şu an modüllere kadar yapabiliyorum sonrasında zaten 3 konu kalıyor. 3 günde bitiremeyeceğimi düşünüyorum.Fakat sorunum bir çoğunu yapamamam
 

Geri
Yukarı