- Kemampuan pemrograman sulit diperoleh dari buku pengantar 24 jam atau 21 hari; yang biasanya didapat dari pembelajaran singkat lebih dekat ke keakraban yang dangkal
- Riset tentang keahlian di berbagai bidang seperti catur, komposisi musik, melukis, berenang, dan penelitian menunjukkan bahwa untuk mencapai tingkat tinggi dibutuhkan sekitar 10 tahun; kuncinya bukan pengulangan sederhana, melainkan latihan yang disengaja
- Untuk menjadi programmer yang baik, Anda perlu menjaga rasa senang, membuat sesuatu sendiri, membaca kode orang lain, bekerja bersama orang yang lebih mahir, dan menerima umpan balik
- Pendidikan universitas dan buku dapat melengkapi kualifikasi, struktur, dan kedalaman, tetapi tidak dapat menggantikan pengalaman memperbaiki kegagalan dalam proyek nyata hingga menjalani pemeliharaan
- Bahasa pertama bisa dipilih berdasarkan teman dan komunitas, kesederhanaan, serta lingkungan eksekusi interaktif; yang penting adalah memilih satu dan mulai secara konsisten
Batas dari janji belajar pemrograman dalam waktu singkat
- Di toko buku dan online ada banyak buku yang mengklaim dapat mengajarkan Java, C, SQL, Ruby, algoritme, dan sebagainya dalam beberapa hari atau beberapa jam
- Dalam pencarian lanjutan Amazon, buku sejak tahun 2000 yang judulnya memuat
teach yourself hoursmuncul sebanyak 512 buku, dan 9 dari 10 teratas adalah buku pemrograman - Hasilnya serupa meski
teach yourselfdiganti denganlearn, atauhoursdiganti dengandays
- Dalam pencarian lanjutan Amazon, buku sejak tahun 2000 yang judulnya memuat
- Judul-judul seperti ini memberi kesan bahwa orang ingin belajar pemrograman dengan tergesa-gesa, atau bahwa pemrograman jauh lebih mudah dipelajari dibanding bidang lain
- How to Design Programs karya Felleisen dkk. menyindir tren ini dengan gaya “pemrograman yang buruk itu mudah. Orang bodoh pun bisa mempelajarinya dalam 21 hari”
Apa yang sebenarnya bisa berarti dari “Teach Yourself C++ in 24 Hours”
-
Teach Yourself
- Dalam 24 jam, tidak ada cukup waktu untuk menulis beberapa program yang bermakna, belajar dari keberhasilan dan kegagalan, bekerja bersama programmer berpengalaman, dan memahami seperti apa hidup di lingkungan C++
- Jadi yang mungkin dicapai bukan pemahaman mendalam, melainkan lebih dekat ke keakraban sekilas
-
C++
- Jika Anda sudah mengetahui bahasa lain, Anda bisa mempelajari sebagian sintaks C++ dalam 24 jam
- Namun sulit untuk mempelajari C++ bagus untuk apa dan buruk untuk apa, serta bagaimana bahasa itu seharusnya dipakai dalam praktik
- Seperti kata Alan Perlis, “bahasa yang tidak mengubah cara Anda berpikir tentang pemrograman tidak layak diketahui”
-
24 Hours
- Anda bisa mempelajari sedikit C++ atau JavaScript, Processing, dan sejenisnya untuk menghubungkannya dengan alat tertentu
- Dalam kasus ini, yang dipelajari lebih dekat ke cara menjalankan tugas tertentu, bukan pemrograman itu sendiri
Keahlian membutuhkan waktu
- Riset oleh Bloom, Bryan & Harter, Hayes, Simon & Chase, dan lainnya menunjukkan bahwa pembentukan keahlian di berbagai bidang membutuhkan sekitar 10 tahun
- Contoh bidangnya mencakup catur, komposisi musik, telegrafi, melukis, piano, renang, tenis, serta penelitian neuropsikologi dan topologi
- Kuncinya bukan pengulangan sederhana, melainkan latihan yang disengaja (deliberative practice)
- Memilih tugas yang sedikit lebih sulit daripada kemampuan saat ini
- Menganalisis hasil selama dan setelah pelaksanaan
- Memperbaiki kesalahan lalu mengulanginya lagi
- Mozart sudah menjadi anak ajaib musik pada usia 4 tahun, tetapi butuh 13 tahun lagi untuk menghasilkan musik bertaraf dunia
- Beatles menjadi sorotan lewat acara Ed Sullivan pada 1964 dan lagu-lagu nomor satu, tetapi mereka sudah bermain di klub-klub kecil di Liverpool dan Hamburg sejak 1957, dan Sgt. Pepper’s, yang meraih sukses besar secara kritik, baru keluar pada 1967
- Malcolm Gladwell memopulerkan ungkapan 10.000 jam, tetapi yang penting di sini bukan angka persisnya, melainkan latihan konsisten selama bertahun-tahun
- Bagi K. Anders Ericsson, 10.000 jam adalah angka yang memberi gambaran bahwa bahkan orang berbakat pun membutuhkan bertahun-tahun dengan 10–20 jam per minggu untuk mencapai tingkat tertinggi
- Satu angka tidak bisa menjadi jawaban untuk semuanya
- Sulit mengatakan bahwa pemrograman, catur, dam, dan musik semuanya membutuhkan waktu yang persis sama
- Sulit juga mengatakan bahwa semua orang belajar dengan kecepatan yang sama
Praktik untuk menjadi programmer
- Anda harus merasakan minat pada pemrograman dan memulainya karena menyenangkan
- Kesenangan itu harus cukup bertahan untuk menginvestasikan 10 tahun atau 10.000 jam
- Anda harus memprogram sendiri
- Pembelajaran terbaik adalah belajar melalui praktik
- Pembelajaran yang efektif membutuhkan tugas yang jelas dengan tingkat kesulitan yang sesuai bagi individu, umpan balik yang berguna, serta kesempatan untuk mengulang dan memperbaiki kesalahan
- Anda harus berbicara dengan programmer lain dan membaca program yang ditulis orang lain
- Ini lebih penting daripada buku atau kurikulum apa pun
- Jika mau, Anda bisa menghabiskan 4 tahun di universitas atau belajar lebih lanjut di program pascasarjana
- Gelar dapat membuka akses ke pekerjaan yang mensyaratkan kualifikasi, dan dapat memberi pemahaman mendalam tentang bidang tersebut
- Jika Anda tidak menikmati sekolah, dengan dedikasi Anda juga bisa memperoleh pengalaman serupa sendiri atau di lapangan
- Belajar hanya dari buku tidaklah cukup
- Anda harus mengerjakan proyek bersama dengan programmer lain
- Dalam sebagian proyek, Anda bisa menjadi programmer terbaik dan menguji kepemimpinan serta visi Anda
- Dalam proyek lain, Anda bisa menjadi orang yang paling kurang berpengalaman dan belajar apa yang dilakukan oleh orang mahir, serta apa yang enggan mereka lakukan
- Anda harus menangani proyek lama setelah programmer lain pergi
- Anda belajar apa yang diperlukan untuk memahami dan memperbaiki program yang ditulis orang lain
- Anda juga akan memikirkan bagaimana merancang untuk orang yang kelak memeliharanya
Pengalaman luas dengan bahasa dan sistem
- Anda harus mempelajari setidaknya enam bahasa pemrograman
- Bahasa yang menekankan abstraksi kelas: Java, C++
- Bahasa yang menekankan abstraksi fungsional: Lisp, ML, Haskell
- Bahasa yang mendukung abstraksi sintaks: Lisp
- Bahasa yang mendukung spesifikasi deklaratif: Prolog, C++ templates
- Bahasa yang menekankan paralelisme: Clojure, Go
- Ingat bahwa “computer science” mengandung kata computer
- Anda perlu mengetahui waktu yang dibutuhkan untuk eksekusi instruksi, mengambil kata dari memori, cache miss, pembacaan sekuensial disk, disk seek, dan sebagainya
- Terlibat dalam aktivitas standardisasi bahasa juga dapat membantu
- Bisa berupa aktivitas besar seperti komite ANSI C++, atau sekadar menentukan apakah indentasi dalam gaya coding lokal memakai 2 spasi atau 4 spasi
- Anda dapat belajar apa yang disukai orang lain dari suatu bahasa dan mengapa mereka merasakannya begitu kuat
- Dalam aktivitas standardisasi, Anda juga membutuhkan kearifan untuk keluar secepat mungkin
Buku dan pendidikan saja tidak cukup
- Meski Anda membaca banyak buku tentang pengasuhan anak, saat anak pertama lahir Anda bisa tetap merasa seperti pemula; saat anak kedua lahir, Anda cenderung mengandalkan pengalaman pribadi daripada kembali ke buku
- No Silver Bullet karya Fred Brooks mengusulkan rencana tiga bagian untuk menemukan perancang perangkat lunak yang hebat
- Mengidentifikasi perancang unggul sedini mungkin secara sistematis
- Menugaskan mentor karier untuk bertanggung jawab atas perkembangan mereka dan mengelola berkas karier mereka
- Memberi para perancang yang sedang berkembang kesempatan untuk saling berinteraksi dan saling merangsang
- Alan Perlis berkata, “semua orang bisa belajar memahat, tetapi Michelangelo mungkin harus diajari cara untuk tidak memahat”
- Programmer hebat mungkin memiliki karakteristik internal yang melampaui pelatihan, tetapi tidak ditegaskan apakah itu bawaan lahir atau dikembangkan melalui kerja keras
- Buku Java, Ruby, JavaScript, dan PHP bisa berguna, tetapi tidak akan mengubah hidup atau seluruh keahlian Anda dalam 24 jam atau 21 hari
- Bekerja keras untuk terus membaik selama 24 bulan merupakan titik awal yang bermakna
Gambaran waktu operasi komputer
- Perkiraan waktu untuk berbagai operasi pada PC umum adalah sebagai berikut
- Eksekusi instruksi biasa: 1 nanodetik
- Mengambil dari memori cache L1: 0,5 nanodetik
- Kegagalan prediksi cabang: 5 nanodetik
- Mengambil dari memori cache L2: 7 nanodetik
- Mengunci/melepas mutex: 25 nanodetik
- Mengambil dari memori utama: 100 nanodetik
- Mengirim 2KB melalui jaringan 1Gbps: 20.000 nanodetik
- Membaca 1MB secara sekuensial dari memori: 250.000 nanodetik
- Seek ke lokasi baru di disk: 8.000.000 nanodetik
- Membaca 1MB secara sekuensial dari disk: 20.000.000 nanodetik
- Perjalanan pulang-pergi paket antara AS dan Eropa: 150 milidetik, yaitu 150.000.000 nanodetik
Kriteria memilih bahasa pemrograman pertama
- Tidak ada satu jawaban benar untuk bahasa pertama
- Anda bisa memakai teman dan komunitas sebagai kriteria
- Mirip dengan jawaban untuk memilih sistem operasi: pakailah yang dipakai teman-teman Anda
- Keuntungan belajar dari teman dapat mengimbangi perbedaan pada sistem operasi atau bahasa itu sendiri
- Pertimbangkan juga apakah bahasa yang dipilih memiliki komunitas, buku, situs web, dan forum online yang berkembang
- Kesederhanaan itu penting
- C++ dan Java dirancang agar programmer berpengalaman dapat melakukan pengembangan profesional dalam tim besar, dan memiliki bagian-bagian kompleks yang mempertimbangkan efisiensi eksekusi
- Orang yang baru belajar tidak membutuhkan kompleksitas itu
- Lingkungan eksekusi interaktif memudahkan pembelajaran
- Ini seperti saat belajar piano: lebih mudah belajar ketika Anda mendengar suara segera setelah menekan tuts, dibanding model batch yang baru terdengar setelah seluruh lagu selesai
- Dalam pemrograman pun, bahasa yang menyediakan mode interaktif lebih menguntungkan
- Berdasarkan kriteria ini, Python atau Scheme direkomendasikan sebagai bahasa pertama
- JavaScript bisa menjadi pilihan bukan karena bahasanya dirancang sempurna untuk pemula, melainkan karena ada banyak tutorial online
- Contohnya tutorial Khan Academy
- Pelajar berusia satu digit mungkin menyukai Alice, Squeak, Blockly, dan pelajar yang lebih tua juga dapat menikmatinya
- Yang penting adalah memilih satu dan mulai
Buku dan materi yang direkomendasikan
- Buku saja tidak cukup, tetapi materi berikut dapat membantu pembelajaran
-
Structure and Interpretation of Computer Programs
- Structure and Interpretation of Computer Programs adalah buku pengantar ilmu komputer yang sangat bagus, dan mengajarkan pemrograman dengan cara memahami ilmu komputer
- Anda dapat menonton video kuliah dan membaca teks lengkap online
- Karena bukunya menantang, ia mungkin menyaring sebagian pembelajar yang sebenarnya bisa berhasil dengan pendekatan lain
-
How to Design Programs
- How to Design Programs adalah salah satu buku bagus yang menggunakan Scheme untuk membahas cara merancang program secara nyata dengan pendekatan elegan dan fungsional
-
Python
- Python Programming: An Intro to CS adalah buku pengantar bagus yang menggunakan Python
- Python.org memiliki beberapa tutorial untuk pemula
-
Oz
- Concepts, Techniques, and Models of Computer Programming dianggap sebagian orang sebagai penerus modern Abelson & Sussman
- Buku ini membahas ide-ide besar pemrograman secara luas, dan meski menggunakan bahasa yang tidak begitu dikenal bernama Oz, ia dapat menjadi dasar untuk mempelajari bahasa lain
1 komentar
Komentar Hacker News
Pada 1999, saya membeli "Sams Teach Yourself C++ in 24 Hours" di CompUSA, dan kasir yang melihatnya tertawa lalu memberi tahu saya tentang tulisan ini.
Saat berusia 16 tahun, ketika sedang melihat-lihat buku pemrograman di Borders, seseorang menyodorkan "The C Programming Language" kepada saya, dan itu mengubah hidup saya.
Sebagian besar karier saya terbentuk dari pertemuan tak sengaja di dunia nyata dengan developer atau orang-orang yang tertarik pada pemrograman.
Terakhir kali saya merasakan hal seperti itu adalah ketika keluar dari Microcenter membawa MacBook baru dan iPod Touch, merasa siap membuat Angry Birds berikutnya.
Sekitar 8 tahun kemudian, ketika saya membeli Turbo Pascal, semua materi yang dibutuhkan sudah tersedia sehingga saya bisa mempelajarinya dengan cepat; dan ketika mulai memakai Linux pada 1995, hanya dengan halaman man dan dokumen info saya bisa mempelajari hampir semua yang diperlukan untuk menulis program di sistem itu.
Saya juga masih ingat membaca manual EGCS dari awal sampai akhir pada akhir 90-an.
Saya rindu masa ketika software menyediakan semua informasi yang dibutuhkan bersamanya, dan sayang sekali sekarang harus mengorek Google untuk mencari halaman produk atau manual.
Rasanya sekitar 5 tahun lagi, karena informasi terkait hanya diposting di Discord dan tidak terindeks, kita bahkan akan merindukan pencarian Google yang dulu dipakai sebagai pengganti manual.
Pada awal 2000-an, saya juga belajar pemrograman socket di Linux dan FreeBSD hanya dari halaman man; ketika kemudian membaca buku Stevens, saya bisa membacanya dengan sangat cepat karena sudah punya bekal dari halaman man dan pengalaman menulis beberapa program.
Saya ingin belajar membuat punter/prog dengan mengunduh Visual Basic 3.0 dari AOL sebagai 100 lampiran email.
Saya menyalin kode dari buku itu untuk memutar file suara saat program mulai, dan benar-benar takjub ketika itu ternyata berjalan.
Setelah itu, bisa membangun karier di pengembangan software adalah kehormatan besar.
Pada tahun 90-an, cukup sering yang didapat bukan nasihat, melainkan reaksi tidak percaya.
Setiap developer sebaiknya membaca dan mempelajari C dan K&R setidaknya sekali, meskipun kemudian segera melupakan C.
Tulisan ini punya makna khusus bagi saya karena pertama kali membacanya saat remaja, ketika baru mulai belajar coding.
Saat membacanya lagi, saya terkejut melihat Malcolm Gladwell disebut, karena seingat saya Outliers baru menjadi topik hangat jauh setelah itu.
Baru setelah melihat penyebutan Ratatouille saya menyadari bahwa tulisan ini diperbarui setelah diposting pada 1998; versi aslinya masih ada di arsip dan jauh lebih pendek: https://web.archive.org/web/19980206223800/https://norvig.co...
Patut dihormati bahwa Peter Norvig terus memperbaiki tulisannya sendiri selama bertahun-tahun.
Ia terlalu sering dikutip, dan aturan 10.000 jam sekarang terasa seperti sekadar meme.
Sekarang saya memang belajar pemrograman secara otodidak, tetapi perjalanannya jauh lebih sulit dan berliku daripada yang saya bayangkan saat itu.
Saya juga termasuk orang yang belajar dari buku, tetapi sikap seperti itu sering kali lebih cocok untuk bidang non-komputasi yang perubahannya lambat, seperti matematika dan fisika.
Contoh buruk baru-baru ini adalah buku Quantum Programming dari O'Reilly, yang tidak membahas sirkuit kuantum dengan cukup rinci sampai saya benar-benar memahami apa yang saya lakukan.
Namun, bisa jadi itu karena komputasi kuantum sendiri memang penuh gembar-gembor; Nielsen/Chuang yang sedang saya baca sekarang sangat teoretis, tetapi penjelasannya sangat jelas, jadi mungkin nanti saya akan kembali ke sana.
Buku hanyalah alat belajar, dan proyek hobi justru bisa menjadi alat belajar yang lebih efektif karena juga membangun pengalaman.
Meski begitu, pengetahuan adalah kekuatan, dan buku sangat baik untuk membantu menentukan arah yang benar, dengan asumsi kita menemukan buku yang sesuai kebutuhan.
Saya tahu ada orang yang sama sekali tidak mau membuka buku jika tidak yakin bisa membacanya sampai selesai; menurut saya sikap seperti itu tidak masuk akal.
Saya baru saja memesan buku Generative Deep Learning dari O'Reilly, dan jika saya bisa mengambil beberapa bagian saja yang berguna untuk karier, itu sudah cukup menguntungkan.
Setidaknya buku itu akan terlihat bagus di rak.
Setiap minggu ada framework frontend baru, tetapi pada akhirnya semuanya menghasilkan HTML.
Ini adalah thread-thread dari rentang 16 tahun
Repost setelah kira-kira setahun tidak masalah, dan tautan ke thread lama ditujukan untuk pembaca yang ingin tahu lebih jauh
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=33287618 - Oktober 2022, 112 komentar
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=27411276 - Juni 2021, 115 komentar
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=20543495 - Juli 2019, 87 komentar
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=16574248 - Maret 2018, 51 komentar
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=9395284 - April 2015, 61 komentar
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=5519158 - April 2013, 86 komentar
Teach Yourself Programming in Ten Years by Peter Norvig (2001) - https://news.ycombinator.com/item?id=3439772 - Januari 2012, 29 komentar
Teach Yourself Programming in 10 Years. - https://news.ycombinator.com/item?id=1060176 - Januari 2010, 32 komentar
Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=191235 - Mei 2008, 19 komentar
Norvig: Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=43243 - Agustus 2007, 7 komentar
Menarik bahwa tautan Amazon.com lama di halaman itu masih mengembalikan hasil yang relevan, meski memakai parameter kueri yang cukup rumit
Ini contoh bagus dari “Cool URIs don't change”
[0] http://www.amazon.com/gp/search/ref=sr_adv_b/?search-alias=s...
[1] https://www.w3.org/Provider/Style/URI
Saya bertemu cukup banyak orang yang bertanya bagaimana mereka bisa mendapatkan pekerjaan sebagai programmer di kantor atau di tempat lain.
Ketika saya menceritakan jalur saya—mulai belajar sejak kecil, menjadikannya hobi besar, lalu mengambil gelar ilmu komputer dan magang—mereka terkejut dan kecewa karena tidak ada jalan cepat.
Atau mungkin ada jalan cepat? Saya penasaran apakah ada orang yang berhasil menyelesaikan bootcamp dari 0 ke 1.
Di SMA dan kuliah saya sempat mengambil beberapa kelas pemrograman untuk bersenang-senang, tetapi pengetahuan saya sangat terbatas.
Bootcamp itu benar-benar sesuai namanya; jam dasarnya 09.00–17.00, tetapi banyak orang datang pukul 07.00 pagi dan pulang pukul 22.00 malam.
Kami juga datang di akhir pekan, dan kadang hanya libur pada hari Minggu.
Saya sengaja memilih bootcamp di kota lain agar kehidupan sosial tidak mengganggu.
Fokusnya Ruby dan JavaScript, dan beberapa bulan setelah lulus saya mendapat pekerjaan sebagai intern C#/.NET.
Saya memilih posisi intern karena tampaknya sulit meyakinkan orang untuk langsung memberi posisi junior developer, dan dalam 2 minggu saya dipromosikan menjadi junior developer.
Sekolah itu kemudian diakuisisi Kaplan lalu menghilang.
Saya belajar sendiri dasar-dasar JavaScript selama 8 bulan di ruang bawah tanah rumah ibu saya dan berhasil mendapatkan pekerjaan.
Setelah itu saya mencurahkan sangat banyak waktu untuk pemrograman, dan sampai sekarang totalnya sudah puluhan ribu jam.
Saya pernah menangani compiler, grafika 3D, semikonduktor, dan game engine.
Pengalaman saya sepertinya mendukung kedua sisi.
Sekitar 2012, dengan pengalaman sedikit pun relatif mudah masuk ke industri, tetapi setelah itu butuh usaha luar biasa untuk menjadi engineer yang baik, yang ingin direkrut orang-orang karena punya proyek menarik.
Dari data yang terbatas, sama seperti developer berpendidikan tradisional, hasilnya untung-untungan.
Hasil terbaik adalah ketika orang dengan pelatihan klasik seperti fisika, kimia, atau teknik ingin berganti karier; mereka mendekati junior level tinggi dengan kurva belajar cepat.
Jika ingin menempatkan karyawan baru yang termotivasi di area software yang pemrograman murninya tidak terlalu penting, mereka bisa menjadi rekrutan yang bagus.
Simpangan bakunya besar, tetapi saya tidak yakin apakah lebih besar daripada lulusan program 2 tahun.
Di universitas saya belajar humaniora dan belum pernah coding.
Dua tahun pertama benar-benar berat, dan karena tidak punya dasar, rasanya seperti terus berenang melawan arus.
Baru menjelang akhir program 2 tahun itu saya merasa bisa menghasilkan nilai secara mandiri.
Pengetahuan saya cukup berorientasi terapan, dan karena kurang dasar ilmu komputer, kadang menjadi lebih sulit karena harus mempelajari hal-hal fundamental di sela-sela pekerjaan.
Namun peran saya sekarang adalah data engineer, jadi bidang ilmu komputer tradisional seperti struktur data dan algoritma relatif tidak terlalu dituntut.
Intinya adalah latihan yang disengaja.
Bukan sekadar mengulang, melainkan menantang diri dengan tugas yang sedikit lebih sulit daripada kemampuan saat ini, mencoba, menganalisis selama dan setelah pengerjaan, memperbaiki kesalahan, lalu mengulanginya lagi.
Untuk terus belajar, kita harus menantang diri sendiri dan keluar dari zona nyaman.
Setelah memakainya beberapa bulan, suatu saat saya tidak sengaja logout, dan saya justru merasa sedikit kerepotan mencari dokumentasi resmi itu bernilai.
Pada minggu pertama saya terkejut karena merasa jauh lebih lamban.
Mengambil langkah tambahan untuk belajar dari sumber primer, dan sesekali menghargai ketidaknyamanan, penting untuk berkembang sebagai programmer.
Terutama jika tugas tingkat tahun pertama–kedua diselesaikan hanya dengan Copilot, mereka bisa saja mengotomatisasi kegunaan diri mereka sendiri hingga hilang.
Di sisi lain, kita sudah mengatakan hal serupa tentang “anak-anak iPad”.
iPad juga punya file system, dan aplikasi-aplikasinya terus bertambah fitur dalam cara yang disetujui Apple, jadi menurut saya itu bukan pendekatan buruk terhadap laptop.
Saya juga memakai Copilot, tetapi terutama sebagai autocomplete pintar untuk menyiapkan variabel atau pekerjaan repetitif kecil.
Fungsinya menghemat waktu yang seharusnya dipakai untuk mengontekstualisasikan pemecahan masalah dan berinteraksi dengan rekan tim, bukan benda yang menggantikan engineer.
Keahlian datang dari pengalaman, dan pengalaman hanya terkumpul jika kita terus kembali.
Ada orang yang bisa memaksa diri terus menderita tanpa henti, tetapi bagi kebanyakan orang, lebih bijak memulai dengan menemukan bagian dari software yang sungguh bisa dicintai lalu menumbuhkannya.
Saya pernah melihat orang-orang yang jelas lebih pintar daripada saya di bidang coding keluar karena terlalu pintar.
Alasannya karena mereka merasa itu tidak lagi menantang, atau bosan dengan tantangan yang keliru seperti “menunggu orang lain menyusul”.
Biasanya mereka adalah orang-orang yang mengerjakan teknologi mutakhir yang beberapa tahun kemudian menjadi standar.
Jika pesona adalah motivasinya, mungkin kita boleh bersyukur karena tidak terlalu pintar.
Meski ditandai sebagai tulisan tahun 1998, karena ada penyebutan seperti Clojure dan Go, tampaknya tulisan ini telah diperbarui setelahnya.
Tulisan yang bagus
Dengan patokan 8 jam sehari, 40 jam seminggu, butuh 250 minggu untuk mencapai 10 ribu jam
Bahkan jika memprogram hampir tanpa libur, itu sekitar 5 tahun, dan secara realistis lebih mendekati 10 tahun untuk mencapai target
Jika banyak memprogram, 3 ribu jam setahun pun bisa dicapai dengan mudah
Saya memprogram 12 jam sehari pada sebagian besar hari, 6–7 hari seminggu pada sebagian besar minggu
Pada hari ketika motivasi sangat kuat, saya juga bisa 18 jam
Saya sudah melakukan ini hampir 10 tahun, sesekali beristirahat sekitar sebulan dan menguranginya menjadi 3–4 hari seminggu dengan jam kerja panjang
Dengan perhitungan konservatif pun kira-kira 3500 jam per tahun
Alasan saya bekerja sebanyak ini adalah karena saya benar-benar mencintai pemrograman, dan selain berselancar pagi, tidak ada hal lain yang lebih ingin saya lakukan
Meski begitu, sekitar 10 tahun karier profesional untuk menjadi developer yang solid tampaknya secara umum masuk akal
Saya belum pernah melihat orang yang benar-benar mencapai level itu hanya dalam 5 tahun
Orang yang sudah terobsesi sejak remaja kadang bisa memangkas beberapa tahun, tetapi pada titik tertentu periode itu juga mulai tumpang tindih
Tentu ada juga pepatah lama bahwa masalahnya adalah “mengulang pengalaman 1 tahun sebanyak 10 kali”
Saya juga banyak melihat developer dengan pengalaman lebih dari 10 tahun yang tetap tidak solid
Kelihatannya cukup masuk ke peran junior lalu bekerja selama 5 tahun sambil naik level
Intuisi terbangun dengan mengerjakan tugas yang makin sulit
Pada suatu titik, kamu bisa menghubungkan dan menerapkan hal yang kamu ketahui di satu bidang ke bidang lain, dan saat itulah kreativitas mulai bekerja
Saya tidak bisa menemukan sumber video yang saya lihat 5–6 tahun lalu, tetapi intinya mengatakan bahwa seiring bertambahnya jumlah programmer, mayoritas memiliki pengalaman kurang dari 5 tahun
Dalam konteks IT dan web yang makin besar keterlibatannya dalam hidup, itu masuk akal
[0] https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM ditemukan berkat komentar wild_egg
Setelah 20 tahun melakukannya, sekarang ada cukup banyak informasi yang tidak perlu lagi saya ketahui, dan bagi orang dengan pengalaman kurang dari 5 tahun mungkin banyak juga informasi yang sama sekali tidak mereka perlukan
Di sisi lain, pengalaman tetaplah pengalaman, dan mengetahui bagaimana sesuatu dibangun serta alasan keberadaannya selalu membantu
Ada juga banyak programmer yang pengalamannya lebih sedikit daripada saya tetapi bisa melakukan banyak hal yang bahkan tidak bisa saya bayangkan
Sejujurnya, bidang yang memiliki Turing completeness ini memang cukup luas
Saya tidak pernah menghafal sintaks secara khusus, dan selalu memprogram dengan halaman man dan manual terbuka
Namun setiap bahasa dan teknologi yang saya pelajari mengajarkan sesuatu yang berguna tentang masalah mendasar dalam komputasi dan sistem
Cara menangani masalah memakai pakaian yang berbeda-beda, tetapi masalahnya sendiri tetap sama
Tidak ada jalan pintas, dan saya tahu pasti bahwa sebagai programmer, diri saya sekarang beberapa orde besaran lebih mampu daripada diri saya pada tahun ke-5
Alasan saya lebih menantikan belajar hal baru dan mengerjakan hal baru daripada sebelumnya adalah karena hal-hal itu akan membuka lebih banyak bagian dari teknologi ini
Yang saya khawatirkan hanyalah suatu hari tubuh dan pikiran saya tidak lagi sanggup mengikuti, bukan karena hal untuk dipelajari akan habis atau saya akan disalip oleh orang-orang muda
https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM
Rasanya masih seperti era para alkemis
Suatu hari para ahli kimia akan muncul, mensistematisasi pengamatan yang tambal-sulam, dan membuang banyak hal
Sampai saat itu… Newton juga seorang alkemis, tetapi ia tetap memberi kontribusi yang cukup besar