Alaylı ve mektepli yazılımcı mevzusu

Umut Gökbayrak
CTO’nun el defteri
4 min readJan 5, 2020

--

Geliştiricilerin üniversite diplomasına ihtiyacı var mı? Sadece bir kuşak önce, bir üniversite diplomasının, yüksek maaşlı bir işi güvence altına almak için vazgeçilmez olduğu söylendi. Ancak dünya değişti. Diploması olmayan yazılım geliştiricilerle her gün karşılaşıyoruz. Mark Zuckerberg, Steve Jobs gibi üniversiteden terk dahilerin hayat hikayelerini de okuyor ve ilham alıyorsunuz. Artık iyiden iyiye, teknoloji sektöründe üniversite eğitiminin vazgeçilmezliği üzerine kafa yormak gerektiği bir döneme girdik.

Sektörün mevcut durumunun yanısıra, bir de henüz üniversiteye adım dahi atmamış çocuklar gerçeği var.

Bugün 15 yaşın altındaki yeni jenerasyon, mobil uygulama geliştirmeyi ve web sitelerini oluşturmayı kolaylıkla öğreniyor. 4–5 yaşındaki çocuklar, akıllı telefonlarda mucizeler yaratıyor, sizin dahi zorlanacağınız pek çok şeyi içgüdüsel olarak yapabiliyorlar. Google’ı ve Youtube’u kullanarak pek çok şeyi kendi kendine öğrenmek konusunda derece donanımlılar.

Bu nesil yaşlandıkça, şunu daha çok merak edecek: Bir zaten gayet güzel kod yazabiliyorum, gerçekten de yazılım geliştirici olmak için üniversiteye ihtiyacım var mı?

Bir kaç yıl öncesine kadar, iş ilanlarında seçilmiş bazı üniversitelerin mezunlarını arayanları sıklıkla görürdük. Bugün gitgide azaldılar, yok olmak üzereler. Sebebi çok basit. Aradıkları personeli artık bulamıyorlar da o yüzden.

Gitgide bilgisayar mühendisliği bölümünü bitirmeyi zorunlu kılan ilanların da azaldığını görüyoruz. Bu tarz ilanlar önce “bilgisayar mühendisliği veya ilişkili alanlarda mezun” dediler, şimdi ise çoğunlukla bir mühendislik fakültesi bitirmek dahi yeterli geliyor.

Durum Türkiye’de böyleyken, iyi yetişmiş yazılımcı havuzunun daha da darlaştığı ekonomilerde, artık mezuniyet şartı vazgeçilmez olmaktan çıktı, çıkıyor. Bugün silikon vadisindeki pek çok şirket sizin hangi okulu bitirdiğinizden daha çok geçmişte ne yaptığınızla ilgileniyor.

Silikon vadisindeki bir startup kurucusu bakış açısıyla, Avrasya Üniversitesi ile İstanbul Teknik Üniversitesi arasında çok da büyük bir fark yoktur. İkisinden de bilgisayar mühendisi olarak mezun olabilirsiniz. Hatta mezuniyet notunuz mükemmel de olabilir. Ama bu size hiç bir şekilde iş garantisi vermez.

Bu meslekte ayinesi iştir kişinin, lafa bakılmaz.

Stackoverflow’da 2016’da 173 ülkeden 56.003 yazılım geliştiricinin katılımı ile yapılan bir araştırmada yazılımcıların sadece %34.8’i yazılım geliştirme konusuyla alakalı bir mühendislik fakültesinden lisans derecesi ile mezun olduğunu ifade etmiştir.

Yine Stackoverflow’da yapılan iş ilanlarında yapılan bir araştırmada, 2739 iş ilanının %61’inde lisans derecesi şartı aranmadığı görülmüştür.

Yani dünya artık değişiyor, değişti. Siz bunun neresindesiniz?

İnsanlar boşuna mı üniversite okuyorlar?

Bu konu tek taraflı değil. Nihayetinde hiç kimse 4 yıl boşuna dirsek çürütmüyor. Ama kabul etmek lazım ki; çok dolu alaylılar olabildiği gibi, çok da boş mektepliler olabiliyor.

Çalıştığınız şirketin CTO’su olarak üniversitede bilgisayar mühendisliği okumuş bir personeli tercih edersiniz, çünkü:

  1. İşin teorik altyapısını iyice öğrendikten sonra pratik yapmak çoğu zaman daha iyi sonuç veriyor.
  2. Makine öğrenimi, yapay zeka, derin öğrenim, grafik simülasyon gibi işlerde mektepli yazılımcılar çok daha iyi performans veriyor. Çünkü bu tarz konular, yüksek matematik ve istatistik bilgisi gerektiriyor. Üniversitede calculus, diferansiyel denklemler, lineer cebir, istatistik görmüş bir kişi ile, görmemiş birisi hiç aynı olabilir mi?
  3. Bir okula 4 sene boyunca kendinizi adayıp bitirmiş olmak bir adayın, “gerektiğinde bir şeyleri başlayıp bitirebildiğini gösterir”.
  4. Üniversitede derslerde gördüğü bir konuda bir mektepli, iyi kötü çerçeveleri tanımlanmış bir dereceye sahiptir ve ayrıca kendisini size ispatlamak zorunda kalmaz.
  5. Mektepli bir yazılımcı ile mesleki terminolojide genelde daha az sorun yaşarsınız.
  6. Alaylı bir yazılımcı, mesleğe hızlıca atılıp para kazanmaya başlar. Bu nedenle normalde 2–3 yıl süresince algoritma, veri yapıları, işletim sistemleri gibi odaklanmak isteyen konulara yeterince zaman ayıramaz. Mektepli bunlara mecburen zaman ayırır, altyapısı daha sağlam olur.

Yukarıdaki artıların hepimiz aslında farkındayız. Az önce de söylediğim gibi, eğer imkanınız varsa mektepli tercih edersiniz ama eğer yapmıyorsanız, o zaman alaylı yazılımcılar da gayet iş görebilirler.

Diploma yeterli değil

Bunu üzerine basarak söylüyorum. Sadece repütasyonu yüksek bir okuldan mezun olmuş diye işe alınan bir kişinin iki satır kod yazamadığını, basit bir işletim sistemini kuramadığını, ya da ne bileyim bir array ile arraylist’in farkını dahi bilmediği durumlarla o kadar sık karşılaşıyorum ki. Bu insanlar okullardan nasıl mezun oluyorlar diye demeden duramıyorum.

Ama tam tersi şekilde, liseden terk olmasına rağmen tasarım desenlerini (design patterns) yemiş yutmuş, devops prensiplerini içselleştirmiş, fonksiyonel programlamayı parmağında döndüren o kadar kaliteli alaylı yazılımcılar var ki.

Peki hangisi doğru? Neye bakarak personel seçiminize karar vereceksiniz?

Bence, bir yazılımcıyı seçerken esas kriter geçmişte ne yaptığıdır. Github, Bitbucket gibi bir yerlerde bir portfolyosu varsa, oraya koyduğu kodlar bence en az diploması kadar önemlidir. Oturup zaman ayırır, kodlarını incelerim. O kodlarda kişinin işini ne kadar ciddiye aldığını anlamaya çalışırım.

Mektepli bir yazılımcı ile mülakatta ise okurken nelerle uğraştığını anlamaya çalışırım. Armut piş ağzıma düş misali, okuldayken öğretim görevlileri ne verdiyse onu almakla yetinmiş bir kişiden iyi bir yazılımcı çıkacağını pek sanmıyorum. Yazılım işi emek işidir. Bu iş, mesleğinin yanında o insanın aynı zamanda hobisi de olmalıdır. Eve gittiğinde bir hobi projesi olmayan, tatillerde fırsat buldukça bu hobi projelerine kod yazmayan bir yazılım mühendisi Boğaziçi bitirse de, ODTÜ bitirse de çok bir kadir kıymeti olmayabilir.

Gerekli teorik bilgiyi almak için bugün Coursera, Udemy, iTunes U, Pluralsight gibi ortamlar yeterli gelebiliyor. Eğer bir alaylı yazılımcı, gerekli emeği gösterdi ve teorik eksiklerini tamamladıysa, bir mektepliye göre portfolyo yaratmak ve iş tecrübesi edinmek için daha fazla zamana sahiptir. Dolayısıyla bu tarz kişilerden beklentim genelde daha fazla olur. Kendilerini gerçekten fark yarattıkları projeler ile ispatlamalarını isterim. İşlerini ve arkasındaki kodlarını incelediğimde, bir mektepliden farksız bir kalite söz konusuysa, alaylı veya mektepli arasında benim nazarımda artık bir fark kalmamıştır.

--

--