Bunu yapardım:
Yol A: Yarı Tipik Yöntem
Java, C # veya Python gibi daha düzenli bir sözdizimine sahip bir dil öğrenin. Perl son derece yararlı bir araçtır, ancak aynı zamanda bir şeyler yapmanıza nasıl izin verdiği konusunda çok çok serbest bir formdur. Listelediğim diğer diller çok, çok daha az.
Söz konusu dilde Veri Yapıları hakkında bir kitap edinin.
Söz konusu dilde Algoritmalar hakkında bir kitap edinin.
Kodu Tamamlayın ve Etkili Alın Java / C # / Python'un sürümü ne olursa olsun.
Yol B: Joel Spolsky'nin Aydınlanma Yolu (veya Ölüm, seçiminizi yapın)
Kitabı "Kod" alın
K & R'nin "C Programlama Dili" ni edinin
Bilgisayar Programlamanın Yapısını ve Yorumunu Edinin
Yönteme göre, yöntem 1 size programlamayı daha düzenli bir şekilde öğretecektir. Bilgisayar Bilimi kavramları bir dereceye kadar (henüz karmaşıklık teorisi yok, bana güven) ve diğer insanlarla projelerde çalışmak ve daha büyük uygulamalar yapmak için daha iyi bir dil sağlar.
Yöntem 2 daha sert, daha çok temelleri açıklayan "Kod" ile temelleri, makine seviyesindeki şeyleri tanıtan K&R'yi ve daha üst düzey kavramları tanıtan SICP'yi anlatıyor. Çok daha zor ama odaklanmış bir yol.
Her iki durumda da, kendinize zaman tanıyın. Roma bir günde inşa edilmedi ve bir dahi olsanız bile programlama becerileri de yok. Peter Norvig'in 10 yıldaki Programlaması, insanları işaret ettiğim olağan makale.
Zeyilname:
Mevcut ücretsiz şeyler kadar: Aşağıda listelenen Hard Way Python oradan iyi bir başlangıçtır, Bir Bilgisayar Bilimcisi gibi düşünmek için makul bir devamıdır.
Orada Algoritmalar üzerinde bir dizi kaynak var ve dürüst olmak gerekirse muhtemelen 3. ve 4. adımları sorunsuz bir şekilde değiştirebilirsiniz. Unutmayın, burada matematik gerçekten ortaya çıkmaya başlar, bu yüzden bu aşamaya geldiğinizde yardım istemekten asla korkmayın. Bu makul bir ücretsiz rehber gibi görünüyor .
Gerçekten Pythonista gibi Kod oldukça sağlam görünüyor olsa da, tam başına Code Complete ile uyumlu bir eşdeğer yoktur . En önemli şey, temel bilgileri aldıktan sonra kodunuzu okunabilir hale getirmeye odaklanmaktır. Tüm kod sözdiziminizin doğru olması gibi "gerekli" değildir, ancak küçük programların ötesine geçtiğinizde veya uzun bir süre boyunca bir şey üzerinde çalıştığınızda canlılığı çok daha kolay hale getirir.
Çoğunlukla Python'a odaklandığımı görebilirsiniz, çünkü iyi yazılmış ücretsiz şeyler bulmak üçün en kolayıdır. Bence Java'nın Oracle eğitimleri iyi ama biraz kuru ve yeni başlayanlar için harika değil. C # benzer bir durumda olsa da hiçbiri belge eksikliğinden muzdarip değildir.
Ayrıca, ilk CS şaka / kelime oyunu: Backtrack değil, eğitiminizi "Refactor" yapmak istiyorsunuz.