1. Anasayfa
  2. Yazılım

Genç Geliştiriciler için 4 Kariyer Tavsiyesi

Genç Geliştiriciler için 4 Kariyer Tavsiyesi
Genç Geliştiriciler için 4 Kariyer Tavsiyesi
0

Genç Geliştiriciler için 4 Kariyer Tavsiyesi – Yazılım mühendisleri kariyerlerinin başlarında genellikle bana “Nasıl hızlı bir şekilde seviye atlayabilirim?” diye sorarlar.

Başka bir deyişle, mümkün olan en kısa sürede nasıl etkili bir katkıda bulunabilirim?

Büyük kod tabanımızı nasıl tanıyabilirim?

Bilmem gereken her şeyi nasıl öğrenirim?

Genç Geliştiriciler için 4 Kariyer Tavsiyesi

Yeni bir işe başlamak, kıdemli bir mühendis olarak bile stresli olabilir ve özellikle ilk programlama işiniz olduğunda bunaltıcı olabilir. Öyleyse, küçük bir geliştirici olarak seviye atlamak için dört stratejiye bakalım;

1. Çok Soru Sorun

İlk önce, sorular sorun – Ve belki daha da önemlisi, soru sormaktan korkmayın. Soru sorma cesaretini toplamak zor olabilir, çünkü bunu yapmak her şeyi bilmediğini kabul etmek demektir. Ama neden yapmalısın? Yazılım mühendisliği o kadar geniş bir alandır ki, herkesin her şey hakkında her şeyi bilmesi imkansızdır.

Özellikle şirketinizin Slack kanallarından birinde olduğu gibi açık bir forumda soru sormak sizi savunmasız bir konuma sokar. “Bu işi bilmediğim için başkaları beni küçümseyecek mi? Bir yazılım mühendisi olarak güvenilirliğimi kaybeder miyim?” diye merak edebilirsiniz. O anlarda kendinize birkaç şeyi hatırlatmanız önemlidir:

Öncelikle herkesin bir yerden başlaması gerekiyor. Bir zamanlar 30 yıllık deneyime sahip yazılım mühendisleri bile bu geniş endüstride yerlerini almaya çalışıyorlardı.

İkincisi, eğer bir sorunuz varsa, aynı soruyu başka birkaç kişinin de sorması kuvvetle muhtemeldir. Sormak için cesarete sahip olmak hem size hem de iş arkadaşlarınıza yardımcı olacaktır.

Üçüncüsü, sahtekarlık sendromu herkesi etkiler. Herkes bir noktada yeterince iyi olmadıklarını, bulundukları yerde olmayı hak etmediklerini, meslektaşları ne kadar az şey bildiklerini fark ederlerse sahtekar oldukları ortaya çıkacaklarını düşünüyor. O sesi dinleme.

Dördüncüsü, sorunuzu halka açık bir forumda sorduğunuzda, daha sonra başvurabileceğiniz belgeler haline gelir. Bu nedenle, bana Slack’te özel mesajlar gönderen mühendisleri, sorularını halka açık Slack kanallarında yayınlamaya her zaman teşvik ediyorum. Ardından, tüm ekip veya kuruluş yanıt vermeye yardımcı olabilir, aynı soruyu sorabilecek diğer kişiler yararlanır ve konuşma, gelecekte bu soruyu soracak diğer kişiler için aranabilir.

Şimdi, sorunun alıcı tarafında mühendislere bir not: Biri halka açık bir forumda soru sorduğunda oluşan güvenlik açığı, ellerinize kutsal bir güven veriyor. Şirketinizin kültürünü belirlemek size kalmış. Bu şirket ve ekip, insanların azarlanmadan veya aşağılanmadan soru sormakta özgür olduğu, psikolojik olarak güvenli bir yer mi? Nasıl tepki vereceğiniz konusunda akıllı olun, aksi halde meslektaşlarınızın konuşmaktan korktukları bir ortam yaratırsınız.

Google, yüksek performanslı bir ekibe hangi faktörlerin katkıda bulunduğunu belirlemek için araştırma yaptığında, psikolojik güvenlik bir numaralı katkıda bulundu. Ekip üyelerinin kendilerini güvende hissetmeleri ve birbirlerinin yanında savunmasız kalabileceklerini hissetmeleri gerekir.

Öyleyse, daha etkili olmak için genç bir geliştirici olarak ne tür sorular sorabilirsiniz? İşte birkaç örnek:

  • Bana uygulamamızın mimarisi hakkında bir bilgi verebilir misiniz?
  • Hangi çerçeveleri ve kütüphaneleri kullanıyoruz?
  • Bana kod tabanı dizin yapımız hakkında bir bilgi verebilir misiniz? Kod nerede yaşıyor?
  • Nasıl organize edilir?
  • Geliştirme süreci neye benziyor? Ne tür Git iş akışı kullanıyoruz?
  • Yayın süreci nasıl görünüyor? Yeni kod üretime nasıl girer? Yeni kod ne sıklıkla yayınlanıyor?
  • [X Özelliği] neden olduğu gibi uygulandı?
  • Neden [Kütüphane B] yerine [Kütüphane A] kullanıyoruz?

Aslında, bunların hepsi yeni bir işe başlarken sadece genç geliştiriciler için değil, herkesin sorması gereken harika sorular.

2. İhtiyacınız olduğunda yardım isteyin

Benzer şekilde, ihtiyacınız olduğunda yardım istemek önemlidir.

Zor bir görevle boğuşmak, problem çözmeyi ve sorun gidermeyi öğrenmenin çok önemli bir parçasıdır. Her zaman elini tutacak biri varsa, o kadar hızlı ilerleyemezsin. Ancak, yardıma ihtiyacınız olduğunu kabul etmenin daha akıllıca olduğu bir nokta geliyor.

Mükemmel bir kural şudur: Bir şeye takılırsanız, 15 dakika daha deneyin ve sonra hala takılırsanız yardım istemeniz gerekir.

Bu, görevinize bir zaman kutusu koyar. Ayrıca yardım istemeden önce sorun üzerinde biraz daha zaman harcamanızı gerektirir, bu nedenle hemen pes etmenize izin verilmez. Dahası, bunu çözmek için zaman sınırlaması sizi motive edebilir, çünkü belki de gerçekten yardım istemek zorunda kalmak istemezsiniz!

15 dakikalık zaman sınırı dolduysa ve hala sıkışmış hissediyorsanız, yardım istemelisiniz. Kendi başınıza mücadele etmeye devam etmenin asil olduğunu düşünebilirsiniz, ancak yaptığınız iş için size ödeme yapıldığını unutmayın. Özellikle bir meslektaşınız engelinizi kaldırmanız için size hızlı bir işaret verebilirse, herhangi bir ilerleme kaydetmeden saatlerce ve saatler harcamanız sizin sorumluluğunuzdadır. Takım arkadaşlarınız sizin için harika bir kaynak olabilir ve yardıma hazırlar, emin olun.

Bilseler de bilmeseler de, deneyimli öğretmenler ve danışmanlar, genç geliştiricilere yardım ederken genellikle Vygotsky’nin yakınsal gelişim teorisi alanını ve ayrıca yapı iskelesini kullanacaklardır. Yakınsal gelişim alanı (ZPD), “bir öğrencinin yardım almadan yapabilecekleri ile daha fazla bilgi veya uzmanlığa sahip birinin desteğiyle yapabilecekleri arasındaki mesafedir.” İskele, bir öğrenciye ZPD içinde çalışmasına yardımcı olmak için rehberlik sağlama tekniğidir.

Bu nedenle, yardımcı bir akıl hocası, genç geliştiriciye görevlerini tamamlamalarını sağlamak için yeterli rehberlik sağlar veya akıl hocası, gelişimin hangi aşamasında olursa olsun engellerini kaldırmak için yeterli bilgiyi sağlar.

Yazılım Mühendisliği 101

3. Sürekli Öğreniyor Olun

Yazılım mühendisliği alanı sürekli değişmektedir. Yeni diller yaratılıyor, bir zamanlar popüler olan kütüphaneler ve çerçeveler yeni gelenler tarafından tahttan indiriliyor ve tasarım trendleri gelip geçiyor. Bu hızlı tempolu dünyaya ayak uydurmak için sürekli öğrenmelisiniz. Yazılım mühendisleri sadece üniversiteye veya geliştirici bir eğitim kampına gitmekle kalmaz, mezun olur, bir iş bulur ve bir daha asla yeni bir şey öğrenmez. Öğrenmek her gün yaptığımız bir şeydir.

10.000 saat kuralı“, Malcolm Gladwell’in Outliers adlı kitabı tarafından 2008’de popüler hale getirildi. Bu kural, bir konuda uzman olmak için yaklaşık 10.000 saat yapmak gerektiğini belirtir. Bir şeyi ne kadar çok uygularsanız o kadar iyi anlamanız mantıklı olsa da, 10.000 saat kuralı, kitabın yayınlanmasından bu yana başkaları tarafından birkaç kez çürütüldü.

Görünen o ki, gerçekten önemli olan sadece ne kadar antrenman yaptığınız değil, nasıl antrenman yaptığınızdır. “Uygulama” ile “kasıtlı uygulama” arasında bir fark vardır.

Bir müzik aleti çalmayı öğrenirken, nasıl ve ne yapacağınız konusunda dikkatli olmalısınız. Belirli bir şarkıyı öğreniyorsanız, şarkıyı tekrar tekrar okumazsınız. Her seferinde baştan sona basitçe oynamak etkili değildir. Muhtemelen şarkının diğerlerinden daha zorlayıcı bölümleri olacaktır. Kasıtlı bir alıştırma yapıyorsanız, aynı dört ölçüyü, onları çivileyene kadar tekrar tekrar çalabilir ve ardından şarkının başka bir bölümüne geçebilirsiniz.

Aynı kavram yazılım mühendisliği için de geçerlidir. Sadece bir şeyleri karıştırmayın. Öğrenmeye çalıştığınız şeyde bilinçli olun.

Birim testleri yazmakta zorlanıyorsanız, Jest (veya programlama dilinizle alakalı herhangi bir test çerçevesi) ile iki saat boyunca bir Pluralsight kursu izleyin.

React‘i öğrenmeye çalışıyorsanız, gidip belgeleri okuyun – React belgeleri gerçekten çok iyi!

Şirketinizin kullandığı teknolojilerin bazı temellerini anlamaya özen gösterin. AWS, Heroku veya kullandığınız IaaS/PaaS sağlayıcıları hakkında bilgi edinin. Bir ön uç geliştiriciyseniz, Angular, React veya Vue gibi şirketinizin kullandığı UI çerçevesini veya kitaplığı öğrenin. Veritabanlarıyla sık sık çalışıyorsanız, SQL ve NoSQL veritabanları arasındaki farkların yanı sıra bunların güçlü ve zayıf yönleri hakkında bilgi edinin.

Başka bir deyişle, “testereyi bilemek” için zaman ayırın. Stephen R. Covey tarafından ortaya atılan bu terim, Etkili İnsanların 7 Alışkanlığı adlı kitabındaki son alışkanlıktır. Dr. Covey’den alıntı yapmak gerekirse, “Asla testereyi bilemek için zaman ayıramayacak kadar çok meşgul olmamalıyız.

Mesai saatleri içinde yalnızca görevleri tamamlama tuzağına düşmek kolaydır. Ne de olsa mesaidesin ve işverenin orada olman için sana para ödüyor, yani “çalışmalısın“, değil mi? Ancak, bu tür bir düşünce kısa görüşlüdür. Bu, testereyi bilemeye hiç vakit ayırmadan saatlerce büyük bir ağacı testereyle kesmeye çalışmak gibidir. Testereyi bilemek için harcadığınız zaman, ağacı kesmek için harcanmayan zamandır. Ancak daha keskin bir testere ile kesimleriniz o kadar etkili olacaktır. Aslında, testereyi keskinleştirmek için durmamış olsaydınız, ağacı kesmek için gereken süreden daha kısa sürede ağacı kesebileceksiniz.

İyi işverenler bu gerçeğin farkındadır ve çalışanları her hafta birkaç saat bilinçli bir şekilde öğrenmeye ayırmaya aktif olarak teşvik ederler. Çalışma saatleri içinde bir makaleyi okumak veya eğitim videosunu izlemek için zaman ayırdığınız için kendinizi suçlu hissetmeyin. Bunları kasıtlı beceri geliştirme uygulamanızın bir parçası olarak yaptığınızda, zamanın %100’ünde yalnızca görev çalışmasına odaklanmış olmanızdan çok daha etkili bir mühendis olacaksınız.

4. Kod incelemelerine katılın

Son olarak, kod incelemelerine katılın. Tüm saygın yazılım şirketleri, kod tabanlarının kod kalitesini yüksek tutmaya yardımcı olmak için bir kod inceleme sürecine sahiptir. Kod incelemeleri genellikle bir kapı bekçisi olarak düşünülür alıştırma – iyi tasarım kalıplarının kullanıldığından, kodun temiz olduğundan, yeterince test edildiğinden ve olası olumsuz sonuçlardan kaçınıldığından emin olmak istiyorsunuz.

Ancak, belki de aynı derecede önemli olan kod incelemeleri, aynı zamanda bir bilgi paylaşım süreci olarak da hizmet eder. Yeni bir birleştirme isteği oluşturduğunuzda ve başkalarından kodunuzu incelemelerini istediğinizde, onları size geri bildirimde bulunmaya davet etmiş olursunuz. Geri dönecekleri her türlü şey olabilir: kodunuzu yeniden düzenlemenin yolları, kullanmak için daha iyi bir veri yapısı veya tasarım modeli, henüz öğrenmediğiniz en iyi uygulamaların ihlalleri. Kod incelemeleri, oradaki en iyi öğrenme fırsatlarından biridir ve doğrudan geliştirme sürecine dahil edilirler!

Kod incelemeleri biraz duygusal bir deneyim olabilir. İnsanlardan yaratıcılığınızı eleştirmelerini istiyorsunuz, bu yüzden egonuzun dahil olmasına izin vermek kolaydır. Bu olduğunda, bir adım geri atın ve unutmayın: Kodunuzun bir kısmı kötü olsa bile, bu sizi kötü bir geliştirici yapmaz. Egonuzu denklemden çıkarın ve yüksek kaliteli kod üretme ve bilgi paylaşma nihai hedefini hatırlayın.

Bir birleştirme talebi hazırlarken her zaman gözden geçirenlerin zamanına saygılı olun. Size yardımcı olmak için günlerini ayırıyorlar, bu nedenle iyi taahhüt mesajlarınız, faydalı bir birleştirme isteği açıklamasına sahip olduğunuzdan ve kodu zaten gözden geçirdiğinizden emin olun. Bir gözden geçiren olarak, hiçbir bağlam olmadan kodu gözden geçirmekten veya her yerde yorumlanmış kodu ve kötü biçimlendirilmiş kodu görmekten daha sinir bozucu bir şey olamaz.

Diğer taraftan, diğer mühendislerin kodlarını, hatta daha kıdemli mühendislerin kodlarını da gözden geçirmekten korkmayın. Hiç kimse mükemmel değildir ve kıdemli mühendisler de hata yapar. Daha fazla deneyime sahip mühendislerin kodlarını inceleyerek, onların nasıl kod yazdıklarını, kod yapısını, değişkenleri isimlendirdiğini ve zor problemlerin üstesinden nasıl geldiklerini görebileceksiniz. Daha kıdemli meslektaşlarınızın kodlama stilini gözlemleyerek ve ardından taklit ederek, kendi kodunuzun kalitesini hızla artırabilirsiniz.

Google, kod gözden geçiren ve ayrıca kodu gözden geçirilen kod yazarı için mükemmel yönergelere sahiptir. Her ikisini de okumanızı şiddetle tavsiye ederim.

Okul, Kariyer ve 1000$ Maaş ile işe başlamak!

Sonuç Bağlamı

Bu makaleden tek bir şey çıkarırsanız, umarım öğrenmenizde kasıtlı olmayı hatırlarsınız. Bilmeniz gerekenleri ve bilmek istediklerinizi öğrenin ve bunlara odaklanın. Uygulamanızda bilinçli olun. Meraklı ol. Öğrenmeye aç. Bu zihniyeti benimsemek sizi uzun ve başarılı bir kariyer için doğru yola koyacaktır.

Size iyi şanslar!

Hasan YILDIZ, Girişimci. Doktora Öğrencisi. Yazmayan YAZILIMCI. Veri Şeysi. Eğitmen...

Yazarın Profili
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir