3 puan yazan GN⁺ 2024-01-16 | 1 yorum | WhatsApp'ta paylaş

Programlamayı tek başına 10 yılda öğrenmek

  • Programlama öğrenme konusunda bu kadar acele neden olduğuna dair bir soru.
  • Kitapçılar, "24 Saatte Java Öğrenin" gibi kitaplarla dolu; ayrıca C, SQL, Ruby, algoritmalar ve daha fazlasının birkaç gün ya da birkaç saat içinde öğrenilebileceğini iddia eden pek çok kitap var.
  • Amazon'da 2000 yılından sonra "teach yourself, hours" sözcüklerini içeren kitaplar arandığında 512 kitap bulunuyor. İlk 10 kitabın 9'u programlama kitabı.
  • "teach yourself" yerine "learn", "hours" yerine "days" konularak arandığında da benzer sonuçlar çıkıyor.
  • Sonuç olarak insanlar ya programlama öğrenmek için acele ediyor ya da programlamanın diğer her şeyden daha kolay öğrenildiği düşünülüyor.

"24 Saatte Kendi Kendine C++ Öğrenin" ne anlama gelir

  • 24 saat, bir dizi önemli program yazmak ve başarı ile başarısızlıklardan ders çıkarmak için yeterli zaman değildir.
  • Deneyimli programcılarla birlikte çalışıp C++ ortamında yaşamayı anlamak için de yeterli zaman değildir.
  • Bir kitap, derin bir anlayıştan çok ancak yüzeysel bir aşinalık sağlayabilir.
  • C++ sözdiziminin bir bölümünü öğrenebilirsiniz, ama dili nasıl kullanacağınızı öğrenemezsiniz.
  • Alan Perlis'in dediği gibi, bir dil programlama hakkındaki düşünme biçiminizi etkilemiyorsa, öğrenmeye değmez.

Programlamayı tek başına 10 yılda öğrenmek

  • Araştırmalar; satranç, müzik besteleme, telgraf işletimi, resim yapma, piyano çalma, yüzme, tenis, nöropsikoloji ve topoloji araştırmaları gibi çok çeşitli alanlarda uzmanlaşmanın yaklaşık 10 yıl sürdüğünü gösteriyor.
  • Buradaki kilit nokta kasıtlı pratiktir: sadece tekrar yapmak değil, mevcut yeteneğinizin ötesindeki görevleri denemek, uğraşmak ve hem uygulama sırasında hem sonrasında performansınızı analiz ederek hataları düzeltmektir.
  • Gerçek bir uzman olmak ömür boyu bile sürebilir.

Programcı olmak istiyorsanız

  • Programlamaya ilgi duymalı ve programlamayı eğlenerek yapmalısınız.
  • Başka programcılarla konuşmak ve başkalarının programlarını okumak, herhangi bir kitaptan ya da eğitim kursundan daha önemlidir.
  • Üniversitede 4 yıl geçirebilir veya lisansüstünde daha fazla zaman harcayabilirsiniz; ama okul size keyif vermiyorsa, benzer deneyimi kendi çabanızla ya da işte de edinebilirsiniz.
  • Başka programcılarla birlikte projeler yürütmeli ve çeşitli programlama dillerini öğrenmelisiniz.
  • "Bilgisayar bilimi" içinde "bilgisayar" da vardır; bu yüzden bilgisayarın komutları yürütmesinin ne kadar sürdüğünü bilmelisiniz.
  • Dil standardizasyonu çalışmalarına katılmak da iyi olabilir, ama mümkün olan en kısa sürede bırakmak daha iyidir.
  • Sadece kitaplardan öğrenmek yeterli değildir.

Ek: Dil seçimi

  • Önce hangi programlama dilinin öğrenilmesi gerektiğine dair tavsiyeler.
  • Arkadaşlarınızın kullandığı dili kullanmak, işleri basit tutmak ve etkileşimli bir şekilde öğrenmek iyi bir yaklaşımdır.
  • İlk programlama dili olarak Python veya Scheme önerilir.

Ek: Kitaplar ve diğer kaynaklar

  • "Sadece kitaplardan öğrenmek yeterli değildir" vurgusu yapılırken, buna rağmen bazı kitaplar ve web sayfaları önerilir.
  • Scheme ve Python ile programlama öğrenmeye yönelik kitap ve kaynaklar tavsiye edilir.

GN⁺ görüşü

  • Bu yazı, programlama öğrenimine gerçekçi bir yaklaşımı vurguluyor ve kısa sürede uzman olunabileceğine dair sahte vaatlere karşı uyarıyor.
  • Uzmanlık geliştirmek için 10 yıl veya 10.000 saatlik kasıtlı pratiğin gerektiğini gösteren araştırma sonuçlarını sunarak, öğrenmeye uzun vadeli bir bakış kazandırıyor.
  • Programlamayı derinlemesine anlamak ve beceriyi geliştirmek için çeşitli projelere katılmak, birden çok programlama dili öğrenmek ve bilgisayar biliminin temel ilkelerini kavramak gerektiğini vurguluyor. Bu da programlama öğrenmeyi düşünen başlangıç seviyesindeki yazılım mühendisleri için yararlı tavsiyeler sunuyor.

1 yorum

 
GN⁺ 2024-01-16
Hacker News görüşleri
  • Bir kullanıcı, 1999'da "Sams Teach Yourself C++ in 24 Hours" adlı kitabı satın aldığını ve kasadaki görevlinin kitabı görüp gülümseyerek bir makaleden bahsettiğini söyledi. Başka bir seferinde, 16 yaşındayken Borders'ta programlama kitaplarına bakarken birinin ona "The C Programming Language" kitabını verdiğini, bunun da hayatını değiştiren bir dönüm noktası olduğunu anlattı. Bu kullanıcının kariyeri, dünyada programlamaya ilgi duyan geliştiriciler ve insanlarla karşılaşmaları sayesinde büyük ölçüde şekillenmiş.

      • Programlamaya ilgi duyan insanlarla tanışmak, kariyerin şekillenmesinde büyük etki yaratıyor.
  • Başka bir kullanıcı, gençliğinde ilk kez okuduğu bu denemenin kendisi için özel bir anlam taşıdığını söyledi; yeniden okuduğunda Malcolm Gladwell referansını ve Ratatouille'den bahsedildiğini görünce, yazının 1998'de yayımlandıktan sonra güncellendiğini fark ettiğini belirtti. Orijinal sürümün arşivde hâlâ mevcut olduğunu ve çok daha kısa olduğunu ekledi.

      • Denemenin zaman içinde güncellenmiş olmasına dair bir yorum.
  • Bir başka kullanıcı, genelde kitaplardan öğrenmeyi tercih ettiğini, ancak bu yaklaşımın matematik veya fizik gibi yavaş değişen CS dışı alanlarda daha faydalı olduğunu söyledi. Yakın zamanda okuduğu kuantum programlama üzerine O'Reilly kitabını, kuantum devrelerini ayrıntılı anlatmadığı ve gerçekte ne yaptığını anlamasına yardımcı olmadığı için eleştirdi. Kitapların yalnızca birer öğrenme aracı olduğunu, hobi projelerinin de deneyim yoluyla daha etkili olabileceğini düşündüğünü söyledi. Kitapların doğru yönü göstermede yararlı olduğunu, ama elbette kişinin ihtiyacına uygun kitabı bulması gerektiğini ekledi. Bazı insanların ancak kitabın tamamını okuyabilecekleri zaman kitabı açma yaklaşımına sahip olduğunu, bunun da saçma olduğunu düşündüğünü belirtti. O'Reilly'nin Generative Deep Learning kitabını sipariş ettiğini, ondan bir şeyler kazanmayı umduğunu ve kariyer boyunca yalnızca birkaç bilgiyi bile akılda tutmanın kazanç olduğunu düşündüğünü söyledi.

      • Kitapların bir öğrenme aracı olarak rolü ve hobi projelerinin önemi hakkındaki görüş.
  • Bir kullanıcı, sayfadaki eski Amazon.com bağlantısının hâlâ ilgili sonuçlar döndürmesinden çok etkilendiğini söyledi. Bunu, "Cool URIs don't change" ilkesine iyi bir örnek olarak nitelendirdi.

      • Eski bağlantının hâlâ geçerli olmasının yarattığı etki.
  • Başka bir kullanıcı, son 16 yıldaki başlık listesini paylaştı ve bir yıl geçtikten sonra yeniden paylaşımın sorun olmadığını, bağlantıların da meraklı okurları tatmin etmek için verildiğini söyledi.

      • Geçmiş başlıklara dair liste paylaşımı.
  • Bir diğer kullanıcı, kasıtlı pratiğin önemini vurgulayarak, yalnızca tekrar etmenin yetmediğini; mevcut beceri seviyesinin ötesine geçen görevlere girişmek, denemek, uygulama sırasında ve sonrasında performansı analiz etmek ve hataları düzelttikten sonra tekrar etmek gerektiğini söyledi.

      • Kasıtlı pratiğin önemine vurgu.
  • Bir kullanıcı, 5-6 yıl önce izlediği bir videoda programcı sayısının arttığından ve çoğunun 5 yıldan az deneyime sahip olduğundan bahsedildiğini hatırlattı. IT/web hayatımız üzerinde daha büyük etkiye sahip oldukça bunun mantıklı olduğunu söyledi. 20 yıllık deneyime sahip bu kullanıcı, 5 yıldan az deneyimi olan kişilerin asla bilmek zorunda olmayacağı birçok şey bildiğini, ama deneyimin hâlâ faydalı olduğunu ve daha az deneyimli programcıların da onun hayal bile edemeyeceği pek çok şeyi yapabildiğini belirtti.

      • Programlama deneyiminin değeri ve yeni programcıların yetkinlikleri hakkındaki görüş.
  • Başka bir kullanıcı, 1998 tarihli görünen yazının Clojure ve Go gibi referanslar içermesi nedeniyle muhtemelen güncellenmiş olduğunu tahmin etti.

      • Yazının güncellenmiş olabileceğine dair tahmin.
  • Bir kullanıcı, programlamayı öğrenmenin sonunda bir sanat düzeyine ulaştığını ve giderek daha sanatsal hâle geldiğini düşündüğünü, temel konular için ise 2-3 yıllık adanmışlığın yeterli olduğunu söyledi.

      • Programlama öğrenimine dair kişisel görüş.
  • Son olarak bir kullanıcı, programlamayı kendi kendine öğretmenin önemli olduğunu, çünkü bu mesleğin sürekli öğrenme gerektiren türden bir iş olduğunu söyledi. 5 yıl önce öğrenilenlerin bugün de geçerli olabileceğini, ancak mevcut duruma uyum sağlamak için yeni şeyler öğrenmek gerekebileceğini ekledi.

      • Programcılık mesleğinde sürekli öğrenme ihtiyacına dair görüş.