Dapatkan tertarik pada pemrograman, dan lakukan beberapa karena itu menyenangkan. Pastikan itu terus menjadi cukup menyenangkan sehingga Anda akan bersedia untuk memasukkan sepuluh tahun / 10.000 jam Anda.
Program . Jenis pembelajaran terbaik adalah belajar sambil melakukan. Singkatnya, "tingkat kinerja maksimal untuk individu dalam domain yang diberikan tidak dicapai secara otomatis sebagai fungsi dari pengalaman yang diperluas, tetapi tingkat kinerja dapat ditingkatkan bahkan oleh individu yang sangat berpengalaman sebagai hasil dari upaya yang disengaja untuk meningkatkan . " (hal. 366) dan "pembelajaran yang paling efektif membutuhkan tugas yang didefinisikan dengan baik dengan tingkat kesulitan yang sesuai untuk individu tertentu, umpan balik informatif, dan peluang untuk pengulangan dan koreksi kesalahan." (hal. 20-21) Buku Kognisi dalam Praktek: Pikiran, Matematika, dan Budaya dalam Kehidupan Sehari-hari adalah referensi yang menarik untuk sudut pandang ini.
Bicara dengan programmer lain; baca program lain . Ini lebih penting daripada buku atau kursus pelatihan apa pun.
Jika Anda mau, masukkan empat tahun di perguruan tinggi (atau lebih di sekolah pascasarjana). Ini akan memberi Anda akses ke beberapa pekerjaan yang membutuhkan kredensial, dan itu akan memberi Anda pemahaman yang lebih dalam tentang bidang ini, tetapi jika Anda tidak menikmati sekolah, Anda bisa (dengan dedikasi) mendapatkan pengalaman serupa di pekerjaan Anda sendiri atau di tempat kerja . Bagaimanapun, belajar buku saja tidak akan cukup. "Pendidikan ilmu komputer tidak dapat membuat siapa pun menjadi programmer ahli seperti mempelajari kuas dan pigmen dapat membuat seseorang menjadi pelukis ahli," kata Eric Raymond, penulis The New Hacker's Dictionary. Salah satu programmer terbaik yang pernah saya pekerjakan hanya memiliki gelar SMA; dia menghasilkan banyak perangkat lunak yang hebat, memiliki grup berita sendiri, dan membuat cukup banyak opsi saham untuk membeli klub malamnya sendiri.
Kerjakan proyek dengan programmer lain . Menjadi programmer terbaik di beberapa proyek; menjadi yang terburuk pada beberapa orang lain. Ketika Anda yang terbaik, Anda bisa menguji kemampuan Anda untuk memimpin proyek, dan untuk menginspirasi orang lain dengan visi Anda. Ketika Anda yang terburuk, Anda belajar apa yang dilakukan oleh para tuan, dan Anda belajar apa yang tidak mereka sukai (karena mereka membuat Anda melakukannya untuk mereka).
Bekerja pada proyek setelah programmer lain . Memahami program yang ditulis oleh orang lain. Lihat apa yang diperlukan untuk memahami dan memperbaikinya ketika programmer asli tidak ada. Pikirkan tentang bagaimana merancang program Anda untuk membuatnya lebih mudah bagi mereka yang akan memeliharanya setelah Anda.
Pelajari setidaknya setengah lusin bahasa pemrograman. Sertakan satu bahasa yang mendukung abstraksi kelas (seperti Java atau C ++), bahasa yang mendukung abstraksi fungsional (seperti Lisp atau ML), bahasa yang mendukung abstraksi sintaksis (seperti Lisp), bahasa yang mendukung spesifikasi deklaratif (seperti templat Prolog atau C ++), satu yang mendukung coroutine (seperti Icon atau Skema), dan yang mendukung paralelisme (seperti Sisal).
Ingatlah bahwa ada "komputer" dalam "ilmu komputer". Ketahui berapa lama waktu yang dibutuhkan komputer Anda untuk menjalankan instruksi, mengambil kata dari memori (dengan dan tanpa kehilangan cache), membaca kata-kata berturut-turut dari disk, dan mencari lokasi baru pada disk. (Jawaban di sini.)
Terlibat dalam upaya standardisasi bahasa. Ini bisa berupa komite ANSI C ++, atau bisa memutuskan apakah gaya pengkodean lokal Anda akan memiliki 2 atau 4 tingkat indentasi ruang. Apa pun itu, Anda belajar tentang apa yang disukai orang lain dalam suatu bahasa, seberapa dalam mereka merasakannya, dan mungkin bahkan sedikit tentang mengapa mereka merasakannya.
Memiliki akal yang baik untuk keluar dari upaya standardisasi bahasa secepat mungkin.