7 puan yazan GN⁺ 2023-12-21 | 1 yorum | WhatsApp'ta paylaş

Yeni Başlayan Yazılım Geliştiricileri İçin Tavsiyeler

  • İnsanların beni dinlemesinin nedeni programlama becerim değil, yazma becerim. Başkalarının tavsiyeleri için de aynı şey geçerli; onları, iyi yazdıkları için dinliyoruz.
  • Yazılım üzerine bilimsel araştırma çok azdır ve sonuçların çoğu belirsizdir. "Nesnel gerçek" iddialarına biraz şüpheyle yaklaşmalı ve bunların kendi durumunuza nasıl uygulanacağını dikkatle düşünmelisiniz.
  • Yanlış bir şey öğrenmekten ya da kandırılmaktan fazla endişe etmeyin; hoşunuza giden bir fikir varsa denemenizi öneririm. İş arkadaşlarınıza zarar vermediğiniz sürece, sonunda işler yoluna girecektir.

Hata Ayıklama: 9 Kural

  • "Hata Ayıklama: 9 Kural" adlı kitabı okumanızı öneririm. Kütüphaneden ödünç alabilir ya da şirketinizden satın almasını isteyebilirsiniz. Yeni başlayan programcılar için olan diğer kitapların neredeyse hiç ele almadığı önemli bir beceriyi kolayca öğretir.

Doğru Yöntemin Keşfi

  • Bir gün programlamanın doğru yolunu keşfedecek ve herkes bu yöntemi kullansa alanın çok daha iyi bir yer olacağına emin olacaksınız.
  • Sizi doğru yönteme kapılmaktan alıkoymaya çalışmıyorum; ama o akıma kapıldığınızın farkında olmanızı ve kimliğinizi doğru yöntemin insanı olmak üzerine kurmamanızı tavsiye ediyorum.
  • Sonunda, programlamanın hangi doğru yöntemi kullanırsanız kullanın sinir bozucu ve dağınık bir iş olduğunu, ayrıca doğru yöntem olmadan da harika yazılımlar yapılabileceğini öğreneceksiniz.

En İyi Uygulamaların Arkasındaki Hikâye

  • En iyi uygulamaların arkasında her zaman bir korku hikâyesi vardır. Bir en iyi uygulamayı anlamıyorsanız, ona ilham veren korku hikâyesini bulmak yardımcı olabilir.
  • Birçok en iyi uygulama ve teamül, tarihsel ve kültürel etkenlerin karışımından doğmuştur. Çoğu zaman mentorların artık geçerliliğini yitirmiş sorunları çözmek için kullandığı yöntemleri izleriz.

Farklı Programlama Türlerini Denemek

  • Kariyerinizin başlarında, mümkünse farklı türde programlamayı denemenizi öneririm. Bu, iş değiştirmeniz gerektiği anlamına gelmez; çoğu şirkette zaten aynı anda birden fazla türde programlama yapılır.
  • Farklı programlama türlerini denemek yalnızca öğrenmenizi sağlamaz, gerçekten sevdiğiniz yazılım işi türünü bulma olasılığınızı da artırır.

Yazılım Alanındaki Değişim

  • Yazılım alanı sürekli değişiyor; framework koşu bandına kapılmak yerine temel becerileri öğrenmeye odaklanmanızı öneririm.
  • Yazılım dünyasında bilginin hızla yayılmasının yapısal nedenleri vardır. İnternet, açık kaynak ve konferanslar sayesinde fikir paylaşmanın önündeki engeller düşüktür.
  • Birçok teknolojinin kullanıcı sayısı azdır, ancak bunlar hakkında duyma biçimimiz nedeniyle sanki yaygın olarak benimseneceklermiş gibi görünebilirler. Muhafazakâr bir yaklaşımın anlamlı olmasının nedeni de budur.

GN⁺ Görüşü

  • Bu yazıdaki en önemli nokta, geliştirici olarak kendi deneyimleriniz üzerinden öğrenip büyüme sürecidir. Başkalarının tavsiyeleri yol gösterici olabilir, ancak sonunda bunları kendi durumunuza uyarlamanız önemlidir.
  • Programlamanın "doğru yöntemi"ni aramak kişisel bir yolculuktur; bu süreçte farklı yaklaşımları öğrenme ve birleştirme becerinizi geliştirebilirsiniz.
  • Teknolojik değişimi anlamak ve yeni trendlere karşı makul bir yaklaşım benimsemek, sürdürülebilir bir geliştirici kariyeri için gereklidir.

1 yorum

 
GN⁺ 2023-12-21
Hacker News yorumu
  • İlk yorum özeti:

    • Hobi projesinde iki geliştiriciyle birlikte çalışma deneyimini paylaşıyor.
    • Proje küçük ölçekli olmasına rağmen aşırı mühendislik gereksinimlerinden duyduğu memnuniyetsizliği dile getiriyor.
    • "Doğru yöntem"e saplanıp kalan geliştiricilere eleştirel bir bakış sunuyor.
    • Kendisinin de geçmişte benzer deneyimler yaşadığını, ancak gerçekten önemli olanın çalışan kod olduğunu fark ettiğini belirtiyor.
  • İkinci yorum özeti:

    • 15 yıllık deneyime sahip bir yazılım uzmanı kendi deneyimini paylaşıyor.
    • Erken dönemde aldığı Budist eğitimin yazılım geliştirmede de faydalı olduğunu düşündüğünü söylüyor.
    • Geliştirici olarak edindiği dersleri anlatırken yalnızca tek bir doğru yönteme takılı kalmamanın önemini vurguluyor.
  • Üçüncü yorum özeti:

    • TDD (Test-Driven Development) gibi teknikleri öğrenmenin, her zaman doğrudan kullanılmasa bile faydalı olduğunu savunuyor.
    • Farklı teknikler ve diller öğrenmenin daha iyi kod yazmayı öğretmeye yardımcı olabileceğini vurguluyor.
  • Dördüncü yorum özeti:

    • "Doğru yöntem" takıntısının geliştiricinin gelişimini engelleyebileceğine dikkat çekiyor.
    • Bunun nedeninin, geliştiricilerin bilgilerini genişletmek için gereken dikkatten yoksun olması ya da bulundukları yerde fazla rahat hissetmeleri olabileceğini öne sürüyor.
  • Beşinci yorum özeti:

    • Kod, hatırlanması gereken bilgiler ve proje ayrıntıları dahil her tür durumu (state) en aza indirmeyi öneriyor.
    • Durumu en aza indirmenin problem çözmeye yardımcı olduğunu savunuyor.
  • Altıncı yorum özeti:

    • İyi yazma becerisinin, uzmanlıktan daha fazla biçimde okuyucular üzerinde etkili olabileceğini belirtiyor.
    • Farklı iş türlerini denemenin ve şirket içindeki diğer rolleri öğrenmenin önemli olduğunu tavsiye ediyor.
  • Yedinci yorum özeti:

    • YouTube gibi video paylaşım servislerinden öğrenilenlere karşı kuşkucu bir tutum takınmak gerektiğini vurguluyor.
    • Yazılım geliştirmenin sorun çözmek için var olduğunu hatırlatıyor ve başkalarıyla konuşmanın, yazılımın çözmesi gereken sorunu daha iyi anlamaya yardımcı olacağını söylüyor.
  • Sekizinci yorum özeti:

    • Debugging hakkında bir kitap öneriyor ve bu kitabın çeşitli teknik sorunları çözmede yardımcı olduğunu belirtiyor.
    • Kitabın kolay ve ilgi çekici okunduğunu, ayrıca faydalı teknikler sunduğunu değerlendiriyor.
  • Dokuzuncu yorum özeti:

    • Kod yazmanın başlı başına amaç değil, sorun çözmenin bir aracı olduğunu vurguluyor.
    • Kodun çözmesi gereken probleme odaklanılması gerektiğini, aksi halde kod yazmayı bırakıp problemi netleştirmek gerektiğini tavsiye ediyor.
  • Onuncu yorum özeti:

    • İyi yazma becerisinin başkalarıyla iletişim kurmaya yardımcı olduğunu ve yazılım geliştiriciler için önemli olduğunu belirtiyor.
    • Acemi geliştiricilere kendi deneyim ve düşüncelerini yazıya dökmelerini öneriyor; bunun ileride faydalı bir beceri olacağını söylüyor.