Saya mengamati ada banyak persamaan antara programmer dengan tentara. Tentara adalah sebuah profesi yang bertujuan untuk mengalahkan musuh se-efisien mungkin dan bertahan hidup dalam kondisi medan tempur sesulit apapun. Mereka dilatih sedemikian rupa agar mampu menggunakan semua peralatan tempur yang diberikan kepada mereka dan menggunakannya secara tepat, efisien, efektif.
Dalam pengamatan saya, setidaknya ada 2 jenis tentara. Pertama, tentara yang dilatih untuk menguasai satu bidang tertentu dan menguasainya hingga maksimal, sebut saja snipper. Model tentara ini dirancang untuk mengamati dan menembak musuh dari jarak yang sangat jauh. Sebut saja yang lain, pasukan katak. Mereka didisain untuk menguasai semua medan air dalam berbagai formasi, laut, danau, rawa, sungai dan sebagainya. Sedangkan jenis tentara yang kedua adalah tentara khusus (special force) yang didisain dan dilatih untuk menguasai medan darat, laut dan udara. Indonesia menyebutnya Kopassus, Amerika menyebutnya Navy Seal, dan semua negara umumnya memiliki satuan tentara khusus yang dilatih jauh lebih keras, tentara-tentara pilihan dan wajib memahami semua jenis senjata dan cara penggunaannya di tempat yang tepat pada waktu dan kondisi yang tepat.
Dalam dunia IT, berdasarkan pengamatan, saya memahami bahwa programmer profesionalpun ternyata terbagi atas dua kategori ini. Programmer dengan satu keahlian yang mempelajari satu tools habis-habisan, fokus dan terarah dan satunya lagi Programmer yang melatih dirinya untuk menguasai semua tools dan menggunakannya sesuai kebutuhan di lapangan. Pengkategorian ini mungkin saja bisa lebih dari dua model, tapi setidaknya ini yang terbesit dalam pikiran saya saat ini.
Mari kita telisik lebih dalam. Sniper adalah tentara yang dikenal umum hanya menguasai penggunaan senjata jarak jauh. Tapi kenyataannya dalam pelatihan, mereka ternyata tetap harus menjalani pelatihan dasar tentara, menggunakan senjata laras pendek, kemampuan bertahap hidup, dan latihan-latihan lain yang tidak berhubungan secara langsung dengan keahlian mereka di penembakan jarak jauh. Analoginya untuk programmer yang mengkhususkan dirinya menguasai satu tools programming, mereka tetap wajib memahami dasar-dasar programming, tools lain diluar tools yang dikuasainya. Semuanya bertujuan agar programmer bersangkutan tidak terjebak dalam situasi darurat proyek dan dia tidak mampu mengatasinya.
Kategori programmer yang kedua, adalah golongan programmer yang melatih dirinya untuk menguasai semua jenis tools dan melatih dirinya untuk menggunakan semua tools tersebut secara efisien. Seperti kita ketahui, semua senjata yang dimiliki oleh tentara hanya memiliki satu fungsi. Mengalahkan musuh seefisien mungkin. Namun, dalam kenyataan di medan perang, terkadang tentara diperhadapkan dengan musuh yang harus dikalahkan dengan senjata tertentu, tapi karena ketiadaan amunisi atau sebab lain, maka secara kreatif mereka harus memanfaatkan apa senjata yang ada. Demikian halnya seorang programmer, terkadang dalam sebuah proyek-proyek tertentu, tools yang digunakan sebetulnya tidak terlalu tepat untuk menyelesaikan sebuah masalah tertentu, tapi karena ketidakadaan kode tersebut, maka seorang programmer akan dituntut agar kreatif menggunakan apa yang ada untuk menyelesaikan masalah tersebut.
Tidak mudah masuk dalam jajaran programmer dengan kategori ini. Mereka wajib berlatih jauh lebih keras daripada programmer spesialis. Mereka adalah programmer terpilih, terlatih dan memiliki wawasan yang luas. Mereka adalah programmer yang memiliki jam terbang sangat tinggi. Sudah terbiasa menghadapi situasi proyek aplikasi yang beraneka-ragam. Programmer yang memiliki mindset global dan terintegrasi. Programmer yang menguasai bukan hanya hal tehnis tapi juga hal-hal non-tehnis.
Jadi, akhir kesimpulan saya, KREATIFITAS dan STRATEGI adalah kunci utama seorang programmer agar dapat mengatasi semua masalah yang timbul di lapangan dengan menggunakan apa yang ada. Sudah barang tentu, situasi yang dihadapi tentara di medan perang berbeda dengan kondisi yang dihadapi programmer di tengah pekerjaan proyek atau kantoran. Penghalang terbesar programmer untuk maju adalah kemalasan untuk belajar, berbagi dan bertanya. Tidak sedikit programmer yang hanya berlatih mati-matian memahami cara menggunakan suatu ‘senjata’, tapi lupa belajar memahami secara strategic, kapan ‘senjata’ itu efektif untuk digunakan.
Efisiensi adalah barang yang amat mahal buat seorang programmer. Seorang programmer dituntut secara profesional untuk mengatur secara strategik, penggunaan dan efisiensi waktu dan proses pengerjaan, algoritma yang kuat, terstruktur dan mudah dirawat, serta berapa kompensasi yang pas untuk effort/usaha yang akan dikeluarkan dalam sebuah pengerjaan proyek. Fakta berbicara di lapangan, banyak programmer yang memang salah menentukan strategi aplikasi.
Jadi, bagaimana caranya agar bisa menjadi programmer profesional? Jadilah Programmer yang bekerja atas dasar strategi. Mengerti menggunakan tools yang tepat dalam kondisi tertentu, terus berlatih sekeras latihan tentara khusus. Belajar bukan hanya cara menggunakan senjata, tapi mengerti sasaran tembak aplikasinya. Tidak ada yang mudah, tapi bukan berarti tidak mungkin. Tidak ada murah bukan berarti tidak mampu. Tidak ada yang ringan, tapi bukan berarti tidak mampu ditanggung.
——————-
**Tulisan ini masih jauh dari sempurna, karena saya hanya mendraft-nya dalam waktu satu jam, pagi ini.. Thx***
progremer tuh seniman coding…
Sangat Bermanfaat Mas Peter Jack Kambey..
Saya akan mencobanya..
🙂
“Belajar bukan hanya cara menggunakan senjata, tapi mengerti sasaran tembak aplikasinya”
iniii ayee demenn niii..
dan
“Fakta berbicara di lapangan, banyak programmer yang memang salah menentukan strategi aplikasi.”
Strategi aplikasi seperti apa yg Om Peter maksud? ^_^ bagi2 donk pengalaman agar kita bisa dengan tepat menentukan strategi aplikasi.
thank you for comment pak Oka, master blogger juga neh.. hahaha
hmm.. thx untuk kejeliannya.. tadinya, setelah kalimat itu ada Paragraf khusus yang menjelaskan salahnya seperti apa. tapi saya delete.. karena saya khawatir nggak related sama judul lagi.. eh. ternyata ada yang jeli.. saya bikin tulisan lain aja kali yah.. om Oka untuk menjelaskan satu kalimat itu..