Pertama, meskipun cara pertanyaan Anda dirumuskan, tidak ada akhir untuk belajar, terutama di bidang kami, di mana hal-hal baru muncul lebih cepat daripada yang dapat Anda baca tentang mereka. Yang sedang berkata, ketika Anda ingin meningkatkan, ada kategori berikut yang akan saya pertimbangkan. Untuk keuntungan / ROI yang paling besar Anda harus memilih sesuatu dari area terlemah Anda tentu saja.
Pengetahuan dasar
Meskipun mengetahui bahasa pemrograman dan memiliki pengalaman praktis, orang sering memiliki (terutama belajar sendiri) di mana masalah dasar dasar dibiarkan tidak lengkap. Pikirkan tentang hal-hal seperti struktur data, algoritma, strategi cache, fungsi hash, ...
Perhatikan bahwa ini juga termasuk dasar-dasar bahasa pemrograman - mulai dari kompiler, teknik optimisasi dan sistem tipe, hingga teori kategori, monad, dan sejenisnya.
Jika Anda diajar dengan baik, seperti yang telah menempuh gelar tingkat universitas selama beberapa tahun, maka Anda cenderung sudah kuat dalam kategori ini (jauh dari selesai tentu saja, tetapi dasar yang kuat). Jika tidak, cobalah membaca beberapa buku di area ini untuk mencari tahu apakah ada sesuatu yang Anda bahkan tidak tahu hilang dalam repertoar Anda. Kategori ini adalah yang termudah untuk menaksir terlalu tinggi.
Pengetahuan Paradigmatic
Saya selalu terkejut ketika programmer muncul yang berpikir mereka tahu segalanya, tetapi sama sekali tidak tahu tentang selain paradigma utama. Jika Anda berpikir orientasi objek adalah akhirnya, ini adalah kategori Anda untuk perbaikan. Jika Anda berpikir pemrograman fungsional juga ada dan bahkan mungkin pernah mendengar pemrograman logika, maka itu masih pilihan yang baik. Ada lebih banyak paradigma di luar sana dan mempelajarinya memiliki efek mendalam yang memberi Anda sesuatu yang mirip dengan pandangan baru tentang dunia pemrograman.
Hanya saja jangan lupa: sering ada (agak filosofis dalam sifatnya) argumen tentang apa yang dapat dianggap sebagai paradigma atau tidak. Jangan dilacak oleh ini. Tujuan Anda harus memperluas wawasan Anda dan itu berarti mempelajari hal-hal ini, apakah orang lain menganggap X paradigma sendiri, atau tidak, tidak ada bedanya dengan itu.
Pengetahuan Spesialis
Yang termudah dari semuanya - dan paling tidak berguna pada saat bersamaan. Tentu saja, Anda dapat berkomitmen pada satu teknologi dan mengenal semua seluk beluknya, tetapi Anda harus siap membayar harganya. Teknologi semakin menua dan mereka melakukannya dalam kecepatan yang terus meningkat, yang membuatnya hampir menjadi jaminan bahwa waktu yang diinvestasikan di sini akan tidak berharga selama beberapa tahun ke depan.
Juga masalah pengembalian yang berkurang bersinar di sini. Pada dasarnya menjadi spesialis pada sesuatu berarti Anda harus menghabiskan berjam-jam untuk subjek yang sempit itu, dan karenanya, menurut definisi, Anda akan membutuhkan waktu lama untuk mempelajari sesuatu yang baru dan hal baru itu akan menjadi potongan puzzle kecil kecil yang tidak akan mengubah pandangan siapa pun tentang apa pun.
Pengetahuan Domain
Baik itu karena domain pekerjaan Anda, atau hanya berdasarkan minat pribadi Anda, tetapi menjadi ahli dalam ilmu komputer dan domain tertentu sangat berharga dan bermanfaat. Saya tidak berbicara tentang sisi-sisi CS di sini, seperti grafik komputer atau AI. Alih-alih perhatikan bahwa komputer telah menguasai kehidupan semua orang dan itu membuat setiap bidang lainnya tunduk pada komputer dan area yang bisa Anda masuki.
Yang ini jelas jatuh ke dalam kategori "di luar bidang Anda", namun itu bukan matematika "luar" yang tajam, melainkan bidang aplikasi. Pertimbangkan obat-obatan: Saya tidak menganjurkan Anda untuk menjadi dokter. Namun, mempelajari dasar-dasar kedokteran untuk menerapkan pengetahuan Anda yang ada tentang ilmu komputer pada masalah-masalah bidang itu memang bermanfaat. Ini berkisar dari teknik visualisasi, robotika, hingga sistem pakar dan manajemen data belaka untuk akuntansi / administrasi. Meskipun Anda telah melakukan semua itu sebelumnya, melakukannya di domain lain dapat berakhir menjadi pengalaman yang sama sekali baru.
Perlu diingat, bahwa ini adalah cara yang lebih radikal dalam mengubah arah Anda daripada kategori lainnya. Anda mungkin tidak memiliki kontak ke bidang itu dalam pekerjaan Anda sehari-hari, yang membuatnya sangat sulit untuk dilakukan. Bahkan bisa berarti berpindah pekerjaan. Plus, Anda akan memerlukan semacam sertifikasi tentang domain baru Anda - Anda adalah pemula yang lengkap untuk domain itu, dan Anda harus bersaing dengan lulusan dari studi interdisipliner, yang sudah memulai perjalanan mereka untuk menjadi ahli dalam niche tersebut.
Pengetahuan Tambahan
Seperti ditambahkan Mike Brown, ada juga bidang pengetahuan yang dalam beberapa hal menyertai pekerjaan Anda saat ini, tetapi tidak sepenuhnya diperlukan. Anda tidak perlu menjadi manajer proyek untuk belajar tentang manajemen proyek, tetapi seperti biasa, pengetahuan tambahan akan memberi Anda wawasan yang lebih besar tentang bagaimana pihak lain berdetak. Seseorang bahkan bisa menggeneralisasi hal ini sampai berfokus pada soft skill. Saya kira semua orang yang bekerja pada proyek nyata dengan orang lain tahu nilai ini.