Saya akan melakukan ini:
Jalur A: Metode Semi-Khas
Pelajari bahasa dengan sintaks yang lebih teratur seperti Java, C #, atau Python. Perl adalah alat yang sangat berguna tetapi juga sangat unik dalam hal bagaimana Anda dapat melakukan sesuatu. Bahasa-bahasa lain yang saya daftarkan jauh lebih sedikit.
Dapatkan buku tentang Struktur Data dalam bahasa tersebut.
Dapatkan buku tentang Algoritma dalam bahasa tersebut.
Dapatkan Kode Lengkap dan Efektif Java / C # / Apa pun versi Python.
Path B: Path of Enlightenment Joel Spolsky (atau Mati, pilihlah)
Dapatkan buku "Kode"
Dapatkan K&R "Bahasa Pemrograman C"
Dapatkan Struktur dan Interpretasi Pemrograman Komputer
Sejauh metode ini berjalan, metode 1 akan mengajarkan Anda pemrograman dengan cara yang lebih teratur. Konsep Ilmu Komputer sampai batas tertentu (belum ada teori kompleksitas, percayalah pada saya) dan berikan Anda bahasa yang lebih baik untuk bekerja dalam proyek dengan orang lain dan untuk membuat aplikasi yang lebih besar.
Metode 2 lebih hardcore, lebih dari pendekatan fundamental dengan "Kode" yang menjelaskan dasar-dasarnya, K&R memperkenalkan hal-hal tingkat mesin dan SICP memperkenalkan konsep tingkat yang lebih tinggi. Ini jalan yang jauh lebih sulit tetapi lebih fokus.
Dalam kedua kasus itu, beri waktu pada diri Anda sendiri. Roma tidak dibangun dalam sehari dan juga keterampilan pemrograman, bahkan jika Anda jenius. Pemrograman Peter Norvig dalam 10 tahun adalah esai yang biasa saya tunjuk orang.
Tambahan:
Sejauh barang gratis yang tersedia: Python Hard Way seperti yang tercantum di bawah ini adalah awal yang baik, dari sana, Cara berpikir seperti Ilmuwan Komputer adalah kelanjutan yang masuk akal.
Ada sejumlah sumber daya di Algoritma di luar sana dan jujur Anda mungkin bisa mengganti langkah 3 dan 4 tanpa masalah. Ingatlah, di sinilah matematika benar-benar mulai muncul sehingga jangan pernah takut untuk meminta bantuan ketika Anda sampai ke tahap ini. Ini tampaknya menjadi panduan gratis yang masuk akal .
Sebenarnya tidak ada padanan kohesif yang setara dengan Code Complete per say meskipun Code seperti Pythonista tampaknya cukup solid. Yang penting adalah berkonsentrasi pada membuat kode Anda dapat dibaca setelah fundamental Anda turun. Itu tidak "perlu" dengan cara yang sama bahwa memiliki semua sintaksis kode Anda benar tetapi membuat hidup jauh lebih mudah setelah Anda melampaui program kecil atau mengerjakan sesuatu dalam jangka waktu yang lama.
Anda mungkin menemukan bahwa saya kebanyakan berfokus pada Python, itu karena ini adalah yang termudah dari ketiganya untuk menemukan barang gratis yang ditulis dengan baik. Saya pikir tutorial Java oleh Oracle baik-baik saja tetapi mereka sedikit kering dan tidak bagus untuk pemula. C # berada dalam situasi yang sama meskipun keduanya tidak kekurangan dokumentasi.
Juga, lelucon / permainan CS pertama Anda: Anda ingin "Refactor" pendidikan Anda, bukan Backtrack.