Tanıdığım En İyi Geliştiricilerin Ortak Özellikleri
(endler.dev)- Yazar, farklı geliştiricilerle karşılaşırken en iyi geliştiricilerin ortak özellikleri üzerine düşünmeye başlıyor
- Bu yazı, yeni başlayan geliştiricilere veya gelişmek isteyen kişilere ilham vermek için yazılmış bir gözlem kaydıdır
Önce referans dokümantasyonunu okuyun
- Önce Stack Overflow ya da LLM aramak yerine, resmi dokümantasyonu önce okuma alışkanlığı edinmek önemlidir
- Apache, Python, TOML gibi projelerin resmi dokümantasyonu aslında oldukça iyi yazılmıştır
- Kaynaktan doğrudan öğrenme alışkanlığı uzun vadede çok faydalıdır
Araçları derinlemesine anlayın
- Bir aracı "kullanmayı" bilmek ile onu "anlamak" aynı şey değildir; bunlar farklı düzeylerdir
- Bir aracı gerçekten iyi bilen kişi, her bir ayarı tek tek açıklayabilir
- İyi anlamak için aracın şu yönlerini de kavramak gerekir:
- geçmişi (neden yapıldı)
- bugünü (kim tarafından sürdürülüyor)
- sınırları (hangi durumlarda uygun değildir)
- ekosistemi (çevresindeki araçlar, kütüphaneler vb.)
- Kafka gibi araçları ana çalışma alanınızda kullanıyorsanız, Reddit'te görülenden daha derin bir bilgiye sahip olmanız gerekir
Hata mesajlarını dikkatle okuyun
- Hata mesajlarına dikkatle bakıldığında içlerinde ipuçları bulunur
- En iyi geliştiriciler, çok az bilgiyle bile problemi çıkarım yaparak anlayabilir
- Problemlerin %80'i sadece hata mesajlarına dikkatlice bakarak çözülebilir
Problemleri küçük parçalara ayırmayı bilin
- Tıkanmak herkesin yaşadığı bir şeydir; çözebilmek için problemi küçük parçalara ayırabilmek gerekir
- Deneyimi fazla olan ya da problem çözme becerisi güçlü kişiler bunu kolayca yapar
- Bir geliştiricinin temel işi, sonuçta büyük problemleri küçük problemlere bölme işidir
- Basit problemler adım adım çözüldüğünde, bütün problem de çözülür
Kodla korkmadan uğraşın
- En iyi geliştiriciler kod okumaktan korkmaz
- "Bu benim alanım değil" gibi sözler söylemeden doğrudan dener ve öğrenirler
- İlk kez karşılaştıkları bir kod tabanında bile kısa sürede ekip içi uzman haline geldikleri sık görülür
Her zaman başkalarına yardım edin
- Yoğunken bile yardım eden geliştiriciler, iyi ekip arkadaşları ve harika uzmanlardır
- Merak ve iş birliğine açık bir tutum, iyi bir geliştiricinin vazgeçilmez nitelikleridir
Yazı yazın
- Üstün geliştiriciler iyi konuşur ve düşüncelerini yazıyla da ifade edebilir
- Blog, sunum, açık kaynak faaliyetleri gibi yollarla düşüncelerini paylaşırlar
- Yazma becerisi, düşüncenin yapısıyla doğrudan bağlantılıdır
- İyi yazan insanların kodu da yapılı, açık ve bazen esprilidir
Öğrenmeyi bırakmayın
- Yaştan bağımsız olarak öğrenmeye devam eden kişiler gerçekten üstün geliştiricilerdir
- Yeni araçları veya dilleri denemekten çekinmezler
- En yeni teknolojileri körü körüne takip etmez, artılarını ve eksilerini kendileri analiz ederler
- Genç yaşta bile kalıplaşmış düşüncelere kapılınırsa gelişim durur
Statüye takılıp kalmayın
- İyi geliştiriciler, unvanlarından bağımsız olarak herkesten bir şeyler öğrenmeye çalışır
- Yeni başlayanlardan bile öğrenilecek şeyler olduğu yaklaşımına sahiptirler
- Yeni bakış açılarına sahip insanlarla yapılan sohbetlerden ilham alırlar
İtibar oluşturun
- Yetenek önemli olsa da, bu yeteneğin bilinir hale gelmesi de önemlidir
- İtibar, etki alanını genişletmenin bir aracıdır
- Şu yollarla itibar inşa edilebilir:
- önemli servisleri bizzat inşa etmek veya dağıtıma almak
- iyi bilinen araçlar geliştirmek
- tanınmış açık kaynak projelerine katkı vermek
- sıkça alıntılanan kitaplar yazmak
- İtibar bir gecede oluşmaz; sürekli emek ve zaman gerekir
Sabırlı olun
- Hem insanlara hem bilgisayarlara karşı sabır gerekir
- Etrafınızdaki insanlar aptal değildir; sadece yeterli bilgiye sahip olmayabilirler
- Sabır yoksa kolayca memnuniyetsizlik birikir ve birlikte çalışmak zorlaşır
- Zor problemleri çözmek için odaklanma ve sebat gerekir
Bilgisayarı suçlamayın
- En iyi geliştiriciler asla sistemi ya da dış etkenleri suçlamaz
- Yüzeyde rastgele görünen problemlerin bile mantıklı bir nedeni vardır
- Nedeni bulmak için sonuna kadar kazıyan bir tutum önemlidir
"Bilmiyorum" diyebilin
- Mülakatlarda özellikle birinin "Bilmiyorum" dediği anı beklediğim olmuştur
- Önemli olan cevap değil, tutumdur
- En iyi adaylar bilmediklerini kabul eder ve ardından akıl yürütmeye başlar
- Bilmediğini kabul etme tavrı, öğrenme potansiyelini gösterir
- Yalan söyleyen ya da biliyormuş gibi yapan kişiler ekip için olumsuzdur
Tahmin etmeyin
- PEP 20'nin felsefesinde olduğu gibi, belirsizlik varsa asla tahmin etmeyin
- Tahmin etmenin riskleri:
- yanlışsa bug üretir
- doğru olsa bile yanlış bir varsayıma güvenmeye yol açar ve sonradan sorun çıkarır
- Emin değilseniz:
- sorun
- dokümantasyon okuyun
- debug araçlarını kullanın
- kanıt bulun
Sade tutun
- Zeki insanlar zeki kod yazar, gerçekten büyük insanlar ise sade kod yazar
- Sade kod bakım açısından çok daha avantajlıdır
- Karmaşıklığın gerekli olduğu durumlarla olmadığı durumları ayırt edebilmek gerçek ustalıktır
Kapanış düşünceleri
- Bu yazı bir kontrol listesi değildir ve iyi mühendislik bir yarış değildir
- Ancak zor işleri atlayabileceğinize kendinizi inandırmayın
- Harika bir geliştirici olmanın kestirme yolu yoktur
19 yorum
Güzel yazı için çok teşekkürler.!!
Bunun bir kontrol listesi olmadığını söylemesi bana teselli veriyor; kestirme bir yol olmadığını söylemesi ise bana cesaret veriyor.
Şirketin projesini anlıyorsanız,
hangi alanda kıdemli geliştirici olursanız olun,
o alan ister firmware, ister uygulama, ister web olsun,
web, uygulama veya firmware debug loglarına bakarak
sorunun nasıl ortaya çıktığını debug edebilecek seviyeye geldiğiniz anlaşılıyor.
Mülakatta tahmin ettiğim davranışı hatırlıyorum
Kişisel olarak, “Ne yaptığımı her zaman düşünmek” ilkesini de önemli buluyorum.
"Critical Thinking" diye güzel bir terim varmış.
Gerçekten çok yardımcı oldu. Güzel yazı için teşekkür ederim
O zaman resmi belgeleri LLM’e okutmak yeterli olacak!
RTFM: Resmî belgeleri biraz okuyun.
Bunun bir kontrol listesi olmadığı söyleniyor ama sanırım bunu kendi kontrol listem yapmalıyım.
Resmi dokümantasyona mutlaka bakmak gerektiği konusunda size kesinlikle katılıyorum.
Kodlamayı ilk öğretirken, bir kişinin hata mesajlarını dikkatle okuyup okuyamadığında programcılığa yatkınlığının ilk kez ortaya çıktığını düşünüyorum.
.... Hataların ve bug'ların her zaman var olduğunu kabul eden temel farkındalıktan yoksun insanlar dolandırıcıdır.
Cümleler fazla zor..
Web'de ise.
Hepsi için geçerli olmasa da, çoğunda empati kurulacak maddeler var gibi görünüyor.
Hacker News görüşleri
Tahminde bulunmamak iş hayatında en önemli şeydir
Yeni bir şeyle uğraşırken, referans dokümanlarını derinlemesine okumadan önce biraz tahminde bulunmaktan hoşlanırım
Stack Overflow veya LLM'lere bel bağlamak yerine doğrudan kaynağa başvurmak daha iyidir
En iyi geliştiriciler her seviyeden insanla iletişim kurar ve onlardan öğrenir
Stack Overflow doğru kullanıldığında çok yardımcı olur
En iyi programcılar, bilgisayar bilimi geçmişi olmasa da üstün performans gösterebilir
Programlamanın yanında iş alanıyla iletişim de önemlidir
Hata mesajlarını okuyup anlamak, sorun çözmede büyük yardım sağlar
asdfkullanarak Python, Go, NodeJS sürümlerini yönetirken, hata mesajları üzerinden sorunu çözebilmiştimasdfnedir? Uyarıya bakmalısınız.Bence mesele, mutlak en iyi olmamaya yönelik bir tavrın daha iyi olması. Yazmakmış... yardım etmekmiş... öyle insanlara bakınca...