Mengetik 10 jari bagi programmer sebagian besar adalah soal tombol-tombol yang dilewati kursus mengetik biasa: angka, tanda kurung, operator, dan kombinasi Shift di sekitarnya. Programmer yang mengetik teks biasa pada 90 WPM bisa saja lambat saat menulis kode, dan pengetik teks 50 WPM bisa saja cepat. Kami menyadarinya saat menempelkan berkas kode sumber kami sendiri ke mode Kustom selama pengujian. Kecepatan turun sepertiga atau lebih dibanding mode Kata, peta panas per tombol menyala di baris angka dan kelingking kanan, dan burst paling lambat terjadi pada token yang mengandung tanda kurung.
Mengapa WPM teks biasa adalah tolok ukur yang buruk untuk mengetik kode
Kode berbeda dari teks dalam tiga hal, dan tes mengetik yang disusun dari kata-kata umum bahasa Inggris tidak mengukur satu pun.
Yang pertama adalah campuran karakternya. Kami menghitungnya. Di sepuluh tulisan pertama di blog ini, sekitar 93 dari setiap 100 karakter non-spasi adalah huruf, 5 tanda baca, dan 2 angka. Dalam kode sumber JavaScript alat baris perintah npm, huruf turun menjadi sekitar 80 dan simbol naik menjadi 19. Modul json dan email Python menghasilkan 80 hingga 85 huruf, dan salah satu skrip build kami yang padat hanya 64, dengan sepertiga karakternya berupa simbol. Jadi kode punya kira-kira tiga sampai tujuh kali lebih banyak simbol daripada teks kami. Sebagian besar simbol itu berada di baris atas atau memerlukan Shift, yang berarti kelingking kanan dan jangkauan yang lebih lemah. Tes kata bahasa Inggris kami disusun dari 1.000 kata paling umum dalam sebuah korpus subtitel; "{" tidak termasuk di dalamnya.
Yang kedua adalah ritme. Teks diketik dalam rangkaian panjang. Kode diketik dalam semburan pendek di sela jeda untuk berpikir, menggulir, dan membaca. Para relawan dalam studi Dhakal dkk. tahun 2018 terhadap 136 juta ketikan, yang menyalin kalimat, rata-rata berjeda sekitar 239 milidetik antartombol. Hari seorang programmer penuh dengan jeda yang berlangsung beberapa detik, dan kecepatan burst di dalam rangkaian pendek itu lebih penting daripada rata-rata apa pun.
Yang ketiga adalah editor. Pelengkapan otomatis, snippet, dan pintasan keyboard membuat programmer yang sedang bekerja hanya mengetik sebagian kecil dari karakter di layar. Tidak ada tes mengetik yang bisa mengukurnya, dan tes kami tidak berpura-pura bisa.
Seberapa penting kecepatan mengetik untuk pemrograman?
Tidak sepenting yang dikira orang, dan letaknya di tempat yang berbeda. Kalau ada yang bertanya apakah 60 WPM cukup untuk menjadi programmer, jawabannya ya, dengan catatan: kalau kamu menunduk untuk mencari simbol dan angka, 60 WPM bukanlah kecepatanmu saat mengetik kode. Kemampuan mengetik satu baris tanpa memutus alur pikiran lebih penting daripada kecepatan mentah, dan menunduk ke keyboard itulah yang memutusnya.
Cara mengetik simbol lebih cepat, dan mengapa tidak ada yang mengajarkannya
Pertanyaan yang terus muncul di forum mengetik: seseorang sudah bisa mengetik huruf dengan 10 jari pada kecepatan lumayan, tetapi begitu mulai menulis kode, ia kembali mencari-cari simbol, angka, bahkan huruf kapital, dan ia ingin cara bertahap untuk mempelajarinya, seperti saat ia belajar huruf, beberapa tombol sekaligus.
Sebagian yang membuat simbol sulit adalah Shift. Dalam kode sumber npm yang kami hitung, sekitar 45% ketikan simbol adalah karakter yang memerlukan Shift seperti ( ) { } : dan $, mendekati 9 dari setiap 100 karakter non-spasi sebelum menghitung satu pun huruf kapital. Jadi perbaiki kebiasaan Shift terlebih dahulu: tekan Shift dengan tangan yang tidak sedang mengetik karakternya. ( dan ) ada di 9 dan 0 milik tangan kanan, jadi keduanya memakai Shift kiri; ! @ # $ ada di tangan kiri, jadi semuanya memakai Shift kanan. Kebanyakan pengetik otodidak menahan Shift kiri untuk semuanya, dan untuk ! itu berarti kelingking kiri harus menekan dua tombol sekaligus. Periksa kebiasaanmu sendiri dengan mengetik satu baris yang mengandung @ dan $ lalu perhatikan kelingking mana yang bergerak.
Simbol sulit dilatih secara terpisah dan membosankan untuk dilatih sama sekali: huruf datang bersama kata, tanda kurung datang bersama kode, dan kode acak tidak menarik. Jawaban kami adalah melatih simbol pada baris kode sungguhan, satu kelompok demi satu.
Satu kelompok demi satu
Inilah urutan yang akan kami pakai, dan urutan jalur simbol yang sedang kami bangun untuk halaman Latihan. Sampai fitur itu rilis, kamu bisa melakukan hal yang sama dengan menempelkan kode sungguhan ke mode Kustom, satu kelompok simbol demi satu, dan tidak menambahkan kelompok berikutnya sampai kelompok saat ini mencapai akurasi 95%:
- Angka. Baris angka, dengan jari-jari home row menjangkau ke atas. Ini didahulukan karena merupakan kelompok non-huruf yang paling sering dipakai dan karena hampir semua orang punya kebiasaan buruk di sini, misalnya telunjuk yang menekan 4, 5, 6, dan 7. Tes angka adalah cara cepat untuk memeriksanya.
- Tanda kurung sebagai pasangan. ( ) dulu, lalu [ ], lalu { }. Berpasangan, karena kamu hampir tidak pernah mengetik yang satu tanpa yang lain: dalam kode sumber npm itu, ( muncul 6.195 kali dan ) 6.194 kali. Melatih gerakan buka-tutup sebagai satu kesatuan itulah yang membuatnya cepat. Tanda kurung tutup adalah tempat ritme kebanyakan orang patah.
- Operator. = + - * / dan kurung sudut, ditambah bentuk gabungannya (==, =>, +=, !=). Semua ini tersebar di baris angka dan tombol tanda baca tangan kanan, dan beberapa memerlukan Shift di tangan yang sama, itulah bagian yang canggung.
- Tanda kutip dan tanda baca. ' " ; : , . dengan kelingking kanan yang melakukan sebagian besar pekerjaannya. Titik koma dan titik dua adalah tempat pengetik keluarga C dan Python paling berbeda, jadi berlatihlah dengan baris dari bahasa yang kamu pakai.
- Shell dan sisanya. Pipe, backslash, tilde, backtick, caret, ampersand, pagar, dolar, tanda @, dan tombol _. Tombol _ dan backtick mengejutkan kebanyakan orang; kode snake_case terus-menerus memakai _, dan kebanyakan pengetik menekannya dengan jari yang salah.
Setiap kelompok memakan waktu satu atau dua minggu sesi sepuluh menit bagi kebanyakan orang, jadi seluruh jalur ini dua sampai tiga bulan. Itu lebih lambat daripada belajar huruf, karena tombol simbol lebih jauh dan kebiasaan yang kamu ganti lebih tua.
Apa yang biasanya salah, dari mengamati statistik per tombol: orang mempelajari simbol dengan jari yang benar lalu kembali ke cara lama saat tertekan, karena gerakan lama itu lebih cepat selama beberapa minggu. Statistiknya menunjukkan hal ini sebagai tombol yang jedanya naik-turun liar, cepat saat kamu menjangkau dengan benar dan lambat saat tidak. Solusinya adalah bertahan di kelompok itu satu minggu lagi.
Pasangan tanda kurung dan penutupan otomatis
Editor menutup tanda kurung secara otomatis, yang memunculkan pertanyaan wajar: mengapa belajar mengetik tanda kurung tutupnya?
Ada dua alasan. Penutupan otomatis tidak konsisten: ia aktif di beberapa tempat dan tidak di tempat lain, seperti terminal atau jendela obrolan. Pengetik yang mengandalkannya ragu setiap kali untuk memeriksa apakah fitur itu aktif, dan keraguan itu lebih mahal daripada satu ketikan. Dan mengetik di atas tanda kurung yang ditutup otomatis (menekan ")" saat editor sudah menyisipkannya) juga merupakan satu ketikan, jadi kamu tetap mengetik tanda kurung tutup bagaimanapun caranya.
Saat kamu menempelkan kode ke mode Kustom di sini, teksnya dipecah berdasarkan spasi, sehingga indentasi hilang dan setiap token menjadi satu kata. Itu sekaligus keterbatasan dan kemudahan: kamu tidak mengetik empat spasi di awal setiap baris Python, tetapi kamu juga tidak melatihnya. Mode kode yang layak, yang menangani indentasi dan pasangan yang ditutup otomatis seperti editor, ada di daftar rencana kami, dan itu lebih sulit daripada kedengarannya.
Kecepatan kode dibandingkan teks biasa
Kami belum punya cukup hasil mode kode untuk menerbitkan persentil, dan kami lebih suka menunggu daripada mengarangnya. Dalam percobaan kami sendiri, kecepatan kode pada potongan kode yang realistis berkisar antara setengah hingga dua pertiga dari kecepatan teks biasa orang yang sama, dan rasio itu lebih membaik dengan latihan simbol daripada dengan latihan umum.
Angka yang benar-benar bisa dibawa adalah akurasi. Programmer yang mengetik teks biasa dengan akurasi 97% dan kode dengan akurasi 90% punya masalah simbol, dan peta panas per tombol menunjukkan simbol mana persisnya. Programmer dengan akurasi 97% pada keduanya hanya perlu lebih banyak mengetik kode. Metodologi penilaian kami menjelaskan bagaimana akurasi menghitung kesalahan yang sudah dikoreksi.
Sebagai tolok ukur standar, tes tanda baca dengan angka dinyalakan adalah mode reguler kami yang paling dekat dengan kode. Tes itu tidak punya kurung kurawal, tetapi melibatkan tombol Shift dan baris angka, dan bagi kebanyakan orang di situlah celahnya.
Pilihan keyboard yang membantu
Saran keyboard yang diterima programmer kebanyakan soal switch, dan kebanyakan melenceng dari inti masalah.
Tata letak lebih penting daripada switch. Dvorak memindahkan tanda kurung ke baris angka dan memindahkan sebagian besar tanda baca. Colemak dan Workman mempertahankan tanda kurung di tempat yang sama dengan QWERTY, tetapi keduanya memindahkan titik koma ke tempat P di QWERTY, yang akan terasa bagi programmer keluarga C. Artikel tata letak keyboard memuat versi panjangnya.
Layer simbol lebih baik daripada keyboard yang lebih besar. Banyak keyboard split dan ringkas memungkinkanmu menaruh tanda kurung dan operator di bawah jari-jari home row pada sebuah layer yang ditahan dengan tombol ibu jari. Dari semua perubahan perangkat keras yang diceritakan programmer, inilah yang akan kami coba pertama kali, karena dengan begitu kamu tidak perlu lagi menunduk untuk mencari simbol.
ISO dibandingkan ANSI. Pada keyboard ISO (Inggris dan sebagian besar Eropa), tombol tambahan di samping Shift kiri dan tombol Enter yang tinggi mengubah letak backslash dan pipe. Kalau kamu berlatih di satu jenis dan bekerja di jenis lainnya, kelingkingmu akan meleset. Karena alasan itu, emulasi kami menyertakan kedua varian Colemak-DH.
Switch nyaris tidak berpengaruh pada kecepatan. Switch linear, taktil, dan clicky berbeda dalam rasa dan bunyi, dan log ketikan tidak tahu mana yang kamu tekan. Artikel keyboard mekanis kami membahas angka-angkanya.
Suara membantu sebagian orang sebagai umpan balik: suara kesalahan memberi tahu bahwa sebuah simbol salah tanpa perlu menunduk. Nyalakan saat mempelajari simbol.
Sesi sepuluh menit untuk programmer
Yang akan kami lakukan setiap hari selama dua atau tiga bulan yang dibutuhkan jalur simbol:
- Dua menit: tes kata 30 detik sebagai pemanasan, akurasi 97%.
- Enam menit: kelompok simbol saat ini, dengan teks kustom yang ditempelkan dari kodemu sendiri. Berhenti begitu muncul tanda pertama kembali ke jari lama.
- Dua menit: satu potongan kode dalam bahasa yang paling sering kamu pakai. Setelahnya, lihat peta panas per tombol, bukan WPM.
Pada hari-hari ketika kamu tidak punya sepuluh menit, ketik sendiri tanda kurung tutupnya. Itulah kebiasaan terkecil dalam artikel ini dan biasanya yang pertama membuahkan hasil.
Pertanyaan yang sering diajukan
Berapa kecepatan mengetik yang bagus untuk programmer?
Apa pun mulai sekitar 40 WPM ke atas sudah cukup untuk bekerja asalkan kamu mengetik simbol dan angka dengan 10 jari. Di atas itu, hambatannya adalah berpikir, membaca, dan keterampilan memakai editor, bukan kecepatan jari.
Bagaimana cara belajar mengetik angka dengan 10 jari?
Latih baris angka secara terpisah sampai akurasinya bertahan di 95%, memakai jari yang berada tepat di bawah setiap angka di home row, lalu campurkan angka ke dalam teks biasa.