Mekanografia programatzaileentzat: ikurrak, zenbakiak eta benetan axola duen abiadura

Programatzaileentzako mekanografia, batez ere, ohiko idazketa-ikastaro batek saltatzen dituen teklei buruzkoa da: digituak, parentesiak eta giltzak, eragileak eta horien inguruko Shift konbinazioak. Prosa 90 WPMtan idazten duen programatzaile bat motela izan daiteke kodean, eta prosa 50 WPMtan idazten duen bat azkarra. Proba-garaian gure iturburu-fitxategiak modu pertsonalizatuan itsatsi genituenean ohartu ginen. Abiadurak heren bat edo gehiago jaitsi ziren hitzak moduarekin alderatuta, teklen bero-mapa zenbakien ilaran eta eskuineko hatz txikian piztu zen, eta esprintik motelenak parentesiak zituzten tokenetan izan ziren.

Zergatik den prosako WPMa kodea idazteko neurri txarra

Kodea testutik hiru modutan bereizten da, eta ingeleseko hitz arruntekin eraikitako idazketa-proba batek ez du horietako bat ere neurtzen.

Lehena karaktere-nahasketa da. Zenbatu egin genituen. Blog honetako lehen hamar oharretan, zuriunea ez den 100 karaktere bakoitzetik 93 inguru letrak dira, 5 puntuazioa eta 2 digituak. npm-ren komando-lerroko tresnaren JavaScript iturburuan, letrak 80 ingurura jaisten dira eta ikurrak 19ra igotzen. Pythonen json eta email moduluek 80-85 letra ematen dituzte, eta gure eraikuntza-script trinko batek 64, bere karaktereen herena ikurrak direla. Beraz, kodeak gure prosak baino hiru eta zazpi aldiz ikur gehiago ditu gutxi gorabehera. Gehienak goiko ilaran daude edo Shift behar dute, hau da, eskuineko hatz txikia eta luzakada ahulenak. Gure ingelesezko hitz-probak azpititulu-corpus bateko 1.000 hitz ohikoenekin eraikita daude; «{» ez dago haien artean.

Bigarrena erritmoa da. Prosa segida luzeetan idazten da. Kodea pentsatzeko, korritzeko eta irakurtzeko etenen arteko esprint laburretan idazten da. Dhakal et al.-en 2018ko ikerketako boluntarioek, 136 milioi tekla-sakatzerekin eta esaldiak kopiatzen ari zirela, batez beste 239 ms inguru igaro zituzten teklen artean. Programatzaile baten eguna zenbait segundoko etenez beteta dago, eta segida laburren barruko esprint-abiadurak edozein batez bestekok baino gehiago axola du.

Hirugarrena editorea da. Osatze automatikoak, snippetek eta laster-teklek esan nahi dute lanean ari den programatzaile batek pantailako karaktereen zati bat besterik ez duela idazten. Ezein idazketa-probak ezin du hori neurtu, eta gureak ez du neurtzen duenik itxurarik egiten.

Garrantzitsua al da idazteko abiadura programatzeko?

Jendeak uste baino gutxiago, eta beste toki batean. Norbaitek galdetzen duenean ea 60 WPM nahikoak diren programatzaile izateko, erantzuna baiezkoa da, ñabardura batekin: ikur eta zenbakietarako behera begiratzen baduzu, ez duzu kodea 60 WPMtan idazten. Lerro bat pentsamendu-haria eten gabe idatzi ahal izateak abiadura gordinak baino gehiago axola du, eta teklatura behera begiratzeak eteten du hari hori.

Nola idatzi ikurrak azkarrago, eta zergatik ez duen inork irakasten

Idazketa-foroetan behin eta berriz agertzen den galdera bat: norbaitek letrak mekanografiaz idazten ditu abiadura duin batean, baina kodetzen hasi orduko ikurrak, zenbakiak eta baita maiuskulak ere bilatzen ari da berriro, eta horiek pixkanaka ikasteko modu bat nahi du, letrak ikasi zituen bezala, tekla gutxi batzuk aldi bakoitzean.

Ikurrak zailak egiten dituenaren zati bat Shift da. Zenbatu genuen npm iturburuan, ikur-sakatzeen % 45 inguru Shift bidezko karaktereak ziren, hala nola ( ) { } : eta $, zuriunea ez den 100 karaktereko 9 inguru, maiuskula bakar bat zenbatu aurretik. Beraz, konpondu lehenik Shift ohitura: sakatu Shift karakterea idazten ari ez den eskuarekin. ( eta ) eskuineko eskuaren 9 eta 0 tekletan daude, beraz ezkerreko Shift hartzen dute; ! @ # $ ezkerreko eskuan daude, beraz eskuineko Shift hartzen dute. Norberak ikasitako idazle gehienek ezkerreko Shift erabiltzen dute dena idazteko, eta ! idazteko horrek ezkerreko hatz txikiari bi tekla aldi berean sakatzeko eskatzen dio. Egiaztatu zure ohitura @ eta $ dituen lerro bat idatziz eta zein hatz txiki mugitzen den begiratuz.

Ikurrak zailak dira bakarka lantzeko eta aspergarriak lantzeko, besterik gabe: letrak hitzekin datoz, parentesiak kodearekin, eta ausazko kodea ez da interesgarria. Gure erantzuna ikurrak benetako kode-lerroetan lantzea da, klase bat aldi bakoitzean.

Klase bat aldi bakoitzean

Hau da guk erabiliko genukeen ordena, eta praktika-orrirako eraikitzen ari garen ikur-ibilbidearen ordena. Argitaratu arte, gauza bera egin dezakezu benetako kodea modu pertsonalizatuan itsatsiz, ikur-klase bat aldi bakoitzean, eta hurrengo klasea ez gehituz unekoa % 95eko zehaztasunera iritsi arte:

  • Digituak. Zenbakien ilara, oinarrizko ilarako hatzak gora luzatuta. Hau lehenik dator letra ez den klaserik erabiliena delako eta ia denok ohitura txar bat dugulako hemen, hala nola erakusleak 4, 5, 6 eta 7 sakatzea. Zenbakien proba egiaztapen azkarra da.
  • Parentesiak bikoteka. Lehenik ( ), gero [ ], gero { }. Bikoteka, ia inoiz ez duzulako bata bestea gabe idazten: npm iturburu horretan, ( 6.195 aldiz agertzen da eta ) 6.194 aldiz. Ireki-itxi mugimendua unitate bakar gisa entrenatzeak egiten du azkar. Itxierako parentesian apurtzen da jende gehienaren erritmoa.
  • Eragileak. = + - * / eta angelu-parentesiak, gehi forma konposatuak (==, =>, +=, !=). Zenbakien ilaran eta eskuineko eskuaren puntuazio-tekletan sakabanatuta daude, eta horietako batzuek Shift behar dute esku berean, hori baita alde deserosoa.
  • Komatxoak eta puntuazioa. ' " ; : , . eskuineko hatz txikiak lan gehiena egiten duela. Puntu eta komak eta bi puntuak dira C familiako eta Pythoneko idazleak gehien bereizten dituztenak; beraz, landu erabiltzen duzun lengoaiako lerroekin.
  • Shell-ekoak eta bitxiak. Barra bertikala, alderantzizko barra, tileta, alderantzizko azentua, txapela, ampersanda, traola, dolarra, a bildua eta _ tekla. _ eta alderantzizko azentuak harritu egiten dute jende gehiena; snake_case kodeak etengabe erabiltzen du _, eta idazle gehienek hatz okerrarekin sakatzen dute.

Klase bakoitzak, jende gehienarentzat, hamar minutuko saioen aste bat edo bi behar ditu; beraz, ibilbide osoa bizpahiru hilabetekoa da. Hori letrak ikastea baino motelagoa da, ikur-teklak urrunago daudelako eta ordezkatzen ari zaren ohiturak zaharragoak direlako.

Zer joaten den gaizki, teklaz teklako estatistikak begiratuta: jendeak ikurra hatz zuzenarekin ikasten du eta gero atzera egiten du presiopean, mugimendu zaharra azkarragoa baita aste batzuetan. Estatistikek tarte izugarri aldakorra duen tekla gisa erakusten dute: azkarra ondo luzatzen duzunean eta motela ez duzunean. Konponbidea klase horretan beste aste bat geratzea da.

Parentesi-bikoteak eta itxiera automatikoa

Editoreek parentesiak automatikoki ixten dituzte, eta horrek galdera zentzuzko bat sortzen du: zergatik ikasi itxierakoa idazten?

Bi arrazoi. Itxiera automatikoa ez da koherentea: leku batzuetan funtzionatzen du eta beste batzuetan ez, hala nola terminal batean edo txat-leiho batean. Horretan oinarritzen den idazle batek zalantza egiten du aldi bakoitzean funtzionatu duen egiaztatzeko, eta zalantzak tekla-sakatzeak baino gehiago kostatzen du. Eta automatikoki itxitako parentesi baten gainetik idaztea («)» sakatzea editoreak dagoeneko bat sartu duenean) tekla-sakatze bat da berez; beraz, itxierako parentesia idazten duzu edonola ere.

Kodea hemen modu pertsonalizatuan itsasten duzunean, testua zuriuneetan zatitzen da; beraz, koska desagertu egiten da eta token bakoitza hitz bihurtzen da. Muga bat eta erosotasun bat da aldi berean: ez dituzu lau zuriune idazten Python lerro bakoitzaren hasieran, eta ez dituzu lantzen ere. Koska eta automatikoki itxitako bikoteak editore batek bezala kudeatzen dituen kode-modu egoki bat gure zerrendan dago, eta dirudiena baino zailagoa da.

Kodeko abiadurak prosakoen aldean

Ez dugu kode-moduko emaitza nahikorik pertzentilak argitaratzeko, eta nahiago dugu itxaron asmatu baino. Gure saioetan, kode-zati erreal bateko abiadura pertsona beraren prosako abiaduraren erdia eta bi heren artean ibili da gutxi gorabehera, eta erlazioa gehiago hobetzen da ikurrak landuz praktika orokorrarekin baino.

Transferitzen den zenbakia zehaztasuna da. Prosa % 97ko zehaztasunarekin eta kodea % 90ean idazten dituen programatzaile batek ikurren arazo bat du, eta teklen bero-mapak erakusten du zehazki zein ikurretan. Bietan % 97an dagoen programatzaile batek kode gehiago idatzi besterik ez du behar. Gure puntuazio-metodologiak azaltzen du zehaztasunak nola zenbatzen dituen zuzendutako akatsak.

Erreferentzia estandar baterako, puntuazio-proba, zenbakiak aktibatuta, da gure ohiko moduen artean kodetik hurbilena. Ez du giltzarik izango, baina Shift tekla eta zenbakien ilara sartzen ditu, eta jende gehienarentzat horiek dira hutsunea.

Laguntzen duten teklatu-aukerak

Programatzaileek jasotzen duten teklatu-aholkua, gehienbat, etengailuei buruzkoa da, eta gehienbat ez dator harira.

Diseinuak etengailuak baino gehiago axola du. Dvorakek parentesiak zenbakien ilarara igotzen ditu eta puntuazio gehiena lekuz aldatzen du. Colemakek eta Workmanek parentesiak QWERTYk dituen lekuan mantentzen dituzte, baina biek puntu eta koma QWERTYk P duen lekura eramaten dute, eta C familiako programatzaileek nabarituko dute. Diseinuei buruzko artikuluak du bertsio luzea.

Ikur-geruza batek teklatu handiago bat gainditzen du. Teklatu zatitu eta trinko askok parentesiak eta eragileak oinarrizko ilarako hatzen azpian jartzeko aukera ematen dute, erpuru-tekla batekin eusten den geruza batean. Programatzaileek deskribatzen dituzten hardware-aldaketa guztien artean, hau probatuko genuke lehenik, esan nahi baitu ez duzula inoiz berriro behera begiratuko ikur baten bila.

ISO ala ANSI. ISO teklatuetan (Erresuma Batua eta Europako gehiena), ezkerreko Shiften ondoko tekla gehigarriak eta Enter tekla altuak aldatu egiten dute alderantzizko barra eta barra bertikala non dauden. Batean praktikatu eta bestean lan egiten baduzu, hatz txikiak huts egingo du. Horregatik, gure emulazioak Colemak-DHren bi aldaerak ditu.

Etengailuek ia ez dute axola abiadurarako. Etengailu linealak, taktilak eta klik egitekoak ukimenez eta soinuz bereizten dira, eta tekla-erregistroak ez daki zein sakatu duzun. Gure teklatu mekanikoei buruzko artikuluak zenbakiak aztertzen ditu.

Soinuak feedbackean laguntzen die batzuei: akats-soinuak ikur bat oker zegoela esaten dizu behera begiratu gabe. Aktibatu ikurrak ikasten ari zaren bitartean.

Programatzaile baten hamar minutuko saioa

Ikur-ibilbideak behar dituen bizpahiru hilabeteetan egunero egingo genukeena:

  • Bi minutu: 30 segundoko hitz-proba bat beroketa gisa, % 97ko zehaztasunarekin.
  • Sei minutu: uneko ikur-klasea, zure kodetik itsatsitako testu pertsonalizatuarekin. Gelditu hatz zaharrera itzultzeko lehen zantzuan.
  • Bi minutu: gehien erabiltzen duzun lengoaiako kode-zati bat. Begiratu gero teklen bero-mapari, ez WPMari.

Hamar minuturik ez duzun egunetan, idatzi zuk zeuk itxierako parentesia. Artikulu honetako ohiturarik txikiena da, eta normalean lehena fruituak ematen.

Ohiko galderak

Zein da programatzaileentzako idazteko abiadura ona?

40 WPM ingurutik gorako edozer erabilgarria da ikurrak eta zenbakiak mekanografiaz idazten badituzu. Hortik aurrera, botila-lepoa pentsatzea, irakurtzea eta editorearen trebetasuna dira, ez hatzen abiadura.

Nola ikasi zenbakiak mekanografiaz idazten?

Landu zenbakien ilara bakarrik zehaztasuna % 95ean mantendu arte, oinarrizko ilaran digitu bakoitzaren azpian dagoen hatza erabiliz, eta gero nahastu zenbakiak testu arruntarekin.

Iturriak