Cara Menjadi Seorang Programer

Menjadi seorang programmer (pemrogram) adalah proses pengembangan keahlian secara bertahap setiap harinya. Memprogram bisa menjadi seru dan juga menguntungkan (baik dari segi mental, spiritual, ataupun finansial). Panduan ini tidak menjanjikan cara kilat menjadi seorang pemrogram. Anda juga tidak mesti mengikuti setiap langkahnya secara berurutan, tetapi setidaknya Anda akan mendapat gambaran yang jelas mengenai cara menjadi pemrogram pada salah satu bidang pemrograman modern ini.

Langkah-langkah




1
Ikuti pelatihan dasar pada salah satu (atau semua) disiplin ilmu berikut ini:
  • Logika
  • Matematika diskrit
  • Bahasa pemrograman (disukai C++/Java/Python untuk pemula)

2
Pelajaran konsep basis data seperti tabel, view/query dan prosedur. Anda dapat menggunakan aplikasi basis data simpel, seperti:
  • MS Access
  • DB V
  • Fox Pro
  • Paradox
  • MySQL merupakan aplikasi basis data yang baik untuk dipelajari karena gratis dan juga umum diakses dengan query SQL.

3
Tentukan tipe pemrogram seperti apa yang Anda inginkan. Beberapa jenis pemrogram yang bisa Anda perdalam antara lain:
  • Pemrogram web
  • Pemrogram aplikasi desktop
    • Pemrogram Sistem Operasi (SO), yang mendalami satu SO atau beberapa OS sekaligus
    • Pemrogram platform
  • Pemrogram aplikasi terdistribusi
  • Pemrogram inti library/platform/framework
  • Pemrogram sistem
    • Pemrogram kernel
    • Pemrogram driver
    • Pemrogram compiler
  • Ilmuwan bahasa pemrograman

4
Pelajari teknologi dan bahasa pemrograman sesuai dengan bidang pemrograman yang Anda pilih. Bagian berikutnya kita akan membahas tentang jenis-jenis bahasa pemrograman.

Metode 1 dari 6: Pemrograman Web


1
Ketahui apa yang wajib dimiliki oleh seorang pemrogram web. Aplikasi web adalah komponen perangkat lunak yang dirancang untuk beroperasi pada jaringan internet. Artinya, aplikasi ini diakses melalui aplikasi peramban seperti Mozilla Firefox atau Internet Explorer. Untuk membuat program berbasis web, Anda tidak harus terhubung ke suatu jaringan internet. Aplikasi-aplikasi web dibangun di atas teknologi web standar, seperti:

2
Jelajahi berbagai halaman web untuk melihat seperti apa bahasa yang digunakan (Klik kanan pada halaman, pilih View Source atau tekan F12). Lihat perbedaan pada masing-masing jenis/konten halaman, bukan jumlah halamannya. Biasanya Anda perlu mengunjungi minimal salah satu dari beberapa situs web berikut:
  • Situs-situs perusahaan (perusahaan komersial, perusahaan/lembaga nonprofit, lembaga pemerintah)
  • Mesin pengindeks web (mesin pencari, situs pencari meta, mesin pencarian khusus, direktori)
  • Situs pengolah data
  • Situs pribadi
  • Halaman informasi/ensiklopedia (wiki, lembaran data, spesifikasi teknis, direktori daftar manual, blog dan jurnal, situs berita dan kantor berita, situs daftar alamat, dll.)
  • Situs sosial (portal sosial, situs bookmark (pemarkah), situs catatan)
  • Situs kolaborasi (termasuk kategori lain yang disebutkan di atas, seperti wiki dan blog)

3
Pelajari minimal satu teknik/metode brainstorming dan perangkat lunak yang digunakan untuk menerapkan cara ini. Contoh: diagram brainstroming dan MS Visio.


4
Perdalam pengetahuan Anda mengenai struktur situs web. Ini berarti membuat konsep diagram web, peta situs dan struktur navigasinya.


5
Ikuti pelatihan kilat desain grafis. Pelajari setidaknya satu jenis aplikasi untuk mengedit atau memanipulasi grafis (opsional namun sangat dianjurkan).


6
Pelajari dasar-dasar infrastruktur internet. Ini berarti memahami dasar-dasar tentang:
  • Protokol-protokol dasar layanan web (HTTP, FTP, SMTP, dan POP3 atau IMAP4)
  • Perangkat lunak server web (pelajari satu saja yang akan paling sering digunakan)
  • Perangkat lunak peramban web.
  • Perangkat lunak server dan klien surel



7
Pelajari bahasa pemrograman HTML dan CSS. Anda sebaiknya menggunakan perangkat lunak "What You See Is What You Get" untuk mengedit HTML.



8
Pelajari teknologi terkait XML dan XML, seperti XSL dan XPath (opsional namun sangat dianjurkan).


9
Buatlah situs web statis biasa sampai Anda memahami HTML.


10
Pelajari bahasa pemrograman berbasis klien. Kebanyakan pemrogram mempelajari JavaScript. Sebagian pemrogram mempelajari VBScript, namun sering kali tidak kompatibel dengan beberapa peramban yang sering digunakan.


11
Perdalam bahasa skrip berbasis klien. Kuasai bahasa ini. Lanjutkan ke tahap berikutnya hanya jika Anda telah menguasai bahasa ini.


12
Pelajari minimal satu bahasa pemrograman berbasis server. Jika Anda mempelajari hanya satu aplikasi server, pelajari salah satu bahasa pemrograman yang mendukung perangkat lunak tersebut. Jika tidak, pelajari minimal satu bahasa pemrograman dari setiap aplikasi server.


13
Buatlah proyek contoh setelah Anda selesai mempelajari bahasa pemrograman berbasis server.


14
Ciptakan situs web Anda sendiri dan lakukan banyak latihan di sana.


Metode 2 dari 6: Pemrogram Aplikasi Desktop


1
Pahami tujuan Anda mempelajari pemrograman aplikasi desktop. Kebanyakan pemrogram menulis kode untuk solusi bisnis, karena itu memahami struktur bisnis, organisasi dan finansial dari bisnis itu akan sangat menghemat waktu.


2
Pelajari mengenai arsitektur perangkat keras komputer. Mengikuti pelatihan dasar mengenai desain [[Wikipedia:Digital_electronics|sirkuit digital] dan juga arsitektur komputer akan sangat membantu. Namun, sebagian berpendapat bahwa langkah ini sedikit rumit, karena itu Anda cukup membaca dua atau tiga tutorial sepertiini dan ini. Anda dapat kembali ke langkah ini setelah mempelajari bahasa pemrograman pertama Anda.


3
Pelajari bahasa pemrograman untuk anak-anak. Jangan merasa malu karena harus belajar bahasa pemrograman khusus anak-anak. Sebagai contoh Anda dapat mempelajari Scratch. Bahasa pemrograman ini sangat mudah dan cocok jika Anda adalah pemula. Namun langkah ini bersifat opsional. Anda bisa langsung ke langkah berikutnya.


4


5
Ikuti pelatihan dasar salah satu dari bahasa pemrograman prosedural. Apa pun jenis bahasa pemrograman yang Anda pilih nanti, Anda tetap harus mempelajari prosedural lebih dalam. Pemrograman prosedural juga dikabarkan oleh kebanyakan pemrogram termudah digunakan sebagai titik awal untuk mengerti tentang pemrograman secara umum.


6
Pelajari minimal satu teknik pemodelan tingkat lanjut seperti UML atau ORM.


7
Mulailah menulis beberapa aplikasi konsol atau mirip-konsol kecil. Anda dapat menggunakan kode contoh yang ada di buku-buku bahasa pemrograman. Untuk hal ini, pilih alat untuk menulis program dalam bahasa pemrograman yang Anda tulis.


8
Pelajari lebih dalam mengenai bahasa pemrograman Anda. Pastikan Anda memahami konsep-konsep berikut dengan baik sehingga Anda dapat menerapkannya dengan mudah sebelum melanjutkan proses berikutnya:
  • Memasukkan dan mengeluarkan informasi pada pengguna ke dalam program.
  • Alur logika dan alur eksekusi program dalam bahasa prosedural.
  • Mendeklarasikan, menetapkan dan membandingkan variabel.
  • Percabangan dalam kode seperti if..then..else dan select/switch..case.
  • Pengulangan dalam kode seperti while..dodo..while/untilfor..next.
  • Sintaks bahasa pemrograman untuk membuat dan memanggil prosedur dan fungsi.
  • Tipe data dan manipulasi data.
  • Tipe data yang ditentukan pengguna (record/struct/unit) dan penggunaannya.
  • Perdalamlah jika bahasa yang Anda gunakan mendukung fungsi overloading.
  • Cara mengakses memori bahasa pemrograman yang Anda pilih (pointer,peeking, dll).
  • Perdalamlah jika bahasa yang Anda gunakan mendukung operators overloading.
  • Perdalamlah jika bahasa Anda mendukung delegasi/fungsi pointer.

9
Gunakan teknik lanjutan lain yang telah Anda pahami.
  • Paradigma orientasi objek.

10
Ikuti pelatihan dasar setidaknya satu lagi bahasa pemrograman lainnya dalam paradigma pemrograman. Anda disarankan untuk mempelajari satu bahasa pemrograman lain di masing-masing paradigma, seperti yang dilakukan oleh para pemrogram ahli. Anda bisa memulai dengan satu bahasa, mendalaminya dan berlatih, dan setelah memiliki pengalaman pemrograman sesungguhnya barulah Anda mempelajari bahasa lain. Coba pelajari salah satu dari area berikut:
  • Paradigma pemrograman logika.
  • Paradigma pemrograman fungsional.

11
Bandingkan kedua bahasa pemrograman yang telah dipelajari. Evaluasi kelebihan dan kekurangan dari masing-masing bahasa ini. Anda dapat melakukan hal ini dengan:
  • Menulis ulang sampel sederhana dari karya pertama Anda, kali ini menggunakan bahasa pemrograman kedua.
  • Membuat proyek baru menggunakan kedua bahasa. Kadang-kadang, tergantung dari proyek dan bahasa yang dipilih, Anda tidak dapat menerapkan satu proyek dalam satu bahasa!
  • Buatlah lembar sontekan atau perbandingan ringkasan mengenai persamaan kode dari kedua bahasa dan fitur-fitur unik dari masing-masing bahasa pemrograman.
  • Cobalah meniru fitur yang tidak ditemukan di satu bahasa pemrograman namun ada di bahasa pemrograman lainnya.

12
Pelajari konsep pemrograman visual menggunakan salah satu bahasa pemrograman yang Anda gunakan. Hampir semua bahasa pemrograman memiliki versi/library yang mendukung pemrograman visual, selebihnya mendukung pemrograman konsol atau mirip-konsol. Hal ini dapat dicapai dengan:
  • Mencari pengetahuan dasar mengenai pemrograman event. Kebanyakan pemrograman visual bergantung pada beberapa tingkat event dan penangananevent (menggunakan bahasa pemrograman pilihan Anda).
  • Cobalah aplikasi desktop sebisa Anda dan memahami kegunaannya. Kebanyakan pengembang aplikasi menawarkan versi beta dari produk yang mereka buat. Anda bisa memanfaatkan ini untuk mengujinya. Ikuti pula perkembangan antarmuka penggunanya.
  • Bacalah beberapa artikel atau tutorial mengenai antarmuka pengguna grafis.

13
Mulai terapkan pengetahuan Anda pada proyek perangkat lunak kecil yang Anda desain sendiri. Terapkan pengetahuan Anda pada masalah yang Anda temui sehari-hari. Misalnya, ciptakan program untuk mengganti nama banyak berkas sekaligus, membandingkan berkas teks secara visual, menyalin nama berkas dalam satu direktori ke memori/berkas teks, dan sebagainya. Buatlah simpel.


14
Buat sebuah proyek tugas akhir maya. Lengkapi sampai tuntas, terapkan teknik pemrograman visual yang telah Anda peroleh.


15
Perluas pemahaman Anda mengenai framework/library/package visual yang telah dipelajari sebelum mengambil pelajaran lebih lanjut. Beri perhatian lebih pada detailnya, pelajari kiat-kiat dan trik untuk framework Anda dari internet.


16
Cari library/package elemen visual lainnya untuk bahasa pemrograman Anda lalu pelajari.


17
Ambil kuliah jurusan grafis (bukan desain grafis). Ini akan sangat membantu Anda untuk menjadi seorang pemrogram andal.


18
Jadilah pemrogram gim. Pemrogram gim sering bekerja dalam bahasa pemrograman desktop. Untuk menjadi pemrogram gim, Anda harus belajar lebih dalam mengenai pemrograman gim. Pelajaran grafis wajib diambil oleh seorang pemrogram gim. Selain itu bahasa kedua di langkah sebelumnya yang harus dipilih adalah bahasa pemrograman logika/fungsional (sebaiknya gunakan Prolog atau Lisp).

Metode 3 dari 6: Pemrograman Aplikasi Terdistribusi


1
Pahami pemrograman aplikasi terdistribusi. Oleh kebanyakan pemrogram, pemrograman aplikasi terdistribusi dianggap sebagai hal yang sangat sulit dipelajari dan memerlukan pengetahuan mendalam mengenai teknologi komputer dan komunikasi.


2
Pelajari dengan cepat mengenai sistem telephony dan perangkat keras yang digunakan. Langkah ini bersifat opsional, namun akan berguna dalam memahami topologi jaringan.


3
Kenali lebih dalam mengenai arsitektur perangkat keras jaringan seperti hub,switch dan router.


4
Pelajari mengenai protokol dan esensi jaringan. Anda harus memahami lebih dalam mengenai model Open Systems Interconnection (OSI)Ethernet, IP, TCP,UDP dan HTTP sebelum memulai memprogram aplikasi terdistribusi.


5
Pelajari bahasa pemrograman XML.


6
Mulailah belajar bahasa scripting shell. Untuk pemrograman berbasis Windows, ini adalah skrip apa saja yang dapat bekerja dengan Windows Scripting Host. Untuk pemrograman berbasis Linux, skrip Bash dan Pearl sudah cukup. Javascript sangat dianjurkan untuk dipelajari bagi kedua platform ini, karena:
  • Didukung oleh hampir seluruh host scripting pada kedua SO (Windows Scripting Host otomatis mendukung JavaScript, dan sebagian besar distribusi Linux memiliki package untuk mendukung konsol skrip Javascript).
  • Dianggap lebih mudah oleh kebanyakan pengembang aplikasi.
  • Mendukung sintaks turunan ALGOL yang akan memudahkan Anda saat akan menggunakan bahasa pemrograman kedua (C, C++, C#, Java dan J# dan semua yang memiliki sintaks turunan ALGOL).
  • Dengan mempelajari JavaScript, Anda lebih memahami skrip berbasis klien pada sebuah halaman situs web.

7
Gunakan pemrograman prosedural menggunakan bahasa Anda sendiri.Nantinya Anda bisa menggunakan teknik dan paradigma bahasa lain pada bahasa skrip Anda dan apa pun yang didukungnya. Semua bahasa skrip memiliki aspek pemrograman prosedural yang harus dipahami.


8
Gunakan bahasa skrip yang telah Anda pelajari untuk menulis skrip yang membentuk komunikasi antarmesin. Pelajari apa yang diperlukan untuk hal ini. Komunikasi biasa saja sudah cukup.


9
Pindahkan ke bahasa pemrograman/skrip desktop. Sebaiknya gunakan bahasa pemrograman multiparadigma seperti Phyton. Pelajari bahasa kedua ini. Kebanyakan pemrogram menggunakan Java sebagai bahasa kedua karena beberapa alasan. Namun C# lebih tepat digunakan untuk ini. Berikut ini alasan mengapa Java dan C# lebih disukai:
  • Keduanya merupakan bahasa pemrograman berorientasi objek yang melindungi para pemrogram di dalam sebuah tim besar dari detail implementasi, karena keduanya merupakan komponen pendukung (unit kode, prakompilasi yang melaksanakan tugas tertentu dan dapat digunakan dalam program lain).
  • Keduanya mendukung pemrograman berbasis event, serta pemrograman berorientasi objek dan prosedural pada level tertentu.
  • Framework bahasa ini didistribusikan secara alami.
  • Ketersediaan banyak package siap guna yang berhubungan dengan jaringan, baik kode bersumber terbuka maupun package framework bawaan; hal ini memudahkan pemrogram untuk membantu karya-karya pemrogram lainnya.

10
Konsentrasikan pada fitur utama bahasa itu, terutama yang mendukung jaringan. Jangan terpaku pada unsur antarmuka seperti desain hasil, jendela, dan elemen antarmuka lainnya.


11
Pelajari desain dan arsitektur aplikasi terdistribusi. Anda dapat memanfaatkan buku, tutorial internet atau pelatihan khusus. Memahami arsitektur aplikasi terdistribusi sangat diperlukan dalam hal ini.


12
Pelajari cara membangun komponen servis dan layanan menggunakan bahasa Anda.


13
Pelajari satu atau lebih teknologi berikut ini. Anda dianjurkan untuk mengetahui minimal dasar-dasarnya. Kebanyakan pemrogram aplikasi terdistribusi tidak berhenti hanya di satu atau dua bahasa pemrograman, namun mempelajari minimal satu bahasa untuk setiap sistem operasi. Hal ini dikarenakan Anda ingin aplikasi Anda "terdistribusi". Anda harus menyediakan versi untuk setiap sistem operasi umum.
Metode 4 dari 6: Pemrograman Library/Platform/Framework/Core


1
Pahami apa itu pemrograman core. Pemrogram core adalah pemrogram mahir yang berpindah dari memprogram aplikasi menjadi memprogram unit kode untuk digunakan oleh pemrogram lain.


2
Pelajari bahasa pemrograman yang mendukung pembuatan/packagekomponen yang dapat digunakan kembali.


3
Pelajari lebih lanjut mengenai UML dan ORM. Kebanyakan pengembang librarymenggunakan salah satu atau bahkan keduanya.


4
Pelajari tentang rekayasa perangkat lunak.


5
Pelajari minimal teknik dan konsep pemrograman modular, berbasis komponen, berorientasi objek, dan berbasis event. Semakin banyak paradigma pemrograman yang Anda kuasai, semakin terbuka jalan Anda untuk menjadi pemrogramlibrary/package.


6
Pelajari lebih lanjut mengenai framework sistem operasi dan pemrograman yang sesuai dengan sistem operasi itu.


7
Fokuskan pembelajaran Anda pada framework, bahasa pemrograman dan teknologi bebas platform.


8
Jika bahasa pemrograman yang Anda pelajari sejauh ini memiliki versi standar dari ANSI/ISO/IEEE/W3C, kuasai standarnya. Gunakan kode standar jika memungkinkan.


9
Cobalah meniru library yang sudah ada, terutama versi bersumber terbuka.Hal ini berguna selama fase awal menjadi pemrogram library/package. Mulailah dengan package sederhana seperti konversi satuan dan kalkulasi ilmiah menengah. Jika Anda seorang mahasiswa, manfaatkan pengetahuan nonpemrograman yang telah Anda dapatkan dengan menerapkan persamaan dan core ilmiah sebagai library.


10
Cari dan coba package bersumber terbuka yang sesuai dengan bidang bahasa pemrograman Anda. Pertama, unduh kode biner/eksekusi daripackage tersebut. Gunakan lalu cari kelebihan dan kekurangannya. Setelah itu, unduh sumbernya lalu pelajari cara kerjanya. Lalu coba buat ulang library tersebut atau bagian-bagiannya. Awalnya, lakukan hal ini dengan melihat kodenya terlebih dahulu, lalu cobalah melakukannya tanpa melihat kodenya. Pada tahap berikutnya, kembangkanlibrary tersebut.


11
Pelajari berbagai pendekatan berbeda untuk mendistribusikan dan menyebarkan komponen kepada pemrogram.
  • Biasanya, pemrogram library/package cenderung berpikir secara rekursif dan/atau iteratif pada masalah yang ada. Pikirkan setiap masalah sebagai sekumpulan masalah-masalah kecil (serangkaian tugas sederhana) atau sebagai proses berulang dari mengurangi ruang lingkup suatu masalah, kemudian gabungkan semua ruang lingkup ini.
  • Pemrogram library/package cenderung menggeneralisasi. Artinya, ketika dihadapkan pada suatu masalah simpel yang spesifik, mereka biasanya berpikir mengenai masalah yang lebih umum dan akan memecahkannya sehingga turut memecahkan masalah lain yang lebih kecil.
Metode 5 dari 6: Pemrograman Sistem akan ane bahas pada pertemuan selanjutnya...


Baca juga lanjutan cara menjadi seorang programer

















































































































EmoticonEmoticon