Heval

Heval Hazal Kurt
Python Developer | Filmmaker & Other Stuff

Nerden başlasam, nasıl anlatsam, bu kodlama işine neresinden bulaşsam…

“Ben gideyim de biraz kod öğreneyim” deme kısmı kolay, hemen sonrasındaki soru : “nereden başlıyorum?”. Steven J. Selçuk’la gün içinde defalarca dolaylı dolaysız kodlardan, programlama dillerinden, güzel işlerden kötü örneklerden konuşup duruyoruz. Bir açıdan bakınca iyi aslında, en azından bu sefer bir şeyi kendi kendime öğrenmek zorunda değilim. Baya bir başını ağrıtacağım o kesin ama şu da bir gerçek onun konuştuğu dil çok ileride. “Ben de öğreneyim” dedim demesine de “ee ne öğreneyim” kısmına gelince onun dilde Node.js’ler Python’lar Laravel’ler… Bense daha “şimdi bu sayfayı kodlamaya başlamadan önce yazıyorduk di mi?” seviyesindeyim. Aynı İngilizce gibi “Anlıyorum ama konuşamıyorum”! Söyledikleri tamamen anlamsız değil ama önüme bir proje koysa “bunun dili ne?” dese geviş getiren deveden bir farkım yok. Hal böyle olunca biraz takıntılı ve işini şansa bırakmayı sevmeyen biri olarak sağda solda boşluk kalmasın diye kendime bir yol haritası çizmeye karar verdim. Ben kararı verince Steven J. Selçuk da bana tam bir canavarı olduğu GitHub’dan Developer Rodemap projesini gönderdi.

Developer Roadmap’te yolumu bulmak…

Başlangıç için inanılmaz işime yaradığımı söylemem lazım. Benim gibi “nereden başlamalı” sorularıyla dolup taşanlar için kesinlikle tavsiye ederim. Nedir bu Developer Roadmap? Dubai’den Kamran Ahmed adındaki bir yazılımcının GitHub projesi. Size bu yolda ilerlerken ulaşmak istediğiniz yere göre nelere ihtiyacınız olduğu, neleri öğrenmeniz gerektiği, hangi becerileri geliştirmeniz gerektiğini gösteren çok başarılı bir proje. GitHub’ta yaklaşık 24.000 yıldız almış ki anladığım kadarıyla buna coder ortamlarında “Rock Star” deniyor :)

Projeye baktığımda karşıma çıkanlar şunlardı :

road1

İlk aşamada hangi yönde ilerlemek istediğine karar ver diyordu yani. Kavramlara az buçuk aşina biri olarak DevOps’u seçenek olarak bile düşünmedim. En azından şimdilik. Daha önceki ufak tefek deneyimlerimden ve aldığım eğitimden dolayı işin front-end kısmına daha yakın olacağımı düşündüm. Ama şunu da eklemem lazım kafada “front-end’den sonra ben back-end’e de dalarım” tilkileri dolaşıyordu. O kadar iştahlı iştahlı anlatılan Python, Laravel laflarını duyunca, neler de yapabileceğimi fark edince duyduğum yerde bırakmam pek mümkün değil malum. Peki front-end development dediğin nereden başlıyor? İşte burada işler biraz daha çeşitleniyor.

road2

Şu tablodaki her bir kutucuk kendi başına meşakkatli bir süreç, farkındayım. Her birini aynı seviyede öğrenemeyeceğimi de bu vesileyle anlamış oldum. Döndük dolaştık “ooo ben o programlama dillerini yalar yutarım, ne işler ne projeler yaparım” derken geldik mi gene <!DOCTYPE html> noktasına. Gidilecek yol başlangıç için belli. İlk adım hep aynı yerden başlıyor, iyi ki de öyle çünkü seçenek olsa kafam epey karışacak belli ki. İlk üç adım net :

  1. HTML öğren
  2. CSS öğren
  3. JavaScript öğren

Sonrasını şimdilik düşünmüyorum, zamanı gelince derinleşiriz artık. Güzel, nereden başlayacağımızı biliyorum “öğren” kelimesinin karşılığı nasıl olacak? Nereden öğreneyim?

Bütüne bakmak…

Konu ne olursa olsun bir şeyler öğrenmek için adım adım gitmek gerek. Bana temel düzeyde kodlamayı öğretecek bir yol bulmalıydım. Çokça önerilen w3school gibi kaynaklar her ne kadar kavramları, kodları ve işlevleri net bir şekilde veriyor olsa da işin aslı pek benlik değil. Bana öğrenmek için değil de daha çok takıldığın yerde açıp sadece tek bir şeye bakılan ansiklopediler gibi geliyor. Oysa ben biraz mesleki deformasyonun da etkisiyle hikayelere, romanlara, kademeli ilerleyen süreçler istiyorum. Hemen konuyla ilgili tutoriallara baktım, inceledim. Hepsi güzel ama gene daha önceki gibi kopuk kopuk öğrenecekmişim gibi geliyor, içimde bir huzursuzluk. Sonra aklıma aslında çoook önceden beri üyesi olduğum, zamanında pek çok faydalı ders aldığım Coursera geldi. Biraz kurcalayınca Hong Kong Üniversitesi’nin hazırladığı 6 kursluk bir set buldum : Full Stack Web Development Specialization. Tam da istediğim gibi temelden alıp, bir bütün halde ilerliyor ve daha da güzeli eğitimi bu alandaki akademisyenlerden alıyorum. Daha ne olsun! Üstelik bu süreçte irili ufaklı ödevler vererek pratik de sağlıyor. İskelet hazır, şimdi üstüne ekleyeceklerimize gelelim.

github

Eğitim yeterli mi?

İstediğim, aradığım kursu buldum bulmasına da bu kadar kapsamlı bir konunun tek bir eğitimle ya da sadece eğitimle çözülmeyeceğinin de farkındayım. Coursera bana temel bilgileri sağlasa da programlama dillerindeki en gereklileri öğretecek, ince detaylara giremeyecek tabii ki. Daha pasif olan bu süreçte onlar anlatacak ben dinleyeceğim, not alacağım, ödevleri yapacağım, güzel güzel öğreneceğim ama bir noktada temel düzeyde kalacağım. Oysa ne demişler “şeytan ayrıntıda gizlidir”. Sanat eğitimi almış biri olarak detayların önemini biliyorum. Öğrenme sürecinde sadece akademik eğitimle değil, sektörle de iç içe olmam gerek ki uygulama bazında çok daha fazla örnek görüp gelişebileyim. O zaman yol belli, coderlar nerede ben orada!

İlk işim bir GitHub hesabı açmak oldu. Ardından bir de CodePen. Üstüne de Medium’da kodla bağlantılı konu başlıklarını takip alıp, sağda solda gördüklerimi bir yerde toplayabileyim diye GGather. Ek olarak bir de codecademy. Bunlarla ilgili ilk deneyimlerimi de yazarım ama okumayı, öğrenmeyi ve konu başlığına göre biriktirmeyi sevenler için GGather’ı tavsiye ederim. Henüz yeni ama çok başarılı bir uygulama. Bu sosyal süreçte anlatacaklarım çok, şimdilik kısa kesip onları ayrı bir yazıya saklayayım.

Aramaya inanmak…

Temel eğitim işini çözdük, üzerine coderlarla içli dışlı olmak, neler yapılıyor takip edebilmek için platformlara da katıldık güzel ama belli ki o platformlarda bir süre pek sesim soluğum çıkmayacak sadece izleyici olacağım. İlk günden proje üretemeyeceğim kesin tabii. E peki o arada ne yapsam da öğrendiklerimi desteklesem diye düşünmemek elde değil. Düşün düşün işleri karmaşıklaştırmakta üstüme yok. Bir noktada kendimden bezip “arada basit düşünmek iyidir” deyip Google’a sordum : “best way to learn code”. Biraz aptalca ama önyargılı olmamak lazım. Bu arama sonunda işin yukarıdaki adımları görüp mutlu olurken işin bir de oyunla öğrenme kısmıyla tanışmış oldum.

Oyunla öğrenmek…

CodeCombat : Bilgisayar oyunlarıyla aram pek iyi değil açıkçası ama Google aramasında çıkınca oyun oynayarak kod öğrenmek de neyin nesi diye merak ettim açıkçası. İlk bir iki deneme çok keyifli, kod yazarak karakterin hikaye içerisinde ilerlemesini ve gelişmesini sağlıyorsunuz. Benim gibi başlangıç seviyesindekiler için ideal.

CodingGame : Bu da CodeCombat gibi web tabanlı kodlama oyunu. Biraz daha gelişmiş ve bol seçeneklisi tabii. Ben ilk denememde başarısız oldum biraz daha kurcalamam gerek belli ki. Diğer oyundan farklı olarak programlama dilinde çok daha fazla seçenek var. Büyük avantaj.

Game Maven : Bu oyun diğerlerinden farklı olarak daha basit bir arayüzle hazırlanmış. Ama öğrenme açısından daha faydalı olduğunu da söyleyebilirim. Bu da kodlamayla ilgili favorilerime eklendi.

Yol haritasını çizdik, gerekli kaynakları kaydedip platformlara da üye olduğumuza göre bir sonraki aşamada yani teknik altyapıları hazırlama aşamasında görüşürüz.

LinkedIn
Reddit
WhatsApp