Ada momen yang cukup menggelitik yang sering saya temukan ketika melakukan sesi code review bersama developer junior: mereka bisa menjelaskan apa yang dilakukan kode mereka baris per baris, tapi ketika saya tanya "kenapa kamu pakai pendekatan ini dan bukan yang itu?" — jawabannya hampir selalu sama: "Saya copy dari Stack Overflow dan ternyata jalan, Kak."
Saya tidak marah. Saya juga pernah di posisi itu. Dan satu hal yang saya pelajari dari pengalaman bertahun-tahun adalah: ada perbedaan yang sangat besar antara kode yang berjalan dan kode yang benar-benar dipahami oleh orang yang menulisnya.
Python, justru karena kemudahannya, membuat batas antara dua hal itu semakin tipis dan semakin mudah diabaikan.
Ini yang saya sebut sebagai jebakan kenyamanan Python. Ketika sebuah bahasa begitu mudah dan ekosistemnya begitu kaya, godaan untuk tidak benar-benar memahami apa yang terjadi di balik layar menjadi sangat besar. Kenapa harus susah-susah belajar bagaimana cara kerja gradient descent dari nol kalau sklearn.fit() bisa mengurus semuanya dalam satu baris? Kenapa harus memahami struktur data di balik DataFrame kalau Pandas bisa langsung memproses CSV tanpa perlu tahu detail implementasinya?
Di level personal dan eksperimental, ini mungkin tidak masalah. Tapi ketika pola ini terbawa ke lingkungan profesional — ketika seseorang yang tidak benar-benar memahami model yang dibangunnya menggunakannya untuk mengambil keputusan bisnis yang memengaruhi ribuan orang — di situ masalahnya menjadi serius.
Saya pernah melihat langsung bagaimana sebuah model machine learning yang "berjalan dengan baik" di lingkungan pengembangan ternyata memberikan rekomendasi yang sangat bias ketika digunakan di data produksi yang berbeda distribusinya. Sang pembuat model bingung karena tidak benar-benar memahami asumsi-asumsi yang mendasari algoritma yang dipakainya. Kodenya berjalan. Tapi pemahaman tentang apa yang kode itu lakukan secara matematis dan statistik — tidak ada.
Saya tidak sedang mengatakan bahwa semua orang yang belajar Python harus menjadi ahli matematika atau ilmuwan komputer. Itu tuntutan yang tidak realistis dan juga tidak perlu. Tapi ada level pemahaman minimum yang seharusnya dimiliki oleh siapa pun yang menggunakan sebuah alat secara profesional. Seorang montir tidak harus bisa merancang mesin dari nol, tapi ia harus tahu cukup tentang cara kerja mesin untuk mendiagnosis masalah dan tidak merusaknya lebih parah.
Masalah ini sebagian adalah produk dari cara kita mengajarkan Python hari ini. Banyak kursus dan bootcamp yang sangat berorientasi pada hasil: dalam 12 minggu kamu bisa membuat model machine learning, dalam 30 hari kamu bisa membangun aplikasi web. Ini memang menarik dan memotivasi. Tapi dalam mengejar kecepatan itu, fondasi sering dilewati. Konsep-konsep dasar yang seharusnya dipahami dulu sebelum melangkah lebih jauh — kompleksitas algoritma, manajemen memori, cara kerja struktur data — sering diabaikan karena dianggap terlalu teoritis dan tidak langsung "berguna."
Hasilnya adalah gelombang besar orang yang mengaku bisa Python tapi sebetulnya baru bisa menggunakan library-library Python tertentu. Itu bukan hal yang sama.
Saya ingin menegaskan bahwa tulisan ini bukan serangan terhadap Python atau terhadap siapa pun yang sedang dalam proses belajar. Justru sebaliknya — ini adalah ajakan untuk belajar lebih dalam, bukan hanya lebih cepat. Python adalah bahasa yang luar biasa. Tapi seperti alat apapun, nilai sejatinya baru muncul di tangan orang yang benar-benar memahaminya.
Kalau Anda sedang belajar Python hari ini, saya punya satu saran sederhana: jangan puas ketika kode Anda berjalan. Tanyakan selalu — mengapa ini berjalan? Apa yang sebenarnya terjadi ketika fungsi ini dipanggil? Apa konsekuensi dari pilihan pendekatan ini dibanding yang lain? Pertanyaan-pertanyaan itulah yang akan membedakan Anda dari puluhan ribu orang lain yang juga bisa menjalankan print("Hello, World!").
Kode yang berjalan itu mudah. Memahami mengapa ia berjalan — itulah yang membuat seorang programmer sesungguhnya.
Rian Septian Anwar adalah praktisi teknologi dengan pengalaman lebih dari sepuluh tahun di bidang pengembangan perangkat lunak dan rekayasa data.