Jika Anda ingin menjadi bukti di masa depan, saran terbaik yang bisa saya berikan kepada Anda adalah jangan menyertakan diri Anda pada teknologi.
Jadi jangan belajar API secara membabi buta. Pelajari bagaimana mereka dikandung. Apa filosofi di balik layar? Apa kelebihan dan kekurangan mereka? Pikirkan perangkat lunak secara umum, bukan teknologi spesifik.
Anda juga dapat bekerja pada konsepsi program yang baik, pergi ke OOP dan AOP adalah pilihan IMO yang baik. Tapi jangan hanya memahami mekanismenya, benar-benar bekerja pada filosofi di balik mekanismenya.
Jangan abaikan ilmu komputer umum, seperti struktur data dan algoritma, karena mereka adalah pengetahuan lintas teknologi yang selalu berguna.
Ikutilah praktik yang baik. Anda sering memiliki selusin cara untuk melakukan sesuatu, tetapi kebanyakan dari mereka adalah omong kosong: rawan bug, sulit untuk dipelihara, sulit untuk dipahami nanti atau oleh programmer lain, dll. . . Biasanya, kode lebih sulit dibaca daripada menulis. Jadi pelajari cara meluangkan sedikit lebih banyak usaha untuk menulis agar lebih mudah membaca (karena Anda akan membaca kode lebih dari yang Anda tulis).
Pelajari teknik yang efektif untuk debug (penggunaan log dan debugger yang cerdas) dan tes (cara menulis kode yang dapat diuji unit dengan mudah dan cara mengotomatiskan tes ini).
Maka, Anda akan membutuhkan latar belakang teknologi umum. Saya berbicara tentang pengetahuan yang sangat luas, seperti bagaimana cara kerja prosesor (cache miss atau prediksi cabang merupakan awal yang baik), tentang sistem UNIX, tentang protokol jaringan seperti IP, TCP dan Ethernet, dll. . .
Pada akhirnya, pelajari cara belajar. Jika Anda tahu cara belajar, maka Anda bisa beradaptasi.
Anda akan membutuhkan pengetahuan yang kuat dalam teknologi spesifik untuk dapat menemukan pekerjaan, tetapi itu sudah sangat cepat usang (pikirkan COBOL misalnya, atau pemrograman web pada saat perang IE / Netscape). Jadi jangan mengandalkan mereka sebagai bukti masa depan. Mereka akan menjadi kunci untuk dipekerjakan, tetapi jelas bukan apa yang membuat seorang programmer hebat dan apa yang akan membuat keterampilan Anda tahan lama.
EDIT: Jika Anda baru memulai, Anda harus menyelesaikan sesuatu secara pasti. Apa saja, sungguh. Gim seperti Tetris atau ular adalah awal yang bagus, dan menyenangkan. Jika Anda tidak menyelesaikan sesuatu, Anda akan menghabiskan banyak waktu untuk belajar dan benar-benar tidak mendapatkan pengalaman yang diperlukan untuk sepenuhnya memahami apa yang Anda pelajari.
Mari kita memberi contoh dengan pola desain. Pola desain sangat bagus dan Anda harus menggunakannya secara definitif. Tetapi jika terlalu sering digunakan akan membuat kode Anda rumit dan sulit dimengerti. Anda harus menghadapi masalah yang memecahkan pola desain dan kehilangan waktu untuk mencoba menyelesaikannya atau efek sampingnya untuk memahami sepenuhnya tentang pola desain. Pola desain harus digunakan sebagai refactoring kecil seiring waktu ketika kode tumbuh. Dan Anda akan tahu kapan pola desain diperlukan ketika manfaatnya lebih besar daripada kompleksitas kode yang disebabkan oleh penggunaannya. Ini membutuhkan pengalaman.
Jadi secara pasti, selesaikan semuanya, mereka belajar dari kesalahan Anda. Saya tidak bisa bersikeras: DAPATKAN HAL-HAL YANG DILAKUKAN !