Junior Yazılım Geliştiriciler için Kılavuz Niteliğinde 8 Öneri

Junior yazılım geliştirici olarak çalışıyorsanız yapmamanız gerekenler

Junior Yazılım Geliştiriciler için Kılavuz Niteliğinde 8 Öneri

Junior yazılım geliştirici olarak yazılım dünyasına yeni girmiş veya çok hızlı giriş yapıp seni yönlendirecek bir arkadaş bulamadığın için hatalarla dolu bir tecrübe edinmiş olabilirsin. Ekip arkadaşlarımızın bir çoğu çok hızlı giriş yapıp yönlendirilme konusunda eksiklik yaşadığı için ciddi zaman kaybı yaşadıklarından yakınıyorlar. Junior yazılım geliştiriciler için de bu konu sürekli olarak tekrar ediyor. Problem hakkında bir kaç tavsiyemiz var.

Süreçte bir çok konuyu tecrübe etmek için bazı maddeleri keşfetmiş olabilirsiniz. Öğrenme yolculuğunuzda ilerlerken nasıl sonuçlanacağını tahmin edememiş ve hüsranlarla karşılaşmış bile olabilirsiniz.

Bu öneri listesini kontrollü bir şekilde uygulamanız size ciddi oranda zaman kazandıracaktır. Ayrıca yol haritası niteliğinde olan bu kılavuza ayak uydurmanız geleceğiniz için önem arz ediyor. Önerilerde bulunan hataları yapmaktan kaçınmanız, yolculuğunuzun güvenli bir şekilde ilerlemesini sağayacak.


1. Mümkün olduğunca Çok Dil / Teknolojiyi Öğrenmeye Odaklanmayın

Junior yazılım geliştiriciler için çok fazla dil ve teknoloji öğrenmenin yanlış olduğunu biliyoruz. Fakat kendimize bile ne kadar tekrar edersek edelim bu yanlışı sürekli olarak tekrar ediyoruz. Junior yazılım geliştiriciler için bu hata çok yaygın olmasından durumu etkileyici olarak düşünmelerinden kaynaklı olduğunu söylemek isteriz. Arkadaş arası sohbetlerde sürekli olarak kaç dil bildiğinden ve hangi teknolojilere hakim olduğundan bahsedilir.

Teknoloji ve dil belirleme projenin ihtiyaçlarına göre belirlenir. Hatta konu size bile kalmaz. Mimarlar, analistlerin hazırladığı ve proje yöneticilerinin onayladığı projenin kapsamına göre teknolojileri şirket içindeki dil ve teknolojilere göre belirler. Yeni öğrenilmesi gereken bir konu veya teknoloji varsa eğitim planları yapılarak sadece ihtiyaç karşılanır.

Programlama teknolojilerinin sürekli değişen doğası göz önüne alındığında geliştiricilerin yeniliklere uyumluluk sağlaması kesinlikle bir göstergedir. Ancak, öğrendiğiniz dillerin sadece sözdizimi ve nasıl yapıldığını basitçe göz gezdiriyorsanız yanlış yapıyorsunuz demektir. Sürekli olarak üzerine birşeyler inşa etmeniz gerekir ve özen göstererek pekiştirmeniz katkı sağlar. Eğer bunu bu şekilde yapamıyorsanız lütfen bir sonrakine geçmeyin.

Programlama, sürekli pratik yapmanızı gerektirecek bir işlevdir. Yeni bir araç ve teknoloji öğrendiğinizde onu uyguladıkça ve geliştirdikçe ilerlediğinizi ve farklı bakış açıları getirdiğini fark edersiniz.


2. Emin olmadan yeni teknolojilere atlamayın

Öğrenme becerileriniz yüksek olabilir. Sürekli gelişimden kendinizi alıkoyamayabilirsiniz. Araştırmanızı iyi yapmak için daha fazla zaman ayırmanız yeni kütüphanelere veya yardımcı eklentilere gerçekten ihtiyacınız olup olmadığının cevabını verecektir.

Ekiplerimiz yapmaya çalıştıkları projeleri öncesinde analiz ederek teknoloji ihtiyaçlarını belirliyor. Sonra yeni teknolojilere yer verilecekse dokümanlarını okuyor, bu teknolojilerle geliştirilmiş projeleri inceliyor ve sonrasında karar veriyor. Büyük projeler içinde kullandığınız her türlü yeni teknoloji sizi felakete sürükleyebilir. Daha önce krizlere sokacak kadar yaşamışlığımız var. Bu yüzden tüm Junior yazılım geliştiriciler için tavsiyelerimiz çok net olmuştur.

Bazı teknolojiler mükemmel işlevlere sahip olabilirken karmaşık kod yazarak temiz kod standartlarından çıkmanızı zorunlu hale getirebilir. Böyle bir durumda sürdürülebilirliği ciddi derecede azaltmış ve gelecekte problemlere açık kapılar bırakmış olursunuz. Bu teknolojiler her ne kadar popüler olsa da kazandığınız zamanı ve kolayca geliştireceğiniz proje modüllerine bakarken ölçeklenebilir olmasına da çok dikkat etmeniz gerekir.

Kısaca bir araca karar vermek için öncesinde araştırma yapın.

Müşteri baskısından dolayı projenin tarihlerinde gecikmeler yaşabilirsiniz. Çözüm uygulamak için acele edebilir ve büyük resmi kaçırarak canlıya çıktığınızda felaket senaryoları ile uğraşmak zorunda kalabilirsiniz. Projeniz biraz büyükse kullandığınız yeni teknolojilerin küçük denemelerini yaparak doğru yolda olup olmadığınızı kontrol etmek harika bir yol.


3. Çalışmalarınızı saklamayın

Utangaç olmanızı gerektirecek bir durum yok.

Çalışmanızı çevrenize hatta internete açarak bir çok geri bildirimin size normalden kat kat daha fazla katkı sağlayacağını unutmayın. GitHub bu konuda iyi bir başlangıç olabilir. Junior yazılım geliştirici olarak öğrenmeyi hızlandıracak her yol size ekstra fayda sağlayacaktır.

En iyi çalışmalarınızı değil daha az gurur duyduklarınızı da paylaşmaktan çekinmeyin. Bu projelerin gelişip gelişmeyeceğini görmeniz sizi oldukça geliştirir. Hatta size göre mükemmel olan bir proje çevreniz için vasat görünebilir. Bu durumda yapmanız gereken projeyi ele alarak nasıl etkileyici hale gelebileceğini düşünmek ve uygulamak olur.

Gelecekte müşteri ile olan diyologlarınız bile şekillenecektir. Çünkü geçmişte aldığınız geri bildirimler gelecekte karşınıza çıkacak ve çözümleri daha hızlı üreterek müşteri memnuniyeti bile sağlabilirsiniz. Eğer takım içinde çalışıyor ve ortak bir firma içinde müşteriye hizmet ediyorsanız kesinlikle daha iyi bir takım arkadaşı olacak gelişmeye devam edeceksiniz.

Çalışmalarınızı sunmayı öğrenmek size tutkuyu, hikaye anlatımını ve projenin ana amaç ve nedenlerini başkalarına anlatırken ilgiyi ve algıyı nasıl yöneteceğinizi de öğretecektir. Kişisel dokunuşlarla projenizi satmayı hatta etkileyici sunumlar hazırlamanızı da sağlar. Bu sayede akılda kalıcılığı yakalamış olursunuz.


4. Tasarımı arkanızda bırakmayın

Kullanıcı arayüzleri(UI) ve kullanıcı deneyimleri(UX) ilkelerini benimseyin.

Eğer UI ve UX kavramlarına aşina değilseniz UX ve UI Tasarımı Nedir? Aralarındaki Farklar Nelerdir makalesini inceleyin.

Kullanıcı, müşteri, takım arkadaşı vs. hedef kitleniz ne olursa olsun ilk olarak tasarım odaklı yaklaşım gösterilir. Tam o anda puan almış olursunuz. İyi ve kötü.

Sadece temiz kod yazmak veya kodu tekrar tekrar kullanılabilir hale getirmek yeterli değildir. Tasarım konusunda yeterli seviyeye ulaşamazsanız ön yüz kaynaklı performans problemleri, kullanım deneyimi üzerine yanlışlıklar ile kullanıcı yönlendirememe veya ölçeklendirme esnasında yaşanacak problemlerle karşı karşıya kalabilirsiniz. Bu nedenle kod ve tasarımı sürekli olarak test edip gerekli optimizasyonları gerçekleştirmelisiniz.

Tasarımın iyi olması hedef kitlenin algısını değiştirir. Etkileyici ve profesyonel görünüm bu hedef kitlenin kalmasını sağlar. Bu konuda bilginizi ve tecrübelerinizi geliştirmek için ücretsiz kaynaklara başvurabilirsiniz.


5. Dokümantasyon okuyun

En iyi uygulamaların ve geliştirmelerin nasıl yapıldığını inceleyin. Sürekli hale getirerek kendinize alışkanlık kazandırın.

Projelerinizde gerekli gördüğünüz yorumları ve genel bilgileri bir dokümantasyonda toplayın. Standartlara uygunluğunu kontrol edin ve teknik dokümanlar da hazırlayın. Bu durum içinde bulunduğunuz ekip veya proje için daha anlaşılır hala gelecektir. Ayrıca bu durum sizin için de geçerli. Aylar sonra projenizde anlam veremediğiniz bolca yer olabilir. Gelecekte junior yazılım geliştirici pozisyonunda olmayacağınız için yaptığınız hataları bile hatırlamayıp koda karşı kızgın bile olabilirsiniz.

Dokümantasyon konusunda edineceğiniz tecrübe ile yüksek kalitede işler çıkarmayı ve teknik anlamda doğru anlatım becerilerinizi de güçlendirecektir. Profesyonel ortamlarda öne çıkacak ve uzun vadede size destek olacak yönlendirmelere sahip olacaksınız. Çoğu ekip arkadaşınız bu dokümantasyonlarda yola çıkarak size yol göstermeye devam edecektir.


6. Test yazmayı atlamayın

İşinize verdiğiniz değeri ön plana çıkartır.

Projenizde sadece temel beklentileri karşılayacak şekilde işlevleri yerine getirmeyi değil daha farklı durumları düşünerek test durumları yazmaya çalışın. Bu durum projenizde oluşabilecek olan hataları ciddi seviyede düşürecektir. Mümkünse farklı cihaz ve işletim sistemlerinden test durumlarını genişletin.

Birim testleri ve genel testleri bir arada yazın. Bizim şuan ilgimiz Puppeteer test otomasyonunda(https://pptr.dev/). İşinizin kalitesini önemli ölçüde arttıracak olan bu testler ekibinize veya müşterinize karşı işin ne kadar ciddiye alındığını ve değer verdiğinizi de gösterir. Ayrıca bu şekilde modüler yapının değerini anlamış ve geliştirmiş olursunuz.


7. Sadece kodlamaya odaklanmayın

Programlama teknoloji sürekli değişiyor ve gelişiyor. Fakat arkasındaki bilgisayar bilimi kavramları değişmiyor.

Algoritmalar, matematik ve temel bilgisayar bilimi kavramları hakkında bilgi edinmek kullanışlı görünmese de faydasız değildir. Etkilerini proje içinde problem çözdükçe farkedersiniz. Bu temel kavramlar düşünce sürecinizde etkili olarak uzun vadede daha iyi geliştirici olmanıza fayda sağlar.

Teknolojiler sık sık değiştiği için yeni diller ve teknolojileri öğrenmek daha kolay hale gelecektir. Çok yönlü bir programcı olmak için iyi bir kodlama ve teori dengesini hedefleyin.


8. Birlikte gelişmeyi hedefleyin

Tek başınıza öğrenmek belki rahat gelebilir fakat farklı bir düşünce ile öğrenme seviyenizi genişletebilirsiniz.

Sizinle beraber aynı seviyede başlayan bir arkadaş size hem motivasyon hemde yol gösterici olabilir. Farklı seviyelerin kesinlikle artıları ve eksikleri vardır. Seviyenizden daha yüksekte(senior developer) bir arkadaşa sahip olursanız siz daha hata yapmadan önce size bir çok şeyi öğretebilir. Fakat hata almak ve tecrübe edinmek öğrenmeyi hızlandırır. Birbirinizin zayıf yönlendiri keşfederek bu durumların nasıl giderileceğine birlikte kafa yorar ve eşli programlama(pair programming) yaparak birçok konuda hızlıca iyileştirmeler yapabilirsiniz.

Çoğu profesyonel ortamda ekipler ile birlikte çalışacağınız için tecrübe edinmeniz kolaylıkla ortama ayak uydurmanızı sağlar.


Son olarak programlamanın uzun bir yolculuk olduğunu unutmayın. Para için bu mesleğe başlamak isteyenler için biraz sert olabilir ama meslek sürekli olarak adanmışlık ister. Tabii ki faydalı bir kariyerin sonucunda istediğiniz maaş skalasına erişebilirsiniz. Fakat sadece para için değil değer ve verimlilik için daha çok çalışmanız gerekir. Yoksa programlama dünyasında ömrünüz çok kısa olabilir veya yerinizde saymaya şimdiden başlayabilirsiniz.

Kararlı olmalı ve öğrenmeye sürekli olarak devam etmeniz gerekir.

Junior yazılım geliştirici
Bu arada ileride herşeyi hackleyeceğinizi zannetmeyin. Gerçekçi beklentilere sahip olun.

En önemli nokta her gün inşa etmeye devam ederek gelişmeye devam edin.

Araştırma yapabileceğiniz ve 2021’de geliştiricilerin izlemesi gereken 6 trend konularına göz atabilirsiniz.

Okuduğunuz için teşekkür ederiz.

Gelişmelerden Haberdar OlunBültenimize kayıt olun

Netuce olarak dijital dönüşüm, yazılım dünyası, dijital pazarlama, yerel iç görüler ve parlak fikirler üzerinde bültenler paylaşıyoruz. En yeni gelişmeleri güncel içerikleriyle takip etmek için bültenimize kayıt olun.