Programlamaya ilgi duyun ve eğlenceli olduğu için biraz yapın. On yıl / 10.000 saatinizi koymaya istekli olmanız için yeterince eğlenceli olduğundan emin olun.
Programı . En iyi öğrenme, yaparak öğrenmektir. Daha teknik olarak ifade etmek gerekirse, "belirli bir alandaki bireyler için maksimum performans düzeyine, genişletilmiş deneyimin bir fonksiyonu olarak otomatik olarak ulaşılmaz, ancak iyileştirme konusundaki bilinçli çabaların bir sonucu olarak, son derece deneyimli kişiler tarafından bile performans düzeyi artırılabilir. ." (s. 366) ve "en etkili öğrenme, belirli bireysel, bilgilendirici geri bildirim ve hataların tekrarlanması ve düzeltilmesi için uygun zorluk seviyesine sahip iyi tanımlanmış bir görev gerektirir." (s. 20-21) Pratikte Biliş: Günlük Yaşamda Zihin, Matematik ve Kültür kitabı bu bakış açısı için ilginç bir referanstır.
Diğer programcılarla konuşun; diğer programları okuyun . Bu, herhangi bir kitap veya eğitim kursundan daha önemlidir.
İsterseniz, bir üniversiteye (veya bir lisansüstü okuluna) dört yıl daha koyun. Bu, kimlik bilgileri gerektiren bazı işlere erişmenizi sağlar ve size alan hakkında daha derin bir anlayış sağlar, ancak okuldan hoşlanmıyorsanız, (bazı özveriyle) kendi başınıza veya işinizde benzer deneyim yaşayabilirsiniz . Her durumda, kitap öğrenme tek başına yeterli olmayacaktır. "Bilgisayar bilimi eğitimi kimseyi uzman bir programcı yapamaz, fırça ve pigment çalışmaktan daha fazla birini uzman ressam yapabilir" diyor The New Hacker's Dictionary'in yazarı Eric Raymond. İşe aldığım en iyi programcılardan birinin sadece lise derecesi vardı; Çok sayıda harika yazılım üretti, kendi haber grubuna sahip ve kendi gece kulübünü satın almak için stok seçeneklerinde yeterince şey yaptı.
Diğer programcılar ile projeler üzerinde çalışın . Bazı projelerde en iyi programcı olun; bazılarının en kötüsü ol. En iyi olduğunuzda, bir projeye liderlik etme ve başkalarına vizyonunuzla ilham verme yeteneklerinizi test edersiniz. En kötü olduğunuzda, ustaların ne yaptığını ve ne yapmak istemediklerini öğrenirsiniz (çünkü sizi onlar için yapmanıza neden olurlar).
Diğer programcılardan sonra projeler üzerinde çalışın . Başkasının yazdığı bir programı anlayın. Orijinal programcılar ortalıkta olmadığında bunu anlamak ve düzeltmek için gerekenleri görün. Sizden sonra bunları sürdürecekleri kolaylaştırmak için programlarınızı nasıl tasarlayacağınızı düşünün.
En az yarım düzine programlama dili öğrenin. Sınıf soyutlamalarını (Java veya C ++ gibi) destekleyen bir dil, işlevsel soyutlamayı destekleyen bir dil (Lisp veya ML gibi), sözdizimsel soyutlamayı (Lisp gibi) destekleyen bir dil (Prolog veya C ++ şablonları gibi) içerir. koroutinleri (Icon veya Scheme gibi) ve paralelliği destekleyen (Sisal gibi) destekler.
"Bilgisayar bilimi" nde bir "bilgisayar" olduğunu unutmayın. Bilgisayarınızın bir komutu yürütmesinin, bir kelimeyi bellekten almasını (önbellek kaçırma ile veya önbellek olmadan), ardışık kelimeleri diskten okuma ve diskte yeni bir konum arama işleminin ne kadar sürdüğünü bilin. (Yanıtlar burada.)
Bir dil standardizasyon çabasına katılın. ANSI C ++ komitesi olabilir veya yerel kodlama stilinizin 2 veya 4 boşluk girintisi seviyesine sahip olup olmayacağına karar verebilir. Her iki durumda da, bir dilde diğer insanların neyi sevdiğini, ne kadar derin hissettiklerini ve belki de neden böyle hissettiklerini biraz öğrenirsiniz.
Dil standartlaştırma çabasını olabildiğince çabuk çıkarmak iyi bir fikirdir.