Aklā rakstīšana programmētājiem galvenokārt ir par taustiņiem, ko parasts rakstīšanas kurss izlaiž: cipariem, iekavām, operatoriem un Shift kombinācijām ap tiem. Programmētājs, kas prozu raksta ar 90 WPM, kodu var rakstīt lēni, bet 50 WPM prozas rakstītājs var būt ātrs. To pamanījām, testēšanas laikā ielīmējot savus pirmkoda failus režīmā „Savs”. Ātrums, salīdzinot ar režīmu „Vārdi”, kritās par trešdaļu vai vairāk, taustiņu siltumkarte iedegās uz ciparu rindas un labā mazā pirkstiņa, un lēnākie spurti bija uz vienībām, kurās bija iekavas.
Kāpēc prozas WPM slikti atspoguļo koda rakstīšanu
Kods no teksta atšķiras trīs veidos, un rakstīšanas tests, kas veidots no biežiem angļu vārdiem, nemēra nevienu no tiem.
Pirmais ir rakstzīmju sastāvs. Mēs saskaitījām. Pirmajos desmit šī bloga rakstos aptuveni 93 no katrām 100 rakstzīmēm, kas nav atstarpes, ir burti, 5 ir pieturzīmes un 2 ir cipari. npm komandrindas rīka JavaScript pirmkodā burtu daļa nokrītas līdz aptuveni 80, bet simbolu daļa pieaug līdz 19. Python json un email moduļos burtu ir 80 līdz 85, bet vienā mūsu blīvā būvēšanas skriptā – 64, un trešdaļa tā rakstzīmju ir simboli. Tātad kodā simbolu ir aptuveni trīs līdz septiņas reizes vairāk nekā mūsu prozā. Lielākā daļa no tiem atrodas augšējā rindā vai prasa Shift, kas nozīmē labo mazo pirkstiņu un vājākās sniegšanās. Mūsu angļu vārdu testi veidoti no 1000 biežākajiem vārdiem subtitru korpusā; „{” to vidū nav.
Otrais ir ritms. Prozu raksta garos, nepārtrauktos posmos. Kodu raksta īsos spurtos starp pauzēm, kad domā, ritini un lasi. Brīvprātīgie Dhakal un kolēģu 2018. gada pētījumā par 136 miljoniem taustiņu nospiedienu, kas pārrakstīja teikumus, starp taustiņiem vidēji pavadīja aptuveni 239 ms. Programmētāja diena ir pilna ar vairāku sekunžu pārtraukumiem, un spurta ātrums īsajos posmos ir svarīgāks par jebkuru vidējo.
Trešais ir redaktors. Automātiskā pabeigšana, fragmenti un īsinājumtaustiņi nozīmē, ka strādājošs programmētājs uzraksta tikai daļu no ekrānā redzamajām rakstzīmēm. To nevar izmērīt neviens rakstīšanas tests, un mūsējais par to arī neizliekas.
Vai rakstīšanas ātrums programmēšanā ir svarīgs?
Mazāk, nekā cilvēki domā, un citā vietā. Kad kāds jautā, vai ar 60 WPM pietiek, lai būtu programmētājs, atbilde ir „jā” ar atrunu: ja simbolus un ciparus meklē, skatoties uz leju, 60 WPM nav ātrums, ar kādu tu raksti kodu. Spēja uzrakstīt rindu, nepārtraucot domu gaitu, ir svarīgāka par tīru ātrumu, un tieši skatīšanās uz tastatūru to pārtrauc.
Kā ātrāk rakstīt simbolus un kāpēc to neviens nemāca
Jautājums, kas rakstīšanas forumos parādās atkal un atkal: kāds akli raksta burtus pieklājīgā ātrumā, bet, tiklīdz sāk programmēt, atkal meklē simbolus, ciparus un pat lielos burtus, un vēlas pakāpeniski tos apgūt tāpat, kā apguva burtus, – pa dažiem taustiņiem.
Daļēji simbolus padara grūtus Shift. npm pirmkodā, ko saskaitījām, aptuveni 45% simbolu nospiedienu bija rakstzīmes ar Shift, piemēram, ( ) { } : un $, gandrīz 9 no katrām 100 rakstzīmēm, kas nav atstarpes, pirms vēl esi saskaitījis kaut vienu lielo burtu. Tāpēc vispirms sakārto Shift ieradumu: spied Shift ar to roku, kas nespiež rakstzīmi. ( un ) atrodas uz labās rokas 9 un 0, tāpēc tiem vajag kreiso Shift; ! @ # $ atrodas kreisajā pusē, tāpēc tiem vajag labo Shift. Lielākā daļa pašmācības rakstītāju visam tur kreiso Shift, un, rakstot !, tas liek kreisajam mazajam pirkstiņam vienlaikus nospiest divus taustiņus. Pārbaudi savu ieradumu: uzraksti rindu, kurā ir @ un $, un vēro, kurš mazais pirkstiņš kustas.
Simbolus ir grūti trenēt atsevišķi un garlaicīgi trenēt vispār: burti nāk kopā ar vārdiem, iekavas nāk kopā ar kodu, un nejaušs kods nav interesants. Mūsu atbilde ir trenēt simbolus uz īstām koda rindām, pa vienai grupai.
Pa vienai grupai
Šo secību mēs izmantotu, un šī ir arī secība simbolu programmai, ko veidojam treniņa lapai. Kamēr tā nav pieejama, to pašu vari darīt, ielīmējot īstu kodu režīmā „Savs”, pa vienai simbolu grupai, un nepievienojot nākamo grupu, kamēr pašreizējā nav sasniegusi 95% precizitāti:
- Cipari. Ciparu rinda, pamatrindas pirkstiem sniedzoties uz augšu. Tā ir pirmā, jo šī ir visbiežāk lietotā rakstzīmju grupa, kas nav burti, un jo gandrīz visiem šeit ir kāds slikts ieradums, piemēram, rādītājpirksts spiež 4, 5, 6 un 7. Ciparu tests ir ātra pārbaude.
- Iekavas pa pāriem. Vispirms ( ), tad [ ], tad { }. Pa pāriem, jo gandrīz nekad neraksti vienu bez otras: tajā npm pirmkodā ( parādās 6195 reizes un ) – 6194. Atvēršanas un aizvēršanas kustības trenēšana kā vienots veselums padara to ātru. Aizverošā iekava ir vieta, kur lielākajai daļai cilvēku salūzt ritms.
- Operatori. = + - * / un leņķiekavas, kā arī saliktās formas (==, =>, +=, !=). Tie izkaisīti pa ciparu rindu un labās rokas pieturzīmju taustiņiem, un vairākiem vajag Shift ar to pašu roku, kas ir neērtākā daļa.
- Pēdiņas un pieturzīmes. ' " ; : , . – lielāko darbu dara labais mazais pirkstiņš. Semikolos un kolos C saimes un Python rakstītāji atšķiras visvairāk, tāpēc trenējies uz rindām no valodas, ko lieto.
- Čaula un retie simboli. Vertikālā svītra, atpakaļvērstā slīpsvītra, tilde, apostrofs
(backtick), jumtiņš, & zīme, restīte, dolārs, @ zīme un taustiņš _. _ unpārsteidz lielāko daļu cilvēku; snake_case kodā _ tiek lietots nepārtraukti, un lielākā daļa rakstītāju to spiež ar nepareizo pirkstu.
Katra grupa lielākajai daļai cilvēku prasa vienu līdz divas nedēļas desmit minūšu nodarbību, tāpēc visa programma aizņem divus līdz trīs mēnešus. Tas ir lēnāk nekā burtu apgūšana, jo simbolu taustiņi ir tālāk un ieradumi, ko aizstāj, ir vecāki.
Kas noiet greizi, spriežot pēc taustiņu statistikas: cilvēki iemācās simbolu ar pareizo pirkstu un tad spriedzē atgriežas pie vecā, jo dažas nedēļas vecā kustība ir ātrāka. Statistikā tas izskatās kā taustiņš, kura intervāls ļoti svārstās: ātrs, kad sniedzies pareizi, un lēns, kad nē. Risinājums ir palikt pie šīs grupas vēl vienu nedēļu.
Iekavu pāri un automātiskā aizvēršana
Redaktori iekavas aizver automātiski, un tas rada pamatotu jautājumu: kāpēc mācīties rakstīt aizverošo?
Divu iemeslu dēļ. Automātiskā aizvēršana nav konsekventa: dažās vietās tā nostrādā, citās, piemēram, terminālī vai tērzēšanas logā, nē. Rakstītājs, kas uz to paļaujas, katru reizi vilcinās, lai pārbaudītu, vai tā nostrādāja, un vilcināšanās maksā vairāk nekā taustiņa nospiediens. Turklāt pārrakstīšana pāri automātiski aizvērtai iekavai (nospiežot „)”, kad redaktors to jau ievietojis) pati par sevi ir taustiņa nospiediens, tāpēc aizverošo iekavu tu raksti jebkurā gadījumā.
Kad šeit ielīmē kodu režīmā „Savs”, teksts tiek sadalīts pa atstarpēm, tāpēc atkāpes pazūd un katra vienība kļūst par vārdu. Tas vienlaikus ir ierobežojums un ērtība: tev nav jāraksta četras atstarpes katras Python rindas sākumā, bet tu tās arī netrenē. Pareizs koda režīms, kas apstrādā atkāpes un automātiski aizvērtus pārus tā, kā to dara redaktors, ir mūsu sarakstā, un tas ir grūtāk, nekā izklausās.
Koda un prozas ātrums
Mums nav pietiekami daudz koda režīma rezultātu, lai publicētu procentiles, un mēs labāk pagaidīsim, nekā tās izdomāsim. Mūsu pašu mēģinājumos koda ātrums reālistiskā fragmentā ir bijis aptuveni no pusei līdz divām trešdaļām tā paša cilvēka prozas ātruma, un attiecība uzlabojas vairāk ar simbolu treniņu nekā ar vispārēju treniņu.
Skaitlis, kas gan pārnesas, ir precizitāte. Programmētājam, kas prozu raksta ar 97% precizitāti, bet kodu ar 90%, ir problēma ar simboliem, un taustiņu siltumkarte parāda, tieši ar kuriem. Programmētājam ar 97% abos gadījumos vienkārši jāraksta vairāk koda. Mūsu vērtēšanas metodika izskaidro, kā precizitāte ņem vērā izlabotās kļūdas.
Standarta salīdzinājumam pieturzīmju tests ar ieslēgtiem cipariem no mūsu parastajiem režīmiem ir vistuvāk kodam. Figūriekavu tajā nebūs, bet tas iesaista Shift taustiņu un ciparu rindu, un lielākajai daļai cilvēku tieši tur ir robs.
Tastatūras izvēles, kas palīdz
Padomi par tastatūrām, ko saņem programmētāji, galvenokārt ir par slēdžiem un galvenokārt garām mērķim.
Izkārtojums ir svarīgāks par slēdzi. Dvorak pārceļ iekavas uz ciparu rindu un pārvieto lielāko daļu pieturzīmju. Colemak un Workman iekavas atstāj tur, kur tās ir QWERTY, bet abi pārvieto semikolu uz vietu, kur QWERTY ir P, un C saimes programmētāji to sajutīs. Garākā versija ir rakstā par izkārtojumiem.
Simbolu slānis ir labāks par lielāku tastatūru. Daudzas dalītās un kompaktās tastatūras ļauj iekavas un operatorus novietot zem pamatrindas pirkstiem slānī, ko tur ar īkšķa taustiņu. No visām aparatūras izmaiņām, ko programmētāji apraksta, šo mēs izmēģinātu pirmo, jo tā nozīmē, ka simbolu tu vairs nekad nemeklē, skatoties uz leju.
ISO pret ANSI. ISO tastatūrās (Lielbritānijā un lielākajā daļā Eiropas) papildu taustiņš blakus kreisajam Shift un augstais Enter taustiņš maina atpakaļvērstās slīpsvītras un vertikālās svītras atrašanās vietu. Ja trenējies uz vienas un strādā uz otras, mazais pirkstiņš kļūdīsies. Tāpēc mūsu emulācijā ir abi Colemak-DH varianti.
Slēdžiem ātrumā gandrīz nav nozīmes. Lineārie, taktilie un klikšķošie slēdži atšķiras pēc sajūtas un skaņas, un taustiņu žurnāls nezina, kuru tu nospiedi. Mūsu raksts par mehāniskajām tastatūrām apskata skaitļus.
Skaņa dažiem cilvēkiem palīdz ar atgriezenisko saiti: kļūdas skaņa pasaka, ka simbols bija nepareizs, neskatoties uz leju. Ieslēdz to, kamēr apgūsti simbolus.
Desmit minūšu nodarbība programmētājam
Ko mēs darītu katru dienu tos divus vai trīs mēnešus, ko aizņem simbolu programma:
- Divas minūtes: 30 sekunžu vārdu tests iesildīšanās nolūkā, precizitāte 97%.
- Sešas minūtes: pašreizējā simbolu grupa, ar paša tekstu, ielīmētu no tava koda. Apstājies pie pirmās pazīmes, ka atgriezies pie vecā pirksta.
- Divas minūtes: viens koda fragments valodā, ko lieto visvairāk. Pēc tam skaties uz taustiņu siltumkarti, nevis uz WPM.
Dienās, kad tev nav desmit minūšu, raksti aizverošo iekavu pats. Tas ir mazākais ieradums šajā rakstā un parasti pirmais, kas atmaksājas.
Biežāk uzdotie jautājumi
Kāds ir labs rakstīšanas ātrums programmētājiem?
Viss, sākot no aptuveni 40 WPM, ir darbam derīgs, ja simbolus un ciparus raksti akli. Pēc tam šaurā vieta ir domāšana, lasīšana un redaktora prasme, nevis pirkstu ātrums.
Kā iemācīties akli rakstīt ciparus?
Trenē ciparu rindu atsevišķi, līdz precizitāte noturas pie 95%, izmantojot pirkstu, kas pamatrindā atrodas tieši zem katra cipara, un tad iejauc ciparus parastā tekstā.