PROGRAMMER
Programmer itu banyak dicari loh, karena sekarang kita masuk di era dimana perkembangan pesat terjadi di industri teknologi, keliatan dengan banyaknya perusahaan start up di bidang it. Tokped dan gojek yang paling terkenal apalagi mereka sudah merencanakan untuk IPO.
Hal itu agak berbanding terbalik dengan minat publik untuk jadi seorang programmer.
Kata Bu Erma Susanti, seorang dosen ti di institut sains dan teknologi AKPRIND, Yogyakarta, mahasiswa itu kebanyakan ga termotivasi untuk jadi programmer.
Dan dikutip dari kompas.com, menurut survei dicoding tentang demografi developer indonesia, hanya 56 persen lulusan TI yang berkarir sebagai developer/programmer di perusahaan. Sisanya kebanyakan bekerja sebagai developer lepas atau freelance.
Nah, buat kamu yang ingin jadi seorang programmer, ini kesempatan bagus untuk mulai menetapkan minat, dan mulai belajar serius.
Jadi kenapa sih orang-orang pada ga berminat padahal bidang it ini punya lapangan kerja yang bagus. Apa tantangan-tantangan untuk jadi programmer.
Untuk menjawabnya mari kita kenali lebih dekat tentang siapa itu programmer.
Programmer itu gampangannya seseorang yang menulis kode untuk bikin apps.
Biasanya programmer itu seorang spesialis di satu bahasa pemrograman tertentu, karena bahasa pemrograman itu banyak sekali. Mulai dari Java, Android, C, C++, C#, Swift, Phyton, dll.
Secara umum, programmer bertugas untuk terlibat dalam proses perancangan, penulisan, pengujian, perbaikan, dan pemeliharaan kode.
Ayo kita jabarkan secara singkat tugas dan tanggungjawab seorang programmer;
1. Menciptakan program
Pastinya, bikin program adalah tugas utama seorang programmer.
Dari tulisan kode mereka, terciptalah sebuah program yang bisa kita manfaatkan untuk mempermudah urusan hidup kita, seperti transaksi perbankan, bayar cicilan, ngegaji karyawan, pesen makanan, pesen ojek, pesen taxi, dll.
2. Integrasi end to end
Integrasi disini maksudnya menghubungkan anatara frontend dengan backend. Frontend itu yang berinteraksi langsung dengan pengguna, disini programmer harus berkolaborasi dengan orang yang bertugas sebagai designer ui/ux, sedangkan backend itu biasanya berhubungan dengan data atau pemrosesan tertentu.
Biasanya beberapa perusahaan membedakan posisi seorang programmer frontend dan programmer backend.
3. Memberikan laporan
Nah, ini kaitannya dengan tim work, dalam sdlc itu ada yg bertugas untuk memonitor jalannya pengembangan suatu produk, kalau sekarang biasanya pakai scrum, dimana akan ada standing meeting setiap pagi, dan evaluasi di sore harinya.
Disitulah programmer harus melaporkan pekerjaannya.
Di luar itu semua, ada beberapa skill yang harus dikuasi oleh programmer, diantaranya;
1. Kemampuan untuk menggunakan linux.
Linux adalah system operasi atau disingkat os. Banyak perusahaan it memilih untuk mendeploy aplikasinya di dalam system operasi linux, karena linux dinilai lebih aman, dan selain itu di linux ada opsi penggunaan os yang open source, yang tidak terikat dengan kewajiban pembelian atau perpanjangan lisensi.
Memang ada beberapa perusahaan yang membundling os open source ke dalam produk mereka, seperti redhat. Jadi dengan membeli os di redhat, kita bisa mendapatkan jaminan keamanan, perbaikan, pembaharuan dan service-service lainnya sesuai dengan paket lisensi yang kita beli.
2. Kemampuan menggunakan database query
Setelah penguasaan akan os, biasanya programmer juga wajib memahami printah-perintah atau sintax atau query database. Karena database merupakan tempat dimana data disimpan. Makanya programmer harus juga memiliki kemampuan untuk mengambil, menunjukkan atau mengolah data sesuai spesifikasi yang sudah ditentukan.
3. Kerjasama tim
Pastinya aplikasi besar akan dikerjakan oleh banyak orang dengan perencanaan dan eksekusi sematang mungkin. Karena itu, selain kemampuan teknis dalam pemrograman, programmer juga harus bisa bekerjasama dengan orang lain. Supaya rencana-rancana yang sudah dibuat bisa terlaksana dengan lancar.
4. Penyelesaian masalah
Ya, semua manusia pasti punya salah, termasuk programmer. Ada kalanya kode-kode yang ditulis ga berjalan sebagaimana mestinya. Disinilah programmer harus memiliki kemampuan untuk melakukan pencarian sampai perbaikan atas permasalahan tersebut. Pada lingkungan produksi, tugas perbaikan bisa terbagi menjadi dua, perbaikan agar fungsi bisa berjalan kembali, dan juga supaya permasalaha tidak terjadi lagi di masa yang akan datang.
Itu dia perkenalan tentang profesi programmer, biar ga nanggung, kita lanjutin ke jenis-jenis programmer.
1. Programmer web
Sesuai dengan namanya, mereka adalah programmer yang membuat web / aplikasi web dengan menggunakan bahasa pemrograman seperti ruby on rails, php, .Net, java dengan menggunakan editor program seperti sublim, editor php, java script, dan sebagainya.
2. Programmer aplikasi desktop
- programmer berorientasi sistem operasi
- programmer platform-independent
3. Programmer aplikasi terdistribusi (distributed applications)
Adalah programmer yang membuat aplikasi atau perangkat lunak yang berjalan pada beberapa komputer dalam jaringan pada saat yang sama dan dapat disimpan pada server atau dengan komputasi awan.
4. Programmer library/platform/framework/core
Programmer library/platform/framework/core adalah seorang programmer yang membuat aplikasi pemrograman untuk digunakan oleh programmer lain.
5. Programmer system
Programmer system adalah seorang programmer sistem yang membuat sistem operasi dan firmware, alat-alat seperti compiler, assemblers, assemblers, I/o routines, interpreters, scheduler, loaders and linkers.
6. Programmer kernel
Programmer kernel adalah programmer yang membuat aplikasi atau program untuk mengatur permintaan input/output dari perangkat lunak, dan menerjemahkannya ke dalam instruksi-instruksi pada cpu, ataupun komponen elektronik lainnya dalam sebuah komputer.
7. Programmer driver
Seorang programmer yang membuat antarmuka perangkat lunak untuk perangkat keras, yang memungkinkan sistem operasi dan program komputer lain untuk mengakses fungsi-fungsi hardware tanpa perlu tahu rincian tepat dari perangkat keras yang digunakan.
8. Programmer compiler
Seseorang yang membuat program khusus untuk memproses intruksi tertentu dan mengubahnya menjadi bahasa mesin. Biasanya, menggunakan bahasa pascal atau c.