Haluatko tietää miten ohjelmoida nopeammin, jotta voit toimittaa ohjelmistoja nopeammin? Kukapa ei pitäisi? Internet on täynnä vinkkejä kehittäjille—satoja, tuhansia, ehkä jopa miljoonia. Ongelma on, että niitä on paljon enemmän kuin kellään on aikaa lukea, joten olen keittänyt ne sinulle.
tässä on 53 vinkkiä, jotka edustavat parhaita sieltä löytämiäni neuvoja. Mutta, ennen kuin kerron mitä löysin, minun täytyy selittää mitä tarkoitan ”ohjelmointi nopeammin,” ja ” vinkkejä.”
- ongelma ”faster”
- ongelma ”vinkkien”
- mitä haluat on flow
- vaihtoehtosi voivat olla rajalliset
- Top tips for programming faster
- Reflection is key
- mittaa objektiivisesti
- Practice, practice, practice
- Design for success
- Nail the process
- luovat oikean työympäristön
- Tutustu työn ulkopuolella
- pidä se terveenä
- kehitä hyviä oppimistapoja
- laatu ei ole vakio
- Soft skills matter
- go forth and code
ongelma ”faster”
koodatakseen nopeammin on oltava tehokas; eli ei turhaa vaivaa tai liikettä. Tämä voi tarkoittaa kaikkea kirjoittamisesta työkaluihin ja ajatteluun. Mutta suurin osa työstämme ohjelmoijina ei ole kirjoittamista tai kokoamista-se on ajattelua. Ajatella nopeammin, sinun täytyy oppia enemmän kuvioita ja suhteita. Tämä on tietoa ja viisautta, jota kokemus rakentaa. Mitä sinun täytyy mennä nopeammin muuttuu ajan myötä.
ongelma ”vinkkien”
suurin osa lukemistani vinkeistä koskee vain tiettyjä kohtia matkani varrella, eikä välttämättä kaikkia. Monet näistä kuuluvat ” henkilökohtainen matka ”tai” mikä toimi minulle ” luokkiin. Mutta minun polkuni ei luultavasti ole sinun polkusi. Vaikka jotkut mekaaniset asiat, jotka toimivat minulle luultavasti toimii sinulle, monet verkkotunnuksen ja malli valintoja tein voi olla mitään hyötyä.
mekaaninen kama on melko helppo optimoida; vaihtoehdot ovat rajalliset. Mutta oppimisella ei ole rajoja. Kukaan ei saa tietää kaikkea. Sinun täytyy tehdä strategisia ja taktisia valintoja, ja olla valmis hyödyntämään mahdollisuuksia, kun niitä tulee.
kärkien hyödyllisyys putoaa pois spesifisyyden funktiona. Tarkemmat vinkit eivät koske kaikkia, mutta yleisvinkit ovat liian, no, yleisiä. Niitä on paljon vaikeampi muuttaa toiminnaksi. Joten mitä todella haluat, Kun sanot haluavasi ” mennä nopeammin?”Minäpä kerron.
mitä haluat on flow
se mitä jokainen ohjelmoija haluaa, varsinkin DevOpsin aikakaudella, on flow. Flow state maksimoi läpimenon ja lisää nautintoa sisällyttämällä juuri oikean haastetason; yksi pysyy täysin mukana hetkessä ja työssä (tätä ei pidä sekoittaa Ballmer Peakiin). Virtaustilan ylläpitäminen vaatii sopivan ympäristön ja kitkattoman prosessin.
Flow-tila pariutuessa on kuin jokaisella teistä olisi ylimääräiset aivot. Valitettavasti monet kehittäjäympäristöt, kuten avoimet toimistot, ovat epäystävällisiä flow ’ lle.
vaihtoehtosi voivat olla rajalliset
jos löydät prosessistasi tai itsestäsi jotain epäoptimaalista, vaihtoehdot puuttua näihin rajoitteisiin ovat rajalliset:
- älä välitä siitä. Ehkä se paranee itsestään.
- vältä sitä. Onko se todella tarpeen?
- automatisoi se. Laita kone tekemään se.
- delegoi se. Harvoin mahdollista, tämä on vastuun siirtämistä. Mutta se on legit vaihtoehto, kun käytettävissä.
- jauha se alas. Meidän kaikkien on tehtävä tämä aika ajoin (päivittäin). Jotkut työpaikat ovat suurempia kuin toiset.
jos näppäilysi on hitaampaa kuin haluaisit, ota vähän aikaa ja tasoita tasoa. Jos integroitu kehitysympäristösi on sekava ja auttamaton (tai ehkä liiankin hyödyllinen), kokeile jotain erilaista tai yksinkertaisempaa. Jos et pääse siitä eroon, opi siitä lisää; saatat löytää toisen keinon tai ainakin oppia rajat.
on olemassa lukuisia tapoja oppia. Google on ystäväsi, kuten myös kirjat, videot, blogikirjoitukset, pinon Ylivuotokysymykset ja tietenkin muut ihmiset. Jotkin asiat, jotka haluat oppia, saattavat olla piilossa; toiset voivat olla suurempia kuin miltä ne näyttävät. Tasapainota hyöty vaivannäöllä ja ole kärsivällinen itseäsi kohtaan. Juhli jokaista saavutusta ja jatka matkaa.
Top tips for programming faster
yksi tapa ryhmitellä ja tarkastella alla olevia vinkkejä on soveltaa muutamaa korkean tason kategoriaa tavaksi piirtää kiinnostavia yleistyksiä kokoelmasta:
- mieti. Mitä haluat, mitä itse asiassa teet; sisältää mittaamisen ja optimoinnin.
- virtaus. Ei hankausta työkaluista, prosesseista, ympäristöstä tai tiedosta; etsi jatkuvaa haastetta, mutta ei liikaa.
- Opi. Keskeinen: kielet, työkalut, kuviot, käytännöt jne., kaikilta (erityisesti halukkailta opettamaan); oppia, miten opit, ja oppia jatkuvasti.
- opeta. Opeta toisia. Asioiden selittäminen pakottaa yksinkertaistamaan asioita, ja muutos ajatuksista sanallisiin tai visuaalisiin ilmaisuihin tuottaa oivalluksia.
- Express and explore. Katso ulkopuolella normaalit tehtävät; piirtää, kirjoittaa, blogi, mennä meetups, osallistua ja pitää esityksiä, puhua Wilson lentopallo tarvittaessa.
alla olevat vinkit ovat pelkkiä datapisteitä, pohdittavia asioita—eivät elämän lunttilappu tai ohjelmoijan uran tehtävälista. Aloitin listaamalla 183 vinkkiä, ryhmittelin ne luokkiin, määritin prioriteetin toistojen ja henkilökohtaisten ennakkoluulojen perusteella ja otin jokaisesta muutaman parhaan.
se on oikein, bias. Tiedän, mikä tekee kehittäjästä hyvän tai nopean ohjelmoijan, joten kaikki lukemani suodattui Biasini läpi. Olen puolueellinen.:
- ketteriä menetelmiä.
- Verkkotunnuspohjainen suunnittelu.
- automatisoitu testaus.
- jatkuva parantaminen.
- minimaaliset liuokset.
- kitkattomat työkalut.
- työskentely flow-tilassa niin paljon kuin mahdollista.
ja olen vahvasti samaa mieltä Robert C. ”Uncle Bob” Martinin lausunnosta ”vehement keskinkertaisuudesta”:
”ainoa tapa mennä nopeasti on mennä hyvin. Aina kun annat periksi kiusaukselle vaihtaa laatua nopeuteen, hidastat vauhtia. Joka kerta.”
ota seuraavat vinkit (ja kaikki muu, mitä luet internetistä) suolajyvällä. Säilytä ja mukauta se, mikä toimii; hylkää se, mikä on hyödytöntä.
ja tässä vinkkini nopeampaan ohjelmointiin: keskity laatuun, ja nopeus seuraa perässä.
Reflection is key
Reflection is the key to self-improvement:
- paranna jatkuvasti päätöksentekoprosessiasi; Opi virheistäsi moitteettomasti.
- Poista sokeat pisteet käsityksestäsi sovelluksesi koko laajuudesta ja sen toteutusympäristöstä.
- älä jahtaa häntääsi, vaan Tunnista ja poista aikapyydykset.
mittaa objektiivisesti
joskus tiedät, mikä on suurin rajoitteesi, ja joskus joudut mittaamaan sitä.
- harkitse tekeväsi itsestäsi yksityiskohtaisen tarkastuksen työskennellessäsi pari päivää.
- se on kuin minkä tahansa koodin optimointi. Kirjaa kaikki, tunnista kriisipesäkkeet ja paranna niitä.
- mihin aikasi menee? Monet ohjelmoijat käyttävät paljon enemmän aikaa koodin lukemiseen kuin koodin kirjoittamiseen; miten opit lukemaan koodia nopeammin?
Practice, practice, practice
there ’ s no taking about some level of practice, on a different challenges.
- Kirjoita paljon ohjelmistoja.
- Kirjoita isompia ohjelmia.
- Write review-ready code from the get-go.
- harjoituspaikkoja riittää, mm. topcoder.com, project Euler, hackerrank.com valitse yksi ja lähde.
Design for success
Oppimistekniikoiden tulisi olla itsestäänselvyys, osa ajatteluvälineiden hallintaa. Lisäksi:
- ymmärrä käyttäjää; ymmärrä heidän ongelmansa, todellinen ongelma, ja ratkaise se sitten. Verkkotunnuksen tuntemus auttaa suunnattomasti.
- Keskustele kollegoiden ja toimialueen asiantuntijoiden kanssa ongelmasta, ratkaisusta ja suunnittelusta.
- vähennä kognitiivista kuormitusta piirtämällä tai kirjoittamalla samalla kun ajattelet ja koodaat.
- kun suunnittelet pitkäikäisyyttä ja huoltoa, muista, että data elää koodia kauemmin.
- tiedä, milloin pyörä pitää keksiä uudelleen ja milloin ei (yleensä ei).
- nimeä asiat tarkoituksellisesti; tämä on ainoa linkki koodista takaisin verkkotunnukseen.
Nail the process
käytämme paljon aikaa oman rakennuksemme prosesseihin; älä pelkää muuttaa niitä.
- tee virheet suunnittelemattomiksi. Epäonnistu nopeasti, käytä poikkeuksia nollatarkistusten sijaan, käytä tyyppijärjestelmää tietovirheiden estämiseksi ja käytä automaattista testausta.
- jos et tiedä, mistä aloittaa, aloita siitä osasta, jonka ymmärrät parhaiten.
- kirjoita koodi, joka oikeasti tekisi tuotteen ensin, oli tuote kuinka typerä tai pieni tahansa.
- älä sivuuta virheitä; jokainen virhe merkitsee jotain.
- seuraa ketterästi kehitystä.
- vedä abstraktiot esiin vain, jos ne ovat järkeviä ja niitä todella käytettäisiin uudelleen.
- seiso jättiläisten harteilla; käytä avoimen lähdekoodin kirjastoja, kolmannen osapuolen ratkaisuja ja niin edelleen.
- optimoi yksinkertaisuuden vuoksi; paras koodi on koodi, jota ei tarvitse kirjoittaa.
- automatisoi testaus ja käytännön testivetoinen kehitys (TDD)
- käytä älytyökaluja, kuten IDE: tä, koodinluonnin apuohjelmia jne. mutta älä pelkää vaihtaa, jos he ovat tielläsi.
- ole erittäin perehtynyt kieleesi ja standardikirjastoosi. Mitä vähemmän aikaa dokumenteissa ryömii, sen parempi.
- käytä lähdeohjausta-myös yksin.
- käytä profiloijaa. Optimoi vain se, mikä on tarpeen
- Opi koskettamaan-tyyppinen. Ohjelmoijat kirjoittavat paljon, eivätkä vain koodia; tämä vähentää kirjoittamisen kognitiivista kuormitusta nollaan ja parantaa nopeutta ja tarkkuutta
luovat oikean työympäristön
jatkuvat keskeytykset, epämukavat olosuhteet ja loputtomat tapaamiset lannistavat flow ’ ta.
- varmista, että olet ympäristössä, joka ei häiritse sinua; tee häiriötekijöistä mahdotonta keskeyttää sinua.
- tunne itsesi ja tee töitä huippuaikanasi-ei jonkun muun.
Tutustu työn ulkopuolella
kaikki mitä haluat tietää ei ole toimistossasi tai Internetissä.
- altista itsesi uusille työkaluille ja tekniikoille. Pidä se, mikä toimii.
- työtä sivuprojekteissa ja avoimen lähdekoodin projekteissa.
pidä se terveenä
kuolleet eivät kirjoita koodia. Sairaat kirjoittavat huonoa koodia. Pidä huolta itsestäsi.
- tiedä koodistasi luopumisen arvo.
- nuku enemmän, syö paremmin ja tee vähemmän töitä.
- meditoi.
kehitä hyviä oppimistapoja
oppiminen on ohjelmoijille elinikäinen prosessi, mutta varoitimme: internet on täynnä kiiltäviä asioita.
- Master the fundamentals: ohjelmointiparadigmat ja-käytännöt, kuten DRY (älä toista itseäsi) ja ja SOLID (single responsibility, open-closed, Liskov substitution, interface segregation and dependence inversion)OOP: lle), patterns and anti-patterns, algorithms, data theory, graph theory, jne.
- Opi tekemällä. Leiki koodilla aina opiskellessasi.
- Etsi mentori.
- Tutki erilaisia tapoja oppia näkemään, mikä toimii sinulle.
laatu ei ole vakio
laatu kattaa paljon asioita koodin luettavuudesta sen modulaariseen rakenteeseen ja monimutkaisuuteen ja siihen, miten hyvin se ilmaisee alueensa aikeita.
- keskity laatuun, älä nopeuteen.
- hyväksy, että koodi ”laatu” millä tahansa hetkellä on ”parasta, mitä voit tehdä sillä, mitä sinulla on ja tiedät.”
- tee aina parhaasi; se on hyvää harjoitusta.
- vain äärimmäisessä (ts. prototyping / exploring / throw-away code) ja väliaikaisissa olosuhteissa, jos annat koodin laadun pudota alle tason ”paras mitä voit tehdä” (ja sinun pitäisi tuntea hieman häpeää tehdä se.)
Soft skills matter
en löytänyt paljon vinkkejä ihmistaidoista, mutta ihmiset ovat aika lailla väistämättömiä; ne, jotka löysin, olivat varsin hyödyllisiä.
- kun osaa olla vuorovaikutuksessa ihmisten kanssa, oppii ja opettaa ympärillään olevia vähemmän kitkaa ja enemmän iloa.
- kun opettelet kirjoittamaan ja puhumaan selkeästi, saat ajatuksesi nopeammin perille.
go forth and code
So that ’ s it, my summary of the best advice out there for programming faster. Noudata näitä vinkkejä, niin olet hyvin matkalla ohjelmointitaitojesi parantamiseen—ja koodaamiseen nopeammin.