Pemrograman Sistem Pemrogram Aplikasi Desktop Pemrograman Web Pemrograman Library/Platform/Framework/Core
 Pemrograman Aplikasi Terdistribusi Ilmu Pemrograman
Pemrogram sistem berurusan dengan ilmu pemrograman, bukan implementasinya yang sepesifik. Jangan terpaku hanya pada satu platform.     Hal ini dapat dilakukan dengan cara:  Mencari tahu cara sistem operasi dapat terpasang. Mempelajari cara memasang beberapa sistem operasi dalam satu komputer. Memasang lebih dari satu sistem operasi. Jangan memasang package pendukung di sistem itu, cukup fungsionalitas murni yang disediakan oleh sistem operasi.   Anda nantinya akan belajar merakit platform/sistem lainnya.  Perdalam mengenai Standard Template Library (STL) dan mungkin Active Template Library (ATL).     Ini akan lebih mudah jika Anda memilih sistem operasi berbasis Unix. Pahami dengan baik cara kerja sistem yang Anda pilih nantinya. Pertama, buatlah utilitas sistem kecil. Anda bisa melakukan hal bermanfaat berikut:   Berlatih membuat ulang peralatan kecil yang sudah ada di sistem. Mencoba membuat ulang utilitas yang ada di sistem operasi lain. Di sinilah pentingnya bahasa pemrograman pertama. Pelajari ANSI C terlebih dahulu, bukan C++, bukan C# , bukan Java dan bukan pula D. Lalu pelajari C++. Alasan pembatasan bahasa pertama pada C adalah karena pemrograman sistem ini mengharuskan pemrogram memahami konsep-konsep berikut:  Kompilasi nyata dan penuh dari kode sumber. Berkas keluaran objek tingkat rendah. Biner penghubung. Pemrograman perakitan/bahasa mesin tingkat rendah. Bahasa C dikatakan lebih mudah dipelajari dalam hal cara merakit. Bahasa C juga mendukung penyisipan kode bahasa perakitan dalam kode kapan saja dan hanya bersifat prosedural (seperti Assembly). Kebanyakan pemrogram menulis kode untuk solusi bisnis, karena itu memahami struktur bisnis, organisasi dan finansial dari bisnis itu akan sangat menghemat waktu. Mengikuti pelatihan dasar mengenai desain 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 seperti ini dan ini. Anda dapat kembali ke langkah ini setelah mempelajari bahasa pemrograman pertama Anda. 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.  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.  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. 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..do, do..while/until, for..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. Paradigma orientasi objek. 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. 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. 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 penanganan event (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. 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. Lengkapi sampai tuntas, terapkan teknik pemrograman visual yang telah Anda peroleh. Beri perhatian lebih pada detailnya, pelajari kiat-kiat dan trik untuk framework Anda dari internet.  Ini akan sangat membantu Anda untuk menjadi seorang pemrogram andal. 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). 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:  HTTP FTP POP3 SMTP TCP  IP protocols HTML XML Coldfusion ASP JSP PHP ASP.NET 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) Contoh: diagram brainstroming dan MS Visio. Ini berarti membuat konsep diagram web, peta situs dan struktur navigasinya. Pelajari setidaknya satu jenis aplikasi untuk mengedit atau memanipulasi grafis (opsional namun sangat dianjurkan). 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 Anda sebaiknya menggunakan perangkat lunak "What You See Is What You Get" untuk mengedit HTML.   Kebanyakan pemrogram mempelajari JavaScript. Sebagian pemrogram mempelajari VBScript, namun sering kali tidak kompatibel dengan beberapa peramban yang sering digunakan. Kuasai bahasa ini. Lanjutkan ke tahap berikutnya hanya jika Anda telah menguasai bahasa ini. 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.   Pemrogram core adalah pemrogram mahir yang berpindah dari memprogram aplikasi menjadi memprogram unit kode untuk digunakan oleh pemrogram lain.  Kebanyakan pengembang library menggunakan salah satu atau bahkan keduanya.  Semakin banyak paradigma pemrograman yang Anda kuasai, semakin terbuka jalan Anda untuk menjadi pemrogram library/package.   Gunakan kode standar jika memungkinkan. 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. Pertama, unduh kode biner/eksekusi dari package 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, kembangkan library tersebut. 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. Oleh kebanyakan pemrogram, pemrograman aplikasi terdistribusi dianggap sebagai hal yang sangat sulit dipelajari dan memerlukan pengetahuan mendalam mengenai teknologi komputer dan komunikasi. Langkah ini bersifat opsional, namun akan berguna dalam memahami topologi jaringan.  Anda harus memahami lebih dalam mengenai model Open Systems Interconnection (OSI), Ethernet, IP, TCP, UDP dan HTTP sebelum  memulai memprogram aplikasi terdistribusi.  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. 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. Pelajari apa yang diperlukan untuk hal ini. Komunikasi biasa saja sudah cukup. 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. pada fitur utama bahasa itu, terutama yang mendukung jaringan. Jangan terpaku pada unsur antarmuka seperti desain hasil, jendela, dan elemen antarmuka lainnya. Anda dapat memanfaatkan buku, tutorial internet atau pelatihan khusus. Memahami arsitektur aplikasi terdistribusi sangat diperlukan dalam hal 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.   Common Object Request Broker Architecture (CORBA)  Simple Object Access Protocol (SOAP)  Asynchronous JavaScript dan XML (AJAX)  Distributed Component Object Model (DCOM) .NET Remoting XML Web Services Ilmuwan pemrograman adalah pemrogram yang sangat mahir. Mereka tidak bekerja untuk mengembangkan aplikasi melainkan mengembangkan teknologi komputasi seperti enkripsi, bahasa pemrograman dan alogaritma penambangan data. Hal ini sulit didapat jika tidak menempuh jalur akademis khusus. Hal ini dapat dilakukan dengan cara:  Mengikuti perkuliahan sebenarnya (yang merupakan cara biasa). Mengikuti jalur pelatihan untuk bidang ini dari salah satu kampus modern lalu mengambil pelatihan mandiri atau pelatihan terpisah lain. Hal ini terbukti secara teori, namun disarankan mengikuti jalur rekomendasi . Semakin spesifik maka semakin baik. Ini tergantung pada keinginan Anda. Berikut ini daftar jurusan pada fakultas sains komputer yang dapat Anda pilih:  Desain alogaritma (pencarian, pengurutan, enkripsi, dekripsi dan deteksi kesalahan dalam komunikasi) Desain/pengoptimalan bahasa pemrograman/pengompilasi Bidang kecerdasan buatan (pengenalan pola, pengenalan suara, pengolahan bahasa alami, jaringan neural) Robotik Pemrograman ilmiah Superkomputasi  Computer Aided Design/Modeling (CAD/CAM) Realitas virtual Grafis komputer (Grafis komputer biasanya disalahartikan sebagai desain grafis atau desain antarmuka pengguna grafis). Grafis komputer adalah bidang kaji yang mempelajari cara mewakili dan memanipulasi grafis dalam sistem komputer. Anda disarankan untuk melanjutkan studi untuk mendapatkan gelar master atau doktor. 
Pahami apa yang wajib dimiliki oleh pemrogram sistem. Ikuti tiga langkah pertama dari Pemrogram Aplikasi Desktop. Ikuti pelatihan dasar tentang aljabar linier. Pelajari kalkulus. Pelajari matematika logika dan diskrit. Pelajari dasar-dasar beberapa sistem operasi. Ikuti pelatihan (atau Anda dapat mebaca buku) tentang arsitektukr perangkat keras komputer. Kembangkan pemahaman mengenai platform-platform perangkat keras komputer. Pahami dasar-dasar mengenai bahasa perakitan dari platform perangkat keras atau sistem operasi yang Anda pilih. Pelajari bahasa pemrograman ANSI C dan C++, dan juga konsep-konsep pemrograman prosedural. Pahami dan latihlah library standar C/C++ pada platform yang Anda pilih. Cari sumber lain di internet, atau melalui buku atau pelatihan untuk mendapatkan pengetahuan mengenai nuansa C dari platform yang Anda pilih. Berlatihlah membuat kode lanjutan menggunakan C dan C++. Pelajari Assembly lebih lanjut. Ikuti pelatihan mengenai desain sistem operasi. Cari dan baca dokumentasi platform yang Anda pilih. Latih pengetahuan Anda. Pelajari bahasa pemrograman sesuai dengen urutan kebutuhan Anda. Pahami tujuan Anda mempelajari pemrograman aplikasi desktop. Pelajari mengenai arsitektur perangkat keras komputer. Pelajari bahasa pemrograman Kenali dasar-dasar dari prosedural, orientasi objek, and fungsional paradigma pemrograman. Ikuti pelatihan dasar salah satu dari bahasa pemrograman prosedural. Pelajari minimal satu teknik pemodelan tingkat lanjut seperti UML atau ORM. Mulailah menulis beberapa aplikasi konsol atau mirip-konsol kecil. Pelajari lebih dalam mengenai bahasa pemrograman Anda. Gunakan teknik lanjutan lain yang telah Anda pahami. Ikuti pelatihan dasar setidaknya satu lagi bahasa pemrograman lainnya dalam paradigma pemrograman. Bandingkan kedua bahasa pemrograman yang telah dipelajari. Pelajari konsep pemrograman visual menggunakan salah satu bahasa pemrograman yang Anda gunakan. Mulai terapkan pengetahuan Anda pada proyek perangkat lunak kecil yang Anda desain sendiri. Buat sebuah proyek tugas akhir maya. Perluas pemahaman Anda mengenai framework/library/package visual yang telah dipelajari sebelum mengambil pelajaran lebih lanjut. Cari library/package elemen visual lainnya untuk bahasa   pemrograman Anda lalu pelajari. Ambil kuliah jurusan grafis (bukan desain grafis). Jadilah pemrogram gim. Ketahui apa yang wajib dimiliki oleh seorang pemrogram web. Jelajahi Pelajari minimal satu teknik/metode brainstorming dan perangkat lunak yang digunakan untuk menerapkan cara ini. Perdalam pengetahuan Anda mengenai struktur situs web. Ikuti pelatihan kilat desain grafis. Pelajari dasar-dasar infrastruktur internet. Pelajari bahasa pemrograman HTML dan CSS. Pelajari teknologi terkait XML dan XML, seperti XSL dan XPath (opsional namun sangat dianjurkan). Buatlah situs web statis biasa sampai Anda memahami HTML. Pelajari bahasa pemrograman berbasis klien. Perdalam bahasa skrip berbasis klien. Pelajari minimal satu bahasa pemrograman berbasis server. Buatlah proyek contoh setelah Anda selesai mempelajari bahasa pemrograman berbasis server. Ciptakan situs web Anda sendiri dan lakukan banyak latihan di sana. Pahami apa itu pemrograman core. Pelajari bahasa pemrograman yang mendukung pembuatan/package komponen yang dapat digunakan kembali. Pelajari lebih lanjut mengenai UML dan ORM. Pelajari tentang rekayasa perangkat lunak. Pelajari minimal teknik dan konsep pemrograman modular, berbasis komponen, berorientasi objek, dan berbasis event. Pelajari lebih lanjut mengenai framework sistem operasi dan pemrograman yang sesuai dengan sistem operasi itu. Fokuskan pembelajaran Anda pada framework, bahasa pemrograman dan teknologi bebas platform. Jika bahasa pemrograman yang Anda pelajari sejauh ini memiliki versi standar dari ANSI/ISO/IEEE/W3C, kuasai standarnya. Cobalah meniru library yang sudah ada, terutama versi bersumber terbuka. Cari dan coba package bersumber terbuka yang sesuai dengan bidang bahasa pemrograman Anda. Pelajari berbagai pendekatan berbeda untuk mendistribusikan dan menyebarkan komponen kepada pemrogram. Pahami pemrograman aplikasi terdistribusi. Pelajari dengan cepat mengenai sistem telephony dan perangkat keras yang digunakan. Kenali lebih dalam mengenai arsitektur perangkat keras jaringan seperti hub, switch dan router. Pelajari mengenai protokol dan esensi jaringan. Pelajari bahasa pemrograman XML. Mulailah belajar bahasa scripting shell. Gunakan pemrograman prosedural menggunakan bahasa Anda sendiri. Gunakan bahasa skrip yang telah Anda pelajari untuk menulis skrip yang membentuk komunikasi antarmesin. Pindahkan ke bahasa pemrograman/skrip desktop. Konsentrasikan Pelajari desain dan arsitektur aplikasi terdistribusi. Pelajari cara membangun komponen servis dan layanan menggunakan bahasa Anda. Pelajari satu atau lebih teknologi berikut ini. Pahami apa yang dilakukan oleh seorang ilmuwan pemrograman. Pengetahuan ilmiah memerlukan waktu empat tahun pada jurusan sains komputer. Tentukan bidang spesialis Anda. Pertimbangkan untuk melanjutkan studi akademis. Pelajari teknologi dan bahasa pemrograman yang terkait dengan bidang pemrograman yang Anda pilih.
https://www.wikihow.com/Become-a-Programmer https://www.wikihow.com/Become-a-Programmer https://www.wikihow.com/Become-a-Programmer https://www.wikihow.com/Become-a-Programmer https://www.wikihow.com/Become-a-Programmer https://www.wikihow.com/Become-a-Programmer
System Programming Desktop Application Programming Web Programming Library/Platform/Framework/Core Programming Distributed Applications Programming Programming Science