Tampilkan postingan dengan label Opini. Tampilkan semua postingan
Tampilkan postingan dengan label Opini. Tampilkan semua postingan

Rabu, 30 September 2015

Mengapa Kita Harus Belajar Coding?

07.52 Posted by Unknown No comments
Belajar coding, untuk saat ini menurut saya hukumnya hampir mirip dengan fardhu kifayah, dan itu berlaku untuk sebuah negara. Artinya, dalam sebuah negara harus ada orang yang bener-bener secara serius belajar coding, dan jika nggak ada satu orang pun di negara tersebut yang mempelajarinya maka seluruh warga negara akan terkena dosanya. Kok bisa? Oke, silahkan baca sampai selesai dulu.
Kita semua pasti setuju bahwa sekarang kita berada di era digital. Betapa informasi sangat mudah diakses melalui internet. Dalam hitungan detik kita bisa terhubung dengan orang-orang di belahan bumi lainnya yang jika kita hitung secara fisik, jaraknya sangat jauh. Informasi di Jepang pagi ini bisa langsung kita lihat, tanpa kita harus pergi ke Jepang terlebih dahulu. Hasil pertandingan sepak bola di Inggris, bisa langsung kita akses tanpa perlu menunggu berhari-hari, padahal kita tidak pergi ke Inggris.
Kemajuan teknologi telah banyak mengubah pola hidup kita. Dan yang lebih “gokil”-nya lagi, perubahan itu tidak perlu menunggu berabad-abad. Masih segar dalam ingatan kita, kakek dan nenek kita pernah bercerita bahwa tanah yang saat ini berdiri kokoh gedung-gedung tinggi, jalan-jalan yang ramai dilalui kendaraan dulunya adalah hutan, kebun atau mungkin rawa. Kakek dan nenek kita mungkin pernah bercerita, bahwa dahulu untuk bersekolah mereka harus menempuh perjalanan jauh. Untuk berkomunikasi dengan kerabat jauh mereka membutuhkan waktu berjam-jam atau bahkan berhari-hari perjalanan. Saat ini, anak-anak SD sudah bermain tablet layar sentuh, mereka berbicara tentang film anime yang tayang di Jepang saat ini.
Hadirnya mesin pencari, Google, Yahoo, Bing sangat membantu dalam keseharian kita. Sangat mudah sekali mencari informasi berkat mesin pencari. Belum lagi jejaring sosial, Facebook, Twitter dan Google Plus. Betapa kita dimanjakan untuk berkomunikasi dengan teman-teman kita walaupun berada di lokasi yang sangat jauh. Dahulu yang namanya belanja, ya harus keluar rumah, pergi ke toko, memilih barang belanjaan di toko, membayar cash. Sekarang? Kita bahkan bisa berbelanja tanpa harus bergeser 1 meter pun dari tempat duduk kita.
Industri berubah, pola hidup berubah, kebiasaan kita berubah. Lantas, siapa sebenarnya yang merubah itu semua? Siapa orang dibalik hadirnya mesin pencari, jejaring sosial, game, toko online itu? Siapa lagi kalau bukan programmer. Siapa yang membuat sistem operasi sehingga kita bisa menggunakan komputer dalam keseharian kita? Siapa yang membuat Google, Facebook, WhatsApp, Ebay, Flappy Bird? Mereka adalah para penyihir, yang menciptakan sesuatu dari sihir baris-baris kode.
penyihir
Sumber gambar: codeodor.com
Kembali ke pernyataan saya sebelumnya, belajar coding mirip fardhu kifayah hukumnya. Dari kita harus ada yang benar-benar serius mempelajarinya. Ini mungkin tidak terkait dengan dosa atau tidak, tapi ini terkait dengan kemajuan negara.
Kembali saya ajak untuk melihat betapa cepatnya perubahan industri berlangsung dan nanti akan kita lihat apa relevansinya dengan kemajuan negara dan belajar coding. Sebagai contoh nyata, beberapa tahun lalu kita masih ingat dengan ramainya Blackberry? Kalau kita tengok masa-masa itu, rasanya amat kecil sekali kemungkinan bahwa Blackberry akan tersungkur seperti saat ini. Semua orang saat itu begitu mendambakan memiliki gadget Blackberry, BBM menjadi trend. Tapi sekarang? Blackberry terpogoh-pogoh berjuang melawan kedigjayaan Androidnya Samsung dan Iphonenya Apple. Satu contoh lagi, kita mungkin masih ingat dengan Friendster. Bagaimana nasibnya sekarang? Bukankah beberapa tahun yang lalu ia sempat menjadi raja? Perubahan begitu cepat terjadi, cracking industri dimana-mana dan inovasi sulit terbendung. Memang begitulah dunia, kejam. Siapa yang lebih kuat dia akan bisa bertahan. Yang tidak kuat terhadap perubahan akan tergilas. Yang jadi pertanyaan adalah, apa peran kita dalam perubahan itu? Seolah kita hanya menonton dan mengikuti arus perubahan, hanya menjadi yang mencoba bertahan dengan perubahan, dan berusaha mengikuti perubahan. Lantas siapa yang membuat perubahan itu? Ya, mereka adalah negara-negara yang memiliki inovasi, negara-negara yang memiliki programmer-programmer hebat yang selalu menciptakan hal-hal baru. Kita masih jadi penonton pertarungan mereka.
Tidak hanya itu, coba tengok beberapa artikel berikut: ‘Lulusan TI Banyak yang Mengecewakan’, Lulusan IT tak siap hadapi dunia kerja?. Jangankan untuk bersaing, lulusan IT kita justru dibilang mengecewakan dan tidak siap kerja. Mudah-mudahan berita itu salah.
Itulah mengapa harus ada dari kita yang benar-benar belajar coding. Semakin banyak yang mempelajarinya, maka akan semakin baik. Semakin besar pula potensi akan munculnya karya-karya kita, munculnya inovasi-inovasi tanah air. Syukur-syukur ke depannya kita bisa menjadi negara yang bisa melahirkan produk baru yang mendunia, dan kemudian ikut serta dalam pertarungan, dan tidak hanya menjadi penonton.
Mungkin terlalu tinggi jika kita membicarakan dunia dan negara. Mari kita persempit, kita bicara tentang mengapa kita sebagai seorang individu perlu belajar coding. Steve Jobs pernah berkata, “Everybody in this country should learn how to program a computer, because it teaches you how to think.”, bahwa setiap orang harus belajar cara memprogram komputer / coding, karena itu mengajarkan bagaimana cara berpikir.
Benar sekali, dengan belajar coding atau memprogram komputer, kita akan belajar bagaimana cara berpikir yang baik, tertruktur, sistematis dan efisien. Itu akan sangat berguna sekali dalam kehidupan kita, terutama dalam menyelesaikan masalah kita.
Dan yang paling penting adalah, ketika kita memiki skill coding, kita akan leluasa untuk berkarya. Kita punya ide briliant untuk membuat sebuah aplikasi atau web yang akan menyelesaikan banyak masalah, jika kita memiliki skill coding, kita hanya perlu membuatnya. Kita akan leluasa untuk mengembangkan ide. Tidak dibatasi ketidakmempuan kita membuatnya. Ketika kita punya ide membuat game yang bagus, kita hanya perlu membuatnya. Contohnya Dong Nguyen, ketika dia punya ide untuk membuat game Flappy Bird, dia hanya tinggal membuatnya. Bahkan disela-sela kesibukan dia bekerja. Dan kita tahu, betapa boomingnya Flappy Bird itu. Dan sekarang dia membuat sebuah game baru bernama Swing Copters. Menyenangkan bukan.
FLAPPY-BIRD
Untuk belajar coding, seseorang tidak mesti masuk kuliah jurusan komputer. Siapa pun bisa. Itu tidak seperti dokter, yang kita harus masuk jurusan kedokteran dulu untuk menjadi seorang dokter atau melakukan praktek dokter. Tidak juga seperti seorang tentara, yang harus masuk akademi dulu. Siapa saja bisa belajar coding bahkan menjadi programmer. Siapa saja bisa berkarya dengan coding, apapun profesinya. Seorang guru bisa saja belajar coding, untuk membuat aplikasi yang berguna dalam proses mengajarnya. Seorang ibu rumah tangga bisa saja belajar coding untuk membuatkan anaknya sebuah game yang menarik dan mendidik. Ya, siapa saja bisa.
Dengan semakin canggihnya teknologi, bahkan sekarang coding menjadi semakin mudah. Tidak hanya dengan telah banyaknya framework dan library yang mempermudah, sekarang malahan telah banyak tools yang memungkinkan kita untuk coding hanya dengan drag grop saja. Seperti Blockly misalnya. Bahkan juga untuk membuat game sudah banyak tools yang seperti itu.
So, tunggu apa lagi? Belajar coding dari sekarang dan berkaryalah.

Mahasiswa IT Harus Bisa Coding

07.51 Posted by Unknown No comments
Sepintas judul artikel ini serasa aneh sendiri buat saya. Itu seperti “Mahasiswa Kebidanan Harus Bisa Membantu Pesalinan”, yang apabila itu dijadikan pertanyaan maka jawabannya pasti “ya iyalah”. Tapi ternyata tidak demikian pada kenyataannya, mungkin hampir semua kita sepakat akan bilang “ya iyalah”, tapi ternyata nggak sedikit temen-temen mahasiswa IT yang kemudian tersesat atau mungkin membiarkan diri tersesat, seolah berkata “ya iyalah bro, kecuali mungkin gue”. Mari kita tengok kembali berita ini: Lulusan TI Banyak yang Mengecewakan.
lulusan_it_mengecewakan
Berita itu sudah lama sekali, sekitar 4 tahun yang lalu, mudah-mudah sekarang keadaan sudah berubah. Terlepas dari berita itu sudah basi atau belum, saya rasa perlu kita tinjau ulang sisi pentingnya seorang mahasiswa IT untuk mampu menguasai skill coding, agar kemudian tidak ada lagi yang tersesat.
Ditinjau dari sisi pendidikan dan kurikulum, Pak Romi Satria Wahono telah memaparkan dengan sangat jelas pada artikel “Wajibnya Skill Coding Bagi Mahasiswa Computing“, betapa pentingnya skill coding bagi mahasiswa IT. Ada satu pernyataan yang menarik buat saya pada artikel Pak Romi tersebut, yaitu “mahasiswa computing tanpa skill coding itu bagaikan garam tanpa asinnya”. Sedikit menggelitik, namun sangat mengena maknanya. Betapa coding dan mahasiswa IT itu adalah sesuatu yang tidak bisa dipisahkan. Bukan hanya sebagai tambahan atau opsi yang kalaupun tanpanya garam masih tetap garam. Asin bagi garam adalah inti, artinya jika tanpa asin, apalah arti garam? Itu berarti, jika tanpa skill coding, apalah arti lulusan IT.
Di awal sudah saya singgung sedikit perbandingannya dengan mahasiswa kebidanan. Coding bagi lulusan IT itu ibarat membantu persalinan bagi seorang lulusan kebidanan. Apalah gunanya seorang kuliah di jurusan kebidanan jika dia tidak bisa membantu seorang ibu melahirkan.
Oke, kita mungkin sudah tahu bahwa skill coding memang wajib ain bagi mahasiswa komputer, dan kita tahu bahwa meninggalkannya adalah salah. Namun terkadang kita tahu ada hal baik yang harus dikerjakan, tapi tetap saja tidak kita kerjakan, dan sebaliknya ada hal tidak baik yang kita harus jauhi malah justru kita kerjakan. Maksud saya adalah, tidak serta merta ketika kita mengetahui hal baik lantas kita mengerjakannya, ada banyak variabel lainnya yang juga terlibat. Mari buat lebih sederhana, saya ibaratkan dengan sholat bagi seorang muslim. Semua orang muslim di dunia ini tahu bahwa sholat adalah wajib, tapi nyatanya masih ada yang meninggalkannya. Pun demikian yang saya maksud di atas.
Sebenarnya alasan seseorang masuk kuliah jurusan IT itu berbeda-beda dan pemahaman tentangnya di awal pun berbeda-beda. Ada yang kuliah hanya karena mencari gelar, ada juga yang mengincar ijazahnya, ada juga yang memang belajar. Pada dasarnya itu adalah hak, dan bebas-bebas saja. Namun terlepas dari tujuan, ketika kita masuk ke dalam perkuliahan, kita akan terikat oleh tanggung jawab bidang keilmuan kita, sesuai jurusan yang kita pilih. Karena pada akhirnya setelah lulus kita akan dikenal sebagai lulusan dari jurusan tersebut.
Pada prinsipnya, apapun jurusan kita saat di perkuliahan tidak mengharuskan kita menjadi apa kita nantinya. Kita bebas-bebas saja, bahkan berprofesi yang tidak ada kaitannya sama sekali dengan jurusan kita pun tidak masalah. Bukankah sukses itu tentang bahagia, bukan tentang kita menjadi apa karena jurusan kita. Pak Mario Teguh tidak pernah punya sejarah pernah kuliah di jurusan motivasi, tapi nyatanya beliau menjadi motivator hebat saat ini. Bahkan Iskandar Soiesman sang pembuat Panada Framework justru berasal dari jurusan Sosiologi, namun justru menjadi programmer yang handal. Bahkan Bill Gates sendiri malahan tidak menamatkan perkuliahannya. Saya rasa banyak sekali contohnya, orang yang hebat dan besar bukan karena jurusan di perkuliahannya. Namun, jadi apapun kita nantinya ketika lulus, bukankah baik jika kita bertanggung jawab terhadap bidang keilmuan kita? Paling tidak itu akan menjadi bekal kita nantinya. Karena saya sendiri percaya bahwa, apa yang dipelajari itu tidak akan sia-sia, mungkin belum saat ini, atau mungkin bukan di dalam profesi kita, tapi kita pasti akan merasakan manfaatnya.
Mungkin agar lebih menyegarkan lagi, mari kita tengok kembali tulisan saya sebelumnya di CodePolitan tentang alasan mengapa kita harus belajar coding. Terutama jika Kamu mahasiswa IT, kamu sebenarnya sudah berada di track yang baik.
Sebenarnya, akan repot sendiri jika mahasiswa IT tidak memiliki skill coding. Bagaimana tidak, banyak sekali tugas dan aktivitas di perkuliahan yang selalu berkaitan dengan coding. Paling tidak, tugas akhir atau skripsi. Bayangkan betapa repotnya jika mahasiswa IT tidak memiliki skill coding atau tidak mengerti coding, sedangkan dia harus membuat aplikasi atau program yang jelas-jelas harus coding.
Yang saya lihat, ada satu kesalahan umum yang sering dilakukan oleh mahasiswa IT yang tidak mengerti coding ketika perkuliahannya, yaitu terlalu lama mencari jati diri. Maksud saya adalah, mereka terlalu lama memikirkan akan fokus mempelajari bahasa pemrograman apa, atau akan menjadi apa nantinya. Mungkin karena terlalu banyak bahasa pemrograman yang diajarkan sehingga bingung harus mulai mempelajari bahasa pemrograman yang mana dulu. Dan kemudian sadar-sadar sudah di semester tua, dan sebentar lagi harus skripsi. Sebenarnya saya juga tidak terlalu ngerti kenapa mahasiswa IT banyak disuguhi bahasa pemrograman di perkuliahan, kenapa tidak fokus 1 saja dulu sebagai dasarnya. Mungkin tujuannya untuk memperkenalkan bahwa ada banyak lho bahasa pemrograman di dunia, tapi akhirnya malah akan membuat mahasiswa bingung harus mulai belajar coding dengan bahasa apa. Tapi saya yakin kurikulum itu sudah dipikirkan matang-matang.
Pengambilan peminatan sejak dini (masih semester awal-awal) saya rasa akan berdampak baik. Jangan terlalu lama memikirkan akan mempelajari bahasa pemrograman apa atau akan fokus mempelajari bidang apa. Bukan tidak memikirkan, karena itu juga sangat penting, namun jangan terlalu lama asik memikirkan, mulai sajalah. Mulailah fokus untuk mempelajari bahasa pemrograman apa yang ingin dikuasai nantinya. Kemudian jadikan bahasa pemrograman itu sebagai bahasa pemrograman yang digunakan untuk tugas kuliahmu.
Demikianlah, semoga bermanfaat terutama bagi mahasiswa IT yang masih kebingungan. Segeralah bertaubat, pelajarilah sebuah bahasa pemrograman tertentu, milikilah skill coding. Terlepas dari apakah kamu akan menjadi apa nantinya, jika kamu memiliki skill coding, pasti ada sesuatu yang bisa kamu lakukan, dan yakinlah itu sangat bermanfaat.

Yang Developer Bisa Pelajari Dari Game Fenomenal Flappy Bird

07.50 Posted by Unknown No comments
Popularitas Flappy Bird memang sudah lama tenggelam dan game-nya pun sudah lama ditarik dari peredaran oleh sang developernya, namun saya harap itu tidak membuat kita tidak mau belajar darinya dan kita tidak bisa mengambil manfaat darinya. Walau bagaimana pun Flappy Bird adalah sebuah game yang sempat fenomenal dan layak untuk kita mengambil pelajaran darinya.
Saya rasa hampir seluruh penduduk bumi saat ini tahu apa itu Flappy Bird. Sebuah game dengan burung gendut yang punya mata besar, bibir lebar dan setengah mati berusaha terbang menghindari pipa untuk bertahan hidup. Game yang membuat orang yang memainkannya kesal. Bahkan mungkin ada orang yang saking kesalnya sampe-sampe melempar atau merusak smartphonenya. Ya, begitu menggemaskannya dan menyebalkannya game itu.
Flappy Bird dibuat oleh Dong Nguyen, seorang developer game berasal dari Vietnam. Flappy Bird dibuat hanya oleh Dong Nguyen sendiri. Saya ulangi, Flappy Bird dibuat hanya oleh Dong Nguyen sendiri. Ya, sendiri. Game ini bahkan hanya dibuat olehnya hanya dalam waktu tidak lebih dari 3 hari saja dan itu pun sambil dia bekerja.
Apakah Dong Nguyen sangat hebat sehingga bisa membuat game Flappy Bird hanya dalam waktu 3 hari saja? Tidak juga, saya rasa banyak orang yang bisa membuatnya dengan lebih cepat. Kami saja membuat game semisal Flappy Bird yang kami beri nama Flappy Nyan hanya dalam waktu 2 hari saja, dan itu pun dengan sangat santai. Bahkan kami membuat tutorial cara membuatnya di nyankodMagz edisi 17 Noga Namespace dan saya rasa siapa saja bisa membuatnya dengan mengikuti tutorial tersebut.
Game Flappy Bird memang sangat sederhana, dengan teknologi yang sederhana pula, tapi kita semua tahu bahwa efeknya tidak sederhana. Lihatlah betapa cepatnya game ini mewabah keseluruh dunia, jauh lebih cepat dari pada Virus Ebola. Dan ini tentunya membuat banyak developer game di seluruh dunia frustasi. Bagaimana tidak, banyak developer game yang merancang game dengan sedemikian canggihnya, bahkan penggarapannya butuh waktu bertahun-tahun dan dikembangkan oleh puluhan orang-orang hebat, namun tidak bisa lebih fenomenal dari Flappy Bird, game sederhana dengan tampilan cupu yang hanya didevelop oleh seorang developer dan dalam waktu 3 hari saja.
Yang saya lihat sebagai seorang programmer dari fenomena Flappy Bird ini adalah bahwa teknologi dan tampilan suatu produk itu terkadang bukan hal yang utama, yang sederhana sekali pun jika itu sesuai dengan kebutuhan dan tepat guna bagi pengguna maka itu akan sukses. Flappy Bird tahu bagaimana cara agar sebuah game menjadi dibutuhkan, menarik dan memiliki sifat adiktif yang membuat orang mau memainkannya berkali-kali bahkan walaupun mereka dibuatnya kesal oleh game tersebut. Flappy Bird sukses bukan karena dibangun dengan teknologi canggih, dengan algoritma-algoritma rumit, game itu bahkan hanya dibuat sederhana dan hanya butuh waktu 3 hari untuk menyelesaikannya. Bukan juga karena tampilannya bagus. Lihatlah aktor utama di Flappy Bird bahkan tidak jelas apakah itu seperti burung ataukah ikan. Mungkin jika bukan karena judulnya adalah Flappy Bird yang mengandung istilah bird yang artinya burung, saya mungkin akan menganggap itu sebagai ikan. Terlebih lagi kalau memainkan game Flappy Bird rasanya saya kembali lagi kezaman Nintendo dan Mario Bross.
flappy
Flappy bird memang merupakan sebuah game, tapi apa yang kita bisa pelajari dari situ tidak hanya sebatas untuk game development. Kita bisa belajar darinya untuk semua produk kita. Bahwa point penting dari sebuah produk yang kita bangun bukanlah dilihat dari betapa canggih aplikasi itu dibuat, dengan framework yang super keren, atau teknologi yang wow. Bukan itu! Bukan juga dari tampilan yang memukau, penuh dengan animasi yang WAH. Point utama ketika kita membangun sebuah produk adalah tahu kebutuhan pengguna dan apa yang menarik buat mereka. Teknologi yang canggih tentu nilai tambah, tampilan yang bagus tentu suatu hal yang bagus, tapi memenuhi kebutuhan pengguna itu yang lebih utama.
Saya ingat pesan Leontinus Alpha Edison, Co-founder Tokopedia, bahwa ketika kita membangun sebuah produk kita harus benar-benar menurunkan ego kita, karena walau bagaimana pun teknologi tetaplah nomor dua setelah produk itu sendiri. Karena kita seorang programmer atau developer, sering kali kita ingin aplikasi yang kita buat sangat canggih, dengan teknologi terbaru, framework yang sedang trend dengan tampilan yang wow, penuh animasi. Kita sering memaksakan untuk melihat semuanya dari sisi tekhnis. Kita ingin terlihat keren karena menerapkan teknologi yang canggih, yang akhirnya waktu development menjadi molor, padahal mungkin itu bukanlah point utama dari aplikasi kita, mungkin itu hanyalah kosmetikal belaka yang kalaupun tanpanya dunia masih tetap damai dan aplikasi masih berjalan lancar dan tepat guna. Ego kita kadang membuat kita sering salah memasang prioritas. Jika untuk belajar sih nggak masalah, tapi jika kita sudah terjun ke produksi dan ingin produk kita digunakan oleh orang lain, maka yang harus kita tekankan adalah nilai manfaat dan memenuhi kebutuhan pengguna. Dengan teknologi yang sederhana sekalipun jika bermanfaat dan tepat guna, itu tidak masalah. Dari pada kita membangun aplikasi yang super keren dan canggih tapi malah nggak ada yang menggunakan dan tidak menyelesaikan masalah. Sekali lagi, membuat karya kita tampak canggih dan memukau itu adalah nilai tambah dan itu sangat baik bagi karya kita, namun itu bukanlah prioritas utama, fokuslah terlebih dahulu pada membangun manfaat dengan apa yang dibutuhkan oleh pengguna.
Sebagai penutup, mungkin satu quote dari Linus Torvalds bisa menjadi nasihat yang baik buat kita untuk melengkapi apa yang kita pelajari dari Flappy Bird. Linus Torvalds pernah berkata “Any program is only as good as it is useful”, program yang baik itu yang digunakan dan tepat guna. Semoga bermanfaat :D

C/C++, Tak Sebatas Untuk Kuliah

07.49 Posted by Unknown No comments
Bahasa pemrograman C sebuah bahasa pemrograman yang dikembangkan oleh Dennise M. Ritchie yang juga pengembang UNIX. Sedangkan C++ adalah improvisasi dari C yang dilengkapi dengan fitur unggulan lainnya, salah satunya adalah adanya fitur paradigma object oriented programming. C/C++ merupakan bahasa pemrograman yang sudah dikenal dari 20 dekade lebih untuk pengembangan aplikasi di UNIX, dan aplikasi lainnya. Namun bagi beberapa mahasiswa jurusan IT di Indonesia khususnya, bahasa C/C++ merupakan sebuah bahasa yang agak dijauhi dan menakutkan oleh mahasiswa jurusan IT pada umumnya.
C/C++ merupakan bahasa pemrograman yang biasanya digunakan sebagai pengantar di mata kuliah algoritma dan pemrograman, struktur data, dan teknik kompilasi. Mahasiswa cenderung beralih ke bahasa pemrograman lain karena menganggap bahasa C/C++ adalah bahasa yang hanya digunakan untuk kuliah saja. Tapi tahukah bahwa C/C++ tidak hanya sebatas untuk kuliah? Berikut ini adalah beberapa penggunaan bahasa pemrograman C/C++ yang tidak hanya terbatas untuk kuliah saja.

1. Mempelajari Kernel dari Sistem Operasi

Kernel Linux, Windows, dan OSX dibangun menggunakan C/C++. Kernel merupakan kumpulan system libraries, system calls, hardware driver, compiler, dan beberapa aplikasi untuk user. Kernel merupakan program komputer yang mengelola input/output antara hardware dengan aplikasi yang dibangun oleh seorang programmer. Kernel menerjemahkan instruksi dari aplikasi menjadi instruksi yang akan dieksekusi oleh CPU dan hardware lainnya. Kernel memiliki tempat yang sangat terproteksi di memory. Kernel melakukan tugas seperti mengeksekusi proses dan menanganti interrupts. Pemisahan ini dilakukan agar user Tidak mengganggu sistem dengan menggunakan program miliknya. Berbekal dengan kemampuan C/C++, Anda dapat mempelajari XNU (https://github.com/opensource-apple/xnu) dan Linux (https://www.kernel.org/). Keduanya merupakan kernel yang bersifat open source.

2. Membangun aplikasi desktop

Membuat aplikasi desktop merupakan salah satu ranah yang digeluti oleh pengembang perangkat lunak. Dengan menggunakan C/C++, kamu dapat membuat berbagai aplikasi mulai dari sederhana hingga kompleks dengan memanfaatkan GUI library yang disediakan oleh sistem operasi yang kamu gunakan. Jika menggunakan Windows, kamu dapat menggunakan GUI library Windows Form. Jika menggunakan OSX, kamu dapat menggunakan GUI library Cocoa. Sedangkan di Linux dan Unix, kamu dapat menggunakan GTK. Tidak hanya terpaku pada GUI library yang terikat pada suatu sistem operasi, dengan C++ kamu juga dapat menggunakan GUI library yang bersifat cross-platform seperti WxWidget, Qt, FLTK, dan IUP.

3. Membuat aplikasi mikrokontroler

C/C++ sudah lama digunakan untuk pengembangan aplikasi mikrokontroler. Salah satu teknologi yang paling banyak digunakan adalah CodeAVR yang merupakan IDE untuk mengembangkan aplikasi mikrokontroler di chip AtMega. Mikrokontroler sangat luas, mulai dari membangun perangkat elektronik, robotik, hingga internet of things dapat kamu jelajahi untuk membangun perangkat yang kamu rancang. C/C++ ini umumnya menjadi partner utama para pengembang robot.

4. Ikut mengembangkan teknologi open source

Tak dapat dipungkiri bahwa C/C++ sudah turut andil dalam pembangunan berbagai aplikasi open source di dunia. Mulai dari kernel sistem operasi hingga bahasa pemrograman dibangun diatasnya. Tentu saja karena mereka open source, kamu dapat berkontribusi untuk ikut menyumbang fitur yang kamu inginkan atau memperbaiki kode program sesuai dengan guideline yang mereka miliki. Contoh teknologi open source yang populer adalah NodeJS, dimana banyak kontributor yang ikut mengembangkan NodeJS dengan mengandalkan C/C++. Di Indonesia, ada juga bahasa pemrograman BAIK yang siap menanti kontributor dan peninjau proyek untuk mengembangkan bahasa BAIK menggunakan C/C++.

5. Membuat atau mempelajari bahasa pemrograman dengan C/C++

Dengan berbekal teknik kompilasi dan automata, mungkin kamu dapat memulai bereksperimen untuk membuat bahasa pemrograman sendiri dengan menggunakan bahasa C/C++. Mengapa tidak? Karena bahasa pemrograman yang ada seperti PHP, Python, NodeJS, Ruby, dan lainnya menggunakan bahasa C/C++ untuk menyusun perintah, keyword, aturan sintaks, libraries, lexer dan parser. Bahasa pemrograman BAIK yang dikembangkan Pak Haris Hasanudin pun menggunakan C/C++ untuk membangunnya. Umumnya bahasa pemrograman memiliki untuk menjalankan instruksi dari bahasa pemrograman. Sebagai contoh, kamu dapat melihat bagaimana bahasa C/C++ digunakan untuk menjalankan program yang ditulis menggunakan BAIK di source code BAIK di SourceForge

6. Membuat library untuk bahasa pemrograman lain

Tidaklah mengherankan apabila C/C++ digunakan untuk membangun library bagi bahasa C/C++. Ternyata eh ternyata bahasa pemrograman yang populer seperti Ruby, Java, Python, dan PHP mengizinkan kita untuk membangun library dalam bahasa C/C++ yang nantinya dapat diakses sebagaimana sintaks masing – masing bahasa pemrograman tersebut. Di Ruby, kamu dapat membuat library dengan menggunakan standard RubyGems. Di Java, kamu dapat membuat library dengan menggunakan fitur Java Native Interface. Di PHP, kamu dapat menggunakan teknologi third party seperti PHP-CPP untuk membangun library PHP menggunakan C++. Di Python, kamu dapat mengikuti panduan membangun library Python dengan C/C++ di dokumentasi resmi Python.

7. Membuat aplikasi perangkat mobile

Ranah perangkat mobile merupakan salah satu ranah di teknologi informasi yang sangat berkembang cepat. Jarak rilis antar pembaharuan sistem operasinya pun sangat dekat. Beberapa sistem operasi perangkat mobile yang populer antara lain Windows Phone 8, Android, TizenOS, SailfishOS, Ubuntu Touch, PalmOS dan iOS. Seperti yang kita tahu, bahasa pemrograman yang umum digunakan di TizenOS, iOS, Sailfish OS dan PalmOS adalah C++, berbeda dengan Windows Phone 8 yang umum menggunakan C#, Android yang umum menggunakan Java, dan Ubuntu Touch yang umum menggunakan QML. Windows Phone 8 mengizinkan kamu untuk membangun aplikasi mobile di platform tersebut menggunakan Visual C++. Android mengizinkan kamu untuk membangun aplikasi dengan C++ yang dibantu dengan menggunakan Native Development Kit. Sedangkan Ubuntu Touch mengizinkan kamu untuk membangun ekstensi QML menggunakan C++ yang dipadu dengan Qt Library. Untuk iOS sendiri Objective-C lebih banyak digunakan untuk pengembangan aplikasi mobile di platform tersebut.

8. Membuat Game

Membuat game, salah satu hal yang paling menarik di antara pengembangan perangkat lunak lainnya. Untuk mengembangkan game Anda membutuhkan aset berupa suara, gambar, platform, dan tentu saja kode program yang berisi logika game. C++ sudah akrab di mata para pengembang game mulai dari pengembang game Nintendo, PlayStation, GameBoy Advance, dan konsol lainnya. Pada saat itu memang tidak banyak pengembang game yang dapat dengan mudah mendapatkan SDK untuk membangun game di platform tersebut. Tapi kini sudah banyak tersedia game engine seperti Marmalade, Panda3D, dan Cocos2D yang dapat kamu gunakan untuk mengembangkan game dengan menggunakan C++. Misal saja dengan Panda3D, kamu dapat membangun game 3D yang dapat dipasang di banyak sistem operasi, atau juga dapat membangun game untuk Android/Windows Phone/iOS dengan menggunakan Cocos2D.

Alasan Mengapa Framework Adalah Bahasa Pemrograman Baru

07.48 Posted by Unknown No comments

Perdebatan bahasa pemrograman favorit antar programmer adalah hal yang biasa terjadi ketika kita berada di kampus jurusan komputer atau start up dan cara mereka membela bahasa pemrograman favorit mereka pun beraneka ragam. Ada yang membahas sintaks yang lebih sederhana, ada yang membahas library yang dimiliki lebih melimpah dan ada juga yang membahas bahasa pemrograman tersebut lebih laku di dunia kerja.
Namun perdebatan antar programmer sekarang sudah bergeser kepada framework apa yang digunakan. Framework menjadi perdebatan antar programmer ketika menghadapi proyek pengembangan software. Contohnya ketika ada proyek sistem informasi berbasis web, maka pertimbangan programmer ada pada framework apa yang digunakan, bukan lagi bahasa pemrograman, misalnya Laravel, Zend, CodeIgniter, Ruby on Rails, Django dan lain-lain –meskipun pada beberapa kasus (mungkin banyak kasus) biasanya framework yang dipertimbangkan mengacu pada bahasa pemrograman apa yang dikuasai oleh programmer yang akan mengerjakan proyek tersebut. Tapi dalam hal ini, framework seolah-olah sudah seperti “bahasa pemrograman” baru. Berikut beberapa alasan mengapa saya katakan framework sudah seperti “bahasa pemrograman” baru.

Bahasa pemrograman sudah diringkas menjadi API

Kebanyakan bahasa pemrograman sudah diringkas menjadi API. Dan berbagai masalah API bisa ditangani dengan compiler dan garbage collector termutakhir. Otomasi sudah mulai menggantikan trik coding konvensional seperti pointer juggling, bit-banging dan smart coding. Kita cukup menjalankan pipelining antar API untuk menghasilkan output yang kita inginkan.
Hal terpenting yang harus dipahami adalah bagaimana API tersebut bekerja dan bagaimana kita mengambil manfaat dari kelebihan API tersebut. Struktur data seperti apa yang diterima API tersebut? Bagaimana algoritma didalamnya berjalan ketika ukuran data mulai membesar? Hal-hal semacam inilah yang mestinya lebih diutamakan untuk dibahas. Selain itu, kini sudah banyak kakas yang bisa kita manfaatkan untuk memanggil suatu rutin dari suatu bahasa untuk digunakan di bahasa pemrograman yang lain, seperti memanggil library C ke dalam bahasa Java. Hal tersebut mestinya bisa lebih efektif dibanding bila kita mempelajari bahasa pemrograman baru dan mengkonversi libary bahasa pemrograman tersebut ke dalam bahasa pemrograman yang kita gunakan.

Framework adalah kerja keras programmer

Memanfaatkan framework sama halnya dengan menghargai kerja keras programmer terdahulu. Tapi lebih penting dari itu, menggunakan framework berarti memangkas waktu dan tenaga kita untuk hal-hal dasar yang sudah dilakukan oleh programmer terdahulu. Kita bisa saja membuat sebuah aplikasi dari nol, membuat semua fungsi sendiri. Tapi apakah kode yang kita buat sudah lebih optimal dibanding kode yang sudah dibuat orang lain, dan terlebih lagi, apakah itu sebanding dengan waktu yang kita keluarkan? Kita mungkin tidak suka arsitektur yang mereka pilih, tapi akan jauh lebih efisien bila kita berdamai dengan perbedaan tersebut dan cukup ikuti gaya aturan API mereka bila memang hal tersebut menjawab persoalan kita.

Dominasi Algoritma

Berbagai algoritma kini sudah diringkas dalam API framework. Bila kita membuat sendiri suatu algoritma satu per satu sebenarnya hanya memperlambat pengembangan project kita. Mengapa? Karena waktu kita akan terbuang untuk memahami dan menerapkan algoritma dan struktur data tertentu dibanding bila kita menggunakan apa yang sudah tersedia dalam framework, terkecuali bila memang tujuan Kamu adalah memperdalam ilmu. Cara paling efisien dalam proses produksi adalah dengan mengoptimalkan penggunaan API framework. Framework sudah diuji bertahun-tahun dan dikembangkan oleh banyak kontributor sehingga programmer boleh sedikit merasa aman terkait reliabilitas API.

IDE adalah asisten

Banyak programmer yang masih menggunakan text editor. Hal itu tidak salah. Namun bila pengembangan project kita ingin lebih cepat maka gunakanlah IDE. Dengan IDE, tak peduli kita salah meletakkan posisi titik koma dimanapun. IDE akan memberi arahan dan menjelaskan error yang kadangkala luput dari pandangan bila dideteksi dengan cara manual. Selain itu biasanya IDE juga sudah mendukung fitur autocomplete atau code snippets, baik untuk API dari bahasa pemrograman dasar maupun dari framework yang kita gunakan. Menggunakan IDE akan membantu kita bekerja lebih efisien.

Drag and Drop mulai menggantikan sintaks

Framework pengembangan software dengan cara drag and drop sudah mulai bermunculan. Sintaks-sintaks pun mulai disembunyikan dengan bentuk yang lebih mudah dipahami sehingga bahasa pemrograman pun tak diperdebatkan. Contoh nyata adalah GUI Builder dan AndroidBuilder. Kita dapat mengembangkan software dan game hanya dengan drag n drop dari object fungsi yang diinginkan.

Code is law

Larry Lessig, salah satu profesor hukum Harvard mengatakan, “Code is Law.” Seperti kita lihat, bahasa pemrograman bersifat agnostik. Maksudnya ia dibuat dan diatur seperti apa yang si pembuat inginkan, sehingga bahasa pemrograman dapat mengerjakan apapun yang dituliskan oleh programmer. Tentu saja dengan aturan penulisan tertentu sesuai dengan bahasa pemrograman tersebut. Tapi kita dapat yakin bahwa setiap kode yang kita tulis akan selalu menghasilkan keluaran yang tepat seperti yang kita inginkan. Bila tidak, itu artinya kode kita tidak sesuai dengan aturan.
Tapi terkadang di luar hal sintaks, kita memang perlu menambahkan sedikit pengecekan di sana-sini untuk meminimalisir munculnya pesan kesalahan. Hal ini masih diperlukan karena program yang kita buat nantinya akan digunakan oleh pengguna dengan beragam variabel kondisi seperti sistem operasi yang digunakan, pada device apa ia dijalankan, dan sebagainya. Nah, dalam hal ini framework ibarat kitab undang-undang, kumpulan aturan-aturan yang bisa kita aplikasikan sehingga kode yang kita buat lebih efisien dan bebas kesalahan. Framework sudah menyelesaikan kebutuhan dasar seperti hal tersebut sehingga kita hanya perlu ‘patuh’ pada aturan framework dan biarkan framework yang mengurusi sisanya.

Itulah mengapa saat ini framework sudah seperti sebuah bahasa pemrograman baru. Sehingga terkadang dalam beberapa kasus, kita bisa menemukan bahwa ada orang yang mampu menguasai framework tertentu, sebut saja CodeIgniter atau Laravel, namun tidak mengerti secara fasih bahasa pemrograman PHP, yang notabene menjadi pondasinya. Hal itu dikarenakan keduanya memiliki aturan-aturan tertentu dalam penggunaannya, yang terkadang bisa dipelajari secara terpisah. Seolah seperti mempelajari bahasa pemrograman baru.

10 Tipe Developer Berdasarkan Google

07.46 Posted by Unknown No comments
Google merupakan sebuah perusahaan yang awalnya hanya bergerak di ranah mesin pencarian website, namun seiring perkembangannya, Google tumbuh menjadi perusahaan yang bergerak di bidang teknologi informasi dengan mengandalkan kecerdasan buatan dan data mining yang membuat bisnisnya semakin maju. Tidak hanya itu perusahaan yang dulunya suka ngasih gratisan ini, kini punya berbagai layanan eksklusif bagi enterprise untuk mendapatkan dukungan Google dalam proses bisnis konsumenya.
Google sendiri tidak hanya mempengaruhi kehidupan orang – orang pada umumnya. Para IT developer pun ikut terkena imbasnya dengan kehadirannya. Rekomendasi hasil pencarian terbaik yang diberikan Google mampu mengubah beberapa kebiasaan developer dalam belajar, dan kehadiran teknologinya mampu mengajak orang untuk bergabung dengan Google. Oleh karena itu mari kita simak 10 tipe developer yang berhubungan dengan Google :D.

1. Ga mau Googling

Nah developer ini biasanya emang baru belajar pertama kali. Biasanya ketika ada problem selalu melempar pertanyaannya langsung kepada yang lebih ahli baik di forum ataupun secara langsung. Karena seringnya menanyakan pertanyaan yang sudah biasa ditanyakan tanpa Googling dulu, alhasil bukannya dapat jawaban yang pas malah kadang kena Bully dari anggota yang lainnya. Biasanya tipe developer yang ga mau Googling akan mendapatkan jawaban: “coba gooling”, “udah googling aja”, “biasain googling”, dan lain – lain.
Ada aja alasannya mulai dari ga punya akses internet di luar website yang digratiskan, ga bisa bahasa inggris, ga tahu keywordnya, sampai bilang males. Aduhai sekali teman, hidup itu perlu usaha dan pengorbanan. Dan pertanyaannya pun tidak lebih dari “Apa sih Linux?”, “Gan minta contoh tutorial bahasa pemrograman PHP dong”, “cara membuat SQL itu gimana sih gan”.
Buat kamu yang ada di tipe pertama ini :3, semangat terus yah belajarnya. Cobain untuk googling masalah kamu dulu yah :D.

2. Suka nyuruh Googling

Biasanya developer seperti ini yang sudah malang melintang di dunia IT. Para pemula atau developer level apapun yang menanyakan pertanyaan biasa aja, akan disuruh googling langsung. Memang benar hanya dengan googling saja kita dapat melihat jawaban lengkap dari pertanyaan biasa saja tersebut. Tapi beda bila pertanyaannya memang unik dan belum pernah ditemukan sebelumnya dari orang yang ditanyakan, pasti dia pun akan menjawab pertanyaan dan mengajak kita diskusi, walaupun tidak lama kemudian akan menyuruh googling lagi. Namun ada juga developer yang belum punya kesempatan untuk menjawab karena mungkin sedang sibuk atau ada kerjaan lain yang lebih diprioritaskan akhirnya nyuruh googling juga.
Buat kamu yang suka disuruh googling, jangan menyerah karena ga dijawab yah :D. Ayo mari kita googling.

3. Suka Googling sendiri

Nah tipe developer seperti ini biasanya merupakan tipe developer yang efektif dan efisien, karena problem yang dia temukan dihadapi dulu sendiri dengan mencari jawaban di Google, kemudian mengumpulkan hasil pencarian dan membaca hasil pencarian untuk memecahkan masalah yang dihadapinya. Developer seperti ini akan menjadi developer yang akan selalu mencari jawaban dari sebuah pertanyaan yang sudah umum, misal “cara konfigurasi web server …. “, “cara membuat web dengan python…”, “cara mengirim e-mail dengan node.js”, dan lain – lain.
Kadang bila ada sebuah obrolan yang terdengar olehnya, ketika temannya lagi ngobrolin Angular.js atau Dart, maka dia tidak akan tinggal diam dan langsung googling kedua kata tersebut dan membaca pengenalannya. Sehingga dia dapat informasi baru apa yang diobrolin temannya, dan menjadi lebih nyambung kalau nanti ada obrolan serupa.
Yah memang saat ini untuk nyambung dalam sebuah obrolan developer kita harus rajin mencari apa yang kita belum tahu tanpa harus menanyakannya dulu. Tapi hati – hati juga jangan sampai setiap hal yang diobrolakan teman developer kita, dicari terus. Entar malah kebanjiran informasi yang akan membuat kita tidak fokus dalam ngulik sesuatu.

4. Tukang ngulik Android

Selain terkenal dengan mesin pencariannya, salah satu teknologi yang tidak asing di mata developer atau user adalah Android. Sistem operasi untuk smartphone berbasis Linux yang diciptakan Andy Rubin ini mampu menciptakan gelombang baru dalam pengembangan aplikasi perangkat mobile. Sebagai sistem oeprasi mobile yang bersifat open source, sistem operasinya banyak dimodifikasi oleh vendor teknologi mobile seperti Samsung, ASUS, Huawei, Sony, Motorola, dan lainnya. Android sendiri dikembangkan untuk membangun berbagai perangkat tidak hanya di smartphone dan tablet saja, sekarang Android sudah mulai digunakan untuk mengembangkan appliance seperti IP TV, netbook, dashboard mobil, dan digital signage.
Dengan kehadiran berbagai perangkat berbasis Android tersebut, para developer sudah banyak yang terjun dalam pengembangan aplikasi untuk Android. Para developer sudah tidak asing dengan Android Development Tools yang suka nge-hang di laptop mereka, kehadiran Android Studio dengan Gradle yang cukup asing karena konsep pengembangan aplikasi jadi berbeda, tidak aneh jika emulator Android malah menjadi awal dari proposal pengadaan laptop baru, dan menerbitkan aplikasi mereka di Google Play untuk meraup rezeki dari aplikasi yang mereka kembangkan.
Selain menggunakan teknologi native dengan Java atau NDK, para developer Android pun ada yang mencoba mengembangkan aplikasi hybrid dengan paduan teknologi web (HTML, CSS, dan Javascript) dan native menggunakan sebuah alat yang dinamakan PhoneGap. Dan salah satu tantangan terbesar para developer Android adalah adanya fragmentasi versi Android yang sangat beragam.

5. Antusias dengan teknologi Google

Google dengan teknologinya yang beragam, berhasil menggaet para developer untuk menggunakan teknologinya. Misal siapa sih yang ga kenal dengan Google Maps, banyak yang menggunakan teknologi tersebut dan menempelkan kode Javascript untuk menampilkan suatu lokasi di website yang mereka kembangkan. Bahkan ada pula yang membangun sistem informasi geografis dengan mengandalkan Google Maps. Tidak hanya itu developer Android pun ada yang menggunakan sebuah teknologi push notification yang dirilis Google.
Seiring perkembangannya Google pun berhasil mewadahi developer dan penelitinya dengan menciptakan sebuah framework untu Javascript yaitu Angular.js, dan dua bahasa pemrograman baru yaitu Go dan Dart. Angular.js sendiri punya slogan The Superhero Framework, yang dirilis oleh Google untuk membantu web developer dalam membangun single page application. Lalu ada juga orang yang rela pindah dari bahasa pemrograman yang biasa di gunakan untuk menggunakan Go di kesehariannya baik untuk ngulik ataupun kerjaan. Mereka yang menggunakan Go berpendapat bahwa Go memiliki kecepatan yang tinggi saat proses kompilasi dan memiliki dukungan concurrency yang sangat memukau. Lalu ada Dart yang diklaim sebagai superset dari Javascript, web developer dapat menggunakan sintaks – sintaks mirip Java tapi untuk membangun kode Javascript. Seperti kita tahu di Javascript tidak ada keyword seperti class, fitur static type, dan modifier seperti private atau protected. Itulah kenapa Dart hadir dan menjadi salah satu hal yang sedang menjadi daya tarik Google yang terbaru.
hanya untuk mengikuti konferensi yang diselenggarakan Google atau yang melibatkan Google.

6. Punya kemampuan googling khusus

Tidak semua developer mempunyai keahlian khusus dalam Googling, hanya beberapa diantaranya yang niat mencari berbagai perintah khusus untuk melakukan Googling yang lebih efektif. Misal saja, seorang developer ingin mencari jurnal internasional tentang kecerdasan buatan maka dia akan melakukan pencarian dengan mengetikkan kata kunci “artificial intelligence international journal filetype:pdf” atau “artificial intelligence proceeding filetype:pdf”. Wah apa itu filetype:pdf? Google akan melakukan pencarian dengan kata kunci yang diberikan dan akan memberikan hasil pencarian berupa tautan yang langsung menuju file PDF tanpa tercampur dengan tautan halaman web atau format file lain.
Bedanya dengan developer yang belum mengenal teknik googling, pasti tidak akan pernah mengetikkan filetype:pdf atau perintah khusus lainnya. Alhasil waktu pencarian pun habis karena developer tersebut nyangkut di halaman web yang diklik dari hasil pencariannya, niat ingin mencari jurnal internasional malah baca artikel lain.

7. Menggunakan layanan gratis Google

Nah kalau developer yang ini biasanya lebih memilih layanan gratis Google karena sudah terbiasa atau belum kenal dengan layanan dari kompetitornya. Misalnya ketika ingin mengintegrasikan peta online ke dalam aplikasi yang dikembangkannya, Google Maps menjadi pilihan utama dibandingkan penyedia peta online lainnya. Ketika mengembangkan aplikasi web pun lebih memilih Google Chrome karena butuh Postman dan extension lainnya. Bahkan ada beberapa developer yang memilih Google Chrome karena memiliki sentimen terhadap penyedia lainnya. Google Hangout, Docs, dan Gmail pun menjadi alat yang tidak lepas untuk menunjang pengembangan aplikasi serta kolaborasi antar tim. Tidak lupa dengan adanya portal Google Developer, mencari referensi untuk pengembangan aplikasi pun lebih mudah karena dokumentasi yang disediakan Google sangat memukau.

8. Kepo dengan perkembangan Google

Tidak hanya soal teknologi saya yang menjadi perhatian para developer, berita soal saham Google, keterlibatan kedua founder Google, arsitektur kantornya yang unik, hingga gosip kedua founder Google pun tak luput menjadi perhatian para developer. Walaupun diluar konteks, informasi – informasi ini menambah keunikan Google bagi para developer. Tentu saja tidak aneh bila kita melihat artikel “Siapakah orang terkaya di dunia ini”, “Siapakah orang terkaya di bidang IT”, “Perusahaan IT apakah yang paling maju”, pasti jawabannya akan ada Google di artikel tersebut.
Sistem kerja di Google pun menjadi perhatian para developer luar yang ingin bekerja ataupun magang di Google. Karena suasananya yang tampak sangat menyenangkan, tak heran bila Google memiliki developerdeveloper hebat yang membuat bisnis mereka semakin maju. Dan tak luput pula acara – acara yang diusung Google seperti Google I/O menjadi konsumsi bagi beberapa developer yang menaruh perhatian terhadap Google. Bahkan ada yang rela jauh – jauh dari Asia ke Amerika Serikat

9. Menjadi komunitas Google

Wah kalau developer yang satu ini selain sering menggunakan teknologi dari Google, mereka aktif juga menjadi penyambung lidah Google kepada komunitas di negaranya. Sebut saja Google Developer Group Indonesia yang pernah mengadakan mini-conference di Bandung dan kota lainnya. Mereka biasanya beranggotakan perorangan, komunitas, dan perusahaan. Selain menyampaikan apa saja yang mereka bangun dengan teknologi Google, mereka pun memberikan informasi seputar Google bagi komunitas lainnya.
Selain itu ada juga Google Student Ambassador yang beranggotakan mahasiswa. Tentu saja mereka menjadi duta dari misi penyebaran teknologi Google yang memang diperuntukkan bagi khalayak ramai. Mereka tidak hanya berisi developer, mahasiswa dengan latar belakang bukan developer pun ikut gabung karena mempunyai ketertarikan terhadap misi dan produk Google.
Dengan hadirnya komunitas Google ini, tidak akan aneh bila kita akan menjumpai acara yang di-extend dari acara pusatnya. Misal kita akan menemukan Google I/O Extended di berbagai kota di Indonesia.

10. Menjadi karyawan Google

Mungkin sebuah kesempatan yang sangat beruntung bila dapat bekerja di Google. Tak hanya mengetahui perkembangan teknologi Google dari dekat, mungkin developer yang satu ini akan terjun langsung dalam pengembangan teknologi tersebut. Bila mempunyai kemampuan yang sesuai, developer ini mungkin dapat terlibat langsung dalam pengembangan Google Chrome, Android, Google Maps, dan produk lainnya. Tak pelak para karyawan Google ini pun sering manggung menjadi pemateri di berbagai konferensi internasional.
Selain menjadi karyawan, bagi yang sedang kuliah magister atau doktoral pun dapat mengajukan proposal ke Google untuk melakukan penelitian disana. Dengan adanya infrastruktur dan teknologi Google, para mahasiswa tingkat lanjut tersebut dapat melakukan penelitian dengan lebih mumpuni. Google tidak hanya bergerak dalam bisnis teknologi informasi saja, mereka pun aktif dalam melakukan riset dan mempublikasinnya di Google Research. Di satu sisi, mereka maju dengan bisnis mereka. Bersama para karyawan dan mahasiswa tingkat lanjut mereka meningkatkan ilmu pengetahuan dengan melakukan penelitian. Mungkin Google bukanlah sebuah perusahaan tapi bisa dikatakan sebagai Perguruan Tinggi juga :D.

Berbagai Tipe Programmer Berdasarkan Framework

03.25 Posted by Unknown No comments
Programmer, bukan program manager sebuah acara reality show di televisi swasta ataupun sebuah acara joged joged gak jelas, melainkan seseorang yang mempunyai keterampilan dan keahlian dalam menuangkan algoritma dan bisnis proses ke sebuah kode program yang ditulis kedalam bahasa pemrograman tertentu untuk menjadi sebuah aplikasi yang dapat menyelesaikan kebutuhan penggunanya. Tentu saja programmer membutuhkan bahasa pemrograman untuk membangun aplikasi yang akan mereka kembangkan, namun beberapa dari mereka ada juga yang menggunakan framework open source untuk membantu pengembangan aplikasi mereka dibanding membangun aplikasi dari awal.
Salah satu hal yang paling mencolok kenapa programmer menggunakan framework adalah agar tercipta standard pengembangan aplikasi yang dapat diadaptasi oleh programmer lain dalam satu tim. Selain itu biasanya framework sudah dilengkap berbagai library siap pakai yang tak perlu kita buat lagi dari awal. Misalnya library untuk membuat form, memvalidasi form, akses dan manipulasi ke database, dan lainnya.
Dengan hadirnya framework open source penggunanya pun sangat banyak dan beragam dari berbagai latar belakang. Ada yang cuma hobi sampai seorang profesional. Ada yang masih sekolah sampai sudah berpendidikan tinggi. Keberagaman tersebut memunculkan berbagai tipe orang alias programmer sesuai keseharian mereka terhadap framework tersebut. Tak jarang tipe – tipe programmer yang akan diceritakan di tulisan ini, pasti sering kita temui di forum atau group Facebook terkait.
Saling membantu, berbagi, dan mengejek pun bukan barang aneh ketika seseorang bertanya di suatu forum. Namun itulah indahnya kehidupan. Dengan berbagai tingkah unik mereka, dunia pemrograman pun semakin menjadi seru dan greget yang menciptakan suasana menjadi lebih dinamis. Berikut ini adalah beberapa programmer berdasarkan tingkah mereka terhadap suatu framework open source.

1. Programmer yang Hanya Menggunakan

Tentu saja programmer yang satu ini merupakan paling umum. Programmer yang satu ini sudah mencoba daripada hanya sekedar membicarakan saja suatu framework atau hanya menyebar sentimen negatif suatu framework. Framework yang dipilihnya digunakan untuk mulai dari proyek pribadi, hobi, hingga proyek resminya. Selalu mempertimbangkan pembaharuan framework jika ada update dan tidak terlalu mengikuti isu pengembangan hingga tingkat source code. Baginya yang penting framework tersebut membantunya dalam mempermudah proyeknya. Biasanya programmer yang satu ini akan menanyakan pertanyaan yang memang sudah dihadapi terlebih dahulu, ketimbang menanyakan pertanyaan yang kasusnya belum pernah dihadapi. Sesekali ikut mempromosikan framework yang dia gunakan walaupun hanya person to person.

2. Programmer yang Rajin Membaca Dokumentasi Framework

Tipe programmer ini merupakan tipe lanjutan dari tipe pertama. Mereka yang rajin membaca dokumentasi akan sangat jarang bertanya hal – hal yang sudah dijelaskan di dokumentasi. Tanpa mendahulukan bertanya, dokumentasi framework yang dipilihnya akan selalu menjadi sumber jawaban utama yang dia baca. Biasanya jika membaca dokumentasi framework dengan teliti, maka dia akan menemukan jawaban. Atau bila kurang lengkap, programmer tersebut akan mencari tambahan jawaban dengan searching terlebih dahulu menggunakan mesin pencari dan terdampar di blog atau website yang menjelaskan framework yang dipilihnya.
Sekalipun dia bertanya, pasti akan bertanya hal yang tidak terdapat di dokumentasi ataupun belum ada yang membahasnya. Sehingga diskusi pun akan menjadi seru karena bisa jadi pertanyaannya tersebut menjadi issue baru bagi pengembangan framework. Tipe ini biasanya sangat mudah untuk menggunakan framework lain dari biasanya, jika harus menghadapi proyek yang membutuhkan framework diluar pilihannya. Selama ada dokumentasi, pengembangan pun akan tetap berjalan.

3. Programmer yang Malas Membaca Dokumentasi Framework

Tipe programmer ini merupakan tipe lanjutan dari tipe pertama namun kontradiksi dari tipe kedua. Biasanya kebiasaan malas membaca ini terdapat di newbie yang baru belajar framework yang dipilihnya. Tak jarang bila kita sering melihat pertanyaan remeh yang sebenarnya jawabannya sudah sering didapat dan terpampang jelas di dokumentasi. Biasanya programmer ini akan diarahkan untuk membiasakan membaca dokumentasi sebelum bertanya selain mendapatkan jawaban langsung dari para master yang sudah lebih dulu menguasai framework yang kebetulan sama dengan pilihannya.
Jika sering bertanya tanpa membaca dokumentasi, biasanya akan ada master yang malah akan memberikan sedikit “ketegasan” agar selalu membaca dokumentasi. Memang masalah ini terkendala oleh bahasa Inggris yang menjadi bahasa utama dalam penulisan dokumentasi framework. Jadi tipe programmer ini pun harus diberikan bimbingan dalam mempelajari bahasa Inggris. Namun sekalipun newbie, apabila memiliki kebiasaan membaca seperti tipe kedua, untuk berpindah – pindah framework pun bukan masalah besar yang memakan waktu lama.

4. Programmer yang Suka Ngeluh dengan Fitur dari Sebuah Framework

Suka ngeluh kalau framework yang dipilihnya atau dipilih orang lain mempunyai banyak kekurangan. Padahal bikin karya pakai framework itu pun belum pernah. Ada juga yang sudah menggunakan framework yang dipilihnya tapi ada bagian yang gak suka dengan framework tersebut. Itulah tugasnya programmer ketika menggunakan framework lebih baik ikut berkontribusi untuk mengembangkan framework yang dipilihnya menjadi lebih baik. Karena dengan ngeluh saja, apa yang diinginkan tidak akan muncul begitu saja. Di forum bukan hal aneh kalau suka bikin posting “Kenapa sih masih banyak yang menggunakan framework ini?”, “Kenapa sih ga pada move on ke framework yang lagi mainstream?”. Dan pada akhirnya bila sudah berpengalaman tentu akan sangat jarang mengeluh di forum dan ikut berkontribusi.

5. Programmer yang Suka Ngebanding – Bandingin Framework

Bisa dibilang programmer yang satu ini merupakan lanjutan dari tipe pertama. Dengan modal nekat, biasanya ada programmer yang akan posting, “mana sih yang lebih bagus, framework A atau B?”, “ternyata framework C lebih bagus lho dari A dan B”. Programmer seperti ini biasanya belum pernah mencoba sama sekali atau baru mencoba hanya permukaannya saja. Programmer yang berpengalaman dengan framework yang dipilihnya biasanya akan memaksimalkan penggunaannya, atau kalaupun menggunakan framework lain tentu dia akan lebih memilih diam dan tetap berkarya ketimbang membanding – bandingkan framework. Alhasil, ngebanding – bandingin framework sebenarnya tidak lebih bermanfaat dibandingkan membuat suatu karya. Ayo kita membuat karya :D.

6. Programmer yang Kepo dengan Perkembangan Framework

Bisa jadi programmer yang satu ini adalah seorang jurnalis yang ditugaskan oleh kantornya untuk menulis artikel tentang framework yang dikepoinnya. Atau seorang fans berat dari framework tersebut. Dia kepoin itu framework mulai dari perubahan yang terdapat di changelog, ngintip – ngintip versi alpha dan beta, mencari informasi seputar pembuat framework-nya, sampai – sampai lihat perkembangannya dengan melihat issue yang ada di layanan Git yang digunakan pengembang framework. Tipe programmer ini akan selalu up to date dengan perkembangan framework yang dikepoinnya. Ibarat wota yang selalu kepo dengan oshimen-nya, programmer yang satu ini biasanya follow akun Twitter para developer dan akun – akun yang memiliki informasi terkait framework tersebut.

7. Programmer yang Memahami dan Menguasai Seluk Beluk Framework

Tipe ketujuh ini merupakan turunan dari tipe pertama, kedua, dan keenam. Dia tidak hanya menguasai di permukaan atas saja, sampai unit terdalam pun dia tahu cara kerjanya. Selain memahami dokumentasi, bagian dalam yang dikuasainya suka dimodifikasi juga untuk keperluan tingkat lanjut. Mulai dari sekadar mengubah informasi kesalahan validasi, hingga mengubah core dari framework tersebut dapat dilakukannya. Dia sangat jarang menjawab pertanyaan yang sudah sering ditanyakan atau yang dapat dijawab dengan dokumentasi, pertanyaan yang menggigitlah yang biasanya akan dijawab. Sedikit lagi tipe ketujuh dapat menjadi tipe kedelapan ataupun kesembilan.

8. Programmer yang Ikut Berkontribusi Mengembangkan Framework

Tipe kedelapan ini mungkin merupakan gabungan dari tipe pertama, kedua, keenam, dan ketujuh. Bagaimana tidak, dengan mengetahui setiap seluk beluk bagian framework, dia akan lebih mengerti ada kekurangan apa sajakah yang terdapat di framework pilihannya. Jika ada yang kurang, dia tidak akan mem-posting-nya di forum terbuka, tapi mengirimkan pesan langsung kepada pengembang framework untuk izin ikut kontribusi ataupun sekadar memberitahu. Bila ia belum siap menyumbang kode, meningkatkan dokumentasi pun bisa jadi salah satu pilihan yang dapat ditempunya untuk mengembangkan framework pilihannya. Tipe ini patut dicontoh oleh programmer lain demi kemajuan framework pilihannya.

9. Programmer yang Membuat Sebuah Karya dengan Framework

Tipe kesembilan ini, tipe yang talk less do more. Ketika orang lain memperdebatkan berbagai kekurangan framework pilihannya. Dia berusaha membuat karya yang tidak dibuat oleh orang lain yang berdebat. Dia juga berusaha membuat terobosan baru untuk memajukan komunitas dan negaranya. Ada yang membuat layanan cloud api, ada yang membuat website untuk menguji kemampuan pemrograman seseorang, ada yang membuat content management system, ada yang membuat perangkat pendukung IoT, ada yang membuat portal kelas online, dan masih banyak lagi.
Tidak hanya membuat sebuah produk skala besar, ada juga diantara mereka yang membuat library, plugin, atau generator untuk CRUD, Form, Model, dan tampilan. Umumnya mereka adalah orang yang sudah lama malang melintang, tapi orang yang baru terjun pun tidak sedikit ikut berkarya dengan framework pilihannya. Tipe ini bisa jadi referensi bagi orang – orang yang masih galau mau ngapain dengan framework pilihannya.

10. Programmer yang Membuat Framework

Yah ketika orang masih ribut – ribut soal framework mana yang lebih bagus dan ngejelek – jelekin framework lain. Ada beberapa programmer yang justru membuat framework-nya sendiri. Peruntukkannya pun bermacam – macam, ada untuk pengembangan aplikasi web, desktop, dan lainnya. Memang tipe kesepuluh ini biasanya adalah tipe yang sudah pernah menggunakan framework tertentu dan sudah pasti menguasainya. Kemudian mencoba fokus untuk mengembangkan framework-nya sendiri dalam memenuhi kebutuhan konsumen. Ada juga yang sebagian membuat framework-nya sendiri karena merasa tidak puas dengan framework yang sudah ada atau malah mengembangnkan dari yang sudah ada. Mereka yang berbicara seperti itu bukan anak kemarin sore, tapi sudah makan asam garam dengan dilengkapi berbagai pengetahuan, misalnya design pattern, object oriented analysis, dan harus juga menguasai bahasa pemrograman serta teknologi terkait yang dia pilih.
Sebagai contoh saja, Di Indonesia sendiri sudah ada beberapa framework yang dikembangkan oleh programmer Indonesia. Mereka adalah para profesional yang sudah cukup lama malang melintang di dunia pemrograman Indonesia.
  • FastPlaz, web framework untuk Pascal ini dikembangkan oleh Luri Darmwawan
  • Dee Framework, web framework untuk PHP ini dikembangkan oleh Misbahul D. Munir
  • EmeraldBox, web framework untuk Python yang dikembangkan diatas Flask dan Werkzeug ini digagas oleh Fauzan Emmerling
  • KokoroPy, web framework untuk Python yang dikembangkan diatas Bottle ini digagas oleh Go Fendi Asgard
  • IGNSDK, application framework untuk pengembangan aplikasi desktop Linux berbasis teknologi web ini dikembangkan oleh Ibnu Yahya dari IGOS Nusantara
  • Kecik, web framework untuk PHP berupa single file ini dikembangkan oleh Elsprananda Klan
  • Panada, web framework untuk PHP ini dikembangkan oleh Iskandar Soesman
  • Senthot, web framework untuk PHP ini dikembangkan oleh Senthot
Memang perlu waktu dan tenaga untuk menjadi tipe kesepuluh ini. Tapi Anda yang membaca tulisan ini pasti suatu saat ingin juga mengembangkan framework Anda sendiri untuk skala dunia :D. Ayo terus belajar dan berjuang.

Mencoba Banyak Bahasa Pemrograman atau Menguasai Beberapa Saja?

03.24 Posted by Unknown No comments

Pendahuluan

Dunia IT (information technology) merupakan sebuah ranah ilmu yang terlihat semacam satu kesatuan (asalkan bisa menggunakan komputer) bagi orang awam namun kenyataannya terdapat banyak sekali cabang ilmu yang tidak bisa kita ambil semuanya dalam waktu yang sebentar. Sebagai contoh kecil, di dunia IT sendiri terdapat fokus ilmu pada bidang teori komputasi, jaringan komputer, algoritma dan pemrograman, sistem informasi, kecerdasan buatan, dan masih banyak lagi bidang ilmu di dunia IT yang bahkan dalam kuliah pun hanya dibahas kulitnya saja.
Bagi seseorang yang baru mengenal dunia IT tentu punya ambisi untuk ingin menguasai segalanya. Mulai dari jaringan komputer hingga menguasai semua bahasa pemrograman. Sekarang kita akan ambil contoh kasus dalam konteks seseorang ingin menguasai bahasa pemrograman. Tentu bahasa pemrograman merupakan salah satu hal yang menarik bagi seseorang yang ingin menguasai dunia IT. Kenapa? ada banyak sekali bahasa pemrograman yang cukup membuat seseorang ingin menguasainya.
Bahasa pemrograman ini ada banyak sekali ragamnya. Dari segi sistem operasi ada yang hanya tersedia untuk Windows (C#, Visual Basic), ada yang hanya tersedia untuk OSX (Swift, Objective-C), ada yang hanya tersedia untuk Linux (BASH), dan ada juga yang tersedia untuk semuanya (Python, PHP, Javascript, C, C++). Dari segi perangkat ada yang hanya disediakan untuk komputer desktop, perangkat mobile, perangkat IoT, dan embedded machine. Dari sedikit aspek yang telah disebutkan, waktu yang dibutuhkan untuk semuanya tidak akan pernah cukup. Berikut ini adalah beberapa hal yang dapat Anda simak untuk memilih apakah harus mencoba banyak atau menguasai beberapa bagi Anda yang masih kuliah di jurusan IT atau baru mengenal dunia IT khususnya pemrograman.

Kuasai Saja Beberapa dan Fokus

Di kehidupan nyata mungkin ada seorang mahasiswa IT yang mencoba 10 bahasa pemrograman, ada yang mencoba menguasai 3 bahasa pemrograman untuk digunakan mengerjakan tugas kuliah yang diberikan dosennya, ada yang ingin memperdalam 1 bahasa pemrograman untuk hobi dan proyeknya. Tidak ada yang keliru dengan hal ini, namun dapat dipastikan seseorang yang mencoba menguasai bahasa pemrograman terlalu banyak belum pernah terlibat dalam proyek freelance ataupun membuat karya tertentu.
Berbeda dengan seorang mahasiswa yang fokus pada 3 bahasa pemrograman misalnya. Dia menggunakan 2 bahasa pemrograman untuk kuliah dan proyek pribadinya, satu lagi mungkin untuk hobinya. Jadi waktu yang diinvestasikan seorang penguasa 3 bahasa pemrograman tercurahkan untuk fokus pada pengembangan produk yang dibuatnya. Belum lagi timeframe yang dimiliki seorang mahasiswa hanya 4 ~ 7 tahun. Ketika lulus apakah perusahaan akan mencari seseorang yang menguasai banyak bahasa pemrograman namun tidak mendalam? atau seorang fresh graduate yang menguasai sedikit bahasa pemrograman namun lebih fokus dan menguasai satu saja bahasa pemrograman sampai topik spesifik? Akan semakin lebih baik apabila memiliki sebuah karya dalam bentuk aplikasi dengan menggunakan bahasa pemrograman yang dipilihnya.
Berikut ini adalah diagram sederhana yang dapat menunjukkan kenapa kita harus fokus pada bahasa pemrograman tertentu”
  • Anda tetap dalam kondisi labil hingga banyak sekali bahasa pemrograman yang Anda coba tapi tidak menguasai sampai hal dasar
    Belajar banyak bahasa pemrograman tapi hanya menguasai bagian umum
    Belajar banyak bahasa pemrograman tapi hanya menguasai bagian umum
  • Anda mulai mencoba fokus pada beberapa bahasa pemrograman saja sampai akhirnya Anda membuat sebuah karya dan produk
    Menguasai sedikit bahasa pemrograman dan mencoba lebih fokus
    Menguasai sedikit bahasa pemrograman dan mencoba lebih fokus
  • Anda menguasai satu saja tapi akhirnya ketika lulus sudah dapat dianggap sebagai orang yang piawai dalam bahasa pemrograman tersebut
    Mencoba fokus pada satu bahasa pemrograman sampai akhirnya mengerti betul seluk beluk bahasa pemrogramant ersebut
    Mencoba fokus pada satu bahasa pemrograman sampai akhirnya mengerti betul seluk beluk bahasa pemrogramant ersebut
Jadi sekarang Anda dapat memilih apakah ingin menguasai 10 bahasa pemrograman hanya kulitnya saja? atau menguasai sedikit atau satu bahasa pemrograman namun punya kompetensi dan kemampuan yang mendalam hingga ke bagian inti dari bahasa pemrograman tersebut. Pilihan tersebut akan selalu ada di tangan Anda.

Pelajari Hal Lain di Waktu yang Tepat

Misal Anda hanya ingin fokus pada PHP dan Javascript namun harus menguasai Visual Basic untuk memenuhi tugas kuliah desktop programming? atau harus menggunakan Matlab hanya untuk membuat skrip perhitungan matriks dan aljabar linier? tidak masalah, pelajari saja Visual Basic dan Matlab tersebut sampai tugas Anda benar – benar terpenuhi untuk mata kuliah tersebut. Setelah beres perkuliahan Anda dapat meninggalkan kedua bahasa pemrograman tersebut apabila memang tidak benar – benar dibutuhkan dan bukan menjadi fokus utama untuk kemampuan programming yang akan Anda kuasai.
Hal serupa pun dapat terjadi ketika Anda yang sudah biasa menggunakan suatu Relational Database, misalnya MySQL, namun diminta menggunakan Microsoft SQL Server untuk suatu proyek yang Anda dapatkan. Anda dapat mencoba untuk mulai mempelajarinya dan kuasai beberapa hal yang dapat menyokong pengerjaan Anda pada proyek tersebut. Bila ada orang lain yang lebih expert dalam tim Anda, tentu itu akan lebih membantu Anda karena tidak harus menguasai seluk beluk dari SQL Server tersebut. Tapi bila tidak ada lagi orang yang diamanahi, Anda dapat mulai mempelajarinya hanya untuk lingkup proyek tersebut.
Jadi menguasai hal baru diluar fokus yang Anda kejar, dapat Anda lakukan hanya di waktu yang tepat. Terlebih waktu yang Anda miliki pasti terbatas bila harus semua Anda coba dalam satu waktu.

Jangan Merasa Malu Karena Tidak Bisa Menguasai yang Orang Lain Kuasai

Ketika Anda melihat seorang teman yang piawai membuat game dengan menggunakan ActionScript 3.0, tentu Anda akan terpukau melihatnya bahkan sedikit tergiur untuk mencoba membuat game tersebut. Bila Anda memang ingin fokus di dunia game development, hal tersebut bisa menjadi sebuah jalan bagi karir Anda. Tapi bila hanya untuk hobi? itu juga tidak masalah, namun Anda tidak perlu merasa malu bila teman Anda dapat menguasai suatu hal yang tidak dapat Anda kuasai. Sejatinya manusia hidup dengan cara berkelompok dan kolaborasi. Suatu saat mungkin saja kemampuan Anda dan teman Anda dapat dibutuhkan dalam suatu proyek. Anda memperoleh bagian Anda, teman Anda memperoleh bagiannya sendiri.
Kadang ketertarikan untuk mengikuti seseorang tersebut terjadi karena kurangnya kepercayaan diri yang kita miliki. Ada kalanya apa yang kita pelajari terasa kurang menarik untuk saat ini ataupun di masa depan. Tapi tunggu dulu. Bila Anda hanya baru sebulan, 6 bulan, atau satu tahun mencoba. Tentu hasil yang diharapkan tidak akan dapat Anda peroleh begitu saja. Misal bila Anda adalah seorang web programmer bila hanya mencoba Javascript selama satu tahun, mungkin yang Anda kuasai baru dasarnya saja. Tapi bila Anda sudah terlibat dengan proyek dan konsisten mencoba Javascript selama lebih dari 1 ~ 2 tahun, bukan hal asing bila Anda akan sudah menguasai Ajax, Validasi Form, membuat komponen web sendiri, dan mungkin Anda membuat library Javascript untuk Anda sendiri.
Untuk menguasai kompetensi terdalam dalam suatu bahasa pemrograman, Anda tidak dapat melakukannya hanya dalam “satu hari” saja, Anda bukanlah Sangkuriang yang harus menyelesaikan sesuatu dalam satu malam, bahkan menurut legenda Sangkuriang pun tidak pernah menyelesaikan perahunya. Dalam suatu bahasa pemrograman selain ada bidang yang secara umum dapat dilakukan dengan bahasa pemrograman tersebut, ada juga bidang khusus yang tidak dapat dilakukan suatu bahasa pemrograman. Kita ambil contoh sebuah bahasa pemrograman seperti C, Javascript, dan Java.
Secara umum, kita dapat menggunakan ketiga bahasa pemrograman tersebut untuk keperluan belajar algoritma dan logika pemrograman. Tapi Anda dapat menemukan bidang spesifik yang hanya dapat dilakukan oleh salah satu bahasa pemrograman tersebut. Misalnya bahasa C sendiri merupakan bahasa pemrograman yang banyak digunakan di dunia mikrokontroler dan embedded system, bahkan C sendiri digunakan untuk membuat library bagi bahasa pemrograman lain. Tapi tentunya C belum pernah digunakan untuk manipulasi halaman web yang saat ini dikuasai oleh Javascript. Javascript digunakan untuk membuat konten web semakin menarik dan interaktif sehingga halaman HTML statis yang biasa tampil tak bergerak akhirnya memiliki animasi yang indah dan memberikan reaksi interaktif terhadap pengguna web. Begitupun Java, yang saat ini menguasai ranah mobile apps development khususnya di Android.
Jadi ketika Anda sedikit merasa malu bahwa Anda hanya bisa menguasai satu bahasa pemrograman, atau hanya beberapa saja. Tidak perlu ragu. Kuasailah bahasa pemrograman tersebut sampai ke akar – akarnya dan bidang khususnya. Sehingga setelah waktu yang Anda lalui cukup lama, Anda dapat menjadi ahli untuk bahasa pemrograman tersebut beserta bidang yang Anda geluti.

Penutup

Fenomena ini sangat menarik, karena selalu terjadi di setiap generasi dan pada semua orang yang baru saja mengenal dunia IT. Pada akhirnya seseorang akan melihat dan mengakui Anda sebagai seorang expert yang di bidangnya. Katakanlah bila Anda menguasai bahasa pemrograman PHP sampai bagian terdalam, orang akan memiliki kepercayaan lebih terhadap Anda dibandingkan Anda yang hanya menguasai bagian kulit dari banyak bahasa pemrograman yang Anda coba.
Tulisan ini sebagian besar didasari oleh pengalaman penulis sendiri dan beberapa teman penulis di dunia IT khususnya programming selama kuliah hingga sekarang bekerja. Tulisan ini bisa saja berbeda dengan kenyataan pembaca. Bila ada perkataan yang kurang berkenan sekiranya mohon maaf, karena kesempurnaan hanya milik Tuhan semata. Semoga bermanfaat.