Genç Yazılımlılar İçin – I

Gerek yüzyüze görüştüğüm gerek ise email yoluyla bana ulaşan gençler, çok sıklıkla benden “yol gösterme” istiyorlar. Hepsine ayrı ayrı birşeyler yazmaya çalışıyorum ama bir müddet sonra bunları topluca ifade etmenin daha faydalı olduğunu düşünüp bu yazıyı kaleme aldım. “Yol gösterme” isteği ile ilgili öncelikle şu iki şeyi belirtmem lazım. Benden yol gösterme ve tavsiye isteyen gençler öncelikle hakkımda hüsn-ü zanda bulunup, bana büyük bir sorumluluk yüklüyorlar. Bu durum onların iyi niyetini gösterirken beni ise sıkıntıya sokuyor. Öte taraftan gençlerin bu isteği tamamen bir ihtiyaçtan kaynaklanıyor. Her toplumda, önden gidenler, bilgi ve tecrübelerini arkadan gelenlarle paylaşırlar; bundan daha tabi birşey olamaz. Bu konuda belki dikkat edilmesi gereken şeyin, herkesin kendi tecrübesinden elde ettiklerini paylaşıyor olmasıdır, dolayısıyla her paylaşım da tabi olarak pek çok şahsi kanıyı ve tecrübeyi içinde barındıracaktır. Ülkemizde yaygın olan düşünce yapısının taklitçi ve detaycı olduğunun çok iyi farkındayım. Yani düşüncemiz yapımızda özgünlük az ve soyut kavramlar yerine tek tek olaylarla ilgilenerek vaktimizi harcıyoruz. Tek tek olaylardan yola çıkarak, sistematik olarak, soyut bir düşünce dünyası kurgulamaktan çok uzağız. Dolayısıyla da büyük resmi görmekte zorlanıyoruz. Eğitim kurumlarımız, eğitim ve gelişimi, kuru malumat ile problem çözme olarak ele aldıklarından, soyut düşünce yapımızın gelişmesine katkıda bulunmuyor. Bu da tek tek ağaçları gören ve sayan ama ormanda olduğunu farkedemeyen bireyler ortaya çıkarıyor. Dolayısıyla önden gitmiş olanların bilgi ve tecrübeleri, ormanı farketmek için daha önemli hale geliyor. İşte acizane tavsiyelerim:

  1. Öncelikle kendinizi tanıyın. Yazılım dünyasıyla ilgili nelerden hoşlanıyorsunuz, neleri yapmak size zevk veriyor, merakınız ne yönde gibi sorularla başladığınız bu tanıma süreci, nelere yeteneğim var şeklinde daha zor soruların cevabını alacak şekilde daima aklınızın bir yerinde çalışır halde olsun. Kendinizi ne kadar erken tanırsanız o kadar isabetli karar verirsiniz. Bir kişinin kendini tanıması zor ve ömür boyu süren bir faaliyettir, bunun farkındayım. “Kendini bilmek”, dini olsun olmasın her hikmet kaynağı disiplinin en temel öğretilerindendir. Kendinizi tanıdıkça, toplumda kol gezen ideolojik söylemlere kanmaz, daha sağlıklı adımlar atarsınız. (Bu konuda “Her Zeki Öğrenci, Programcı mı Olmalı?” başlıklı yazıma gözatabilirsiniz.)
  2. Odaklanın.  Gençlerde gördüğüm en temel sıkıntı, bir odaktan yoksun olmaları. Kendine bir konu belirlemiş ve o konunun üstadı olmak için var gücüyle çalışan gençler yerine, her çiçekten bir damla almaya çalışan gençler görmek çok daha ihtimal dahilinde malesef. Bu da pek çok konudan birşeyler bilen ama hiç birini tam olarak kavramamış, dolayısıyla da bir şeyi baştan sona ele alıp çözme yeteneğini haiz olmayan kişiler demek. Çok sık sahit olduğum şeylerden birisi: Hem Oracle veri tabanı, hem Java hem de Cisco için sertifika almayı planlamak ya da ne bileyim sadece birkaç yıllık kariyerinde üç-beş tane Java ya da .Net gibi heyula bilgi birikimine sahip yapılarla uğraşmış olup, hiç birinde bir projenin farklı katmanlarını, farklı vechelerini tam olarak görmemiş ve hiçbirinde yetkin bir duruma gelmemiş olmak. Günümüzde dünyasında “genişlik” yerine “derinlik” daha önemli. “Genişlik” ancak farklı ama ilişkili konularda derinleşerek elde edildiğinde anlamlı olur. Yüzeysel, “turistik” seviyedeki malumatın, yetkinlik açısından önemi yoktur. Dolayısıyla hedef belirleyin, odaklanıp, gerektiği kadar üzerinde çalışın, belli bir yetkinlik seviyesine gelin, sonra ilgili bir başka yan alana geçin öyle ki ikisi bir araya geldiğinde anlamlı bir bütün oluştursunlar.
  3. Bilgi hiyerarşisine önem verin. Temelleri anlamadan ileri konulara dalmayın. Yani daha iyi bir ifade ile “bilgi sahibi olmadan fikir sahibi olma” hastalığına kapılmayın. Unutmayın bu bizim milli hastalığımız. Gerçekliği kavramak için önce onu ciddiye alın, en temelinden başlayarak anlamaya çalışın, sonra üzerinde yorum yapın. Dolayısıyla okulda “Operating Systems” derslerine girmeden Android ya da Linux gurusu olma hayaline kapılmayın. Kendisine hayranlık duyduğunuz o işletim sistemlerinin ya da programlama dillerinin yaratıcıları ya formal ya da informal yollarla, ama muhakkak en temelinden başlayarak kendilerini yetiştirmişlerdir. Pek çoğu Stanford ya da MIT gibi okullardan doktora sahibidir. Pek çoğu, okuldayken “gerçek hayatta ne işimize yarayacak bu” diye sorduğumuz Matematik derslerini ya da hocasını beğenmediğimiz için derslerini astığımız mesela Algorithms dersine gereken önemi vermiştir. Formal bir eğitim imkanı bulamayanların ise bir şekilde tırmalayarak gerekli altyapıyı kazandıklarını görürsünüz. Dolayısıyla şu ya da bu şekilde, en temel Matematik, İşletim Sistemleri, Algoritamlar, Veri Yapıları vb. konularda gerekli altyapıya önem vermeden, aklınıza gelecek süper bir fikirle yeni bir Steve Jobs olmayı düşünüyorsanız, büyük bir ihtimalle ne eğitim ne başarı ne de Jobs hakkında fazla birşey bilmiyorsunuz demektir. Bunun için “Outliers” kitabı iyi bir başlangıç olabilir.

Şimdilik bu kadar. Aklıma geldikçe yenilerini paylaşacağım. Fikirlerinizi ve eleştirilerinizi her zaman beklediğimi ifade etmeliyim.

Toplam görüntülenme sayısı: 2301