Yazılım Alanında Kendini Geliştirmek İsteyenlere Öneri
Dünyaca meşhur müteşebbis Marc Andreessen’in dediği gibi, “Yazılım, dünyayı yiyor!” Hangi sektörde çalışırsanız çalışın, program işin ayrılmaz bir parçası. Programlama bilenler bundan sonra katalizör vazifiyeti görüyor. Bu yüzden program bölümünde kendinizi ilerletmek istiyorsunuz. Ama tekrar üniversiteye girip dört sene süresince program öğrenecek imkânınız yok. Kodlama ve yazılımla alakalı tonlarca çevrimiçi eğitim olduğunu gördünüz. Şunu merak ediyorsunuz: “Kodlamayı kendi başıma öğrenebilir miyim?”
Elbette. Bir gazeteci olan Clive Thompson, Coders: The Making of a New Tribe and the Remaking of the World yazmak amacıyla üç sene süresince 200 yazılımcıyla görüştü. Yazılımcıların arasında geleneksel dört senelik eğitim alanlar vardı, ancak hafife alınmayacak bir çoğunluğu yazılımı kendi kendine öğrenmişti. Aralarında muhasebeciler, sanatçılar, marangozlar, ev hanımları ve Thompson gibi gazeteciler vardı.
Kodlama uygulamak, geliştirilebilir bir kabiliyet. Siz dahi elverişli zamanlarınızda kodlamayı öğrenebilirsiniz. İlerleyen vakitlerde işinizi ve hayatınızı basitleştirecek uygulamalar yazabilecek konumda olduğunuzu fark edeceksiniz.
Bu süreçte, eksperlerin ve yazılımı kendi kendine öğrenenlerin tavsiyelerine dahi göz atmak sizin amacıyla yararlı olacaktır.
A) Online Dünya Sizin Dostunuz, Oradan Başlayın
Kodlamayı öğrenmek, hiç bu kadar basit olmamıştı. Çünkü çevrimiçi olarak bulabileceğiniz düzinelerce bedava yahut elverişli fiyatlı kurs var. Kodlamayı on sene evvela öğrenmeye çalışıyor olsaydınız, çok seçeneğiniz yoktu. Ama şimdilik, ileri maddeleri okumadan bir çevrimiçi kursa başlama ihtimaliniz dahi epey yüksek.
Online kursları seçerken dikkat etmeniz gereken bir nokta var. “Yeni başlayanlar amacıyla elverişli” diyen kursların bir alanı, gerçekte düzensizce hazırlanmış. Yeni başlayanlar amacıyla hazırlananların fazlası aslında iyi hazırlanmış, materyali size sabırla tanıtıyor. Öte yandan, bazı çevrimiçi kurslar durumu hazırda bir şeyleri bildiğiniz varsayıyor, bu nedenle dahi öğrenme sürecinizi zorlaştırıyor. Bu kursları denediğinizde bir şeyleri anlamadığınızı düşünecek ve suçu kendinizde bulacaksınız, ancak değil. Öyleyse yapmanız gereken, önerileri soruşturmak. Daha evvela kursu alanların yorumlarını okuyun, program forumlarını araştırın ve önerilerin arasından en iyilerini değerlendirin.
B) Hangi Dili Seçeceğiniz Konusunda Stres Yapmayın
Hangi dili öğrenerek başlayacağınız hususu ile ilgili çıkmaza girmeyin. İlk günlerde amacınız, bütün dillerde benzeri olan esas kodlama konseptlerine tanışıklık kazanmak olmalı.
Ünlü yazılımcı Quincy Larson’a göre, “Bir programlama dilini öğrenebilirseniz, diğerlerini dahi öğrenebilirsiniz. Nereden başladığınız, düşündüğünüz kadar mühim değil.” Yeni başlayanlar çoğunlukla JavaScript, Python yahut Ruby gibi dilleri tercih ediyorlar. Öyleyse bir adedini seçin ve öğrenmeye başlayın! Bir vakit sonra birkaçını deneyebilir, fikir ve öğrenme tarzınıza göre hangisinin size daha elverişli olduğuna karar verebilirsiniz.
Ancak, bir istisna söz hususu. Diyelim ki, oldukça kısa sürede kodlamayı öğrenip, yazılımcı olarak çalışmak istiyorsunuz. O vakit dil seçimi sizin amacıyla mühim. Bilginizi, pazarın ihtiyaçlarıyla eşleştirmelisiniz. Yazılımcı Saron Yitbarek, bu türlü hallerde mahalli iş pazarınızı araştırmanızı tavsiye ediyor. Giriş düzeyinde hangi dillerde kodlama işleri var ve başka hangi dilleri kullanıyorlar? Sonrasında, bu yetenekleri öğrenebilmek amacıyla lüzumlu olan kurs ve kitapları bulun. İstediğiniz işleri bulun ve müfredatı kendinize göre şekillendirin. Yitbarek, pekçok insanın JavaScript öğrenmeye başladığını, ancak çalışmak istedikleri işlerde JavaScript yerine, mesela, .NET kullanıldığını ayrım ettiklerini vurguluyor.
C) Her Gün Kodlama Yapın
Bu, epey mühim. Her gün kod yazmayı denemelisiniz – en azından yarım saat. Çünkü kodlama, Fransızca yahut İspanyolca öğrenmek gibi. Akıcılık, devamlı kullanımla muhtemel oluyor. Kod yazmak, bilgisayarla bahsetmek gibi bir şey. Onunla sık sık konuşmalısınız. Yeni başlayanlar, çoğunlukla hafta sonlarını bu iş amacıyla ayırırlar, fakat bu çok karışık. Programlama dilleri dahi başka diller gibidir, bu nedenle sadece hafta sonları öğrenmeye çalışmak, onları naturel bir şekilde kullanım yeteneğinizi geliştirmez. Günlük çalışma ve basit gerekmektedir. Meşgul olabilirsiniz, her gün kod yazmak amacıyla nasıl vakit bulacaksınız? Eğlenceli bir şey uygulamak amacıyla ayırdığınız vakti kullanabilmeniz mümkün. Televizyon izlemek yahut pc oyunu oynamak yerine kod yazabilirsiniz. Yazılım bootcamp’i yöneticisi Avi Flombaum, her gün bir saat kod yazmanın, cumartesi günü on saat süresince kod yazmaktan çok daha yararlı olduğunu söylüyor.
Her gün azıcık kod yazarken, anahtar kavramları çok daha hızlı bir şekilde kavradığınızı fark edeceksiniz. Fakat birkaç gün ara verdikten sonra kodlarınızın başına oturduğunuzda, muazzam miktarda çok şeyi unutmuş olacaksınız.
Günde yarım saat kod yazmanın faydasını görmeye başladıktan sonra, yapabiliyorsanız, daha çok vakit ayırın. Programlama, tabiatı gereği daha derine inmeyi gerektirir. Yeni bir kavramı anlamaya yahut bir kod parçasından data akışını görselleştirmeye çalışırken ekrana kilitlenip kalacaksınız. Günlük alıştırmanızı yapar iken, bir noktaya takılıp kaldığınızı ve çözüme ulaştırmak amacıyla iki saatinizi daha ayırmanız gerekliliğini fark edeceksiniz. Yoğun bir hayatınız varken, her gün bu kadar uzun zaman ayırmak basit değil. Ancak elinizden geldiğince vakit ayırmaya itina gösterin.
Eğer vakit ve imkânınız varsa, aşikar bulundurmanız gereken bir opsiyon dahi program bootcamp’leri. Birkaç ay süren bootcamp’ler, eğitmenler ve sınıf arkadaşlarıyla beraber geleneksel eğitim ortamında tüm gün uygulamayı öğrendiğiniz kurslardır. Bootcamp’lerin avantajlı yanı, size bir müfredat sunması ve kararsızlığınızı ortadan kaldırmasıdır. Sizin amacıyla kararları veren biri varsa, öğrenmeye odaklanabilirsiniz.
D) Hayal Kırıklıklarına Karşı Hazırlıklı Olun
Kodlama, gerçekte sinir bozucu olur. Bilgisayar, siz ne söylerseniz onu yapar, doğal şayet talimatlarınız tamamıyla mükemmel ve hassassa. Küçük bir yanılgı, hatalı yerleştirilmiş bir parantez, yazdığınız hiç bir şeyin çalışmamasına niçin olur.
Bu, yazılımcı psikolojisinin destek noktasıdır. Birini özünde iyi bir yazılımcı yapan, makul ve sistemli olmak değildir. Elbette, büyük görevleri ufak adımlara bölmek amacıyla makul düşünebilmek gerekmektedir, bu yazılımın önkoşuludur. Ama tüm yazılımcıları birleştiren psikolojik ince ayrım nedir?
Hepsinin, en azından klavye başında, çoğu kere kere hayal kırıklıklarıyla, yanılgı ve sorunlar ile kafaya çıkabiliyor olmasıdır. İnsanlar, yazılımcıların tüm gün sürekli kod yazdığını düşünür. Hollywood filmlerine bir göz atın, pc korsanlarının parmaklarını görmek nerdeyse imkânsız. Hiç duraklamadan kod yazıyorlar, ne kadar dahi çarpıcı gözüküyor değil mi?
Halbuki kod yazmak çoğunlukla şu şekilde işler: Basit bir şey yapmayı amaçlayarak birkaç satır kod yazarsınız, sonra test edersiniz… Yazdığınız kod çalışmaz! Neyin hatalı gittiğini bulmaya çalışırsınız, kodun alt kısımlarını denetim edersiniz. Karşılaştığınız yanılgı kodunu, internette aratırsınız. Benzer hatayla karşılaşanların nasıl bir çözüm geliştirdiğini araştırırsınız. Dakikalar, saatler, üstelik ara sıra günler sonra hatanın ne olduğunu bulursunuz: Küçücük bir imla hatası.
Bu vaziyet, kodlamayı ne kadar iyi bildiğiniz yahut ne kadar uzun vakittir kodlama yaptığınızla alakalı dahi değil. Büyük şirketlerin yazılımcılarına sorduğunuzda, size tıpkı şeyi söyleyeceklerdir. Zamanlarının fazlasını neyin hatalı olduğunu, neyin işe yaramadığını keşfetmek amacıyla harcıyorlar. Belki onlar, başlarda yapmanızın çok normal olduğu, toyca sorunları yapmıyorlar. Ama çok daha komplike kodlarla uğraştıkları amacıyla kafaya çıkmaları gereken sorunlar dahi zorlaşıyor. Her iki halde dahi yazılımcılar çoğu kere kere hayal kırıklıklarına göğüs geriyorlar.
Kendinize şu şekilde soruyor olabilirsiniz: “Böyle bir şeye niçin katlanayım?” Bug’ı düzelttiğinizde ve her şeyi çalışır hale getirdiğinizde yaşayacağınız keyif sebebiyle, elbet. Hayatta size kesin ustalık duygusu ve sevinç veren epey az şey var. Acemice yazdığınız bir kodu çalıştırdığınız zaman, Frankenstein’ın canavarı gözlerini açmış kadar sevineceğinizi ifade etmek hatalı olmaz.
Bir yeteneği öğrenmeden evvela onun ne kadar zor olma ihtimalini düşünmeniz gerekmektedir. Kodlama amacıyla bu bilhassa önemlidir. Hayal kırıklığı katiyen son bulmaz; ne kadar iyi öğrenirseniz, o kadar ilerlersiniz. Ama bug’larınız dahi gittikçe acımasızlaşır. Aslında tek gereksinim duyduğunuz sebat ve iş ahlakı. Kodlama zor olur, ancak katiyen imkânsız değildir.
Bu sebeple, birtakım kavramların ne kadar kolay olduğuyla alakalı övünen yazılımcıları gördüğünüzde kaygıya kapılmayın. Kodlamadaki her şey, ilk yaptığınızda zahmetlidir. Kendi kendisine kodlamayı öğrenen 21 yaşındaki Lydia Hallie, “Kendini başkalarıyla mukayese ve internette gördüğün eleştirileri katiyen şahsi algılama” tavsiyesinde bulunmaktadır ve “nasıl kod yazacağını öğrenirken zorlanman tamamıyla normaldir ve sonrasında ne kadar iyi bir yazılımcı olacağını belirlemez” sözüyle tamamlıyor.