Dünyaca ünlü girişimci Marc Andreessen’in dediği gibi, “Yazılım, dünyayı yiyor!” Hangi sektörde çalışırsanız çalışın, yazılım işin ayrılmaz bir parçası. Programlama bilenler artık katalizör görevi görüyor. Bu yüzden yazılım alanında kendinizi geliştirmek istiyorsunuz. Ama yeniden üniversiteye girip dört yıl boyunca yazılım öğrenecek imkânınız yok. Kodlama ve yazılımla ilgili tonlarca online 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 için üç yıl boyunca 200 yazılımcıyla görüştü. Yazılımcıların arasında geleneksel dört yıllık eğitim alanlar vardı, ama azımsanmayacak 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 yapmak, geliştirilebilir bir yetenek. Siz de uygun zamanlarınızda kodlamayı öğrenebilirsiniz. İlerleyen zamanlarda işinizi ve hayatınızı kolaylaştıracak programlar yazabilecek konumda olduğunuzu göreceksiniz.
Bu süreçte, uzmanların ve yazılımı kendi kendine öğrenenlerin tavsiyelerine de göz atmak sizin için faydalı olacaktır.
1) Online Dünya Sizin Dostunuz, Oradan Başlayın
Kodlamayı öğrenmek, hiç bu kadar kolay olmamıştı. Çünkü online olarak bulabileceğiniz düzinelerce ücretsiz veya uygun fiyatlı kurs var. Kodlamayı on yıl önce öğrenmeye çalışıyor olsaydınız, fazla seçeneğiniz yoktu. Ama şu an, sonraki maddeleri okumadan bir online kursa başlama ihtimaliniz bile hayli yüksek.
Online kursları seçerken dikkat etmeniz gereken bir nokta var. “Yeni başlayanlar için uygun” diyen kursların bir kısmı, aslında düzensizce hazırlanmış. Yeni başlayanlar için hazırlananların çoğu gerçekten iyi hazırlanmış, materyali size sabırla tanıtıyor. Öte yandan, kimi online kurslar hali hazırda bir şeyleri bildiğiniz varsayıyor, bu nedenle de öğ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, ama değil. Öyleyse yapmanız gereken, önerileri araştırmak. Daha önce kursu alanların yorumlarını okuyun, yazılım forumlarını araştırın ve önerilerin arasından en iyilerini değerlendirin.
2) Hangi Dili Seçeceğiniz Konusunda Stres Yapmayın
Hangi dili öğrenerek başlayacağınız konusunda çıkmaza girmeyin. İlk günlerde amacınız, tüm dillerde benzer olan temel kodlama konseptlerine aşinalık kazanmak olmalı.
Ünlü yazılımcı Quincy Larson’a göre, “Bir programlama dilini öğrenebilirseniz, diğerlerini de öğrenebilirsiniz. Nereden başladığınız, düşündüğünüz kadar önemli değil.” Yeni başlayanlar genellikle JavaScript, Python veya Ruby gibi dilleri tercih ediyorlar. Öyleyse bir tanesini seçin ve öğrenmeye başlayın! Bir süre sonra birkaçını deneyebilir, düşünce ve öğrenme tarzınıza göre hangisinin size daha uygun olduğuna karar verebilirsiniz.
Ancak, bir istisna söz konusu. Diyelim ki, olabildiğince kısa sürede kodlamayı öğrenip, yazılımcı olarak çalışmak istiyorsunuz. O zaman dil seçimi sizin için önemli. Bilginizi, pazarın ihtiyaçlarıyla eşleştirmelisiniz. Yazılımcı Saron Yitbarek, böyle durumlarda yerel iş pazarınızı araştırmanızı tavsiye ediyor. Giriş düzeyinde hangi dillerde kodlama işleri var ve diğer hangi dilleri kullanıyorlar? Sonrasında, bu yetenekleri öğrenebilmek için gerekli olan kurs ve kitapları bulun. İstediğiniz işleri bulun ve müfredatı kendinize göre şekillendirin. Yitbarek, birçok insanın JavaScript öğrenmeye başladığını, ama çalışmak istedikleri işlerde JavaScript yerine, örneğin, .NET kullanıldığını fark ettiklerini belirtiyor.
3) Her Gün Kodlama Yapın
Bu, çok önemli. Her gün kod yazmayı denemelisiniz – en azından yarım saat. Çünkü kodlama, Fransızca ya da İspanyolca öğrenmek gibi. Akıcılık, sürekli kullanımla mümkün oluyor. Kod yazmak, bilgisayarla konuşmak gibi bir şey. Onunla sık sık konuşmalısınız. Yeni başlayanlar, genellikle hafta sonlarını bu iş için ayırırlar, ama bu çok düzensiz. Programlama dilleri de diğer diller gibidir, bu nedenle yalnızca hafta sonları öğrenmeye çalışmak, onları doğal bir şekilde kullanma yeteneğinizi geliştirmez. Günlük çalışma ve pratik gereklidir. Meşgul olabilirsiniz, her gün kod yazmak için nasıl zaman bulacaksınız? Eğlenceli bir şey yapmak için ayırdığınız zamanı kullanabilirsiniz. Televizyon izlemek veya bilgisayar 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 boyunca kod yazmaktan çok daha faydalı olduğunu söylüyor.
Her gün biraz kod yazarken, anahtar kavramları çok daha hızlı bir şekilde kavradığınızı göreceksiniz. Fakat birkaç gün ara verdikten sonra kodlarınızın başına oturduğunuzda, şaşırtıcı 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 fazla zaman ayırın. Programlama, doğası gereği daha derine inmeyi gerektirir. Yeni bir kavramı anlamaya veya bir kod parçasından veri akışını görselleştirmeye çalışırken ekrana kilitlenip kalacaksınız. Günlük alıştırmanızı yaparken, bir noktaya takılıp kaldığınızı ve çözmek için iki saatinizi daha ayırmanız gerektiğini göreceksiniz. Yoğun bir hayatınız varken, her gün bu kadar fazla zaman ayırmak kolay değil. Ancak elinizden geldiğince zaman ayırmaya özen gösterin.
Eğer zaman ve imkânınız varsa, göz önünde bulundurmanız gereken bir seçenek de yazılım bootcamp’leri. Birkaç ay süren bootcamp’ler, eğitmenler ve sınıf arkadaşlarıyla birlikte geleneksel eğitim ortamında bütün gün programlamayı öğrendiğiniz kurslardır. Bootcamp’lerin avantajlı yanı, size bir müfredat sunması ve kararsızlığınızı ortadan kaldırmasıdır. Sizin için kararları veren biri varsa, öğrenmeye odaklanabilirsiniz.
4) Hayatınızı Otomatize Edin
Kodlama öğrenmeyi düşünenler, genellikle sonucunda büyük bir ürün ortaya koymanın gerekli olduğunu varsayıyorlar.
Elbette böyle de sonuçlanabilir, ama şart değil. Kodlamayı öğrenmek için pratik sebep, aslında çok daha basit. Hayatınızdaki sıkıcı şeyleri otomatikleştirmeyi hızlıca öğrenebilirsiniz. Bunun nedeni, bilgisayarların sıkıcı, tekrar eden görevleri yapmakta çok başarılı olması. Biz insanlar, sıkıcı işleri yapmakta fazla başarılı değiliz. Üstelik sıkıldıkça yaptığımız işin hatasız olma olasılığı da düşüyor. Bu yüzden kodlama öğrenmenin en keyifli yanlarından biri de zor ve zahmetli işleri nasıl otomatize edebileceğinizi öğrenmek.
Örneğin, internette harika bir konuşma buldunuz ve bunun yazıya aktarılmış halini saklayıp, sonra okumak istiyorsunuz. Sorun şu ki video sitelerinin ürettiği deşifreler dağınıktır, diğer her satır zaman kodundan oluşur. Bu yüzden onları kesip bir dosyaya yapıştırdığınızda, okumanın mümkün olmadığı bir yazı elde edersiniz. Zaman kodlarını tek tek elle silebilirsiniz, ama bu büyük bir zaman kaybı olacaktır.
Bunun yerine, günlük alıştırmanızı yaparken video sitelerinin oluşturduğu otomatik deşifreleri kopyalamanıza izin veren basit bir web aracı yazabilirsiniz. Böylece, bir düğmeye basarak zaman kodlarını silebilir ve rahatça okuyabileceğiniz bir yazı elde edersiniz.
Yazılımcı Erik Dietrich, “Kodlamayı değil, otomatize etmeyi öğrenin” tavsiyesinde bulunuyor. Dünyadaki hemen her beyaz yakalı iş, biraz kodlama bildiğinizde daha verimli yapılabilecek tonlarca görevi içinde barındırır. Örneğin, raporlar için bilgi toplayacak ya da e-tablolarınızı ayırıp bilgileri veri tabanına girecek programlar yazabilirsiniz. Kodlamanın en harika yanı bu – yalnızca yazılımcı olmak isteyenler değil, mevcut kariyerini geliştirmek isteyenler de öğrenebilir.
5) Hayal Kırıklıklarına Karşı Hazırlıklı Olun
Kodlama, gerçekten sinir bozucu olabilir. Bilgisayar, siz ne söylerseniz onu yapar, tabii eğer talimatlarınız tamamen kusursuz ve hassassa. Küçük bir hata, yanlış yerleştirilmiş bir parantez, yazdığınız hiçbir şeyin çalışmamasına neden olur.
Bu, yazılımcı psikolojisinin dayanak noktasıdır. Birini özünde iyi bir yazılımcı yapan, mantıklı ve sistematik olmak değildir. Elbette, büyük görevleri küçük adımlara bölmek için mantıklı düşünebilmek gereklidir, bu yazılımın önkoşuludur. Ama bütün yazılımcıları birleştiren psikolojik nüans nedir?
Hepsinin, en azından klavye başında, sürekli olarak hayal kırıklıklarıyla, hata ve sorunlarla başa çıkabiliyor olmasıdır. İnsanlar, yazılımcıların bütün gün aralıksız kod yazdığını düşünür. Hollywood filmlerine bir göz atın, bilgisayar korsanlarının parmaklarını görmek neredeyse imkânsız. Hiç duraklamadan kod yazıyorlar, ne kadar da etkileyici görünüyor değil mi?
Halbuki kod yazmak genellikle ş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 yanlış gittiğini bulmaya çalışırsınız, kodun alt kısımlarını kontrol edersiniz. Karşılaştığınız hata 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, hatta bazen günler sonra hatanın ne olduğunu bulursunuz: Küçücük bir yazım hatası.
Bu durum, kodlamayı ne kadar iyi bildiğiniz ya da ne kadar uzun zamandır kodlama yaptığınızla alakalı da değil. Büyük şirketlerin yazılımcılarına sorduğunuzda, size aynı şeyi söyleyeceklerdir. Zamanlarının çoğunu neyin yanlış olduğunu, neyin işe yaramadığını bulmak için harcıyorlar. Belki onlar, başlarda yapmanızın çok normal olduğu, acemice hataları yapmıyorlar. Ama çok daha karmaşık kodlarla uğraştıkları için başa çıkmaları gereken problemler de zorlaşıyor. Her iki durumda da yazılımcılar sürekli olarak hayal kırıklıklarına göğüs geriyorlar.
Kendinize şöyle soruyor olabilirsiniz: “Böyle bir şeye neden katlanayım?” Bug’ı düzelttiğinizde ve her şeyi çalışır duruma getirdiğinizde yaşayacağınız keyif nedeniyle, elbette. Hayatta size mutlak ustalık duygusu ve neşe veren çok az şey var. Acemice yazdığınız bir kodu çalıştırdığınızda, Frankenstein’ın canavarı gözlerini açmış kadar sevineceğinizi söylemek yanlış olmaz.
Bir yeteneği öğrenmeden önce onun ne kadar zor olabileceğini düşünmeniz gereklidir. Kodlama için bu özellikle önemlidir. Hayal kırıklığı asla son bulmaz; ne kadar iyi öğrenirseniz, o kadar ilerlersiniz. Ama bug’larınız da giderek acımasızlaşır. Aslında tek ihtiyacınız olan sebat ve iş ahlakı. Kodlama zor olabilir, ama asla imkânsız değildir.
Bu nedenle, bazı kavramların ne kadar basit olduğuyla ilgili övünen yazılımcıları gördüğünüzde endişeye kapılmayın. Kodlamadaki her şey, ilk yaptığınızda zordur. Kendi kendine kodlamayı öğrenen 21 yaşındaki Lydia Hallie, “Kendini başkalarıyla kıyaslama ve internette gördüğün eleştirileri asla kişisel algılama” tavsiyesinde bulunuyor ve “nasıl kod yazacağını öğrenirken zorlanman tamamen normaldir ve daha sonra ne kadar iyi bir yazılımcı olacağını belirlemez” diye ekliyor.
6) Gerçek Kod Parçaları Yazmaya Alışın
Kodlamayı öğrenirken, kullanabileceğiniz gerçek kod parçaları yazmaya alışmalısınız. Online dersler ve kitaplar size temel bilgileri verir. Ama size kodun nasıl çalıştığını öğreten şey, bir görevi yerine getiren bir kod yazmaktır. Bunu şöyle düşünebilirsiniz: Okulda veya kursta Fransızca öğrenebilirsiniz, ama asıl pratiği Fransa’da bir restoranda sipariş vermeye çalışırken yaparsınız.
Çalışan, gerçek kodlar yazmak, yepyeni bir sosyal medya platformu oluşturmak anlamına gelmiyor. Kullanabileceğiniz ve başkalarına gösterebileceğiniz bir şey olması yeterli. Örneğin, JavaScript veya HTML kullanarak, yeni Pokémon isimleri oluşturan bir program yazabilirsiniz. Küçük ve saçma bir program, ama tanımladığınız görevi yerine getirdiğinde siz de kendinizi geliştirmiş olacaksınız.
Gerçek kod parçaları yazmanın en uç örneklerinden birine Jen Dewalt imza atmıştı. 2013 yılında, hiçbir programlama bilgisi olmayan tasarımcı Jen, 180 günde bir web sitesi hazırlamaya karar verdi. Yazdığı sayfalar başta çok basitti, arka plan rengini değiştirmek için bir düğmeye basmak gibi. Sonrasında, etkileşimli oyunlar veya zamanı kelimelerle gösteren bir saat yapacak kadar çok şey öğrendi. Şu sıralar, sosyal medyada “#awkward” etiketinin ne sıklıkla kullanıldığını, gerçek zamanlı sayan “ruh hali çözümleyicisi” gibi karmaşık bir yapı üzerine çalışıyor.
Jen, küçük ama somut projelerle başlamanızı tavsiye ediyor. Bir program yazacağı zaman, internette bulduğu kod parçalarını kullanıyor ve bu kodlar çalıştığı sürece onları tam olarak anlamadığı için dert etmiyor. Buradaki ipucu, bulduğu her kodu tekrar kendi elleriyle yazması. Yazılımcı Zed Shaw da bunu öneriyor, asla kes – yapıştır yapmayın. Bulduğunuz kodu tekrar yazdığınızda hem kas hafızanızı geliştirmiş hem de kod üzerinde daha dikkatlice düşünmüş olursunuz.
7) “Kaynağı İncele”: Başkalarının Kodunu Alın, Parçalarına Ayırın ve Yeniden Kullanın
Bir saatin nasıl çalıştığını öğrenmek istiyorsanız, iç aksamını görmek için açarsınız değil mi? Bilgisayar bilimcisi ve rütbeli bir donanma askeri olan Grace Hopper da öyle yaptı. Meraklı bir çocuk olarak birçok saati parçalarına ayırdı ve yeniden monte etti.
Kodlama da böyledir. Bir şeyler inşa ederken, sıfırdan başlamanız gerekmez. Halihazırda var olan şeyleri alabilir, parçalarına ayırabilir ve nasıl çalıştıklarını görebilirsiniz. Örneğin, bir web sitesi hazırlamak istiyorsunuz ama yeterince HTML veya JavaScript bilginiz yok. Birçok insan, hazırladığı küçük web sitelerinin kodlarını internette yayınlıyor. Tek yapmanız gereken, istediğiniz gibi işleyen bir web sitesi bulmak ve kodlarını incelemek. Başkalarının projelerinde gezinerek, HTML ve JavaScript hakkında birçok şey öğrenebilirsiniz.
Yazılımcı Chris Coyier’in de dediği gibi, “Açık kaynak bu şekilde çalışıyor hem yasal hem de ahlaki olarak yaptığınız yanlış değil.” Gün boyunca kullandığınız yazılımların büyük çoğunluğu, yeniden kullanılan açık kaynak koduna dayanıyor.
8) Diğer Yazılımcılarla İletişim Kurun
Kodlamayı öğrenmek, yalnız bir eyleme dönüşebilir. Saatler boyunca bilgisayar başında oturmanız gerekeceğinden, dış dünyadan kopabilirsiniz. Oysa, bir şeyleri anlamanın iyi yollarından biri de bilen ve bu işle uğraşan kişilere sormaktır. Peki, onlara nasıl ulaşabilirsiniz?
Kodlamayı yeni öğrenen herkes, kodlama etrafında bir tür sosyal ağ oluşturmaya çalışıyor. Quincy Larson, workshop veya hackathon’lara katılarak diğer yazılımcılarla vakit geçirmenizi öneriyor. Böylece, değerli bağlantılar kurabilir ve kodlamayı öğrenmek için motivasyon sağlayabilirsiniz. Gerçekten uzak bir yerde yaşıyorsanız ya da yaşadığınız şehirde bu tür etkinlikler yoksa, diğer yazılımcılarla online iletişim kurmayı deneyebilirsiniz. Kodlamayla ilgili web sitelerinde, forumlarda ve sosyal medya platformlarında birçok uzman ve sizin gibi yeni başlayan yazılımcıya ulaşabilirsiniz.
Clive Thompson, yardım istemek yerine, problemi tek başına çözmek için çok zaman harcadığını anlatıyor. Diğer yazılımcılarla konuştuğunda ise aynı problemi çok daha kısa sürede çözmeye yardımcı olacak yaklaşımlar öğrendiğini belirtiyor. Bu nedenle, diğer yazılımcılarla iletişim kurmaktan, akıl danışmaktan kaçınmayın.
Kaynakça:
- Thompson, C. (2019). Coders : The making of a New Tribe and the Remaking of the World. New York: Penguin Press.
- Hallie, L. (2017, December 06). How To Successfully Teach Yourself How To Code. https://medium.freecodecamp.org/successfully-teaching-yourself-how-to-code-f6aac23db44a adresinden ulaşıldı.
- Bovell, R. (2018, July 17). Teaching Yourself to Code to Become an Employable Programmer-What to Learn, Where to Learn, and More. http://javascriptissexy.com/teaching-yourself-to-code-to-become-an-employable-programmer-what-to-learn-where-to-learn-and-more/ adresinden ulaşıldı.
https://vizyonergenc.com/ 24.04.2020