Mert Bulan

Programlamaya nereden başlamalıyım?

| okuma süresi: 2 dk

Yazılım sektöründe en çok karşınıza gelecek sorulardan bir tanesi budur. Genellikle birçok genç arkadaş, sektörde uzun süre çalışmış abilerine bu soruyu sorarak onların gittiği yolu öğrenip o yol üzerinden gitmeyi düşünmektedir. Bu soruyla karşılaşan birçok kişi de soruyu enine boyuna irdelemek yerine geçiştirmek adına “İngilizce öğrenerek” şeklinde cevaplamaktadır. (İngilizce öğrenmek tabii ki önemli) Tabii ben bu cevaplarından dolayı onları suçlamıyorum, çünkü bu soru genelde bir anda kendilerine soruluyor ve haliyle aklına gelen ilk cevabı söylüyorlar. Bu yüzden ben bu soruyu uzun bir süre düşünüp kendim nasıl başladım bunu da dikkate alarak uzunca bir şekilde cevaplamak istedim.

thinking-face

Piyano çalmaya nereden başlanır? Yalnızca piyano değil, herhangi bir müzik aletini çalmak için bence çıkış noktası her zaman bir müziği (Akdeniz akşamları?) çalmaktır. Mesela ben piyano çalmaktan ziyade John Lennon’ın Imagine şarkısını çalmak için piyano çalmayı öğrenmek isterim. Bu durumda piyano çalmak benim için amaç olmaktan ziyade çalmak istediğim müziği çalma yolunda bir araç olacaktır. Yapmam gereken şey kabaca önce bir piyano almak, daha sonra notaları öğrenmek ardından da Imagine şarkısının notalarına bakarak bu notaları piyanoda çalmaya çalışmak olacaktır. Belki ilk başta piyanonun üzerine notaları yazarım bu sayede piyano klavyesi üzerinde notaların yerlerini daha kolay ezberlerim. Belki başlangıçta nota defterinden notaları okumak yerine doğrudan notaların okunuşunu bir kağıt parçasına yazıp onunla çalmaya çalışırım. Şarkıyı başarıyla çaldıktan sonra muhtemelen bundan sonra Godfather’ın o meşhur müziğini çalmak isterim. Bu sefer artık notaların yerlerini ezbelemiş olduğumdan piyanoun klavyesindeki etiketleri sökerim, daha sonra artık nota okuyabilir hale gelip her seferinde notaların okunuşunu yazmakla uğraşmam. Bu durum böyle devam eder gider. Sürekli farklı bir parça bulup onunla yoluma devam ederim.

Fark ettiyseniz tüm bu aşamalarda amacım hiçbir zaman piyano çalmak değildi. Amacım her zaman sevdiğim bir müziği çalmaktı. Piyano ise sadece bir araçtı. Programlama da aslında piyano çalmak gibidir. Bir araçtır ve bu yüzden progralama öğrenmek bir amaç olamaz. Dolayısıyla programalamaya nereden başlamalıyım sorusunu sormak abes kaçar. Önce programlama aracılığıyla ne yapmak istediğinizi bulmanız gerekmektedir. Daha sonra da bunu yapmak için programlamanın nimetlerini kullanabilirsiniz.

Ben hayatım boyunca problem çözmeyi seven biriydim. Programlamayı da ilk defa üniversitede gördüm hatta. Ondan öncesinde HTML/CSS öğrenmiştim çünkü canım sadece HTML/CSS öğrenmek istediğinden değil, blogumun temasını istediğim gibi düzenlemek istediğimden dolayı. Bu daha sonra bana birçok iş fırsatı açtı. Ama oradaki amacım da para kazanmak değil, o sitelerdeki arayüz problemlerini çözmekti. Bu böylece devam etti gitti. Daha sonra kendi web projelerimi yapmak istedim, kendi başıma bir şekilde bir şeyler öğrenmeye çalışıyorken stajım sırasında Ruby on Rails’i öğrendim. Yine dikkatinizi çekmek isterim amacım hiçbir zaman Ruby on Rails öğrenmek değildi. Amacım kendi web projelerimi yapabilecek seviyede bilgiye sahip olmak istememdi. Tabii Ruby on Rails’i öğrenince bu yine başka kapılar da açtı gitti. Stajım sırasında on binlerce insanın hergün kullanacağı uygulamaların arka tarafını geliştirir olmuştum, daha sonra artık milyonlarca kişinin ziyaret ettiği bir websayfasındaki problemleri çözer hale geldim. Amacım hiçbir zaman programlama öğrenmek değildi, amacım web uygulamalarındaki problemleri çözmek, insanların işine yarayacağını düşündüğüm web çözümleri geliştirmekti.

Şimdi siz eğer programlamaya nereden başlamalıyım diye soruyorsanız önce kendinize ben neyi yapmaktan keyif alıyorum diye sorun. Programlamaya aracılığıyla bir şey yapmak istediğiniz bariz bir şekilde ortadır diye düşünüyorum eğer bu yazıyı okuyorsanız. Ama sizin asıl düşünmeniz gereken şey bu şeyin ne olduğu. Oyun mu yapmak istiyorsunuz, web sayfasının arayüzünü mü kodlamak istiyorsunuz, mobil bir uygulama mı geliştirmek istiyorsunuz ya da fotoğraflardaki kedileri yakalayabilen bir algoritma mı geliştirmek istiyorsunuz? Öncelikle buna karar verin. Elinizde bilgisayar ve sınırsız bir kaynak var. Amacınız ne? Hangi problemi çözmek istiyorsunuz? Bu sorunun cevabını bulduktan sonra yapmanız gereken şey bunu en kısa şekilde nasıl yapabilirim olmalı. İnsanların telefonlarıyla fotoğrafını çekerek çevrelerindeki ağaç türlerinin ne olduğunu öğrenmelerini sağlamak istiyorum, bunu en kısa sürede nasıl yapabilirim diye sorun mesela. Bu soruları sordukça aslında nereden başlayacağınızı çok rahat bir şekilde görebileceksiniz. Mobil uygulamadan devam edelim, uygulama iOS’te mi yoksa Android’te mi çalışmalı? Yoksa her ikisinde de mi? Yeni başlıyorum, şimdilik bir tanesi olsa yeter derseniz bunlardan birini seçip örneğin iOS ile uygulama geliştirme eğitim videolarını izlemeye başlayıp hemen kendi uygulamanızı geliştirmeye başlayabilirsiniz. Tabii örnek üzerinden gidecek olursanız öğrenmeniz gereken şeyler, bir iOS uygulamasında nasıl fotoğraf çekilir, bu fotoğraf nasıl işlenir, görüntü tanımlama işlemi için nasıl bir eğitim verisine ihtiyaç vardı, bu eğitim verisiyle hangi makine öğrenimi algoritmasını kullanarak kendi yapay zeka modelimi geliştirebilirim. Sorular yeni soruları doğuruyor ve en sonunda ilk olarak nereden başlamnız gerektiğini bulabiliyorsunuz.

Gördüğünüz gibi sorunun cevabı aslında sizde. O nedenle bu soruyu başkalarına sormanızın hiçbir anlamı da yok. Çünkü soruyu sorduğunuz o insanların çıkış noktaları da hep, yapmak istedikleri bir şeyleri kendi başlarına yapmak istemeleriydi. Programlama öğrenmek değil. Soruları kendinize sorarak çözmek istediğiniz problemi bulup onu çözmek için programlamayı öğrenebilirsiniz. Ondan sonra yapmanız gereken şey bir sonraki probleminizi bulmak olacaktır.

Kısacası, şu soruları kendinize sorun:

  • Bu hayatta yapmaktan keyif aldığım şey ne?
  • Bu keyif aldığım şeyi yaparak insanlara nasıl faydalı olabilirim, onları nasıl eğlendirebilirim ya da problemlerini nasıl çözebilirim?
  • Bu şeyi öğrenmeden önce bilmem gereken şeyler ne?
  • Bunları nereden ve nasıl öğrenebilirim?

Bu soruların cevabını verdiğinizde çoktan programlamaya girişmiş olacaksınız.

© 2017 by Mert Bulan. Tüm hakları saklıdır. Kaynak gösterilmeden yazılar kopyalanamaz.