Ben nasıl büyük developer olucam *

Murat Dogan
6 min readDec 27, 2018

--

Profesyonel iş hayatında 10. yılıma girdiğim şu dönemlerde, teknik olarak hangi konuyu anlatsam diye düşünürken aslında teknik olmayan ama en çok ihtiyaç duyulan bir hususta yazmaya karar verdim. Nereden başlamalıyım?

Bugün belki de en uzun yazımı yazacağım, umarım kariyerinin başında, ortasında veya ilerisinde farketmez, bir çıkış noktası arayan arayüz geliştiricilere ufak da olsa bir ilham verebilirim.

  • Başlığın çıkış noktası videomu da buraya bırakayım :
okudum yıllarca hep okudum diyen geliştiriciler için :)

Nereden başlamalıyım?

Yazılım geliştirmeye yeni başlayan arkadaşlardan sıkça duyduğum bir soru. Cevabı ise bir o kadar karmaşık. Sonuçlar ise bir o kadar hüsran. İlgili okullardan mezun olan arkadaşlardan şimdiye kadar tanışma fırsatım olanlardan aldığım feedbacklerde şöyle bir seçime gidiyorlar. “Görünür işler yapmayı sevdiğim için Front End alanında ilerlemek istiyorum.” Biraz daha derinine indiğimde ise, malesef ki bi çoğunda gerçek şu: “Daha kolay gözüktüğü için front end yapacağım”. İşler bu noktadan sonra karmaşıklaşıyor çünkü 10 sene öncesiyle şu an front end dünyasının geldiği nokta bambaşka. Kıtaların ayrılmaya başlayıp şu an geldiği nokta gibi diyebiliriz ki kıtalarda olan hareketlilik bizim alanımızda da hala var. Değişim, dönüşüm asla durmuyor.

Her neyse, genç arayüzcü arkadaşımız başlıyor işe. Önce birkaç forum taranıyor, blog postlar inceleniyor:

  • Html var CSS var, bir de JavaScript var.
  • Hımmm…
  • SCSS mi? Farkı ne ki? LESS, Stylus? Bunlar ne böyle?
  • Task runner mı kuracağım?
  • Ama node yüklü değil ben backend yapmayacağım ki?
  • jQuery? MVC kütüphaneler mi?
  • Nasıl ya React de ne şimdi?
  • Gulp öğrenmiştim Webpack nereden çıktı?
  • Angular da pek revaçtaymış?
  • TypeScript????
  • 🏃🏼‍♂️️️️🏃🏼‍♂️

Şimdi tüm bu yukarıdaki teknik şeyleri bir kenara bırakın, gelin size çok başka şeylerden bahsedeyim.

Kural 0

Diğerlerinin sıralamasını belki değiştirebilirsiniz ama bu hep en başta kalsın derim ben.

Hayatta z-index’ten daha önemli şeyler var! — Murat

Bu sözü sektörde daha çok toyken söylemiştim. Hala da zaman zaman aklıma gelir gülerim. Ne demek peki bu? İşinizin hayatınızdaki en önemli şey olduğu yanılgısına kapılmayın. Ailenizi, dostlarınızı, arkadaşlarınızı ve kendinizi unutmayın. Evet birazdan size gece gündüz çalışın, okuyun ve öğrenin diyeceğim belki ama o aradaki dengeyi lütfen kurun. Güzel ve mutlu bir sosyal hayat sizi iş hayatında da bir adım ileriye götürecektir.

Kural 1 — Merak

Merak edin! Merak edin ve söylemiş miydim? Merak edin!

Credit: Unsplash

Bizim işin olmazsa olmazıdır. Eğer içinizde bu işe dair merakınızı tetikleyecek bir heyecanınız yoksa lütfen klavyeyi fareyi bırakın ve başka bir alanda meslek edinin.

Bu yılıma geldim hala güzel bir komponent, işleyiş vs gördüğümde nasıl yapmış diye bakıyorum. Bir çoğu ufkumu açıyor. Bir şey yaparken acaba şöyle de yapsam nolur diye düşünüp öylesini araştırıyorum.

Başka bir şey daha söyleyeceğim meraka dair. Bir iş yerine görüşmeye gidiyorsanız, lütfen ama lütfen o şirketin ürünlerini bi merak edip inceleyin :) Görüşmede bulgularınızı paylaşın, siz olsanız nasıl çözerdiniz onu paylaşın ya da gözünüze güzel gelen bir komponentin nasıl yapıldığını çözemediyseniz onu sorun o şirketin teknik sorumlusuna. Düşünsenize ne kadar kaliteli geçer o görüşme?

Kural 2 — İngilizce!

Bu konuda sakın ha sakın milliyetçi takılmayın. Yazdığınız komut satırlarından, o dilin dökümanlarına kadar istisnalar olmadıkça İngilizce egemen bir dünyanın içerisindesiniz. Bu konuda kendinizi belirli bir seviyeye getirmeniz gerekmekte. Bir sorunu araştıramadığınız noktada kilitlenirsiniz. Yeri gelecek ilgili canlı mesajlaşma alanlarında, github issueları açarak, stackoverflow’da sorarak ve sorulmuşları okuyarak ilerleyeceksiniz. Türkçe ile ne yazık ki ilerlemeniz mümkün değil! Bu konuda çeşitli eğitim yöntemleri var, kendinize uygun olan bir tanesini seçin ve üzerine vakit harcayın lütfen.

Kural 3 — Oku, izle, uygula!

Herkesin öğrenme biçimi farklı. Kimisi izleyerek, kimisi dinleyerek, kimisi deneyerek öğrenir. Önemli olan bu sürecin belirli bir patterni olması ve o yolu takip etmeniz. Ne kadar çeşitli kaynaktan beslenirseniz o kadar çeşitli noktaya ulaşabilirsiniz. Tabii ki bu kaynak çokluluğu sizi ilk zamanlar bir girdabın içine sürükleyebilir. Yukarıda yazdığım gibi öğrenecek çok fazla şey var ve hepsinin aynı anda olması mümkün değil. Bir konu belirleyin kendinize ve onunla ilgili beyincikten kod yazacak kıvama gelene kadar durmayın, dağılmayın.

Kural 4 — 10.000 saat

“Practice makes perfect!” sözü tam olarak bu kuralın karşılığı. Malcolm Gladwell’e göre kural basit. Bir işte ustalaşabilmeniz için o işte en az 10.000 saat harcamanız gerekiyor. Tabii ki rakamın eksiği fazlası tartışılır. Burada asıl söylenmek istenen, bir iş üzerinde vakit ve emek harcayarak ancak o işte ustalaşılabilir.

Infografik

Ne yazık ki Udemy.com’dan alacağınız 2 kurs sizi iyi bir developer yapmaz.

Buraya kadar geldiniz ve bu sözlerimden sonra, “Hocam, iyi de tecrübesisiz diye kimse işe almıyor biz bu saatleri, bu emekleri nerede harcayacağız!!!” dediniz biliyorum :)

Hadi udemy’den aldığınız eğitimleri bitirdiğinizi varsayarak yapmanız gerekenleri yazalım. Başka şeyler aklına gelen olursa lütfen yorumdan yeşillendirsin.

1- GitHub hesabı açın. O eğitimlerde öğrendiğiniz şeyleri uyguladığınız repolarınız olsun. O projeleri daha sonra, farklılaştırdığınız başka repolarınız olsun, sadece tutorial çıktıları olmasın.

2- Bu repolarda muhakkak branching modellerini deneyin. Birden fazla branchiniz, merge requestiniz, sayısız commitleriniz olsun. Böylelikle VCS(Versiyon kontrol sistemi) denilen olguya da otomatik olarak alışkın yetişmiş olursunuz.

3- Sevdiğiniz beğendiğiniz siteleri, ben olsam nasıl yapardım diyerek öğrendiğiniz teknolojilerle yapmaya çalışın. Kimse bunun için sizi suçlamayacaktır, sitemi çaldın, kopyaladın vs diye. Sonra atın bunları da reponuza. Şimdiden, bi yere başlamadan kaç tane projeniz oldu farkında mısınız?

4- Yetmedi! Gidin, behance, deviantart, themeforest vs gibi yerlerden tasarımlar bulun. jpg de olsa atın photoshopa onu parçalamaya çalışın. Dinamiklik katın. Atın repoya. Hop birkaç portföy daha.

Sanırım artık “Gösterecek projem yok!” tezinizi çürüttük.

Kural 5 — İletişim

Meslek hayatınız boyunca belki kodlarınız üzerinden para kazanacaksınız ama etrafınızda her zaman insanlar olacak. Size işi getiren iş birimleri, işinizi test edecek birimler, kabul edecek müşteriler, hepsinden öte tüm gününüzü paylaşacağınız iş arkadaşlarınız. Bu insanlarla iletişiminizin iyi olması sizi çok rahat ettirir. Evet sektörün başında çoğumuz ürkek, çekingen, utangaç vs olabiliyoruz, kişiliğinize oranla bu süreç bir süre sonra çözülebiliyor ancak siz bunu olabildiğince kısa tutmaya çalışın.

Bir diğer iletişim kanalı da etkinlikler. Sektöre dair etkinliklere muhakkak gidin. Her zaman herkesten öğrenecek bir şeyleriniz olduğunu aklınızdan çıkartmayın. Gerek anlatıcıdan, gerek oraya katılan katılımcılardan öğrenecek çok şeyiniz var.

Bir de burada altın bir nokta var ki o da Network. Güçlü bir network sizin dilediğiniz yerlerde çalışmanız için muhakkak ki yardımcı olacaktır. Burada torpilden bahsetmiyorum, evet torpil her sektörde olduğu gibi bizim sektörde de var. Bununla Don Kişot gibi kavga etmenin alemi yok. Siz yaptıklarınız ve kalitenizle aranan bir geliştirici olduğunuzda zaten torpillere takılmadan ilerleyebilirsiniz.

İletişimin en önemli noktalarından biri de soru sorma kabiliyetidir. Her zaman için bilmediğiniz ve soracağınız bir dünya şey olacak, burada doğru soruyu sormak çok önemli. En basitinden nasıl soru sorulmamasına bir örnek vermek istiyorum:

“React ile beraber styled-component kullandım ama hata veriyor!!!” bu minvalde bir sürü soru gördüm. Eğer ne var bu soruda diyenleriniz varsa bir kuple açıklayayım:

  • En önemli geri-soru şu: Ne hatası veriyor? :)
  • O verdiği hatayı araştırdın mı?
  • Bulduğun çözümleri denerken farklı bir hatayla karşılaştın mı?
  • Kaç farklı çözümü denedin?

Eğer doğru soruyu, doğru zamanda ve kişilere sorarsanız artık o cevabı unutmanız mümkün değil. Daha sorunun başındayken soru sorup, cevabını alıp kopyalayıp yapıştırmak, tutorial izlerken bakıp yapıp kapattığından unutmak gibidir. Bunu yapmayın kendinize.

Teknik olarak nasıl bir yol haritası izlemeliyim?

Bu soru da alt sorularıyla yanlış sorulabilen sorulardan biri. Daha yolun başındayken hangi framework ile ilerlemeliyim şeklinde sorular gelebiliyor. Öncelikle işin temelinde iyi olmanız gerekiyor. Scss yazmadan evvel bol miktarda CSS yazıp, daha sonra Scss’in hangi sorunları çözdüğünü anlamanız temelinizi güçlendirir. Bodozlama jQuery’e dalmadan evvel pure JavaScript öğrenmeniz, ihtiyacınız halinde onu kullanmanıza olanak sağlar. Bu örneği sıkça veriyorum. ES6'daki class, constructor vs gibi yapıları React’in syntaxi olarak öğrenen, düşünen bir güruh yetişiyor.

Evet öğrenim eğrisi dediğinizi duyar gibiyim ancak şunu söylemekte fayda var. Kimse kolay olacağını söylemedi? :)

Son olarak, asla ben oldum demeyin! Ben bu yazıyı ben oldum hadi sıra sizde diyerek yazmıyorum. Bu yazıyı yayınladıktan sonra bile sizden gelecek geri bildirimlerden öğrenecek çok şeyim var. İlk defa böyle bir yazı yazdım çünkü ihtiyaç olduğunu düşünüyorum. Eğer fırsatım olursa 2019'da bu yazıdan çok daha fazlasını yapabilmek için çeşitli girişimlerim olacak. Ben birileri benimle bilgisini paylaştığı için bu meslekten para kazanıyorum. İstiyorum ki ben de birilerinin hayatına dokunayım ve onlar da mutlu oldukları/olacakları işleri yapsınlar.

Bir sonraki yazıya kadar, esen kalın! :)

Şimdiden nice mutlu yıllar!

Murat DOĞAN — 27.12.2018

Credit: Unsplash

--

--