Apa itu programmer?
Programmer adalah orang yang membuat perintah dan aturan di suatu perangkat. Sederhananya programmer seperti orang yang memegang pensil untuk menggambar.
Programmer bisa disebut profesi atau pekerjaan yang bertujuan untuk membuat sebuah sistem menggunakan Bahasa programan. Orang yang juga memiliki skill menulis kode program (syntax) dan merancang sistem, bisa juga disebut sebagai programmer. Kode atau bahasa program yang dimaksud seperti Java, Python, Javascript, PHP, dll.
Apasih Tugas Programer ?

Tugas dari programmer yang sudah dirangkum meliputi :
- Menganalisis kebutuhan.
- Merancang dan memodelkan sistem seperti UML, flowchart, ERD dll.
- Menulis kode program (HTML, CSS, Javascript dll).
- Men-debugging program.
- Menguji atau testing program.
Pekerjaan Programer

Meskipun programmer identik dengan program perkomputeran, namun pada kenyataannya profesi ini banyak jenisnya lho. Jika kamu ingin menjadi programmer, fokuslah pada jalur programmer yang kamu minati. Agar kamu tahu arah pekerjaannya, serta hasil yang didapat.
Berikut ini merupakan berbagai jalur programmer yang bisa Anda pilih:
- Programer Web
Programmer web sangat diminati oleh perusahaan atau startup. Sebab, hampir semua perusahaan mempunyai web. Tidak sembarang orang dapat mengelola sebuah web karena dibutuhkan tenaga ahli seperti programmer agar menjamin mutu kualitas web tersebut.
Tugas utama web programmer adalah berfokus mengembangkan situs internet dan website, seperti pembuatan website toko online, sosmed, layanan service, dsb. Seorang web programmer juga dapat mengoperasikan database pada sebuah website.
- Programer Aplikasi
Programmer aplikasi adalah programmer pembuat aplikasi pada komputer maupun smartphone. seperti aplikasi yang terinstal di desktop mu, seperti antivirus, browser, tools-tools, dll. Ada juga di smartphone milikmu, seperti aplikasi (Android/ iOS), game, sosmed yang biasa kamu unduh di Playstore maupun Appstore.
- Programer Embedded System
Pekerjaan programmer embedded system adalah menulis source code sistem untuk mengontrol peralatan rumah/elektronik. Seperti ponsel, kamera digital, remote control, mesin cuci, dll.
Hal yang Wajib Dikuasai oleh Seorang Programmer ?

Nah, ini lah beberapa hal atau keterampilan seorang programmer diantaranya sebagai berikut ini:
Kenapa algoritma begitu penting sih? Sebab, dengan algoritma kamu dapat memecahkan suatu masalah. Kamu mesti tau fungsi, perulangan, bahkan tipe data seperti array dan lainnya. Oleh karena itu, algoritma adalah kunci utama seorang programmer.
- Mempunyai Keterampilan Membaca Kode
Kamu harus pandai membaca dan memahami proyek-proyek open source yang ada di Sourceforge atau GitHub. Padahal ini penting lho. Coba pahami cara kerjanya serta temukan polanya. Di situlah terdapat sesuatu ide yang bisa kamu terapkan dalam proyek.
- Menguasai Satu Atau Lebih Bahasa Pemrograman
Programmer wajib menguasai beberapa bahasa pemrograman. Ada 2 pilihan bagi programmer, yaitu menguasai satu bahasa atau lebih. Jika kamu menguasai satu bahasa pemrograman jadilah spesialisnya. Namun zaman now dapat dikatakan bahwa teknologi semakin berkembang, akan lebih baik kamu menguasai multi-bahasa. Tentunya kamu harus jadi spesialis di antara satunya ya
Memang mempelajari banyak bahasa itu sulit tapi akan membuatmu dapat bekerja pada banyak Bahasa dan juga membuat kamu paham perbedaan dari setiap bahasa pemrograman.
- Menguasai OOP (Object Oriented Programming)
Dengan menguasai OOP, akan membuat kode program menjadi lebih terstruktur dan mudah dibaca. Bayangkan jika menulisnya dengan satu script besar atau prosedural. Wah, pasti akan repot ya.
Jika kamu ingin menguasai web framework, maka kamu dapat menulis suatu library sendiri. Dan itu perlu menguasai dulu OOP dan Design Pattern.
Walaupun OOP itu penting, pada kenyataanya tidak harus diterapkan di semua bahasa pemrograman. Terkadang ada beberapa bahasa pemrograman fungsional tidak memerlukan konsep OOP.
- Desain Layout Aplikasi dan Database
Sebenarnya pekerjaan ini bisa dikerjakan oleh desainer atau front end. Sebagai programmer yang handal, kamu harus menguasai keduanya. Yaitu antara desain dan logika. Tidak hanya tentang coding saja ya. Ada kalanya kamu terjun ke dunia desain karena layout aplikasi mampu menentukan mungkin tidaknya sistem dapat berjalan.
Kamu dapat menggunakan UML, DFD, flowchart, Lo-fi, dan UI UX untuk mempresentasikan ide-idemu sebelum diolah menjadi kode program.
Selain itu, kamu wajib menguasai database. Sebab, data-data di dalam aplikasi haruslah disimpan ke dalam database. Kamu harus mempelajari relasi setiap tabel database. Mau tidak mau harus mengerti tentang ERD (Entity Relationship Diagram).
- Menguasai Source Management
Git, Mercurial, dan Svn merupakan contoh tools yang dapat memudahkanmu dalam mengelola source code. Masih suka menyimpan perubahan kode menggunakan flashdisk? Mulai saat ini gunakanlah source code management.
Itu akan mempermudahmu ketika bekerja dengan tim. Tak perlu repot, jika dibandingkan dengan flashdisk. Flashdisk rentan hilang, virus, terformat, dan harus colok ke laptop sana sini lah hehe. Dengan adanya source management, kamu dapat melihat kesalahan kode, perubahan yang telah dibuat, melakukan rollback, dan bila perlu juga dapat menambahkan komentar. Selagi ada koneksi internet data tetap aman dan mudah diakses oleh anggota tim kapan dan di mana saja.
Beberapa source code management yang sering digunakan, terkenal, dan gratis ialah BitBucket, GitHub, dan GitLab.
bahasa inggris adalah bahasa internasional. Bahasa merupakan soft skill yang akan kamu pakai di kemudian hari. Bahasa itu bagaikan jembatan komunikasi dengan klien. Mulailah belajar berbahasa Inggris, minimal kamu paham tingkat pasif dari bahasa itu sendiri. Sebab, hampir semua bahasa program dirancang menggunakan bahasa Inggris. Seperti perulangan menggunakan if, else, then, dll.
Baik, teman-teman. Itulah beberapa hal yang wajib dikuasai oleh seorang programmer. Tentunya masih banyak yang harus dipelajari dan dikuasai seperti package manager, unit testing, code review, dll.
Jika kamu mantap ingin menjadi seorang programmer, alangkah baiknya kamu konsisten dalam mewujudkan mimpi kmu sebagai seorang programmer.