Sebelum kamu belajar coding, pikirkan tentang apa yang ingin kamu buat

Mengetahui coding sebagian besar adalah mengenai membangun sesuatu, dan alurnya jauh lebih jelas ketika kamu mengetahui tujuan akhirnya. Jika tujuanmu adalah “belajar coding”, tanpa ide yang jelas tentang jenis program yang akan kamu tulis dan bagaimana mereka akan membuat hidup kamu lebih baik, kamu mungkin akan merasakannya sebagai latihan yang dapat membuat frustasi.

Saya sedikit malu untuk mengakui bahwa bagian dari motivasi saya untuk mempelajari ilmu komputer adalah bahwa saya ingin membuktikan bahwa saya cerdas, dan saya ingin bisa mendapatkan pekerjaan Orang Cerdas. Saya juga suka berpikir tentang matematika dan teori (buku ini mengagumkan saya pada usia muda) dan program ini sangat cocok. Namun, itu tidak cukup lama memotivasi saya, sampai saya menemukan cara untuk menghubungkan teknologi dengan hal-hal yang benar-benar saya sukai, seperti musik dan sastra.

Jadi, kamu ingin coding apa? Situs web? Permainan? aplikasi iPhone? Sebuah startup yang membuat kamu kaya? Seni interaktif? Apakah kamu ingin dapat mengesankan atasanmu atau mengotomatiskan tugas yang membosankan sehingga kamu dapat menghabiskan lebih banyak waktu melihat foto berang-berang? Mungkin kamu hanya ingin lebih bisa dipekerjakan, menambahkan sebuah kata kunci ke resume, atau memenuhi persyaratan program pendidikanmu. Semua ini adalah tujuan yang berarti. Pastikan kamu tahu yang mana milikmu, dan belajarlah berdasarkan hal tersebut.

Tidak ada yang ajaib tentang coding

Coding adalah sebuah keterampilan seperti yang lainnya. Layaknya belajar bahasa, ada tata bahasa dan kosakata yang harus dikuasai. Seperti matematika, ada proses untuk mengatasi berbagai masalah khusus. Seperti semua jenis keahlian dan seni, ada teknik dan alat dan praktik terbaik yang telah dikembangkan dari waktu ke waktu, khusus untuk tugas yang berbeda yang bebas kamu gunakan atau modifikasi atau buang.

Orang ini (orang yang sangat cerdas! Yang tulisan-tulisannya saya sukai dan sering saya akui!) berpendapat bahwa ada garis terang antara orang-orang dengan True mind of Programmer dengan orang-orang lain, yang tidak memiliki kapasitas intelektual yang dibutuhkan untuk berhasil dalam bidang ini. Garis terang itu terdiri, menurut dia, tentang pointer dan rekursi (ada primer di sini dan di sini untuk yang penasaran).

Saya belajar tentang pointer dan rekursi di sekolah, dan ketika saya memahaminya, itu adalah sentakan yang menyenangkan di otak saya — jenis kesenangan intelektual yang membuat saya ingin belajar ilmu komputer sejak awal. Namun, di luar latihan di ruang kelas, berapa kali saya harus akrab dengan konsep untuk menyelesaikan sesuatu relatif kecil. Dan ketika membantu orang lain belajar, lagi dan lagi, saya telah melihat orang-orang menyelesaikan proyek yang menarik dan bermanfaat tanpa mengetahui apa pun tentang hal tersebut.

Tidak ada gunanya merasa terintimidasi atau bertanya jika kamu Cukup Cerdas. Tentu, semakin kompleks dan esoterik tugasmu, semakin tinggi tingkat penguasaan yang kamu perlukan untuk menyelesaikannya. Tetapi ini juga berlaku di setiap bidang lainnya. Kecuali jika kamu berencana untuk mendapatkan uang sepenuhnya dari kodemu, kemungkinan besar kamu tidak harus menjadi seorang jenius rekursif untuk membuat hal yang ingin kamu buat.

Hal itu tidak pernah berhasil pertama kali

Dan mungkin tidak juga pada yang kedua atau ketiga kalinya

Ketika pertama kali mulai belajar coding, kamu akan sangat cepat menghadapi pengalaman ini: kamu pikir kamu telah mengatur semua seperti yang seharusnya, kamu telah mengecek dan memeriksanya kembali, dan itu tetap saja tidak berhasil. Kamu tidak memiliki petunjuk di mana untuk mulai mencoba memperbaikinya, dan pesan kesalahan (jika kamu cukup beruntung untuk memiliki satu) mungkin juga mengatakan “fuck you.” Kamu mungkin tergoda untuk menyerah pada titik ini, berpikir bahwa kamu tidak akan pernah mengetahuinya, bahwa kamu tidak cocok untuk ini. Saya merasakan hal itu pertama kali saya mencoba menulis program di C++, menjalankannya, dan hanya mendapatkan pesan kesalahan “kesalahan segmentasi” untuk masalah saya.

Tetapi pengalaman ini sangat umum bagi para programmer dari semua tingkat keterampilan, yang sama sekali tidak ada hubungannya dengan kecerdasanmu, kecanggihan teknologi, atau kecocokan untuk kehidupan koding. Ini akan terjadi padamu sebagai pemula, tetapi itu juga akan terjadi padamu sebagai programmer berpengalaman. Perbedaan utamanya adalah bagaimana kamu mengatasinya.

Saya telah menemukan bahwa perbedaan besar antara programmer pemula dan programmer berpengalaman adalah keyakinan: Yakin bahwa terdapat alasan yang logis dan dapat diketahui di balik sebuah kesalahan, yakin bahwa kesalahan dapat diperbaiki, yakin bahwa ada cara untuk mencapai tujuan. Jalan dari “tidak berhasil” ke “berhasil” mungkin sulit untuk dicari, tetapi dengan kesabaranmu akan dapat menemukannya.

Seseorang akan selalu memberi tahu bahwa kamu melakukan kesalahan

Tanda kurung harus mengarah ke baris berikutnya. Tanda kurung harus berada pada baris yang sama. Gunakan tab untuk membuat indentasi. Tapi tab adalah kejahatan. Kamu harus menggunakan prosedur tersimpan, tapi sebenarnya kamu seharusnya tidak menggunakannya. Kamu harus selalu mengomentari kodemu. Tapi kode yang bagus tidak perlu komentar.

Hampir selalu ada banyak pendekatan berbeda untuk masalah tertentu, tanpa satu pun “cara yang benar.” Banyak programmer sangat baik dalam mengadvokasi cara yang mereka sukai, tetapi itu tidak berarti hanya itu satu jalan yang mutlak. Mengkonfrontasi orang-orang yang mengatakan bahwa saya salah, dan mencoba mencari tahu apakah mereka benar, adalah salah satu aspek yang membuat saya stress di awal karier.

Jika kamu membuat coding dalam tim dengan orang lain, seseorang hampir pasti akan mempermasalahkan sesuatu yang kamu lakukan. Terkadang mereka memang benar, dan selalu layak diinvestigasi untuk melihat apakah kamu, pada kenyataannya, melakukan kesalahan. Tapi, terkadang mereka penuh dengan kebohongan, atau membuat ulang perselisihan kuno dan tidak berarti di mana akan lebih baik hanya mengikuti panduan yang ada dan melupakannya.

Di sisi lain, jika kamu adalah tipe orang yang menikmati perselisihan kuno tetapi tidak berarti (kutu buku, saya melihatmu), kamu telah datang ke tempat yang tepat.

Seseorang akan selalu memberi tahu bahwa kamu bukan programmer sungguhan

HTML bukanlah pengkodean yang nyata. Jika kamu tidak menggunakan vi, kamu tidak benar-benar serius. Programmer sejati pasti tahu C. Programmer sejati tidak menggunakan Windows. Beberapa orang tidak akan pernah bisa mempelajarinya. Kamu harusnya tidak belajar coding. Kamu bukan programmer (tapi saya).

“Coding” berarti banyak hal yang berbeda untuk banyak orang yang berbeda, dan sekarang terlihat berbeda dari yang sebelumnya. Dan, anehnya, alat dan paket serta kerangka kerja yang membuatnya lebih cepat dan lebih mudah bagi pendatang baru atau bahkan pengembang yang sudah terlatih untuk membangun hal-hal yang paling mungkin menjadi ternodai dengan “bukan untuk PROGRAMMER sungguhan”. (Lihat: “Kembalinya Programmer Sejati”, dalam bahasa Inggris)

Di balik semua ini ada ketakutan bahwa jika “siapa saja” dapat menyebut diri mereka seorang programmer, itu akan menjadi tidak berarti. Tapi saya pikir ini sangat merusak.

Gunakan alat yang menurutmu paling mudah digunakan untuk membangun hal-hal yang ingin kamu buat. Jika itu berarti game kamu dibuat di Stencyl atau GameMaker, bukan ditulis dari awal, tidak masalah. Jika pengeditan pertamamu ke dalam pengkodean adalah makro HTML atau Excel, tidak apa-apa. Bekerjalah dengan sesuatu yang kamu rasa nyaman.

Semakin kamu merasa nyaman, kamu akan secara alami mulai menemukan alat-alat yang hanya membatasi daripada membantu dan mulai mencari alat yang lebih berguna. Tetapi sebagian besar waktu, beberapa orang bahkan akan melihat kodemu atau bahkan menanyakan apa yang kamu gunakan —apa yang kamu buat dengannya itulah yang penting.

Mengkhawatirkan “kredibilitas geek” akan membunuhmu secara perlahan

Lihat di atas. Dulu saya sering khawatir, terutama di sekolah, tentang apakah saya mengidentifikasi diri saya sebagai “bukan geek sejati” (dan karena itu kurang layak dimasukkan dalam komunitas teknologi) melalui pakaian saya, presentasi saya, pilihan bahan bacaan saya dan bahkan pilihan kustomisasi perangkat lunak saya. Itu membuang energi yang banyak dan saya menjadi jauh lebih fungsional setelah saya membuat keputusan untuk melepaskan semuanya.

Kamu perlu menginternalisasikan ini: kemampuanmu untuk menguasai coding tidak ada hubungannya dengan seberapa baik kamu masuk ke dalam berbagai subkultur “geek”. Ini juga berlaku jika kamu tahu bahwa kamu tidak akan pernah merasa cocok. Energi yang kamu habiskan untuk membuktikan dirimu seharusnya digunakan untuk membuat sesuatu. Dan, jika kamu seorang “geek” dengan kredibilitas yang tinggi dan selalu menganalisa kredibilitas orang setiap kali kamu melihatnya, ingatlah hal ini ketika kamu mengevaluasi tingkat kredibilitas orang lain. Itu mungkin tidak seperti yang kamu pikirkan.

Berpegang teguh dengan itu lebih penting daripada metode

Tidak ada kekurangan dari artikel tentang cara “benar” atau “terbaik” untuk belajar coding, dan ada banyak pendekatan potensial. Kamu dapat mempelajari konsep-konsep dari buku atau dengan menyelesaikan latihan interaktif atau dengan melakukan debug pada hal-hal yang telah ditulis orang lain. Dan, tentu saja, ada banyak bahasa yang mungkin kamu pilih untuk dipelajari pertama kali, dengan para pendukung untuk masing-masing bahasa.

Keluhan umum dengan program dan workshop “ajari dirimu coding” adalah bahwa kamu akan dengan senang hati menelusuri materi pemula dan kemudian mencapai kurva curam di mana segala sesuatunya menjadi lebih sulit dengan sangat cepat. Kamu tahu cara mencetak beberapa baris teks pada halaman tetapi tidak tahu di mana harus mulai mengerjakan sesuatu yang “nyata”, proyek yang berguna. Kamu mungkin merasa seperti hanya mengikuti arahan tanpa benar-benar memahami, dan menyalahkan materi pembelajaran.

Ketika kamu sampai pada tahap ini, sebagian besar tutorial dan sumber daya online yang tersedia bagimu kurang bermanfaat karena mereka menganggapmu sudah menjadi programmer yang berpengalaman. Kesulitan ini semakin diperparah oleh fakta bahwa “kamu tidak tahu apa yang tidak kamu ketahui.” Bahkan mencoba mencari tahu apa yang harus dipelajari selanjutnya adalah sebuah teka-teki.

Kamu akan mencapai tahap ini, tidak tergantung dengan program “belajar coding” apa pun yang kamu ikuti, dan satu-satunya cara untuk melewatinya adalah dengan ketekunan. Ini berarti kamu terus mencoba hal-hal baru, mempelajari lebih banyak informasi, dan mencari tahu, sedikit demi sedikit, bagaimana membangun proyekmu. Kemungkinan besar kamu akan menemukan kesuksesan pada akhirnya jika kamu memiliki gagasan yang jelas tentang mengapa kamu belajar coding pada awalnya.

Jika kamu terus menumpuk batu bata di atas satu sama lain, mungkin butuh waktu lama tetapi akhirnya kamu akan memiliki dinding. Di sinilah keyakinan yang saya sebutkan tadi sangat berguna. Jika kamu percaya bahwa dengan waktu dan kesabaranmu dapat mengetahui seluruh hal tentang coding, pada saatnya kamu hampir pasti akan bisa.

Kamu dapat menemukan artikel aslinya dalam bahasa Inggris di sini.