Ini mungkin suatu kesempatan di mana ada perbedaan semantik yang bermakna antara 'programmer' dan 'insinyur perangkat lunak.' Dalam konteks ini, secara khusus, kami melihat bahwa Anda memiliki pengetahuan tentang beberapa bahasa pemrograman dan teknologi terkait dan bahwa Anda dapat menggunakannya untuk menghasilkan hasil yang diinginkan. Ini adalah definisi operasional yang bagus tentang 'programmer komputer.'
Saya menganggap diri saya sebagai insinyur perangkat lunak. Dalam sebagian besar aspek pekerjaan saya sehari-hari, saya mungkin melakukan hal yang sama seperti yang Anda lakukan. Saya menggunakan bahasa komputer dan teknologi terkait untuk menghasilkan beberapa hasil yang diinginkan. Namun, saya memiliki pemahaman tentang struktur data dan algoritma, dan saya menganggap pengetahuan itu sebagai dasar yang mendasari kemampuan saya untuk melakukan lebih banyak lagi.
Seringkali - meskipun tidak pernah hari - pekerjaan saya melibatkan menemukan solusi untuk masalah kompleks yang tidak ada solusi yang jelas, tidak ada yang secara langsung ditangani oleh fitur kerangka kerja yang saya gunakan atau kemampuan bahasa yang saya gunakan dengan. Dalam hal ini, saya perlu menganalisis masalah dan menyusun solusi dan kadang-kadang proses ini berjalan di bidang arsitektur skala besar.
Sementara pemahaman yang sangat baik tentang masalah yang lebih dalam ini diperlukan untuk melakukan pekerjaan semacam itu, itu tidak cukup . Dengan kata lain, hanya mengetahui cara kerja tabel hash atau mengapa heap sort biasanya memiliki karakteristik kinerja yang baik tidak cukup untuk menjadi arsitek sistem atau insinyur senior. Ini adalah tempat awal yang logis, dan dari sana Anda dapat mulai menggali lebih dalam dan melakukan perjalanan lebih luas serta mendapatkan pengalaman yang juga diperlukan untuk mengatasi masalah yang lebih besar.
Saya kira bahwa untuk menjawab pertanyaan Anda, Anda harus bertanya pada diri sendiri, "Apa yang saya inginkan? Di mana saya akan pergi dengan karier saya?" Jika Anda puas untuk terus melakukan apa yang Anda lakukan, maka Anda mungkin hanya ingin mempelajari cukup struktur data dan algoritma untuk melewati pertanyaan wawancara yang sebagian besar arbitrer yang Anda hadapi.
Jika Anda ingin tumbuh dalam karir Anda dan Anda memiliki hasrat untuk itu yang sangat penting, Anda harus merangkul mata pelajaran ini sekencang mungkin. Jika Anda punya waktu untuk mengatasinya, pikiran terbuka dan antusiasme sejati, Anda akan menemukan beberapa hal yang indah dan menarik. Saya tidak akan pernah melupakan hari pertama kali saya memahami quicksort. Perasaan gembira dan penemuan mengatur jalan bagi sebagian besar sisa hidup saya, dan saya tidak bisa lebih bersyukur untuk itu. Sekarang, saya tidak bisa membayangkan melakukan apa pun selain bekerja sebagai insinyur perangkat lunak.
Semoga beruntung dengan apa pun yang Anda pilih.