Dev.to topluluğunda okuduğum, Emma Bostian’ın yazdığı “İyi Bir Programcı (ve İnsan) Olmak için 101 Tavsiye” paylaşımından kendimce önemli olduğunu düşündüğüm 26 maddeyi alıp Türkçe’ye çevirdim. Sayfanın alt kısmındaki kaynak linkinden gönderinin orjinaline giderek 101 maddenin tamamını İngilizce olarak okuyabilirsiniz.
Programcı olmak sorularınızın cevaplarını nasıl arayacağınızı öğrenmekle ilgilidir. Google’ı efektif kullanmasını öğrenerek yazılım geliştirmede çok zaman kazanacaksınız.
“Neden?” sorusuna cevap veren yorumlar yazın, “Ne?” sorusuna cevap veren yorumlar değil.
Fonksiyonlar ve değişkenler amaçlarını kesin olarak ifade edebilmeli; örneğin benimGuzelFonksiyonum
doğru bir kullanım olmayacaktır.
Kendinizi sizin gibi düşünen insanlarla çevrelemek sizi daha ileriye gitmeniz için motive edecektir.
Daima öğrenmeyi gerektiren bir meslek seçtiniz. Öğrenmeyi sevin.
Her zaman kolay olmayacak ama hepimiz aynı yerden başladık. Bunu yapabilirsin.
Sizi korkutmayan şey, sizin gelişmenize de yardımcı olmaz.
Yayınları, blogları, podcast’leri ve teknoloji haberlerini takip ederek son teknolojik gelişmelerden haberdar olun.
Güçlü problem çözme becerileri herhangi problemi çözebilir. Bir problemi çözmek için neyin gerekli olduğuna odaklanın.
Sorunu çözeceğine inanındığınız ilk çözüme doğrudan atlamayın. Koda geçmeden önce olası tüm çözümleri inceleyin.
Dikkat dağıtıcı şeyleri bırakmak, zaman kutulama(time-boxing) tekniğini kullanmak, toplantılara katılmak, ilk önce en önemli görevlerden başlamak gibi; tutarlı ve sağlıklı alışkanlıklar inşa edin. Alışması belki biraz zaman alacak ama uzun vadede buna değecektir.
Bir beceriye sahip olmanız o beceri üzerine pratik yapmanız gerekmediği anlamına gelmez. Beceriler geliştirip kullanılmadıkça zamanla kaybolur ve bu endüstri o kadar hızlı gelişiyor ki pratik yapmak önem arz ediyor. “Ben her zaman bu şekilde yaptım” yaklaşımını bırakıp “Acaba bunu yapmak için daha iyi bir yöntem var mı?” yaklaşımını benimseyin.
Çünkü; şık baklavalara sahip olmanız her gün kebap yiyip yine de böyle kalacağınız anlamına gelmez.
Fikrinizi dile getireceğiniz zamanlar olacak, bu yüzden fikrinizin altında yatan nedenselliği iyi kavramanız gerekmektedir. X çözümü neden Y çözümünden daha iyi? Fikirlerinizi geçerli argümanlara dayandırın, böylece fikriniz değer kazanacaktır.
Siz bir ürünsünüz ve ederiniz hakkıyla verilmelidir. Bulunduğunuz coğrafi bölgenin endüstri standartlarına hakim olun. Eğer az para kazanıyorsanız, menajerinizle konuşma vaktiniz gelmiş demektir. Hak ettiğininizin arkasından gidin.
İnsanlar farklı şekillerde öğrenir. Bazıları video derslerle öğrenirken bazıları kitap okuyarak öğrenir. Öğrenme tarzınızı keşfedin ve bunu özenle uygulayın.
Bir pull request açmadan önce kendi kodunuzu inceleyin. Eğer bu iş arkadaşınızın işi olsaydı ne yorum yapardınız? Kod incelemesi(code review) talep etmeden önce problemleri ve hataları teşhis etmeye çalışmak önemlidir.
Başarısızlık basitçe beklenilen sonucu alamamaktır ve her zaman kötü değildir. Kariyerimiz boyunca hepimizin birçok hatası vardır. Başarısızlıklarınızdan ders çıkarın: Bir dahaki sefere neyi farklı yapabilirsin?
İlgi duyduğunuz alanda birkaç insan bulun. Bu, projelerinizde çalışmanıza devam etmeniz ve yeni şeyler denemeniz için size ilham verecektir.
Yeni bir özellik(feature) istendiğinde veya ortaya çıkan bir hataya(bug) karşı çözüm üretmeye başlamadan önce yaklaşımınızı planlayın. Bu özelliği geliştirmek veya bu hatayı çözmek için neye ihtiyacınız var? Yaklaşımınızı planlamak için harcayacağınız birkaç dakika bile sizi saatler sürecek bir hayal kırıklığından kurtarabilir.
Sözde kodlama yapabilme mükemmel bir beceridir. Çünkü; kompleks problemler üzerine saatlerce kod yazmadan düşünebilmenizi sağlar. Yaklaşımınızı yukarıdan aşağıya doğru bir kağıda yazarak farklı test senaryolarını deneyin ve problemin nerede olduğunu görün.
Bazı temel sıralama, arama algoritmalarını ve veri yapılarını öğrenin. Bunlar dilden bağımsız olmakla birlikte tüm dillerdeki ortak problemleri gidermenize yardımcı olacaktır.
Soru sorarken mümkün olduğunca anlaşır olmaya çalışın.
İşlerinizi önceliklendirmeyi öğrenmeniz üretkenliğinizi arttırmanıza yardımcı olacaktır. Günlük görevlerin yanı sıra uzun vadeli görevlerin de bir yapılacaklar listesini tutun ve bunları en önemliden başlayacak şekilde önceliklendirin.
Kendinizi tek kıyaslamanız gereken kişi dünkü kendinizdir.
Bir çözümü StackOverflow’dan kopyala yapıştır yapıyorsanız, o kodun tam olarak ne yaptığını da anlamalısınız. Kopyaladğınız kodun tam olarak ihtiyacınızı görmeye yönelik olduğuna emin olun.
Güzel bir şeyler öğrendiğinizde, onu paylaşın! Bir toplantıda veya konferansta sunum yapın. Öğle yemeğinde iş arkadaşınıza veya mentinize öğretin. Bilginizi paylaşmak, sahip olduğunuz bilginizin de kalıcı hale gelmesine yardımcı olur.
Kaynak: 101 Tips For Being A Great Programmer (& Human)