kode hurtigere: 53 tip fra profferne

vil du vide, hvordan du programmerer hurtigere, så du kan levere programmer hurtigere? Ja, hvem gør ikke det? Internettet er fuld af tip til udviklere—hundreder, tusinder, måske endda millioner af dem. Problemet er, der er langt mere derude end nogen har tid til at læse, så jeg har kogt dem ned for dig.

her er 53 tips repræsenterer de allerbedste råd jeg har fundet derude. Men, før jeg fortæller dig, hvad jeg fandt, jeg er nødt til at forklare, hvad jeg mener med “programmering hurtigere,” og “tip.”

problemet med”hurtigere”

for at kode hurtigere skal man være effektiv; det vil sige ingen spildt indsats eller bevægelse. Dette kan betyde alt fra at skrive til værktøjer til tænkning. Men det meste af vores arbejde som programmører er ikke at skrive eller kompilere—det tænker. For at tænke hurtigere skal du lære flere mønstre og forhold. Dette er den viden og visdom, som oplevelsen bygger på. Hvad du har brug for at gå hurtigere vil ændre sig over tid.

problemet med “tip”

de fleste af de tip, jeg læser, gælder kun på bestemte punkter på min rejse og gælder ikke nødvendigvis for alle. Mange af disse falder ind i kategorierne “personlig rejse” eller “hvad der fungerede for mig”. Men min vej er sandsynligvis ikke din vej. Mens nogle af de mekaniske ting, der fungerer for mig, sandsynligvis vil fungere for dig, mange af de Domæne-og mønstervalg, jeg har foretaget, kan være til ingen nytte.

de mekaniske ting er ret nemme at optimere; mulighederne er begrænsede. Men læringen har ingen grænser. Ingen vil nogensinde vide det hele. Du skal træffe strategiske og taktiske valg og være parat til at udnytte mulighederne, når de opstår.

nytten af tip falder af som en funktion af specificitet. De mere specifikke tip gælder ikke for alle, men Generelle tip er også, ja, generelle. De er meget sværere at blive til handling. Så hvad vil du virkelig have, når du siger, at du vil ” gå hurtigere?”Jeg fortæller dig det.

hvad du vil have er strøm

hvad enhver programmør ønsker, især i DevOps æra, er strøm. Strømningstilstand maksimerer gennemstrømningen og øger nydelsen ved at inkorporere det helt rigtige udfordringsniveau; man forbliver fuldt engageret i øjeblikket og i arbejdet (dette må ikke forveksles med Ballmer Peak). Opretholdelse af strømningstilstand kræver et passende miljø og friktionsfri proces.

strømningstilstand, når parring er som hver af jer har en ekstra hjerne. Desværre er mange udviklermiljøer, såsom åbne kontorer, uvenlige at flyde.

dine muligheder kan være begrænsede

når du finder noget suboptimalt ved din proces eller dig selv, er valgmulighederne for, hvordan du adresserer sådanne begrænsninger, begrænsede:

  • Ignorer det. Måske bliver det bedre af sig selv.
  • undgå det. Er det virkelig nødvendigt?
  • Automatiser det. Få maskinen til at gøre det.
  • uddelegere det. Sjældent muligt, dette passerer sorteper. Men det er en legitim mulighed, når den er tilgængelig.
  • slib det ned. Vi skal alle gøre dette fra tid til anden (dagligt). Nogle arbejdspladser er større end andre.

hvis din indtastning er langsommere, end du gerne vil, skal du tage lidt tid og niveau op. Hvis dit integrerede udviklingsmiljø er forvirrende og uhensigtsmæssigt (eller måske for nyttigt), kan du prøve noget andet eller enklere. Hvis du ikke kan komme væk fra det, skal du lære mere om det; du kan finde en anden måde eller i det mindste lære grænserne.

der er mange måder at lære. Google er din ven, ligesom bøger, videoer, blogindlæg, spørgsmål om stakoverløb og selvfølgelig andre mennesker. Nogle ting, du vil lære, kan være skjult; andre kan være større, end de ser ud. Balance fordel med indsats og vær tålmodig med dig selv. Fejr enhver præstation og fortsæt med at bevæge dig.

Top tip til programmering hurtigere

en måde at gruppere og se på nedenstående tip er ved at anvende et par kategorier på højt niveau som en måde at tegne interessante generaliseringer fra samlingen:

  • reflektere. Hvad vil du, hvad gør du faktisk; inkluderer måling og optimering.
  • strøm. Ingen friktion fra værktøjer, processer, miljø eller viden; søg løbende udfordring, men ikke for meget.
  • Lær. Grundlæggende: sprog, værktøjer, mønstre, praksis osv., fra alle (især dem, der er villige til at undervise); Lær hvordan du lærer, og lær kontinuerligt.
  • undervise. Lær andre. At skulle forklare ting tvinger forenkling, og omdannelsen fra tanker til verbale eller visuelle udtryk giver indsigt.
  • udtrykke og udforske. Se uden for dine normale opgaver; tegne, skrive, blog, gå til møder, deltage og holde præsentationer, tale med volleyball, hvis det er nødvendigt.

tipene nedenfor er simpelthen datapunkter, ting at overveje—ikke et snydeark for livet eller en opgaveliste til din karriere som programmør. Jeg startede med en liste med 183 tip, grupperede dem i kategorier, tildelte en prioritet baseret på gentagelse og personlig bias og tog de øverste få fra hver.

det er rigtigt, bias. Jeg ved, hvad der gør en udvikler god eller hurtig programmør, så alt, hvad jeg læste, filtrerede jeg gennem min bias. Konkret, jeg er forudindtaget mod:

  • Agile metoder.
  • Domænedrevet design.
  • automatiseret test.
  • kontinuerlig forbedring.
  • minimale løsninger.
  • friktionsløse værktøjer.
  • arbejder i strømningstilstand så meget som muligt.

og jeg er helt enig med Robert C. “Onkel Bob” Martins Erklæring om “voldsom middelmådighed”:

“den eneste måde at gå hurtigt på er at gå godt. Hver gang du giver efter for fristelsen til at handle kvalitet for hastighed, sænker du farten. Hver gang.”

Tag følgende tips (og alt andet du læser på internettet) med et saltkorn. Bevar og tilpas det, der fungerer; kassere det, der er nytteløst.

og her er mit tip til programmering hurtigere: fokus på kvalitet, og hastighed vil følge.

refleksion er nøglen

refleksion er nøglen til selvforbedring:

  • løbende forbedre din beslutningsproces; lære af dine fejl uden Bebrejdelse.
  • Fjern blinde pletter i din forståelse af hele omfanget af din ansøgning og dens eksekveringsmiljø.
  • må ikke jage din hale; identificere og fjerne tid dræn.

mål objektivt

nogle gange ved du, hvad din største begrænsning er, og nogle gange skal du måle den.

  • overvej at foretage en detaljeret revision af dig selv, mens du arbejder i et par dage.
  • det er ligesom at optimere ethvert stykke kode. Log alt, identificere hotspots og forbedre dem.
  • Hvor går din tid? Mange programmører bruger langt mere tid på at læse kode end at skrive kode; Hvordan lærer du at læse kode hurtigere?

praksis, praksis, praksis

der er ingen komme omkring nogle niveau af praksis, på en række udfordringer.

  • skriv masser af programmer.
  • skriv større programmer.
  • Skriv anmeldelse-klar kode fra get-go.
  • der er masser af steder at øve, herunder topcoder.com, projekt Euler, hackerrank.com. vælger en og kommer i gang.

Design for succes

læring design teknikker bør være en given, en del af beherskelse af din tænkning værktøjer. Derudover:

  • forstå brugeren; forstå deres problem, det virkelige problem; og derefter løse det. Kendskab til domænet hjælper enormt.
  • Tal med kolleger og domæneeksperter om problem, Løsning og design.
  • reducer kognitiv belastning ved at tegne eller skrive, mens du tænker og koder.
  • når du designer for lang levetid og vedligeholdelse, skal du huske, at data overgår kode.
  • ved, hvornår du skal genopfinde hjulet, og hvornår du ikke skal (normalt ikke).
  • navngiv ting målrettet; dette er det eneste link fra koden tilbage til domænet.

Nail processen

vi bruger meget tid i processer af vores egen konstruktion; vær ikke bange for at ændre dem.

  • gør fejl umulige ved design. Fejl hurtigt, brug undtagelser i stedet for null-kontrol, Brug typesystemet til at forhindre datafejl og brug automatiseret test.
  • hvis du er på et tab på hvor du skal begynde, starte med den del, som du forstår bedst.
  • skriv den kode, der faktisk ville lave et produkt først, uanset hvor fjollet eller lille det produkt er.
  • ignorer ikke fejl; enhver fejl betyder noget.
  • Følg en agil tilgang til udvikling.
  • træk kun abstraktioner ud, hvis de giver mening og faktisk ville blive genbrugt.
  • stå på skuldrene af giganter; brug open source-biblioteker, tredjepartsløsninger og så videre.
  • Optimer for enkelhed; den bedste kode er den kode, du ikke behøver at skrive.
  • Automatiser test og praksis testdrevet udvikling (TDD)
  • Brug smarte værktøjer såsom ide ‘ er, kodegenereringsværktøjer osv., men vær ikke bange for at skifte ned, hvis de kommer i vejen for dig.
  • Vær yderst fortrolig med dit sprog og standardbibliotek. Jo mindre tid du bruger på at kravle rundt i dokumentationen, jo bedre.
  • brug kildekontrol — selv på egen hånd.
  • brug en profiler. Optimer kun hvad der er nødvendigt
  • Lær at røre-type. Programmører skriver meget og ikke kun kode; dette reducerer den kognitive belastning ved at skrive til nul og forbedrer hastighed og nøjagtighed

Opret det rigtige arbejdsmiljø

konstante afbrydelser, ubehagelige omstændigheder og uendelige møder afskrækker strømmen.

  • sørg for, at du er i et miljø, der ikke vil distrahere dig; gør det umuligt for distraktioner at afbryde dig.
  • Kend dig selv, og arbejde i løbet af din spidsbelastningstid-ikke en andens.

Udforsk uden for arbejdet

ikke alt, hvad du måske vil vide, er på dit kontor eller på internettet.

  • udsæt dig selv for nye værktøjer og teknikker. Behold hvad der virker.
  • arbejde på sideprojekter og open source-projekter.

hold det sundt

døde mennesker skriver ingen kode. Syge mennesker skriver dårlig kode. Pas på dig selv.

  • Kend værdien af at træde væk fra din kode.
  • få mere søvn, spis bedre og arbejd færre timer.
  • meditere.

udvikle gode læringsvaner

læring er en livslang proces for programmører, men vi advarede: internettet er fuld af skinnende ting.

  • Master det grundlæggende: programmeringsparadigmer og praksis som tør (gentag ikke dig selv) og SOLID (enkelt ansvar, åben-lukket, Liskov-substitution, grænsefladesegregering og afhængighedsinversion)for OOP), mønstre og anti-mønstre, algoritmer, datateori, grafteori osv.
  • Lær ved at gøre. Spil altid med koden, mens du lærer.
  • Find en mentor.
  • Udforsk forskellige måder at lære at se, hvad der virker for dig.

kvalitet er ikke konstant

kvalitet dækker meget jord, fra læsbarheden af koden til dens modulære struktur og kompleksitet, til hvor godt den udtrykker sine domæneintentioner.

  • fokus på kvalitet, ikke hastighed.
  • Accepter den kode “kvalitet” til enhver tid er “det bedste du kan gøre med hvad du har og ved.”
  • gør altid dit bedste; det er god praksis.
  • kun i ekstreme (dvs. prototyping/udforskning / smid-væk kode) og midlertidige omstændigheder, hvis du lader kvaliteten af din kode falde under niveauet for “det bedste du kan gøre” (og du skal føle dig lidt skamfuld over at gøre det.)

Soft skills matter

jeg fandt ikke mange tip om folks færdigheder, men folk er stort set uundgåelige; dem, jeg fandt, var ganske nyttige.

  • at vide, hvordan man interagerer med mennesker, giver dig mulighed for at lære af og lære dem omkring dig med mindre friktion og mere glæde.
  • at lære at skrive og tale klart vil hjælpe dig med at få dine ideer hurtigere.

gå videre og kode

så det er det, min oversigt over de bedste råd derude til programmering hurtigere. Følg disse tip, så er du godt på vej til at forbedre dine programmeringsevner—og kode hurtigere.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.