Falcon Heavy @Kennedy Space Center, Merritt Island, United States

Kariyer değeri ve yazılım dilleri

--

“20. yüzyılın ikinci yarısında uluslararası ticaret üzerinde az sayıda insan çok fazla etki bırakmıştır.”

Üstteki yazı Financial Times gazetesi tarafından 1992 yılında Bruce Doolin Henderson’ın ölümünden sonra yayınlanmış ve Boston Consulting Group şirketinin kurucusunun ne denli büyük bir girişimci olduğunu gösteriyor.

Kendisi ticaret sektörünün içindeki bir çok kişinin aksine bir mühendistir. BCG’nin ‘büyüme-pazar payı matrisi’ olarak geçen ‘growth-share matrix’ modelini geliştirmesindeki en büyük aktörlerdendir.
70'lerden bugüne kadar özellikle bir çok farklı sektörde şirkete veya markaya sahip holdinglerde kullanılmakta olan bu matris, yatırımın yapılacağı alanı belirlemede stratejik bir önem taşımaktadır.

Bruce Doolin Henderson

Bu yapı x ekseninde pazar payı ve y ekseninde büyüme hızına bağlı olarak oluşturulmuş olup kendi içinde dörde bölünen akılda kalabilecek karakteristiklere dağıtılmıştır:

  • Yıldızlar (Stars) — Yüksek pazar payına ve büyüme hızına sahip
  • İnekler (Cash cows) — Yüksek pazar payına fakat düşük büyüme hızına sahip
  • Belirsizler (Question marks/wild cats) — Düşük pazar payına ve yüksek büyüme hızına sahip
  • Köpekler (Dogs) — Düşük pazar payına ve büyüme hızına sahip

Not: Türkçelerini her yazışımda gülesim geliyor o yüzden affınıza sığınarak ingilizce kullanımları ile devam edeceğim.

Boston Consulting Group danışmanlığını yaptığı müşterisi için bu matrisi oluşturduktan sonra çeşitli strateji önerilerinde bulunur:

  • Stars kuadrantında bulunan bir varlığa sahipse yatırımını artırmalı değilse de yeni bir yatırım oluşturmalı
  • Cash cows kuadrantına nakit akışı sağlamak için girmeli
  • Question marks kuadrantında belirlenen ögeleri stars ya da dogs kuadrantına geçebileceği için iyi değerlendirmeli
  • Dogs kuadrantında belirlenmiş bir varlığa sahipse kurtulmalı ve diğerlerinden uzak durmalı

Bu matris aslen şirketlerin sahip olduğu ürün hatlarına ve iş birimlerine uygulanıyor.

Peki buraya kadarki kısmın konumuzla ne ilgisi var? Herhangi bir yazılım dilinin kariyer değerini nasıl ölçümleyebiliriz?

Bugün öğrenmiş olduğumuz yazılım dillerini hatırı sayılır bir zaman ve efor harcayarak bilgi birikimimize eklemiş bulunmaktayız.

Aslında her birimiz rekabet ortamı giderek artan hayat içerisinde farklı olabilmek adına az kişinin bildiği, daha azının ustalaştığı nadir becerilere sahip olma eğilimindeyiz.
Bu genel kanının aksine, konu yazılım dilleri ve sektörü olduğunda dünyada sadece 3 kişinin bildiği bir yazılım dilinde ustalaşmak yerine daha geniş kitleye sahip yani kariyer değeri daha yüksek bir dilde ilerlemek daha makul bir strateji olabilir.

Bunu yapabilmek için yazının başında bahsettiğim büyüme-pazar payı matrisini yazılım dillerine uygulamaya çalışacağız, bunun için StackOverFlow’un her sene yapmış olduğu yüzbinleri bulan katılımcı oranlarına sahip “Annual Developer Survey” adlı anketlerinden 2017 ve 2018 yıllarında yapılanları kullanacağız. Ankette sorulan bir soru üzerinden matrisimizi oluşturacağız:

Aşağıdaki programlama, komut ve işaretleme dillerinden hangileri ile geçtiğimiz yıl boyunca kapsamlı geliştirme çalışmaları yaptınız?

Bu soruya bağlı olarak verilen cevaplara göre yazılım dillerinin ‘büyüme hızı — piyasa değeri’ sonuçlarını çıkaracağız.

Şunu belirtmekte fayda var; eğer bir yazılım dili geçen seneden bu seneye %10'dan %13'e geçiş yaptıysa bunu %30'luk bir büyüme olarak kabul edeceğiz.
Ayrıca referans aldığım yazıda bu matris sadece Amerika Birleşik Devletleri’nden verilen cevaplara göre dizilmiş, ben bunu değiştirip dünya genelinde verilen cevaplara yönlendirdim.

Sonuçları inceleyelim:

Göze çarpan en önemli şeylerden biri çok az sayıda yazılım dilinin popülerliğini kaybetmiş olması. Her yazılım dili giderek büyümüş, bu da ortalama bir geliştiricinin çalışırken geniş bir yazılım dizisi kullandığını gösteriyor.

Matrisimizi oluşturduğumuza göre dilleri kuadrantlarına dağılmış bir şekilde inceleyebiliriz.

Stars

Bence bu dillerin bir veya birkaçında giriş seviyesinde bilgiye sahip olmak çok faydalı olabilir, en yenisinden eskisine sıralayalım.

Go (2015)

Doğumu Google’da gerçekleşmiş olan Go, eşzamanlılık ve yazım kolaylığı baz alınarak geliştirilmiş bir dil olmakla birlikte Google haricinde Uber, Netflix, Adobe, IBM, Intel, Dropbox, CloudFlare gibi büyük şirketler tarafından da tercih ediliyor.

TypeScript (2012)

Microsoft tarafından geliştirilmiş olan TypeScript’i superseti olduğu JavaScript’ten ayrı saymamızın sebebi hem dil üzerinde deneyimli olan geliştiricilerin bunu özellikle belirtmesi hem de JavaScript’in kompleks yapısını sadeleştirmesi ve ‘strong typing’ gibi özellikler getirmesi.

Ruby (1995)

Web uygulaması geliştirmek isteyen önemli bir kesimin geçmişten beri seçimi olan ve Ruby on Rails frameworkü ile işi daha da kolaylaştıran Ruby, hızlı ve komplikasyonlara çok girmeden web geliştiriciliği yapmak isteyenlerin tercihi. Eskilerden gelen neredeyse bütün web geliştiricileri Ruby ile bir şeyler geliştirmiştir.

Popülerliği giderek azalmaya başlamış olsa da hala bir yıldız sayılabilir ama yakın bir gelecekte ‘cash cows’ kuadrantına geçebileceğini belirtmekte fayda var.

Python (1991)

Data analizi ve makine öğrenmesinin altın çağlarına girilmesiyle birlikte popülerliği fırlayan Python on yıllardır aramızda.

Python’un geliştiriciler arasında payının yükselmesinin ‘Jupyter’ gibi etkileşimli ve kopyalanabilir bilgi işlem ortamlarının artan popülaritesini katmak lazım.

Şahsen kendimi üzerinde geliştirmek istediğim diller arasında başı çekiyor.

Cash cows

Doğalgaz faturasını ödememizi sağlayan dillere de en yenisinden eskisine olacak şekilde şöyle kısaca bir bakalım.
Bu dillerden herhangi birisini piyasada kullanabilecek kadar biliyorsanız tebrikler, üstte belirttiğimiz ya da potansiyeli olan bir dil olarak gördüğünüz başka bir dil öğrenmeye zaman ayırabilirsiniz.

Swift (2014)

iOS ve MacOS geliştiricilerinin yeni göz bebeği olan Swift, Apple tarafından geliştirilmiş ve ikinci versiyonu ile birlikte açık kaynak olan dil ‘server-side’ framework geliştirmede gibi alanlarda da ilerleme kaydederek popüleritesini artırıyor ve Apple’a bir şey olmadığı sürece piyasa değeri yüksek bir dil olmaya devam edecek.

Java (1996)

Mobil bir platform olarak daha kabul görmeden önce Java “bir kere yaz, her yerde kullan” mottosu ile ‘cross-platform’ geliştiricilik konusunda en popüler dildi.

Sun Microsystems tarafından geliştirilip sonra olaylı bir şekilde Oracle bünyesine katılan Java günümüzün piyasa değeri en güçlü dillerinden biri ve uzunca bir süre de böyle kalmayı sürdürecek.

Benim de ilk göz ağrım…

JavaScript (1995)

Java ile isimlendirme yakınlığı haricinde hiçbir benzerliği olmayan ve daha popüler olan JavaScript, temelini oluşturduğu sürüyle framework ile birlikte modern web geliştiriciliğinin yapı taşı.

Öğrenme kolaylığı konusunda da çok başarılı bir dil olan JavaScript, piyasa değeri en yüksek dil olarak ‘cash cows’ kuadrantının da lideri.

PHP (1997)

Bir zamanların ‘server-side’ web geliştiricilerinin favorisi olan PHP, ‘cash cows’ kuadrantına zorla giriyor diyebiliriz. En bilineni WordPress olan bir çok web sitesi ve web uygulaması PHP ile geliştirilmiştir.

Popülerliğini aksaklığı ve güvenlik açıklarıyla (SQL injection) birlikte kaybeden bu yazılım dili her şeye rağmen piyasa değeri yüksek bir sağılacak inek.

SQL (1986)

Tanıtıma gerek duymayan SQL yıllar içinde çıkan bir sürü popüler ilişkisel olmayan veritabanı frameworkünün SQL tarzı arayüzlere dönmesiyle birlikte kendi kulvarının en tepesinde durmaya devam ediyor.

C Ailesi (1978)

Bugün bildiğimiz ve sevdiğimiz bir çok uygulamanın omurgasını oluşturan C ailesi ‘cash cows’ kuadrantında bulunması kesinlikle şaşıralacak bir şey değil.

C yüksek derecede etkili bir dil ve zamanla etrafımızdaki diğer diller içinde kendine yer bulmuştur. Örneğin Python’un referans implementasyonu olan CPython C ve Python kullanılarak yazılmıştır. C aynı zamanda performans konusunda da çok güçlü bir dil. Python dilinin bütün kod tabanı C ile yazılmıştır mesela.

Kısaca C uzunca bir süredir aramızda bulunuyor ve uzunca bir süre bulunmaya devam edecek.

Question marks

Birazdan özetleyeceğim dillere boşuna ‘soru işaretleri’ denmiyor. Gelecekte nereye varacakları tam olarak kestirilemeyen bu dillere şimdiden yatırım yapmak riskli. Ama yakın gelecekte bu dillerden öğrenilmesi gereken diller diye de bahsediyor olabiliriz.

Rust (2015)

Genel amaçlı bir dil olan Rust yapısı gereği daha çok gömülü sistemlerin geliştirilmesinde kullanılıyor ve sentaks olarak C++’a oldukça benziyor.

Kullananları arasında gerçekten iyi bir sadakat yakalamış olan Rust popüler bir dil olmasa da kendi topluluğu tarafından oldukça seviliyor.

Scala (2003)

Go gibi Scala da geliştiricinin verimini artırmak amaçlı yayınlanmış bir dil. İngilizcedeki ‘scalable’ ve ‘language’ kelimelerinin kısaltılıp birleştirilmesi ile adlandırılmış Scala Java Virtual Machine (JVM) üzerinde çalışıyor. Destekçileri ileride Java’nın yerini alacağını söylese de bu çok da yakın bir gelecek gibi durmuyor.

Haskell (1998)

Tamamıyla işlevsel bir dil olan Haskell, fonksiyonların değişmez değerler alıp her seferinde aynı çıktıyı vermesini hedef alıyor. Aynı zamanda ‘lazy evaluation’ denilen yapıya sahip, yani kesinlikle gerekli olmadığı sürece sonuçlar değerlendirilmiyor.

Bunlar biraz anlamsız gelmiş olabilir, kısaca en çok fonksiyonları önemseyen bir dil diyebiliriz. Çok büyük bir topluluğa sahip değil ve şu an için nereye gideceği de pek öngörülebilir durmuyor.

R (1997)

Büyüme oranı %40'larda olan R ‘stars’ kuadrantına girmeyi kıl payıyla kaçırıyor. Python ile aynı sebepten ününü geri kazanmaya başlayan R yine de hız ve performans konusunda Python kadar iyi kabul edilmiyor.

25. yıldönümünü geçtiğimiz sene kutlayan R veri bilimi ve istatistiksel analiz konusundaki kullanımı ile oldukça ivmeli bir şekilde ilerliyor.

Dogs

Bildiğimiz köpeklerin aksine popülerliğini giderek yitirmeye başlamış bu karakteristikleri durumu çok tartışmalı. Üzerine zaman harcamadan önce fazlasıyla değerlendirilmeli ve olabildiğince kaçınılmalı ya da güncel olarak kullanılıyorsa da değişime gidilmesi düşünülmeli.

Visual Basic (1992)

VB.NET, VBA, VB6 — hangi nitelikli halini alırsanız alın artık zarafetini kaybetmeye başlamış durumda. VB.NET oluşturduğumuz matriste piyasa değeri kaybeden tek dil.

Günümüzde Visual Basic’in önemli fonksiyonel yapıları C#’da bulunuyor. Microsoft VB için verdiği desteği 2008'de bitireceğini açıklamıştı fakat sonradan Windows 10 işletim sisteminin VB runtime desteği olacağını açıklamışlardı. Bu Visual Basic kullanılarak geliştirilmiş mevcut uygulamalar için iyi bir haber olsa da ileride kod tabanlarının değiştirilmesi ya da ömürlerini doldurmaları gerekecek.

Yani bence

Sektörde sadece üç yıldır yer almama rağmen bütün kendimi bilmişliğimle bu kısımda tamamen kendi yorumlarımda bulunacağım.

Bu oluşturduğumuz matris nihaidir ve seçecekseniz bunlardan birini seçin yoksa iş bulamazsınız gibi bir iddiam kesinlikle yok. Sadece kendime ve sizlere bir fikir olsun diye oluşturmayı ve bu yazıyı yazmayı seçtim.

Açık olmak gerekirse ben üniversiteye başladığımdan beri Java öğreniyorum ve şu anda Android frameworkü üzerinden öğrenmeye devam ediyorum diyebilirim.
Piyasa değeri gerçekten yüksek bir dil olmasaydı şu anda bu yazıyı yazabilmemi sağlayacak vakti ve motivasyonu bana sağlayan bir iş ortamım olmazdı ve siz de bunları okuyor olmazdınız.
Bununla birlikte bana gerçek anlamda para kazandıran bir dil üzerinde yeterli seviyede denebilecek bir tecrübem oluştuğu için artık kendimi ilerisi için büyüme gösteren ve kariyer değeri yükselecek diller öğrenmeye yöneltebilirim.
Python öğrenmeyi oldukça istiyorum mesela ama Go da bir yandan göz kırpıyor, tabii Kotlin ve Swift de var… Şu an için yapılabilecek en iyi şey hepsine şöyle giriş kapısından birazcık bakmakmış gibi geliyor.

Öneri safhasına gelelim; eğer siz de benim gibi şu anda biraz oturmuş kariyer değerine sahipseniz ve ileriye bakmak istiyorsanız yukarıda ‘stars’ ve ‘question marks’ olarak tanıttığım dillere bir göz atın derim.
Eğer henüz yeni mezun olacak ve yazılım sektörüne girip para kazanmak istiyorsanız ‘cash cows’ olarak tanıttığım dillerden en az bir tanesini biliyor olmanız sektörde kolayca bir yer bulabilmenizi sağlayacaktır diye düşünüyorum, zaten bizim sektörde aylardır işsiz gezen ve iş bulamayan daha görmedim.

Son olarak

Yazıyı okuduğunuz için çok teşekkür ederim. Umarım siz de okurken benim yazarken aldığım kadar keyif almışsınızdır. Kafanıza takılan, konuşmak, tartışmak veya eleştirmek istediğiniz herhangi bir konu olursa yorumda bulunabilir, bana @deprecatedattr veya @canberkozcelik hesabından ulaşabilirsiniz. Okuduğunuz için teşekkür ederim.

Peki ben kimim?

Kaynaklar: Economist’s growth-share matrix, Investopedia's growth-share matrix, Use this framework to pick your next programming language

--

--