Blindtik vir programmeerders: simbole, syfers en die spoed wat saak maak

Blindtik vir programmeerders gaan meestal oor die sleutels wat ’n gewone tikkursus oorslaan: syfers, hakies, operateurs en die Shift-kombinasies rondom hulle. ’n Programmeerder wat prosa teen 90 WPM tik, kan stadig wees met kode, en iemand wat prosa teen 50 WPM tik, kan vinnig daarmee wees. Ons het dit opgemerk terwyl ons ons eie bronlêers tydens toetsing in die eie-teks-modus geplak het. Spoed het met ’n derde of meer gedaal vergeleke met die woordemodus, die hittekaart per sleutel het op die syferry en die regterpinkie opgelig, en die stadigste sarsies was op tekens met hakies daarin.

Hoekom prosa-WPM ’n swak aanduiding vir die tik van kode is

Kode verskil op drie maniere van teks, en ’n tiktoets wat uit algemene Engelse woorde gebou is, meet nie een daarvan nie.

Die eerste is die karaktermengsel. Ons het getel. Oor die eerste tien artikels op hierdie blog is omtrent 93 uit elke 100 karakters wat nie spasies is nie letters, 5 leestekens en 2 syfers. In die JavaScript-bronkode van npm se opdragreëlhulpmiddel daal letters tot omtrent 80 en styg simbole tot 19. Python se json- en email-modules kom uit op 80 tot 85 letters, en ’n digte bouskrip van ons op 64, met ’n derde van sy karakters simbole. Kode het dus ongeveer drie tot sewe keer soveel simbole as ons prosa. Die meeste daarvan woon op die boonste ry of het Shift nodig, wat die regterpinkie en die swakker strekke beteken. Ons Engelse woordtoetse is gebou uit die 1 000 algemeenste woorde in ’n onderskrifkorpus; "{" is nie daaronder nie.

Die tweede is ritme. Prosa word in lang lopies getik. Kode word in kort sarsies getik tussen pouses om te dink, te blaai en te lees. Die vrywilligers in Dhakal et al. se studie van 2018 van 136 miljoen toetsaanslae, wat sinne oorgetik het, het gemiddeld omtrent 239 ms tussen sleutels gehad. ’n Programmeerder se dag is vol gapings van etlike sekondes, en sarsiespoed binne die kort lopies maak meer saak as enige gemiddelde.

Die derde is die redigeerder. Outovoltooiing, brokkies en kortpadsleutels beteken dat ’n werkende programmeerder ’n fraksie van die karakters op die skerm tik. Geen tiktoets kan dit meet nie, en ons s’n maak nie asof nie.

Is tikspoed belangrik vir programmering?

Minder as wat mense dink, en op ’n ander plek. Wanneer iemand vra of 60 WPM genoeg is om ’n programmeerder te wees, is die antwoord ja, met ’n voorbehoud: as jy afkyk vir simbole en syfers, is 60 WPM nie die spoed waarteen jy kode tik nie. Om ’n reël te kan tik sonder om jou gedagtegang te breek, maak meer saak as rou spoed, en om na die sleutelbord af te kyk, is wat dit breek.

Hoe om simbole vinniger te tik, en hoekom niemand dit leer nie

’n Vraag wat telkens op tikforums opduik: iemand kan letters teen ’n ordentlike spoed blindtik, maar die oomblik wanneer hulle begin kodeer, soek hulle weer na simbole, syfers en selfs hoofletters, en hulle wil dit geleidelik leer, soos hulle die letters geleer het, ’n paar sleutels op ’n slag.

Deel van wat simbole moeilik maak, is Shift. In die npm-bronkode wat ons getel het, was omtrent 45% van simboolaanslae geskifte karakters soos ( ) { } : en $, naby aan 9 uit elke 100 karakters wat nie spasies is nie, nog voordat jy ’n enkele hoofletter tel. Maak dus eers die Shift-gewoonte reg: druk Shift met die hand wat nie die karakter tik nie. ( en ) sit op die regterhand se 9 en 0, dus kry hulle linker-Shift; ! @ # $ sit op die linkerhand, dus kry hulle regter-Shift. Die meeste selfgeleerde tikkers hou linker-Shift vir alles in, en vir ! vra dit die linkerpinkie om twee sleutels gelyk te druk. Kyk na jou eie gewoonte deur ’n reël met @ en $ daarin te tik en te let op watter pinkie beweeg.

Simbole is moeilik om afsonderlik te dril en vervelig om enigsins te dril: letters kom met woorde, hakies kom met kode, en lukrake kode is nie interessant nie. Ons antwoord is om simbole op regte reëls kode te dril, een klas op ’n slag.

Een klas op ’n slag

Dit is die volgorde wat ons sou gebruik, en die volgorde van die simboolbaan wat ons vir die oefenbladsy bou. Totdat dit beskikbaar is, kan jy dieselfde doen deur regte kode in die eie-teks-modus te plak, een klas simbole op ’n slag, en nie die volgende klas by te voeg voordat die huidige een op 95% akkuraatheid is nie:

  • Syfers. Die syferry, met die tuisryvingers wat opwaarts strek. Dit kom eerste omdat dit die mees gebruikte klas nieletters is en omdat byna almal hier ’n slegte gewoonte het, soos die wysvinger wat 4, 5, 6 en 7 doen. Die syfertoets is ’n vinnige kontrole.
  • Hakies as pare. Eers ( ), dan [ ], dan { }. Pare, want jy tik byna nooit die een sonder die ander nie: in daardie npm-bronkode verskyn ( 6 195 keer en ) 6 194 keer. Om die oop-toe-beweging as een eenheid te oefen, is wat dit vinnig maak. Die sluithakie is waar die meeste mense se ritme breek.
  • Operateurs. = + - * / en die punthakies, plus die saamgestelde vorme (==, =>, +=, !=). Hierdie is oor die syferry en die regterhand se leestekensleutels versprei, en verskeie het Shift op dieselfde hand nodig, wat die lastige deel is.
  • Aanhalingstekens en leestekens. ' " ; : , . met die regterpinkie wat die meeste van die werk doen. Kommapunte en dubbelpunte is waar tikkers van die C-familie en Python die meeste verskil, so oefen op reëls uit die taal wat jy gebruik.
  • Die dop en die vreemdes. Pyp, terugskuinsstreep, tilde, terugaksent, kappie, ampersand, hutsteken, dollar, ad-teken en die _-sleutel. Die _ en die terugaksent verras die meeste mense; snake_case-kode gebruik _ aanhoudend, en die meeste tikkers tref dit met die verkeerde vinger.

Elke klas neem die meeste mense ’n week of twee se sessies van tien minute, so die hele baan is twee tot drie maande. Dit is stadiger as om die letters te leer, want die simboolsleutels is verder weg en die gewoontes wat jy vervang, is ouer.

Wat verkeerd loop, uit ons waarneming van die statistieke per sleutel: mense leer die simbool met die korrekte vinger en val dan onder druk terug, omdat die ou beweging vir ’n paar weke vinniger is. Die statistieke wys dit as ’n sleutel waarvan die interval wild wissel, vinnig as jy korrek strek en stadig as jy nie doen nie. Die oplossing is om nog ’n week by daardie klas te bly.

Hakiepare en outomatiese sluiting

Redigeerders sluit hakies outomaties, wat ’n regverdige vraag laat ontstaan: hoekom leer om die sluithakie te tik?

Twee redes. Outomatiese sluiting is onkonsekwent: dit werk op sommige plekke en nie op ander nie, soos ’n terminaal of ’n kletsvenster. ’n Tikker wat daarop staatmaak, huiwer elke keer om te kyk of dit gewerk het, en die huiwering kos meer as die toetsaanslag. En om oor ’n outomaties gesluite hakie te tik (om ")" te druk wanneer die redigeerder reeds een ingevoeg het) is self ’n toetsaanslag, so jy tik die sluithakie in elk geval.

Wanneer jy hier kode in die eie-teks-modus plak, word die teks op witspasie verdeel, so inkeping verdwyn en elke teken word ’n woord. Dit is ’n beperking en ’n gerief tegelyk: jy tik nie vier spasies aan die begin van elke Python-reël nie, en jy oefen dit ook nie. ’n Behoorlike kodemodus wat inkeping en outomaties gesluite pare hanteer soos ’n redigeerder dit doen, is op ons lys, en dit is moeiliker as wat dit klink.

Kodespoed teenoor prosaspoed

Ons het nie genoeg uitslae in kodemodus om persentiele te publiseer nie, en ons wag eerder as om dit op te maak. In ons eie lopies was kodespoed op ’n realistiese brokkie iewers tussen die helfte en twee derdes van dieselfde persoon se prosaspoed, en die verhouding verbeter meer met simboolsoefening as met algemene oefening.

Die getal wat wel oordra, is akkuraatheid. ’n Programmeerder wat prosa teen 97% akkuraatheid tik en kode teen 90%, het ’n simboolprobleem, en die hittekaart per sleutel wys presies watter simbole. ’n Programmeerder op 97% vir albei moet net meer kode tik. Ons telmetodiek verduidelik hoe akkuraatheid reggestelde foute tel.

Vir ’n standaardmaatstaf is die leestekentoets met syfers aangeskakel die naaste van ons gewone modusse aan kode. Dit sal nie krulhakies hê nie, maar dit bring die Shift-sleutel en die syferry in, en vir die meeste mense is dit die gaping.

Sleutelbordkeuses wat help

Die sleutelbordraad wat programmeerders kry, gaan meestal oor skakelaars, en is meestal nie ter sake nie.

Uitleg maak meer saak as skakelaar. Dvorak skuif die hakies op na die syferry en verskuif die meeste leestekens. Colemak en Workman hou die hakies waar QWERTY hulle het, maar albei skuif die kommapunt na waar QWERTY P het, wat programmeerders van die C-familie sal voel. Die artikel oor uitlegte het die lang weergawe.

’n Simboollaag klop ’n groter sleutelbord. Baie gesplete en kompakte sleutelborde laat jou hakies en operateurs onder die tuisryvingers sit op ’n laag wat met ’n duimsleutel ingehou word. Van al die hardewareveranderings wat programmeerders beskryf, is dit die een wat ons eerste sou probeer, want dit beteken jy kyk nooit weer af vir ’n simbool nie.

ISO teenoor ANSI. Op ISO-sleutelborde (Brittanje en die meeste van Europa) verander die ekstra sleutel langs linker-Shift en die hoë Enter-sleutel waar terugskuinsstreep en pyp woon. As jy op die een oefen en op die ander werk, sal jou pinkie mis. Ons nabootsing bevat om daardie rede albei variante van Colemak-DH.

Skakelaars maak skaars saak vir spoed. Lineêre, tasbare en klikkende skakelaars verskil in gevoel en klank, en die toetsaanslaglog weet nie watter een jy gedruk het nie. Ons artikel oor meganiese sleutelborde gaan deur die getalle.

Klank help sommige mense met terugvoer: die foutklank sê vir jou dat ’n simbool verkeerd was sonder dat jy afkyk. Skakel dit aan terwyl jy simbole leer.

’n Programmeerdersessie van tien minute

Wat ons daagliks sou doen vir die twee of drie maande wat die simboolbaan neem:

  • Twee minute: ’n woordetoets van 30 sekondes as opwarming, akkuraatheid op 97%.
  • Ses minute: die huidige simboolklas, op eie teks wat uit jou eie kode geplak is. Stop by die eerste teken dat jy na die ou vinger terugval.
  • Twee minute: een kodebrokkie in die taal wat jy die meeste gebruik. Kyk daarna na die hittekaart per sleutel, nie na die WPM nie.

Op die dae wanneer jy nie tien minute het nie, tik die sluithakie self. Dit is die kleinste gewoonte in hierdie artikel en gewoonlik die eerste een wat vrugte afwerp.

Algemene vrae

Wat is ’n goeie tikspoed vir programmeerders?

Enigiets van omtrent 40 WPM af is werkbaar as jy simbole en syfers blindtik. Verby daardie punt is die bottelnek dink, lees en vaardigheid met die redigeerder, nie vingerspoed nie.

Hoe leer ek om syfers blind te tik?

Oefen die syferry op sy eie totdat akkuraatheid op 95% bly, met die vinger wat op die tuisry reg onder elke syfer is, en meng dan syfers in gewone teks in.

Bronne