Konsensus umum adalah "menulis lebih banyak kode", yang saya setujui, tetapi saya akan menambahkan saran itu bahwa Anda harus menulis banyak jenis kode yang berbeda. Java baik-baik saja sejauh bahasa berjalan, tetapi Anda harus menulis kode baik naik turun spektrum daya. Selain Java, saya sarankan melakukan beberapa proyek kecil dalam bahasa tingkat rendah (C adalah yang bagus untuk ini), bahasa scripting (saya lebih suka perl, tetapi python juga merupakan pilihan yang baik), bahasa fungsional ( lisp adalah rekomendasi umum di sini, tetapi OCaml dan Haskell juga merupakan pilihan yang baik), dan setidaknya merasa nyaman dengan membaca bahasa majelis.
Juga, pilih beberapa variasi dalam jenis program yang Anda implementasikan. Lihatlah penerapan setidaknya GUI Desktop, aplikasi web yang kaya, klien jaringan dan server, driver, utilitas munging data, pelacak sinar, dan simulasi fisika.
Semua proyek harus memiliki cakupan yang relatif kecil, tujuannya bukan untuk memiliki program yang lengkap, tetapi untuk mendapatkan pengalaman luas dalam berbagai domain yang mungkin Anda temui, untuk mempelajari berbagai jenis pemikiran yang diperlukan untuk masing-masing, dan untuk mencari tahu di mana minat Anda.
Setelah Anda selesai melakukannya, Anda akan memiliki ide bagus tentang jenis pemrograman apa yang paling menarik bagi Anda, dan Anda dapat menemukan atau memulai proyek sumber terbuka untuk mendapatkan pengalaman bekerja pada basis kode besar, berurusan dengan istilah proyek, dan bekerja dengan pengembang lain.