Jangan Terus-Terusan Hanya Belajar Bahasa atau Framework

Perkembangan bahasa dan atau framework yang semakin buuaanyak variasinya (baca : brutal) bisa membuat jiwa kita sebagai pengoprek sejati menjadi penasaran untuk mempelajarinya. Hal ini bagus tetapi di lain sisi jika kita tidak fokus pada satu bahasa dan framework maka yang terjadi adalah kita tidak menguasai salah satunya secara dalam.

Hal ini saya rasakan sendiri #curhat. Jika kamu adalah pembaca blog saya dari jaman dulu maka kamu akan tahu bahwa saya sering menulis artikel di blog ini dengan berbagai topik bahasa pemrograman dan framework dari java, php, C#, ruby dan untuk framework dari spring, asp.net, asp.net mvc, codeigniter, laravel, nodejs, angularjs, ruby on rails.

Hasilnya adalah apakah saya menjadi master di semua teknologi yang saya sebutkan tadi? tidak. Bahkan menjadi master salah satunya pun belum 😀

Bagi saya pribadi idealnya untuk penguasaan dari segi bahasa dan framework, saya harus menjadi master di Ruby dan Ruby on Rails sedangkan untuk yang lainnya cukup mengerti. Cukup mengerti yang saya maksudkan adalah bisa mengerjakan soal-soal algoritma pemrograman seperti misalnya yang tersedia di hackerrank.com menggunakan bahasa-bahasa tersebut, bukan sampai tahap bisa membuat aplikasi web atau desktop. Kedua hal yang belakangan ini akan membutuhkan belajar lebih untuk framework bahasa yang bersangkutan.

Sebenarnya kalau kita belajar suatu bahasa baru atau framework baru yang kegunaannya sama dengan yang sudah kita mengerti lalu buat apa?, selain untuk memuaskan rasa penasaran saja. Orang bilang supaya pengetahuan kita bertambah, supaya pola pikir meluas (biasanya ini alasan yang ditujukan untuk programmer scripting language yang belajar Java). Benar sih tetapi saya rasa investasi waktunya bisa digunakan untuk belajar yang lain. Toh untuk membuat aplikasi web misalnya kita sudah punya senjata tersendiri.

Hasil akhir dari aplikasi yang dibuat menggunakan bahasa x dibandingkan dengan bahasa y, dengan framework x1 dibandingkan framework x2 juga tidak bisa dibilang salah satunya yang lebih baik karena kenyataan yang membuktikannya. Situs web sangar yang dibangun di atas bahasa x, y, z ada, pun yang dibangun dengan framework x1, x2, x3, y1, y2, z1 juga ada. Fakta ini seharusnya juga menghapuskan debat tak ada ujung di forum internet soal duel bahasa / framework.

Kalau kamu pernah mengikuti webinar yang diisi oleh Om Leontinus, co-founder Tokopedia, maka kamu akan tahu kenapa Tokopedia dibangun di atas bahasa pemrograman Perl, bahasa yang tidak populer lebih-lebih lagi di Indonesia. Jawabannya ternyata sangat sederhana, karena Om Leontinus ya tahunya Perl maka Tokopedia dibuat dengan Perl. Simple.

Saya sempat bertanya-tanya kenapa Tokopedia menggunakan Perl yang sama sekali tidak populer dan sontak tertawa terhibur ketika mendengar pernyataan langsung dari Om Leontinus ini karena jawabannya ternyata tidak berbau mesin, justru sangat manusiawi.

Lalu sebaiknya waktu yang kita punyai digunakan untuk belajar apa yang berkaitan dengan teknologi informasi?.

Berikut adalah usulan yang saya ajukan, lebih ditujukan untuk diri saya sendiri tapi jika kamu merasa terbantu, syukurlah.

1. Belajar Deploy Aplikasi ke Production

Tidak perlu diadakan survei tapi rasanya sudah jelas bahwa ada lebih sedikit developer yang belum pernah melakukan deploy aplikasi ke server production dibandingkan dengan mereka yang sudah.

Kita tidak pernah melakukannya karena keterbatasan hak kita di perusahaan. Biasanya hanya orang-orang tertentu yang memiliki hak akses ke server produksi dan salah satunya adalah untuk melakukan deploy aplikasi. Kita cuma ngoding sampai di-push ke git kemudian sisanya kita lepas tangan.

Proses ini saya yakin kita harus bisa karena tidak mungkin selamanya kita akan menjadi developer yang cuma ngerti ngoding dan menjalankan aplikasinya di localhost alih-alih di server produksi yang bisa diakses oleh pengguna. Kalau kita membuat sebuah aplikasi sendiri untuk dimonetisasi atau mengerjakan aplikasi pesanan klien sudah tentu kita harus bisa melakukan deploy.

Belajarnya bagaimana?, yang pertama jelas beli VPS, sisanya bisa dicari di google bagaimana melakukan deploy untuk bahasa x dan framework x1.

2. Belajar Monitoring Performa Aplikasi

Jika kemarin-kemarin kita masih belum memperhatikan performa, koding asal ngoding, bikin tabel asal bikin tabel tanpa dikasih index, maka sudah saatnya kita belajar hal-hal yang berkaitan dengan performa.

Indexing pada tabel itu sangat penting. Di tempat saya kerja pernah ada kasus aplikasi down karena ada banyak request yang mengarah pada suatu tabel dan tabel tersebut tidak di-indexing. Bagaimana bisa tahu yang menyebabkan down adalah pada database dan lebih spesifik lagi query yang “itu”?. Jawabannya dengan monitoring.

Salah satu tools yang saya tahu untuk monitoring ini adalah newrelic.com, dengan tools ini kita bisa tahu performa aplikasi kita, misal ada proses yang load-nya tinggi kita tahu proses mana yang tinggi itu, apakah dari aplikasi, dari database atau proses lainnya.

3. Belajar Docker

Nah ini teknologi yang santer dibicarakan karena katanya membuat proses deployment sebuah aplikasi menjadi mudah dan bisa di-scale dengan mudah pula. Saya sendiri masih belum mengerti docker dengan jelas tetapi jelas saya akan mempelajari ini karena sudah terbukti populer karena manfaatnya dan sebaiknya kamu juga haha.

Oh iya selain sangat membantu dalam hal deployment dan scalability, docker juga sangat membantu dalam hal development dengan cara kita bisa memiliki environment yang sama persis antara developer yang satu dengan developer yang lain sehingga masalah “it works on my machine” bisa dihindari.

4. Belajar Elasticsearch

Sesuai dengan namanya, teknologi ini digunakan sebagai server untuk kita melakukan pencarian terhadap suatu resource. Dengan adanya Elasticsearch maka hal-hal yang berkaitan dengan pencarian, terutama pencarian yang berat, tidak perlu melakukan query ke database server tetapi dialihkan ke Elasticsearch.

Bagaimana Elasticsearch mengumpulkan data resource yang nantinya akan dicari?, melalui proses yang dinamakan indexing yaitu proses mengisikan data ke Elasticsearch dengan field-field tertentu untuk suatu resource.

Kalau bingung dengan yang saya maksud dengan resource maka gampangnya adalah tabel yang ada pada database relasional. Apa yang kita simpan pada tabel pasti suatu saat akan kita cari datanya, nah untuk beberapa kasus yang query-nya memakan sumber daya yang berat maka dialihkan ke Elasticsearch.

Bagi saya ini teknologi yang wajib dikuasai karena aplikasi mana yang tidak membutuhkan fitur search terlebih lagi aplikasi e-commerce.

5. Belajar 1 Bahasa/Framework Secara Mendalam

Cukup 1 tapi secara mendalam, tidak perlu belajar banyak-banyak tapi hanya setetes-setetes yang diketahui. Susah juga nanti untuk karir teknologi jika ingin menuju tingkatan lebih atas kalau kita tidak mempunyai pengetahuan yang dalam pada suatu bahasa/framework. Terlebih lagi mending waktunya dialokasikan untuk sesuatu yang kita belum ngerti seperti beberapa contoh yang sudah saya sebutkan di atas.

Poin ini masih bisa dilawan jika bahasa yang ingin kita pelajari benar-benar berbeda total dengan bahasa yang sudah kita kuasai. Misal, belajar functional programming menggunakan Haskel. Bisa juga belajar C karena kita ingin membuat aplikasi yang langsung berkomunikasi dengan hardware.

6. Belajar Infrastruktur

Saya baru ngeh betapa pentingnya infrastruktur IT setelah bekerja di BukaLapak. Untuk membangun sebuah situs yang handal, yang mampu melayani jutaan request setiap harinya, diperlukan infrastruktur yang mumpuni untuk menunjangnya.

Selama ini saya tutup mata soal ini karena sudah ada system engineer yang mengurusinya tetapi pengetahuan yang nol besar soal infrastruktur tidak bisa ditoleransi menurut saya, malulah haha.

Balik lagi ke poin deployment tadi, jika kita ingin membuat sebuah produk sendiri untuk dimonetisasi tentu juga harus bisa memikirkan masalah infrastruktur ini.

Exit

Hal-hal di atas sudah pasti akan membutuhkan waktu yang tidak sebentar untuk menguasainya. Jika waktu kita banyak dihabiskan untuk mencoba-coba bahasa/framework lain apakah tidak sayang?, menurut pendapat saya dan pengalaman pribadi saya sih sayang #curhat_lagi.

Keenam poin di atas adalah target saya pribadi, bisa jadi ada yang masih kurang dan akan bertambah seiring dengan adanya kebutuhan. Apakah kamu punya usul hal apalagi yang patut untuk dipelajari dari sisi teknologi?.

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

One thought on “Jangan Terus-Terusan Hanya Belajar Bahasa atau Framework

  1. Ya saya juga pernah mengalami itu, belajar framework ini dan itu. Ahirnya, tidak ada yang dikuasai benar-benar sama sekali, hanya sebatas kulit. Sekarang saya menyadari, bahwa bahasa pemograman dan frameworknya hanya sebatas tools.

    Masing-masing memang mempunyai keunggulan dan kekurangannya. Tapi, itu kembali lagi kepada penggunanya. Dengan kata lain, sebagus apapun motor yang ditunggangi rossi atau marques, tentu saja berbeda jika kita yang bukan pembalap yang menggunakannya.

    Terima kasih mas sharring-nya, salam kenal

Leave a Reply

Your email address will not be published. Required fields are marked *