Slijepo tipkanje za programere: simboli, brojevi i brzina koja je važna

Slijepo tipkanje za programere uglavnom se svodi na tipke koje običan tečaj tipkanja preskače: znamenke, zagrade, operatore i kombinacije sa Shiftom oko njih. Programer koji prozu tipka brzinom od 90 WPM može biti spor u kodu, a netko tko prozu tipka na 50 WPM može u njemu biti brz. To smo primijetili kad smo tijekom testiranja lijepili vlastite izvorne datoteke u prilagođeni način. Brzine su pale za trećinu ili više u odnosu na način Riječi, toplinska karta po tipkama zasvijetlila je na redu brojeva i desnom malom prstu, a najsporiji naleti bili su na tokenima sa zagradama.

Zašto je WPM na prozi loš pokazatelj tipkanja koda

Kod se od teksta razlikuje na tri načina, a test tipkanja sastavljen od čestih engleskih riječi ne mjeri nijedan od njih.

Prvi je mješavina znakova. Prebrojali smo. U prvih deset članaka na ovom blogu otprilike je 93 od svakih 100 znakova koji nisu razmaci slovo, 5 su interpunkcija, a 2 znamenke. U JavaScript izvornom kodu npm-ova alata naredbenog retka slova padaju na otprilike 80, a simboli rastu na 19. Pythonovi moduli json i email daju 80 do 85 slova, a jedna naša gusta skripta za izgradnju 64, pri čemu su trećina njezinih znakova simboli. Kod dakle ima otprilike tri do sedam puta više simbola od naše proze. Većina ih je u gornjem redu ili traži Shift, što znači desni mali prst i slabija posezanja. Naši testovi engleskih riječi sastavljeni su od 1.000 najčešćih riječi iz korpusa titlova; „{” nije među njima.

Drugi je ritam. Proza se tipka u dugim nizovima. Kod se tipka u kratkim naletima između stanki za razmišljanje, pomicanje i čitanje. Dobrovoljci u studiji Dhakala i suradnika iz 2018. o 136 milijuna pritisaka tipki, koji su prepisivali rečenice, imali su u prosjeku otprilike 239 ms između tipki. Programerov dan pun je praznina od nekoliko sekundi, a brzina naleta unutar kratkih nizova važnija je od bilo kojeg prosjeka.

Treći je uređivač. Automatsko dovršavanje, isječci i tipkovnički prečaci znače da programer na poslu utipka samo djelić znakova koji se vide na zaslonu. To ne može izmjeriti nijedan test tipkanja, a naš se ni ne pretvara da može.

Je li brzina tipkanja važna za programiranje?

Manje nego što ljudi misle, i na drugom mjestu. Kad netko pita je li 60 WPM dovoljno za programera, odgovor je da, uz ogradu: ako gledaš dolje kad tražiš simbole i brojeve, kod ne tipkaš brzinom od 60 WPM. Važnije od same brzine je da možeš utipkati redak bez prekidanja misli, a misao prekida upravo gledanje u tipkovnicu.

Kako brže tipkati simbole i zašto to nitko ne poučava

Pitanje koje se na forumima o tipkanju stalno vraća: netko slova tipka slijepo pristojnom brzinom, ali čim počne programirati, ponovno traži simbole, brojeve pa čak i velika slova, i želi postupan način da ih nauči, onako kako je naučio slova, nekoliko tipki odjednom.

Dio onoga što simbole čini teškima je Shift. U npm-ovu izvornom kodu koji smo prebrojali otprilike 45 % pritisaka na simbole bili su znakovi sa Shiftom, poput ( ) { } : i $, što je blizu 9 od svakih 100 znakova koji nisu razmaci, i to prije nego što prebrojiš ijedno veliko slovo. Zato najprije popravi naviku sa Shiftom: Shift pritišći rukom koja ne tipka znak. ( i ) nalaze se na desnoj ruci, na 9 i 0, pa idu s lijevim Shiftom; ! @ # $ nalaze se na lijevoj ruci, pa idu s desnim Shiftom. Većina samoukih daktilografa za sve drži lijevi Shift, a za ! to od lijevog malog prsta traži da pritisne dvije tipke odjednom. Provjeri vlastitu naviku tako da utipkaš redak s @ i $ i pratiš koji se mali prst miče.

Simbole je teško uvježbavati izolirano, a uvježbavati ih je uopće dosadno: slova dolaze s riječima, zagrade dolaze s kodom, a nasumični kod nije zanimljiv. Naš odgovor je vježbati simbole na stvarnim redcima koda, skupinu po skupinu.

Skupinu po skupinu

Ovo je redoslijed koji bismo koristili i redoslijed niza vježbi sa simbolima koji gradimo za stranicu za vježbu. Dok ne bude gotov, isto možeš postići tako da stvarni kod lijepiš u prilagođeni način, jednu skupinu simbola odjednom, i ne dodaješ sljedeću skupinu dok trenutačna ne dosegne točnost od 95 %:

  • Znamenke. Red brojeva, s prstima iz osnovnog reda koji posežu gore. Ovo ide prvo jer je to najkorištenija skupina koja nisu slova i jer gotovo svatko ovdje ima lošu naviku, primjerice da kažiprst pritišće 4, 5, 6 i 7. Test brojeva brza je provjera.
  • Zagrade u parovima. Najprije ( ), zatim [ ], pa { }. U parovima, jer gotovo nikad ne tipkaš jednu bez druge: u tom npm-ovu izvornom kodu ( se pojavljuje 6.195 puta, a ) 6.194 puta. Uvježbavanje pokreta otvaranja i zatvaranja kao jedne cjeline čini ga brzim. Zatvorena zagrada mjesto je gdje se većini ljudi lomi ritam.
  • Operatori. = + - * / i šiljaste zagrade, uz složene oblike (==, =>, +=, !=). Raspoređeni su po redu brojeva i desnim tipkama s interpunkcijom, a nekoliko ih traži Shift na istoj ruci, što je nezgodan dio.
  • Navodnici i interpunkcija. ' " ; : , . pri čemu većinu posla obavlja desni mali prst. Točka sa zarezom i dvotočka su mjesto gdje se daktilografi iz obitelji jezika C i iz Pythona najviše razlikuju, pa vježbaj na redcima iz jezika koji koristiš.
  • Ljuska i neobični znakovi. Okomita crta, obrnuta kosa crta, tilda, obrnuti apostrof, kapica, ampersand, ljestve, dolar, znak @ i tipka _. Znak _ i obrnuti apostrof iznenade većinu ljudi; kod u stilu snake_case stalno koristi _, a većina daktilografa pritišće ga pogrešnim prstom.

Svaka skupina većini ljudi uzme tjedan ili dva desetominutnih vježbi, pa cijeli niz traje dva do tri mjeseca. To je sporije od učenja slova, jer su tipke sa simbolima dalje, a navike koje zamjenjuješ starije.

Što pođe po zlu, prema onome što vidimo u statistici po tipkama: ljudi nauče simbol ispravnim prstom, a onda se pod pritiskom vrate starom, jer je stari pokret nekoliko tjedana brži. Statistika to pokazuje kao tipku čiji razmak divlje varira, brz kad posegneš ispravno, a spor kad ne posegneš. Lijek je ostati na toj skupini još tjedan dana.

Parovi zagrada i automatsko zatvaranje

Uređivači automatski zatvaraju zagrade, što otvara opravdano pitanje: zašto učiti tipkati zatvorenu zagradu?

Dva su razloga. Automatsko zatvaranje nije dosljedno: na nekim se mjestima aktivira, a na drugima ne, primjerice u terminalu ili prozoru za chat. Daktilograf koji se na njega oslanja svaki put zastane da provjeri je li se aktiviralo, a taj zastanak stoji više od pritiska tipke. Osim toga, tipkanje preko automatski zatvorene zagrade (pritisak na „)” kad ju je uređivač već umetnuo) i samo je pritisak tipke, pa zatvorenu zagradu tipkaš u svakom slučaju.

Kad ovdje zalijepiš kod u prilagođeni način, tekst se dijeli na bjelinama, pa uvlake nestaju, a svaki token postaje riječ. To je istodobno ograničenje i pogodnost: ne tipkaš četiri razmaka na početku svakog retka u Pythonu, ali ih ni ne vježbaš. Pravi način za kod koji uvlake i automatski zatvorene parove obrađuje onako kako to čini uređivač na našem je popisu, a teži je nego što zvuči.

Brzina u kodu naspram brzine u prozi

Nemamo dovoljno rezultata u načinu za kod da bismo objavili percentile, a radije ćemo pričekati nego ih izmisliti. U našim vlastitim pokušajima brzina u kodu na realističnom isječku iznosila je otprilike polovicu do dvije trećine brzine iste osobe u prozi, a omjer se više popravlja vježbom simbola nego općom vježbom.

Broj koji se prenosi je točnost. Programer koji prozu tipka uz točnost od 97 %, a kod uz 90 %, ima problem sa simbolima, a toplinska karta po tipkama pokazuje točno s kojima. Programeru s 97 % na oboje treba samo više tipkati kod. Naša metodologija bodovanja objašnjava kako točnost broji ispravljene pogreške.

Kao standardno mjerilo, od naših redovnih načina kodu je najbliži test s interpunkcijom s uključenim brojevima. Neće imati vitičaste zagrade, ali uvodi tipku Shift i red brojeva, a većini ljudi upravo tu leži razlika.

Izbor tipkovnice koji pomaže

Savjeti o tipkovnicama koje programeri dobivaju uglavnom se tiču sklopki i uglavnom promašuju bit.

Raspored je važniji od sklopke. Dvorak premješta zagrade gore u red brojeva i seli većinu interpunkcije. Colemak i Workman drže zagrade tamo gdje ih ima QWERTY, ali oba premještaju točku sa zarezom na mjesto gdje QWERTY ima P, što će programeri iz obitelji jezika C osjetiti. Dužu verziju donosi članak o rasporedima.

Sloj sa simbolima bolji je od veće tipkovnice. Mnoge razdvojene i kompaktne tipkovnice omogućuju da zagrade i operatore staviš pod prste osnovnog reda na sloju koji se drži tipkom za palac. Od svih promjena hardvera koje programeri opisuju, ovu bismo isprobali prvu, jer znači da više nikad nećeš gledati dolje zbog simbola.

ISO naspram ANSI. Na ISO tipkovnicama (britanskim i većini europskih) dodatna tipka pokraj lijevog Shifta i visoka tipka Enter mijenjaju mjesto obrnute kose crte i okomite crte. Ako vježbaš na jednoj, a radiš na drugoj, mali prst će promašivati. Naša emulacija zato ima obje inačice rasporeda Colemak-DH.

Sklopke za brzinu jedva da su važne. Linearne, taktilne i klikajuće sklopke razlikuju se po osjećaju i zvuku, a zapis pritisaka ne zna koju si pritisnuo/la. Naš članak o mehaničkim tipkovnicama prolazi kroz brojke.

Zvuk nekima pomaže kao povratna informacija: zvuk pogreške govori ti da je simbol bio pogrešan bez gledanja dolje. Uključi ga dok učiš simbole.

Desetominutna vježba za programere

Što bismo radili svaki dan tijekom dva ili tri mjeseca koliko traje niz vježbi sa simbolima:

  • Dvije minute: test riječi od 30 sekundi za zagrijavanje, uz točnost od 97 %.
  • Šest minuta: trenutačna skupina simbola, na prilagođenom tekstu zalijepljenom iz vlastitog koda. Stani na prvi znak vraćanja na stari prst.
  • Dvije minute: jedan isječak koda u jeziku koji najviše koristiš. Poslije pogledaj toplinsku kartu po tipkama, a ne WPM.

Danima kad nemaš deset minuta, zatvorenu zagradu tipkaj sam/a. To je najmanja navika u ovom članku i obično se prva isplati.

Često postavljana pitanja

Koja je dobra brzina tipkanja za programere?

Sve od otprilike 40 WPM naviše je upotrebljivo ako slijepo tipkaš simbole i brojeve. Iznad toga usko grlo su razmišljanje, čitanje i vještina s uređivačem, a ne brzina prstiju.

Kako naučiti slijepo tipkati brojeve?

Vježbaj sam red brojeva dok se točnost ne zadrži na 95 %, koristeći prst koji se u osnovnom redu nalazi izravno ispod svake znamenke, a zatim brojeve umiješaj u običan tekst.

Izvori