Code sneller: 53 tips van de pro’ s

wilt u weten hoe sneller te programmeren, zodat u sneller software kunt leveren? Tuurlijk, wie niet? Het internet staat vol met tips voor ontwikkelaars—honderden, duizenden, misschien zelfs miljoenen van hen. Het probleem is, er zijn er veel meer dan iemand tijd heeft om te lezen, dus ik heb ze voor je gekookt.

hier zijn 53 tips die het beste advies vertegenwoordigen dat ik daar heb gevonden. Maar voordat ik je vertel wat ik vond, moet ik uitleggen wat ik bedoel met “sneller programmeren” en “tips.”

het probleem met “faster”

om sneller te coderen, moet men efficiënt zijn; dat wil zeggen, geen verspilde moeite of beweging. Dit kan alles betekenen, van typen tot gereedschap tot denken. Maar het meeste van ons werk als programmeurs is niet typen, of compileren-het is denken. Om sneller te denken, moet je meer patronen en relaties leren. Dit is de kennis en wijsheid die ervaring opbouwt. Wat je nodig hebt om sneller te gaan zal in de loop van de tijd veranderen.

het probleem met”tips”

de meeste tips die ik lees gelden alleen op bepaalde punten van mijn reis, en niet per se voor iedereen. Veel van deze vallen in de “persoonlijke reis” of “wat werkte voor mij” categorieën. Maar mijn pad is waarschijnlijk niet jouw pad. Terwijl sommige van de mechanische dingen die werken voor mij zal waarschijnlijk werken voor u, veel van het domein en patroon keuzes die ik heb gemaakt kan van geen nut zijn.

het mechanische materiaal is vrij eenvoudig te optimaliseren; de opties zijn beperkt. Maar het leren heeft geen grenzen. Niemand zal ooit alles weten. Je moet strategische en tactische keuzes maken, en bereid zijn om te profiteren van kansen wanneer ze zich voordoen.

het nut van tips valt af als functie van specificiteit. De meer specifieke tips gelden niet voor iedereen, maar algemene tips zijn te, nou, algemeen. Ze zijn veel moeilijker om in actie te komen. Dus wat wil je echt als je zegt dat je sneller wilt gaan?”Ik zal het je vertellen.

wat u wilt is flow

wat elke programmeur wil, vooral in het tijdperk van DevOps, is flow. Flow state maximaliseert de doorvoer en verhoogt het genot door het opnemen van precies het juiste niveau van uitdaging; men blijft volledig bezig in het moment en in het werk (dit is niet te verwarren met de Ballmer piek). Het ondersteunen van stroomtoestand vereist een geschikte omgeving en wrijvingsloos proces.

Flow state wanneer koppelen is als een ieder van u een extra brein heeft. Helaas zijn veel ontwikkelaarsomgevingen, zoals open kantoren, onvriendelijk om te stromen.

uw opties kunnen beperkt zijn

wanneer u iets suboptimaals vindt over uw proces of uzelf, zijn de keuzes over hoe u dergelijke beperkingen kunt aanpakken beperkt:

  • negeer het. Misschien wordt het vanzelf beter.
  • Vermijd deze. Is het echt nodig?
  • automatiseren. Laat de machine het doen.
  • delegeren. Zelden mogelijk, dit is het doorgeven van de schuld. Maar het is een legit optie wanneer beschikbaar.
  • maal het fijn. We moeten dit allemaal van tijd tot tijd (dagelijks) doen. Sommige banen zijn groter dan andere.

als uw typen langzamer is dan u wilt, neem dan wat tijd en ga een level omhoog. Als uw geà ntegreerde ontwikkelomgeving verwarrend en onbehulpzaam is (of misschien te nuttig), probeer dan iets anders of eenvoudiger. Als je er niet van weg kunt komen, leer er dan meer over; je kunt een andere manier vinden, of op zijn minst de grenzen leren.

er zijn tal van manieren om te leren. Google is je vriend, net als boeken, video ‘ s, blogberichten, Stack Overflow vragen, en, natuurlijk, andere mensen. Sommige dingen die je wilt leren kunnen verborgen zijn; andere kunnen groter zijn dan ze lijken. Balans voordeel met inspanning en wees geduldig met jezelf. Vier elke prestatie en blijf in beweging.

Toptips voor sneller programmeren

een manier om de onderstaande tips te groeperen en te bekijken is door enkele categorieën op hoog niveau toe te passen als een manier om interessante generalisaties uit de collectie te trekken:

  • denk na. Wat wil je, wat doe je eigenlijk; omvat meten en optimaliseren.
  • stroom. Geen wrijving van gereedschappen, processen, omgeving of kennis; zoek voortdurende uitdaging, maar niet te veel.
  • leren. Fundamenteel: talen, hulpmiddelen, patronen, praktijken, enz., van iedereen (vooral degenen die bereid zijn om te onderwijzen); leer hoe je leert, en leer voortdurend.
  • Teach. Leer anderen. Dingen moeten uitleggen dwingt tot vereenvoudiging, en de transformatie van gedachten naar verbale of visuele uitdrukkingen levert inzichten op.
  • Express en explore. Kijk buiten je normale taken; tekenen, schrijven, bloggen, ga naar meetups, wonen en geven presentaties, praten met Wilson de volleybal indien nodig.

de onderstaande tips zijn gewoon gegevenspunten, dingen om over na te denken—geen cheat-sheet voor het leven of een to-do lijst voor je carrière als programmeur. Ik begon met een lijst van 183 tips, gegroepeerd ze in categorieën, toegewezen een prioriteit op basis van herhaling en persoonlijke vooringenomenheid, en nam de top paar van elk.

dat klopt, bias. Ik weet wat een ontwikkelaar goed of snel programmeur maakt, dus alles wat ik lees filterde ik door mijn vooringenomenheid. Specifiek ben ik bevooroordeeld naar:

  • Agile methoden.
  • Domeingestuurd ontwerp.
  • geautomatiseerd testen.
  • continue verbetering.
  • minimale oplossingen.
  • wrijvingsloze gereedschappen.
  • zoveel mogelijk in stroomtoestand werken.

En Ik ben het volledig eens met Robert C.” Uncle Bob “Martin’ s verklaring over “heftige middelmatigheid”:

“de enige manier om snel te gaan is om goed te gaan. Elke keer dat u toegeven aan de verleiding om de handel kwaliteit voor snelheid, je vertragen. Elke keer.”

neem de volgende tips (en al het andere dat je op het internet leest) met een korreltje zout. Houd en pas aan wat werkt; gooi weg wat nutteloos is.

En hier is mijn tip voor sneller programmeren: Focus op kwaliteit, en snelheid zal volgen.

reflectie is de sleutel

reflectie is de sleutel tot zelfverbetering:

  • verbeter voortdurend uw besluitvormingsproces; leer van uw fouten zonder verwijt.
  • Elimineer blinde vlekken in uw begrip van het volledige toepassingsgebied van uw toepassing en de uitvoeringsomgeving.
  • achtervolg uw staart niet; Identificeer en elimineer tijdspanne.

meet objectief

Soms weet u wat uw grootste beperking is, en soms moet u deze meten.

  • overweeg een gedetailleerde audit van uzelf te doen terwijl u een paar dagen werkt.
  • het is net als het optimaliseren van elk stukje code. Log alles in, identificeer hotspots en verbeter ze.
  • waar gaat uw tijd naartoe? Veel programmeurs besteden veel meer tijd aan het lezen van code dan het schrijven van code; Hoe leer je om code sneller te lezen?

Praktijk, Praktijk, Praktijk

er is geen manier om een bepaald niveau van praktijk te bereiken voor een verscheidenheid aan uitdagingen.

  • schrijf veel software.
  • Grotere programma ‘ s schrijven.
  • Schrijf recensie-ready code vanaf het begin.
  • er zijn genoeg plaatsen om te oefenen, waaronder topcoder.com, project Euler, hackerrank.com kies er een en ga verder.

ontwerp voor succes

leerontwerptechnieken moeten een gegeven zijn, onderdeel van de beheersing van uw denkinstrumenten. Daarnaast:

  • de gebruiker begrijpen; begrijp hun probleem, het echte probleem, en los het dan op. Kennis van het domein helpt enorm.
  • praat met collega ‘ s en domeinexperts over het probleem, de oplossing en het ontwerp.
  • verminder de cognitieve belasting door te tekenen of te schrijven terwijl u denkt en codeert.
  • bij het ontwerpen voor een lange levensduur en onderhoud, onthoud dan dat gegevens code overleven.
  • weet wanneer het wiel opnieuw moet worden uitgevonden en wanneer niet (meestal niet).
  • noem dingen doelbewust; dit is de enige link van de code terug naar het domein.

Nail the process

we besteden veel tijd aan processen van onze eigen constructie; wees niet bang om ze te veranderen.

  • maken bugs onmogelijk door ontwerp. Faal snel, gebruik uitzonderingen in plaats van nul controles, Gebruik het type systeem om gegevensfouten te voorkomen, en gebruik geautomatiseerde testen.
  • als u niet weet waar u moet beginnen, begin dan met het deel dat u het beste begrijpt.
  • schrijf de code die als eerste een product zou maken, hoe dom of klein dat product ook is.
  • negeer fouten niet; elke fout betekent iets.
  • een flexibele benadering van ontwikkeling volgen.
  • haal abstracties alleen tevoorschijn als ze zinvol zijn en daadwerkelijk worden hergebruikt.
  • staan op de schouders van reuzen; gebruik open source bibliotheken, oplossingen van derden, enzovoort.
  • Optimaliseer voor eenvoud; de beste code is de code die u niet hoeft te schrijven.
  • Automate testing and practice test-driven development (TDD)
  • Gebruik slimme tools zoals IDEs, code generation utilities, enz. maar wees niet bang om te down-shift als ze in de weg staan.
  • wees zeer vertrouwd met uw taal en standaardbibliotheek. Hoe minder tijd je besteedt aan het rondkruipen in de documentatie, hoe beter.
  • gebruik Broncontrole-zelfs alleen.
  • gebruik een profiler. Optimaliseer alleen wat nodig is
  • leer touch-type. Programmeurs typen veel, en niet alleen code; dit vermindert de cognitieve belasting van typen tot nul, en verbetert de snelheid en nauwkeurigheid

creëer de juiste werkomgeving

constante onderbrekingen, ongemakkelijke omstandigheden en eindeloze vergaderingen ontmoedigen flow.

  • zorg ervoor dat u zich in een omgeving bevindt die u niet zal afleiden; maak het onmogelijk dat afleidingen u onderbreken.
  • Ken uzelf en werk tijdens uw piekuren – niet die van iemand anders.

verkennen buiten het werk

niet alles wat u zou willen weten is in uw kantoor of op het Internet.

  • stel uzelf bloot aan nieuwe instrumenten en technieken. Hou wat werkt.
  • werken aan nevenprojecten en open source-projecten.

houd het gezond

dode mensen schrijven geen code. Zieke mensen schrijven slechte code. Zorg goed voor jezelf.

  • ken de waarde van het verlaten van uw code.
  • meer slapen, beter eten en minder uren werken.
  • mediteer.

ontwikkel goede leergewoonten

leren is een levenslang proces voor programmeurs, maar we waarschuwden: het internet zit vol blinkende dingen.

  • Beheers de grondbeginselen: programmeren paradigma ‘ s en praktijken zoals droog (herhaal jezelf niet) en en solide (single responsibility, open-closed, Liskov substitutie, interface segregatie en afhankelijkheid inversie)voor OOP), patronen en anti-patronen, algoritmen, data theorie, graftheorie, etc.
  • leren door te doen. Speel altijd met de code tijdens het leren.
  • zoek een mentor.
  • Ontdek verschillende manieren om te leren om te zien wat voor u werkt.

kwaliteit is niet constant

kwaliteit bestrijkt een groot terrein, van de leesbaarheid van de code tot zijn modulaire structuur en complexiteit, tot hoe goed hij zijn domeinintenties uitdrukt.

  • Focus op kwaliteit, niet op snelheid.
  • accepteer dat code ” kwaliteit “op een bepaald moment” het beste is wat je kunt doen met wat je hebt en weet.”
  • doe altijd je best; het is een goede praktijk.
  • alleen in extreme gevallen (d.w.z. prototyping/exploring / throw-away code) en tijdelijke omstandigheden moet je de kwaliteit van je code laten dalen tot onder het niveau van “het beste wat je kunt doen” (en je moet je een beetje schamen om het te doen.)

Soft skills matter

ik vond niet veel tips over people skills, maar mensen zijn vrijwel onvermijdelijk; die ik vond waren heel nuttig.

  • Als u weet hoe u met mensen moet omgaan, kunt u met minder wrijving en meer vreugde leren van de mensen om u heen.
  • leren duidelijk schrijven en spreken zal u helpen uw ideeën sneller over te brengen.

ga verder en code

dus dat is het, mijn samenvatting van het beste advies dat er is voor het sneller programmeren. Volg deze tips en je bent goed op weg om je programmeervaardigheden te verbeteren—en sneller te coderen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.