Saya akan mulai dengan kutipan:
"Jika satu-satunya alat yang Anda miliki adalah palu, Anda memperlakukan semuanya seperti paku". (Abraham Maslow)
Prinsip yang paling penting, IMO, adalah mengetahui banyak paradigma pemrograman, bahasa, dan mengetahui dengan baik tentang alat yang Anda gunakan. Masalah apa pun dapat diselesaikan dalam hampir semua bahasa yang Anda pilih, baik itu bahasa utama yang sangat populer dengan pustaka defaultnya yang besar atau bahasa khusus kecil seperti AutoHotKey. Tugas pertama programmer adalah menentukan apa yang akan digunakan sesuai dengan spesifikasi masalah. Beberapa konsep memberikan pendekatan topik yang lebih baik, apa pun tujuan utama Anda - kecanggihan, kebingungan, kinerja, portabilitas, pemeliharaan, ukuran kode kecil ...
Jika tidak, Anda akan menyelesaikan seperti beberapa programmer yang mati-matian mencoba melakukan sesuatu dalam 1 bahasa yang mereka kuasai, sementara masalahnya bisa jadi sepele untuk dipecahkan dalam konteks pemrograman yang berbeda.
Saran ini sejalan dengan kecenderungan saat ini untuk proyek multi-bahasa (ambil aplikasi web misalnya, yang mungkin melibatkan beberapa bahasa dalam aplikasi tunggal, seperti C #, JS, CSS, XPath, SQL, XML, HMTL, RegExp .... dan bahkan paradigma pemrograman yang berbeda (misalnya, C # baru-baru ini memperkenalkan beberapa konsep dari paradigma pemrograman fungsional, lambda).
Jadi, yang paling dasar adalah belajar terus menerus, selamanya :)