Belajar coding? Saya melakukannya selama 2 
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.
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.
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
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:
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:
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.
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.
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.
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:
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.
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.”
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.
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
| Ya, saya ingin menjadi lebih keren. | Saya mengganggap diri saya keren, berdasarkan fakta bahwa saya bisa menciptakan sebuah aplikasi menggunakan Ruby on Rails dan memanfaatkan berbagai API, sambil tetap menjaga pekerjaan utama saya sebagai seorang penulis dan editor. Saya 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 sendiri secara intelektual. | Saya merasa sangat tertantang. |
| Saya ingin mencari tahu apakah mengembangkan sebuah website dapat menjadi karir alternatif. | Mungkin tidak. Seperti karir lainnya, programming memerlukan tugas tidak menyenangkan seperti pemindahan server, menangani penyusup, dan lain sebagainya. |
| Saya ingin menggabungkan minat saya dalam teknologi dan media. | Tercapai. |
| Saya ingin menggunakan programming untuk membuat diri saya sendiri lebih produktif. | Mungkin tercapai. |
Tapi apabila Anda setuju dengan penilaian tersebut, terus baca untuk
mengetahui apa yang membuat saya terus bertahan:
Memulai proyek demi proyek
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 sulitnyamemulai 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 yangdilakukan 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 codingakan 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 waktusaya 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 yangsaya 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.”
Saya

0 Comments