Üniversiteden Mezun Olduktan Sonra Hangi Teknoloji Üzerine Yoğunlaşmalıyım?

Image for post
Image for post

Yazılım geliştirme gibi çok hızlı değişen teknolojilerin kucağında yetişen bir mesleği genel geçer ifadeler ile açıklamak ve bir sınır çizmek çok zor. Onun için aşağıda ki yazımda anlattığım sebep/sonuç ilişkilerini bir yerde sınırlamak zorunda kaldım. Çok fazla parameter var ve bazen bir yerde bu değişkenleri sabitleyip bir katsayı olarak kullanmak zorunda kalıyorsunuz, aksi halde konu içinden çıkılmaz bir hal alıyor. Bazı şeyleri kendiniz görmeniz ve tecrübe etmeniz gerekecek.

Bu yazıyı video olarak izlemek isterseniz, aşağıdaki videoma göz atabilirsiniz:

Geçenlerde değerli bir takipçimden bir email geldi. Bende hem ona cevap olsun hem de benzer problemleri yaşayanlara yardım etsin diye bir post göndermeye karar verdim. Ama öncelikle kendisinin emailini paylaşayım:

Tarık bey merhaba,

Youtube kanalınızda bilgilendirici videolarınızın neredeyse hepsini izledim ancak kendi kafamda cevap bulamadığım sektörde olan birine sorma ihtiyacı duyduğum sorular var.Üniversite 4.Sınıf Bilgisayar Müh. öğrencisiyim.Bu sene son olmamın yanında halen tam olarak bir alana yönelememenin stresini çekiyorum.Şu an Vue js ve Node js ile Websitesi geliştiriyorum ancak bundan 1 yıl kadar önce Deep Learning vb konularda kendimi geliştiriyordum.Şu an az da olsa Single Page application yazarak para kazansam bile halen tam olarak hangisine yönelmem gerektiğine karar veremiyorum.Genel olarak hangisini seviyorsan ona yönel diyorlar ancak tam olarak birini diğerinden daha çok seviyorum diyemem.Sizin tavsiyeleriniz benim için çok önemli.Vakit ayırıp yazabilirseniz çok değerli olacaktır benim için.

Başlamadan önce hemen teknoloji kavramı ile neyi kastettiğimi arz edeyim. Teknoloji: Bir sorunu çözmek için kullanılan tekniksel bilgi ve araçlar. Mesela: framework, programlama dili, kütüphane, vs.

Ekonominin en başında öğretilen şeylerden bir tanesidir arz ve talep. Arz az ama talep çoksa, alınacak servis yada ürün daha değerli olacaktır. Bu açıdan bakıldığında eğer bir teknolojiyi uzman seviyesinde bilen insan sayısı az ama piyasada talep varsa, bu insanlar değerli olacağından dolayı, alacakları maaş o denli yüksek olacaktır. Ama bu değer seviyesi devam ettirilebilir olmayabilir. Çünkü zaman hızlıca değiştiği gibi değerleride hızlıca değiştirebilir. Burada ki bahse geçen teknojiler ya eski teknolojiler ya da yeni çıkanlar.

Söz konusu eski teknolojiler olunca, zamanla bu teknolojilerin yerini yeni teknolojiler almaya başlayacağından, eski teknolojilerde uzman olanlar için iş bulmak biraz daha zorlaşabilir. Bazılarınız aklına: Arz az olursa, bu işlere başvuracak insan da az olacağından, iş buşmak belki de o kadar da zor olmayabilir… şeklinde bir düşünce gelebilir. Haklısınız. Reelde bir işin ne kadar zor bulunabileceğine dair ihtimaller çok daha fazla değişken üzerine kuruludur. Yaşanılan ülkeden, şehre, aradığınız iş tipinden tecrübenize, vs. bunların hepsi iş bulma süresini etkileyecek önemli faktörler. Mesela, Türkiye de embedded sistemler üzerine konulan iş ilanları, Çin gibi bu işlerin menbaı olan bir ülkeden çok daha az olacaktır.

İş bulduklarında ise sayılarının azlığından dolayı değerli olacaklardır. C de eski bir dil ama hala çok yerde kullanılıyor ve ölecek gibi durmuyor. Go ve Rust gibi diller ile tahtı sarsılıyor gibi. Ama bu sarsılmanın yerle bir edici olması çok uzun yıllar alacak. Burada ki zaman önemli bir kavram. Hiç bir teknoloji bir kaç yılda yok olmaz. Onunla yazılmış yüzlerce ve binlerce hatta yüzbinlerce proje, yeni teknolojiler çıkmış diye kenarı konulmaz. Kaynaklarını doğru kullanan bir şirket, arkasını ve önünü iyi düşünmeden teknolojik altyapı değişimleri yapmaz. Çünkü bir teknolojiyi değiştirmek demek, şirketin durumu göz önüne alındığında ciddi kaynaksal kayıplara neden olabilir. Bu kaybın nedenlerinden bazıları: Çalışanların yeni teknolojiyi hızlı ve effective bir şekilde kullanabilecekleri hale gelene kadar geçirecekleri zaman ya da bu teknolojiyi bilen insanların işe alınması için mülakatlar yapmak, işe alınınca da ürünü ve code base’i öğrenmeleri ile geçen zamanlardır. Daha başka nedenlerde var tabiki de.

Hal böyle olunca, piyasada bir teknolojinin isminin daha az duyulur olmaya başlaması, onu yeni çıkan alternatiflerine göre daha az kullanıyor yapmıyor. Maalesef sosyal medyanın böyle bir etkisi var. ReactJs kullanan 100 tane adam görsek, piyasayı ReactJS domine ediyor algısına kapılıyoruz. Neyse. Eski teknolojileri bilenler çok iş değiştirmiyorlar zaten. Ama değiştirmek zorunda kalırlarsa, bulabilecekleri açık posizyon sayısı diğer teknolojilere göre daha az olabilir.

Yeni teknolojilerin durumuna bakarsak, doğru bir tanım ile başlamak gerektiğini görürüz. Microsoft .NET platformu 2001 yılında çıktı. 17 yıl geçmiş üzerinden. Eski bir platform mu? Burada kullanılması gereken ifade köklü bir platform belki de. Çünkü 17 yıl bu piyasa için çokta eski değil. MS .NET 2001 yılından beri çok değişimler gördü ve gelişen isteklere cevap verebilecek şekilde devamlı geliştirildi. Onun için benim tercihim bu şekilde köklü teknojilerden yana oluyor genelde. Piyasada ki işlerin çoğu bu tarz teknolojiler etrafında toplanıyor. Mesela Java da bu katerigoriye örnek olanlardan. Hakeza, Python’da burada.

ReactJS ve Angular gibi teknojiler ise daha yeni. Burada elma ile armutu karşılaştırıyormuşum gibi oldu ama aslında bunları teknoloji kavramı altında değerlendiriyorum sadece.

Yepyeni olan teknolojiler ise bir kaç yıllık olanlar. Hitap ettikleri endüstriye göre değerleri artıp azalabilen bu gibi yeni teknolojileri bilenler de bir süre boyunca ortamalanın üstünde değerli olabiliyorlar. Ama önce ki duruma benzer olarak, bu teknolojiler de piyasada çok kullanılmaya başlanır ve zamanla daha çok insan tarafından bilinirse, ekonominin temel disiplini arz ve talep meselesi devreye giriyor ve değeri aşağıya çekip orada bir süre sabitleyebiliyor.

Bazı teknolojiler ise herkes tarafından uzun zaman geçse bile ilgi görmeyebiliyor ve daha sınırlı bir kesim ile hayatını devam ettirebiliyor. Mesela AI (Yapay Zeka) ya da son zamanlarda daha çok duymaya başladığımız machine learning bunlardan bir kaç tanesi. Öğrenmesi ve uygulaması sıradan projelere göre daha zor olan teknolojiler herkesin ilgisini çekmeyebiliyor. Bunun arkasında bir sürü neden olabilir. Bazıları ailevi, bazıları yeteneksel, bazıları başka. Neyse.

O zaman bir özet geçelim ve teknolojileri zamana göre nasıl kategorize ettiğimize bir bakalım:

  1. Eski teknojiler: C, Fortran, Lisp, vs.

Bunlardan başka, bilgisayar bilimlerinde daha çok uzmanlık gerektirebilen alanlar: Yapay Zeka, Machine Learning, vs. gibi.

Uzun bir giriş oldu ama şimdi anlatacaklarımız daha kolay olacak. Üniversiteden yeni mezun olduğunuz ve ne üzerine çalışağınızdan emin değilsiniz. Eğer planlarınız içinde uzaklara taşınmak yoksa, o zaman yaşadığınız şehrin yada ülkenin kariyer sayfalarına bakarak genel bir resim çıkarabilirsiniz. Hangi alanların ağır bastığını listenen teknolojilere bakarak görebilirsiniz. Tabi bu bile kesin bir cevap olmayacaktır. Tüm bu karmaşıklık içinde boğulurken, çok uzatmadan söyleyeyim, unutulmaması gereken önemli bir faktör ise para kazanmanız gerektiği. Dolayısıyla bazen hayallerinizin değilde gerçekliğin peşinden gitmeniz gerekiyor. Çünkü hayatınızı da devam ettirmek zorundasınız. Gerçekliği ise, içinde bulunduğunuz zamanı ve mekanı analiz ederek görebilirsiniz.

Şimdi sizinle bir moral bozma oyunu oynayalım. İş ilanlarına bakarken, şirketlerin daha çok web developer aradığını gördünüz. Süper, demek ki bu alanda rahat iş bulabileceksiniz demektir. Ama bu bilgi aynı zamanda bu alanda ki arzın da çok olabileceği manasına geliyor. Dolayısıyla diğer alanlarda 10 kişi ile aynı iş için savaşmak zorundayken, bu alanda 100 kişi ile savaşmak demek olabilir. Yani, belki de, iş bulma ihtimaliniz daha az adam aranan alanlara kıyasla düşündüğünüz kadar da çok değildir. Diğer bir durum ise, arz talebi karşılamıyor da olabilir. Bunu görmenize yardımcı olacak basit bir veri: iş ilanının ne kadardır açık kaldığı. Bir hafta içinde iş ilanları kapanıyorsa, arz vardır demektir. Ama incelediğiniz şirketlerin çoğu 2–3 ay boyunca bu ilanları açık tutuyorsa, arz yetmiyor olabilir. Bu başka şeyleri de gösteriyor olabilir. Mesela arz var ama piyasada ki insanlar yeteri kadar uzman değiller. Ya da oradaki şirketler adam yetiştirmek istemiyor ve direk yetişmiş eleman istiyorlar. Meselenin ne kadar da karmaşıklaştığını görebiliyor musunuz şimdi? Onlarca veya yüzlerce değişken parameterinin arasında değişmeyen tek bir sabite var, o da:

Öğrendiğinizi derinlemesine ve nedenleri birlikte öğrenin. Bilginizi anlaşılır bir şekilde aktarmayı öğrenin. Anlaşılır şekilde konuşmayı öğrenin. Analitik düşünmeyi öğrenin. Problemleri sistematik olarak çözmeyi öğrenin. Kendinize güvenmeyi öğretin.

Eğer bu yeteneklerinizi doğru bir şekilde geliştiyorsanız, o zaman isterseniz 10 kişi arayan bir piyasada isterse 100 kişi arayan bir piyasada iş arayın, hepsinde iş bulma şansınız çok yüksek olacaktır.

Amazon’un CEO’su Jeff Bezos’un geçenlerde duyduğum güzel bir açıklaması vardı. Gelecekte değişecek şeyler üzerine odaklanmak yerine, değişmeyecek şeyler üzerine odaklanıyoruz, diyordu. Hiç kimse 10 yıl sonra, daha yavaş kargolama istemeyecek. Daha hızlı ürün teslimi, daha ucuz ürünler, vs. gibi asla değişmeyecek istekler üzerine odaklanıyoruz ve bu alanlarda kendimizi devamlı geliştiriyoruz…

Bu anlayış bizim mesleğimiz için de geçerli. Teknolojiler değişir ve zaman değişen problemlerine yeni çözümler getirir. Ama zamanla değişmeyecek tek şey problem çözme yeteneğinin değeri, anlaşılır şekilde iletişim kurabilmenin önemi, derinlemesine öğrenme kabiliyetine duyulan ihtiyaç. O zaman bunlar üzerine ciddi yatırımlar yapmamız gerekiyor.

Tüm bu anlattıklarım kafanızı iyice karıştırdıysa ve benden somut bir cevap bekliyorsanız, o zaman en basit ve somut şekilde cevap vereyim. Eğer hiç bir konu hakkında karar veremiyor ve üniversiteden mezun olunca ne yapacağınızı kestiremiyorsanız, ben olsam bu durumda genel bir alan olarak web development ya da mobile development yapmayı tercih ederim. Kullanmak istediğim teknolojilere gelince, öncelikle Full-Stack developer olmak isterdim: Database, backend ve frontend diye isimlendirilen tüm kısımlarda çalışacak şekilde kendimi geliştirirdim. Teknoloji olarak .NET, Java, NodeJs, vs. bunları öğrenirdim. Para ve tecrübe kazanmaya başladıkça, eğer specific bir alanda uzmanlaşmak istersem, zamanla kendimi o alana doğru yönlendirirdim. İstediğim yeni alan ile ilgili eğer çalıştığım şirkette veya başka şirketlerde açık pozisyonlar varsa, onlara başvururdum. Ama bir yerden başlamak önemli. Ne seçmeliyim diye çok fazla düşünmek yerine, bazen çözüm comfortable olduğunuz kısımdan başlamaktır. Hali hazırda bir teknolojiyi kullanıyor ve bundan para kazanıyorsanız, o zaman onunla üniversite hayatınız bittikten sonrada devam edebilirsiniz. Aklınızda bulunması gereken şey, hiç kimse sizi o teknolojiye hayatınız sonuna kadar mecbur etmiyor. Zamana fikirleriniz değişecek. Ama suya girmeden yüzmeyi öğrenmek zor. Hele bir de hangi şekilde en iyi yüzdüğümüzü görmek istiyorsanız, o ise suya girmeden hepten imkansız.

Eğer içinde bulunduğunuz ülkede ki imkanlar zevk alacağınız bir teknolojiyi öğrenmenize fırsat veriyorsa, o zaman süper. İnsan zevk aldığı bir teknolojide daha hızlı şekilde uzmanlaşabiliyor. Bu da gelecek için önemli bir yatırım.

Yazılım hızlı değişen bir alan. Dolayısıyla her yeni çıkan teknoloji insanların kafasını karıştırıyor. Bu bazılarında problemi anlamadan direk çözümden başlamak olabiliyor. Bir teknoloji genelde önceki teknolojilerinin bugünün isteklerini karşılamakta zorlanmasından ya da var olan düzeni sevmeyen insanların birşeyleri değiştirmek arzularından çıkıyor. Ama onların geçtiği yolların hiç birinden geçmeden, bu teknolojileri hakkıyla anlamak zor olabiliyor. Onun içinde bazen direk bu yeni teknolojilerden hayata başlamak yerine, belkide biraz daha geriden piyasaya girmek gerekebiliyor. Sabırlı olmak çok önemli. Vazgeçilmez bir yazılımcı olmak için vazgeçmeyi ve sabretmeyi öğrenmeniz lazım.

Bu kafa karışıklığının nedenlerinden bir tanesi de maalesef farklı YouTube kanallarında ve yüzlerce blog yazılarında insanların şunu yapan şöyle para kazanıyor, biz burada şu teknoloji ile dünyaları değiştiriyoruz, vs. gibisinden arkası önü düşünülmeden sarf edilen iddialar. Çok az insanın ciddi tecrübesi oluyor bu gibi kanallarda. Ama görülen o ki, insanın kendisine güvenmesinin ve bildiklerini herkesin anlayacağı şekilde anlatması çok işe yarıyor olmalı ki, bir ton insanın kafasını karıştıracak kadar etki sahibi olabiliyorlar. Şunu bilen şu an herkes tarafından aranıyor, şu kadar para kazanıyor şeklinde ki ifadelerin çoğunun arkası hiç o kadar basit değil. Hayat aslında bu kadar basit değil. Çok fazla parametre olduğunu çok defa söyledim. Zaman ve insan ise bu değişkenler arasında ki en etkili olanlardan. Ama önceden de dediğim gibi, yüzlerce değişken arasında asla değişmeyecek olan yetenekleri geliştirmek zorundayız. Hiç kimse bundan 10 yıl sonra, ben şu teknolojiyi bilen, ama problem çözme yetenekleri zayıf, analitik ve sistematik düşünemeyen, bildiklerini aktaramayan insan arıyorum demeyecek.

Neyse umarım cevap olabilimişimdir. Kalın sağlıcakla.

Written by

Senior Manager in Software Engineering. Former Technical Lead. Author of the book: Hands-on with Go http://amzn.to/2QYFoaV YT: http://youtube.com/c/tarikguney

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store