You are on page 1of 9

vSaya tidak pernah bersumpah serapah sesering ini sepanjang hidup saya.

Saya memandang
layar komputer berjam-jam, mencoba memperbaiki sebuah bug di dalam aplikasi saya. Si
sumber masalah seolah menghindari saya, mendorong saya ke dalam siklus kecemasan,
pembencian diri sendiri, dan melampiaskan kemarahan pada keyboard.

Penyebabnya ternyata adalah satu typo dalam sebuah nama file.

Ada juga masa ketika saya merasa bangga. Seperti ketika saya menulis script pertama saya
dan menjalankannya dengan sukses. Atau ketika saya memasukkan aplikasi pertama saya ke
dalam server dengan tulisan “hello world”. Atau ketika saya menulis crawler pertama kali
untuk mengisi sebuah database. Saya merasa seperti tuhan yang memerintahkan antek-antek
dalam bentuk kode untuk melaksanakan perintah saya.

Programming adalah sebuah candu yang membuat saya kembali lagi terlepas dari kepahitan
pengalaman pertama yang saya dapatkan. Dan hal tersebut merangkum pengalaman saya
selama dua tahun belajar coding.

Kita menertawakan para engineer


Seperti kebanyakan ahli teknologi wannabe, saya terpesona dengan dunia Silicon Valley
yang bersinar dan dengan keahlian yang dimiliki para geek. Padahal, dulu saya adalah jenis
orang yang tidak terlalu menganggap penting para engineer. Saya berkuliah di sebuah
universitas teknik, namun mengambil jurusan komunikasi yang didominasi oleh wanita.
Kami meremehkan para engineer karena mereka tidak memiliki citarasa fashion atau
kemampuan sosial, merasa canggung ketika berada di tengah-tengah wanita, dan memiliki
tata bahasa yang buruk. Seseorang pernah mengatakan bahwa saya terlihat seperti seorang
engineer – dan saya merasa malu.

Tentu saja, hal ini terdengar bodoh sekarang. Namun, kala itu saya sedang kuliah dan belum
melihat seperti apa dunia nyata itu. “Silicon Valley” tidak berarti apa-apa selain sebuah
tempat nan jauh di sana.

Namun satu hal tentang saya yang Anda tidak ketahui – saya dulu merupakan presiden klub
IT di SMP. Saya belajar HTML dan flash, menghabiskan waktu senggang saya bermain Sim
City 3000, dan menciptakan sebuah website tentang game tersebut. Saya selalu mempunyai
sisi geek di dalam diri saya.

Tidak lama bagi saya untuk kembali merangkul sisi tersebut. Film The Social Network rilis
pada tahun terakhir universitas saya. Setelah lulus, saya bergabung dengan ranah startup
Singapura yang masih muda sebagai seorang wartawan teknologi.
Film The Social Network membuat industri teknologi terlihat keren

Saya seolah dikelilingi dengan tren bahwa semua orang harus belajar coding. Menjadi
programmer merupakan sesuatu yang keren, dan saya berbohong jika tidak pernah berkhayal
mengenai hal tersebut.

Keadaan telah berputar balik. Banyak teman kuliah saya di sekolah komunikasi akhirnya
bergabung dengan perusahaan internet atau menjadi bagian public relations untuk perusahaan
teknologi. Teknologi yang dibuat para geek yang dulu kami tertawakan sedang mengubah
dunia jurnalisme.

Dan gerakan belajar coding ini semakin meriah karena sangat mudah untuk mulai
mempelajarinya. Pada saat itu, gerakan open source telah berkembang sebegitu rupa hingga
siapapun dapat dengan mudah mencari bantuan, sumber daya, dan dokumentasi lewat
Google.

Gerakan belajar coding ini telah berkembang menjadi sebuah industri, dan masih ada banyak
ruang di pasar, berhubung suplai engineer yang tidak banyak.

Dan sekarang kita ada di tahun 2015. Jika Anda ingin belajar programming sebagai sebuah
resolusi tahun baru, maka artikel ini cocok bagi Anda. Saya berbagi sejarah pribadi ini bukan
karena narsis (well, mungkin sedikit), namun untuk menggambarkan kenyataan yang ada:
Masa lalu Anda menentukan cara belajar coding
Saya mulai belajar programming di akhir tahun 2012 – lebih dari satu tahun setelah memulai
pekerjaan pertama saya. Hal ini menempatkan saya dalam sebuah posisi yang sangat tidak
menguntungkan jika saya ingin menjadikan hal ini sebagai karir.

Saya akan bersaing langsung dengan lulusan universitas baru yang mungkin sudah mulai
belajar programming sejak mereka berumur 12 tahun. Ekspektasi gaji mereka lebih rendah
dan mereka mungkin memiliki komitmen hubungan yang tidak terlalu serius. Saya harus
mengubah tujuan hidup saya, menunda target finansial, dan mengejar sebuah karir alternatif
sembari menghadapi pengorbanan-pengorbanan kecil. Bahkan, kecil kemungkinan saya akan
terus menekuni bidang ini.

Semua berujung pada hal ini: saya sudah menginvestasikan bertahun-tahun hidup saya di
dalam karir industri media yang sedang berubah namun tetap sehat. Saya menikmati apa yang
saya lakukan dan tidak sedang mengalami krisis 25 tahunan. Saya tidak memiliki
kemampuan finansial maupun insentif untuk masuk sepenuhnya ke dalam bidang baru ini.

Jadi inilah yang terjadi: Saya belajar coding di waktu senggang dan memastikan bahwa hobi
saya itu tidak mengganggu pekerjaan utama saya. Memang sulit, tapi satu-satunya cara
adalah mengorbankan waktu luang saya.

Sebelum berkomitmen, pahami tujuan utama Anda


Belajar coding mungkin akan sepenuhnya tidak berguna dalam membantu Anda mencapai
tujuan. Atau malah mungkin terbukti sangat diperlukan.

Anda mungkin seorang siswa yang hanya memikirkan pekerjaan sekolah atau kehidupan
sosial (dan ini bukan apa-apa dibandingkan memiliki sebuah pekerjaan full-time). Coding
dapat membuka lebih banyak jalan bagi Anda untuk, katakanlah, menjadi miliarder ketika
Anda berusia 25 tahun.

Atau mungkin Anda seorang profesional muda yang patah semangat dan sedang mencari
sesuatu yang berbeda. Anda sudah mengumpulkan cukup banyak tabungan untuk merambah
hal lain. Programming bisa saja menjadi tiket Anda menuju karir yang lebih menjanjikan.

Tentu saja, programming mungkin bukan untuk para CEO perusahaan besar dengan
karyawan dan keluarga untuk dinafkahi. Namun jika Anda seorang eksekutif muda yang
ingin memulai sebuah perusahaan teknologi dalam jangka waktu satu tahun, belajar
programming akan sangat berguna bagi Anda agar mampu bekerja dengan lancar dengan para
developer atau menciptakan produk sederhana sendiri.

Anda mungkin akan menemukan bahwa belajar coding merupakan sesuatu yang tidak
menyenangkan atau tidak ada gunanya. Itu hal yang biasa. Atau mungkin Anda ingin belajar
dengan alasan sederhana seperti ingin masuk ke dalam kelompok yang keren (banyak sekali
komedian yang mulai bergelut di bidang komedi karena hal itu), atau mungkin sekadar
mencari tahu apakah Anda akan tertarik dengan dunia coding. Atau Anda ingin
meningkatkan situasi finansial Anda.
Semua alasan di atas berlaku bagi saya:

TujuanHasil

Saya mengganggap diri saya keren, berdasarkan fakta bahwa


saya bisa menciptakan sebuah aplikasi menggunakan Ruby on
Rails dan memanfaatkan berbagai API, sambil tetap menjaga
Ya, saya ingin menjadi lebih
pekerjaan utama saya sebagai seorang penulis dan editor. Saya
keren.
juga tetap bertahan ketika banyak orang menyerah, namun saya
membuat banyak sekali pengorbanan. Terlepas dari itu, masih
banyak level kehebatan yang belum saya capai.
Saya ingin menantang diri
Saya merasa sangat tertantang.
sendiri secara intelektual.
Saya ingin mencari tahu
Mungkin tidak. Seperti karir lainnya, programming memerlukan
apakah mengembangkan
tugas tidak menyenangkan seperti pemindahan server,
sebuah website dapat
menangani penyusup, dan lain sebagainya.
menjadi karir alternatif.
Saya ingin menggabungkan
minat saya dalam teknologi Tercapai.
dan media.
Saya ingin menggunakan
programming untuk
Mungkin tercapai.
membuat diri saya sendiri
lebih produktif.

Tentu saja, penilaian di atas berdasarkan pendapat pribadi. Tapi apabila Anda setuju dengan
penilaian tersebut, terus baca untuk mengetahui apa yang membuat saya terus bertahan:

Memulai proyek demi proyek


Menetapkan tujuan satu gunung demi gunung lainnya akan memberi Anda dorongan yang
dibutuhkan

Mari kita berbicara jujur, coding tidaklah menyenangkan. Tentu saja, menciptakan kode-kode
elegan dan memperbaiki bug terasa memuaskan, namun semuanya akan menjadi sia-sia jika
tidak ada produk akhir, seperti nasi kari tanpa kari.

Buat perjalanan programming Anda berkelanjutan dengan menatanya sebagai jajaran gunung
yang harus didaki. Kerjakan proyek demi proyek, masing-masing akan membuat Anda
belajar hal baru, memperbarui pengetahuan lama Anda, dan membawa Anda semakin dekat
dengan tujuan Anda. Berikut proyek-proyek yang saya kerjakan, dalam urutan kronologis:

Sebuah game teks. Lihat Learn Python the Hard Way.

Sebuah script Ruby yang menghitung tag dalam blog teknologi untuk melihat topik apa yang
populer.

Sebuah script Ruby yang mencari informasi di dalam website dan menyalin informasi
tersebut ke dalam database lain.

Tabel dan bagan yang dapat disortir. Saya menyambungkan sebuah aplikasi Ruby on Rails
dengan D3.js, sebuah library visualisasi berbasis javascript.
Aplikasi Rails yang menyambungkan WordPress dan API Google Analytics untuk
menghasilkan konten secara terprogram.

Aplikasi Rails yang diciptakan menggunakan API Buffer, ini memungkinkan saya untuk
mem-posting ulang konten populer di media sosial.

Aplikasi Rails yang mengisi tautan dalam sebuah database.

Statsy, aplikasi Rails yang bertindak sebagai database fakta yang memiliki fungsi pencarian
dan sebuah pembuat bagan berbasis Google Charts.

Setiap proyek yang sukses menjadi lebih rumit. Saya mulai dengan menciptakan script, yang
merupakan program yang ‘hidup’ di dalam lingkungan bahasa pemrograman desktop Anda.
Lalu saya belajar Rails, sebuah framework untuk menciptakan aplikasi web yang dibuat di
atas bahasa pemrograman Ruby. Perjalanan ini menjadi lebih menyenangkan saat saya coba
mencari proyek yang berarti untuk dikerjakan. Seperti yang ditulis oleh salah seorang
programmer:

Programming seharusnya hanya diperkenalkan sebagai sebuah cara untuk menyelesaikan


suatu masalah nyata atau menyelesaikannya dengan cepat. Meretas sesuatu yang sudah kamu
pahami. Lalu ada tujuan dan motivasi untuk belajar. Maka programming menjadi lebih
bermakna. Sangat sedih [bagi saya] untuk mengetahui bahwa kontak pertama orang dengan
dunia programming adalah sebuah kelas tata bahasa yang membosankan dimana mereka
harus duduk belajar, seperti hal lainnya yang mereka lakukan di sekolah.

Tekun dan rayakan kemenangan kecil


Gambaran yang saya jabarkan di awal menunjukkan bagaimana sulitnya memulai hingga
berada di posisi saya saat ini. Namun hal tersebut berlaku jika Anda memang ingin
membangun sebuah aplikasi web yang berfungsi. Bukit yang ada di awal tidak terlalu sulit
untuk didaki – mudah mempelajari hal dasar berkat website seperti Codecademy. Khususnya
Ruby memiliki banyak sekali sumber untuk membantu Anda belajar.

Namun berdasarkan pengalaman saya, semua menjadi lebih sulit ketika Anda mencoba
membuat sebuah aplikasi web yang berjalan sepenuhnya. Mengapa? Karena banyak sekali
hal yang harus dipelajari. Kecuali Anda belajar Node.js, Anda tidak sedang belajar satu
bahasa pemrograman, namun dua: bahasa pemrograman server (hal-hal yang terjadi di dalam
server) dan javascript untuk sisi pengguna (sihir yang terjadi di dalam browser Anda)

Sebagai tambahan, Anda harus menggunakan bahasa markup seperti HTML dan CSS, yang
mengendalikan tampilan sebuah website dan bagaimana perasaan pengguna saat memakai
website tersebut, serta mendirikan dan menjaga agar server selalu berjalan (saya
merekomendasikan para pemula untuk menggunakan Heroku). Bukan hanya itu. Setiap
bahasa pemrograman memiliki banyak sekali library untuk dikuasai dan masing-masing API
memiliki dokumentasinya sendiri. Anda juga harus belajar bagaimana sebuah database
bekerja. Dan jangan sampai saya memulai tentang Git dan test-driven development.

Saya mengetahui perasaan itu. Saya juga kewalahan ketika saya benar-benar melihat
tantangan yang ada di hadapan saya. Namun hal itu tidak menghentikan saya. Triknya adalah
dengan memulai dari hal yang kecil, dan mengumpulkan kepercayaan diri untuk menangani
proyek yang lebih besar. Seiring berjalannya waktu, Anda akan belajar lebih cepat. Anda
akan kaget seberapa banyak yang bisa Anda serap.

Bagian yang paling membuat frustrasi dari programming adalah ketika aplikasi Anda ngadat
dan Anda kebingungan dalam mencari apa yang salah. Karena sebuah aplikasi sepenuhnya
dibuat dari bagian saling menyambung dalam kode open source yang diciptakan oleh orang
lain, sumber dari bug bisa terdapat di mana saja. Belajar melakukan debug secara produktif
merupakan keterampilan yang diremehkan.

Karena itulah penting bagi Anda untuk merayakan kemenangan kecil. Anggap versi pertama
aplikasi Anda sebagai penghargaan tertinggi – sebuah jamuan bagi mental Anda. Untuk
mencapai kesana, Anda perlu mengumpulkan kemenangan-kemenangan kecil sepanjang
perjalanan untuk membantu Anda melewati momen terendah ketika Anda merasa ingin
berhenti belajar programming. Ingat perkataan saya, akan banyak sekali waktu dimana Anda
merasa ingin menyerah.

Jika hal tersebut terjadi, ambil istirahat mental. Kunjungi masalah tersebut nanti. Pikirkan
secara seksama kemungkinan sumber kesalahan. Minta bantuan orang lain. Dan ketika Anda
telah memperbaiki bug yang ada, adakan pesta kecil. Lalu ambil nafas panjang dan mulai
lagi.

Minta bantuan teman


Belajar coding tidak harus merupakan sebuah aktivitas yang dilakukan sendirian.
Berkonsultasilah dengan teman-teman Anda yang penuh pengetahuan. Mereka akan
mengajarkan sesuatu yang tidak akan Anda temukan di Google. Bergabung dengan grup di
kota Anda yang relevan dengan apa yang sedang pelajari dan cari bantuan di sana. Stack
Overflow adalah tempat yang sangat bagus untuk bertanya, dan Anda akan menemukan
bahwa banyak orang yang mengalami hal serupa dan sudah menerima jawaban. Anda dapat
berkonsultasi dengan para programmer mumpuni dengan banderol harga di platform online
seperti Airpair (saya belum pernah mencoba ini).

Coding di dalam grup merupakan sesuatu yang menguntungkan. Jika tujuan Anda adalah
bergabung dalam tim pengembangan, anggap hal ini sebagai latihan untuk menjadi seorang
coder profesional. Setiap tim akan mengembangkan protocol, workflow, dan toolset masing-
masing, yang biasanya ditentukan oleh programmer paling senior di dalam kumpulan
tersebut. Mulai dengan mengerjakan proyek sampingan bersama teman-teman. Jika Anda
merupakan bagian dari sebuah startup dengan tim pengembangan yang mempunyai kesabaran
untuk mengajar para pemula, tawarkan melakukan coding secara sukarela bagi mereka.

Menang dengan Ruby on Rails


Ketika belajar coding, Anda harus menentukan bahasa pemrograman mana yang ingin Anda
pelajari. Video ini dapat membantu Anda:

Bagi saya, tidak ada alasan ilmiah di balik keputusan yang saya ambil. Saya awalnya memilih
Python karena sering disebut sebagai bahasa ideal bagi para pemula. Lalu, saya beralih ke
Ruby karena kolega saya sudah terbiasa dengan bahasa ini. Hal tersebut merupakan sebuah
keputusan sosial (lihat poin sebelumnya). Secara sekilas, hal itu sangat masuk akal.

Terlepas dari dukungan yang baik, Ruby memiliki salah satu syntax yang paling bersih,
membuatnya mudah untuk dibaca dan dipelajari. Sementara itu, Rails memiliki banyak sekali
plugin yang memberi sebuah aplikasi berbagai kemampuan – seperti otentikasi pengguna,
sebuah sistem pengelolaan konten, atau sebuah dashboard admin – langsung ketika pertama
digunakan. Rails mempunyai fitur yang sangat banyak sehingga membangunnya terasa
seperti mencocokkan berbagai aplikasi mini sekaligus, dan kemudian berusaha semampu
Anda untuk membuatnya pas.

Jadi jika tujuan Anda adalah untuk membuat sebuah prototipe berjalan dengan momen
menjengkelkan yang paling sedikit dalam waktu singkat, maka Ruby on Rails bisa menjadi
pilihan Anda. Untuk pembelajaran lanjutan, simak video dari Michael Cheng, developer PHP
berbasis di Singapura yang baru-baru ini belajar Ruby on Rails.

Atur ekspektasi
Tergantung pada tujuan Anda, mencapai posisi dimana Anda menjadi produktif berkat coding
akan membutuhkan waktu yang tidak sedikit. Jika Anda merupakan bagian dari sebuah
startup dan Anda ingin berkontribusi dengan melakukan coding front-end, belajar HTML,
CSS, dan Git sudah lebih dari cukup dan dapat dipelajari dalam hitungan minggu. Jika Anda
seorang calon entrepreneur yang ingin membangun sebuah aplikasi web, belajar ketrampilan
yang dibutuhkan dapat memakan waktu berbulan-bulan tergantung dari niat Anda untuk
belajar. Jadi mungkin Anda dapat melihat diri Anda sendiri menggali-gali dalam kegelapan
sebelum akhirnya menemukan jalan keluar.

Hanya dua buah pikiran lagi yang ingin saya bagikan:

Programming hanyalah sebuah alat


Hal yang mengganggu saya mengenai perjalanan ini adalah apakah waktu saya lebih baik
digunakan untuk hal lainnya, seperti belajar kemampuan manajemen, prinsip desain,
bagaimana cara membuat mockup yang baik, atau bagaimana menjadi seorang jurnalis yang
lebih baik.

Ini merupakan hal penting yang harus ditanyakan sebelum Anda memulai, meskipun saya
belum mempunyai jawaban pasti bagi diri saya sendiri. Meskipun sudah belajar selama dua
tahun, mungkin nantinya saya akan merasa jalan ini tidak sesuai dengan tujuan saya lagi.

Anggap Anda adalah seorang CEO startup dengan waktu yang terbatas. Belajar programming
mungkin kurang produktif untuk perusahaan Anda ketimbang belajar desain user experience,
user testing, analisa data, dan keterampilan lainnya yang tidak dimiliki para developer. Pada
akhirnya, programming hanyalah sebuah alat untuk membuat sebuah produk yang sukses.

Percaya pada skenario tidak-ada-yang-kalah


Secara alami saya menghindari risiko, jadi salah satu taktik yang saya gunakan untuk
memulai adalah dengan memikirkan rencana B. Saya bertanya pada diri saya sendiri: apa
yang terjadi jika saya menyerah dan gagal menciptakan sebuah aplikasi web? Saya
menjawab:

“Setidaknya saya mengalami seperti apa rasanya.”


“Setidaknya saya mengetahui bahwa bidang ini bukan untuk saya.”
“Setidaknya saya bisa berempati dengan para developer dan bekerja lebih baik dengan
mereka.”
“Setidaknya saya bisa lebih berorientasi pada detail dan mendapatkan keterampilan problem-
solving lebih baik.”
“Setidaknya saya bisa menulis mengenai pengalaman saya.”

Ternyata saya bisa mendapatkan manfaat dan menikmatinya juga.

(Diedit oleh T. R. Husada, Enricko Lukman, dan Lina Noviandari)

You might also like