Geçtiğimiz günlerde birisine bu konuda tavsiye vermem gerekti. Tavsiye verecek konuma veya tecrübe sahip değilim fakat yaklaşık olarak 4–5 senedir yazılım ile kendimce uğraşmış birisiyim. Öğrenme sürecimden ve bana yol gösterdiğine inandığım kaynakları sizlerle paylaşmak istedim.
Verdiğim tavsiye:
Yazılıma nereden başlayacağın aslında senin ne yapmak istediğine bağlı. Bu alanın bir sınırı olmadığının farkında olmalısın. İstediğin her şeyi biraz disiplin ve sıkı çalışmayla yapabilirsin.
Eğer bu alanda ilerlemek istiyorsan sahip olman gereken iki temel özellik var: İngilizce ve araştırma yeteneği. Yazılımcıların çoğu programdaki kodların tamamını kendisi yazmaz. Hepsi internetteki forumlardan yardım alarak sorunlarına çözüm bulurlar ve tahmin edebileceğin gibi bu forumlar İngilizce.
Vaktin varsa izleyebileceğin bir video: https://www.youtube.com/watch?v=gDk3wcX4zrY
Ne yapmak istediğine göre öğrenmen gereken programlama dilleri farklılık gösterir. Ama bunlardan önce her yazılım üreten kişinin bilmesi gereken Algoritma mantığını öğrenmen lazım. Bunlar her dilde aynıdır: If — Else, While — For, Arrays, Functions vs. Temellerini sağlam atarsan istediğin dilde ve alanda rahat bir şekilde ilerleyebilirisin.
Algoritma mantığını öğrenmen için basit bir programlama dili olan Python ile başlamanı tavsiye ederim. Bu dilde bir çok yerli ve yabancı kaynak var. Ben sana bir tane yerli bir tane yabancı kaynak öneriyim gerisi senin araştırmana kalsın.
Türkçe kaynak: https://www.youtube.com/watch?v=R75Oo--O5Q4&list=PLIHume2cwmHehcxQE1XZieL21syR3m3tR
İngilizce kaynak: https://www.youtube.com/watch?v=rfscVS0vtbw
Bu temelini attıktan sonra gerisi senin ilgi alanına kalıyor açıkcası. Web sitesi geliştirmek istiyorsan hangi dilleri öğrenmen gerektiğini araştırmalısın, mobil app geliştirmek istiyorsan neleri kullanabileceğini araştırmalısın. Eğer JavaScript öğrenirsen bunları belli bir seviyede gerçekleştirebilirsin, Python ile discord bot, yapay zeka uygulamaları yapabilirsin gibi..
Mutlaka izlemen gereken video önerisi: https://www.youtube.com/watch?v=nXLlcoOEzhQ
Dediğim gibi bu alanın bir sınırı yok. Nasıl ilerleyeceğin senin elinde. En önemli şey öğrendiklerini uygulamak. Öğrendiğin bilgilerle sürekli uygulamala geliştir. Basit uygulamalar ile başla zamanla daha karmaşık uygulamalara daha rahat yönelebilirsin.
Bu mesajı yazdıktan sonra biraz üzerine düşündüm. Baştan başlıyor olsaydım hangi kaynakları daha önce izlemiş olmayı dilerdim diye. Burada da o kaynakları paylaşacağım.
Bana en çok fayda sağlayan şey bu işin felsefesini düşünmek oldu. Neden yazılıma veya programa ihtiyacımız var? Neden bu kadar fazla programlama dili var?
Eğer benim yaptığım gibi direkt olarak bu alana girerseniz bilgi kirliliği içerisinde boğulabilirsiniz veya çok donanımlı biri olarak çıkabilirsiniz. Ben burada kendi tecrübelerimi aktaracağım.
İlk kodumu 9. sınıfta programlama dersinde yazmıştım. JAVA ile yazılan basit bir while loop’tu. Hiç unutmuyorum çünkü bize öğretilenin dışında bir şeyler denemekten kaçınmamıştım ve başarılı olmuştum. O sevincimi hatırlıyorum. Sonrasında 9.sınıf yazında Arduino ile tanıştım. Farkında olmadan C++ yazarak 2 sene boyunca robotik projelerde geliştirme yaptım. Bu alanı bıraktıktan sonra, 11.sınıfta web programlamaya yöneldim ve PHP ile yazdığım ilk sitemi yayınladım. Bu alana merakım da fazla sürmedi. Sonrasında sınav senesi sebebiyle ara verdim. Tahmin edebileceğiniz üzere Bilgisayar Mühendisliği bölümünü tercih ettim ve şu an bu yazıyı yazarken 3. sınıfa geçmiş bulunmaktayım. Yani nereden baksanız en az 5 senedir bu sektördeyim. Fakat ne 5 senelik yazılım bilgisine ne de bilincine sahibim. Geçen sene yazılıma başlayan birinin benden daha çok şey bildiğine eminim.
Problemin nerede olduğunu düşündüm. Yaptığım şeyleri merakla yapıyordum ama bilincinde degildim. İhtiyaçım olan şeyleri öğrenip sonrasında bırakıyordum. Sürekliliğim yoktu ve işin felsefesini merak etmiyordum. Bundan dolayı 5 senelik bir tecrübem var diyemiyorum.
Gelelim bu işin felsefesini öğrenirken bana yol gösteren kaynaklara:
1-) Yalın kod: Bilgem Abi’nin Youtube kanalına uzun zaman önce denk gelmiştim. Fakat o zaman dediğim gibi yaptığım işin bilincinde olmadığım için demek istediklerini tam anlayamamıştım. Fakat bu sene tekrar videolarını izledim ve ufkumu genişletti.
2-) Emrahday: Emrah beyi ekşi sözlükte yazılım başlığı altındaki entryleri okurken tesadüf eseri buldum. Kendisinin tüm entrylerini günlerce okudum ve notlarımı aldım. Kendime en çok bir şeyler kattığımı düşündüğüm kaynak oldu kendisi. En ufak bir şeyin bile arkaplandaki düşüncesini aktararak sizin olayı kavramanıza yardımcı oluyor. Kesinlikle okumanızı tavsiye ederim.
3-) CS50: Harvard tarafından ücretsiz yayınlanan bilgisayar bilimine giriş dersi. Türkçe versiyonu da mevcut. Algoritma ve Programlamanın temellerini atmak için güzel bir kaynak.
Bu kaynakları bilinçli olarak tükettiğinizde size çok şey katacağına eminim. Yazılım öğrenmek sadece programlama dili öğrenmekten ibaret değildir. İşin felsefisini anladığınızda olaylar daha zevkli hale geliyor.