szeretné tudni, hogyan lehet gyorsabban programozni, hogy gyorsabban szállíthassa a szoftvert? Persze, ki nem? Az internet tele van tippekkel a fejlesztők számára-százak, ezrek, talán még milliók is. A probléma az, hogy sokkal több van odakint, mint bárkinek van ideje olvasni, ezért megfőztem neked.
íme 53 tipp, amelyek a legjobb tanácsokat képviselik, amelyeket ott találtam. De mielőtt elmondanám, mit találtam, el kell magyaráznom, mit értek a “gyorsabb programozás” és a “tippek” alatt.”
- a probléma a “gyorsabb”
- a “tippek”problémája
- amit akarsz flow
- lehetőségei korlátozottak lehetnek
- legfontosabb tippek a gyorsabb programozáshoz
- a reflexió a kulcs
- mérj objektíven
- gyakorlat, gyakorlat, gyakorlat
- Design for success
- köröm a folyamat
- megfelelő munkakörnyezet létrehozása
- fedezze fel a munkán kívül
- tartsa egészségesen
- jó tanulási szokások kialakítása
- a minőség nem állandó
- Soft skills matter
- menj tovább és kódold
a probléma a “gyorsabb”
kódolni gyorsabb, az egyik, hogy hatékony legyen; azaz, nem pazarolt erőfeszítés vagy mozgás. Ez mindent jelenthet a gépeléstől az eszközökig a gondolkodásig. De programozói munkánk nagy része nem gépelés vagy fordítás, hanem gondolkodás. A gyorsabb gondolkodáshoz több mintát és kapcsolatot kell megtanulnia. Ez az a tudás és bölcsesség,amelyet a tapasztalat épít. Amit gyorsabban kell mennie, az idővel megváltozik.
a “tippek”problémája
az általam olvasott tippek többsége csak az utazás bizonyos pontjain érvényes, és nem feltétlenül vonatkozik mindenkire. Ezek közül sok a “személyes utazás” vagy a “mi működött nekem” kategóriába tartozik. De az én utam valószínűleg nem a te utad. Míg néhány mechanikus dolog, ami nekem működik, valószínűleg működni fog az Ön számára, sok domain és minta választás, amit tettem, lehet, hogy nem használ.
a mechanikus dolgokat nagyon könnyű optimalizálni; a lehetőségek korlátozottak. De a tanulásnak nincsenek korlátai. Senki sem fog tudni mindent. Stratégiai és taktikai döntéseket kell hoznia, és készen kell állnia arra, hogy kihasználja a lehetőségeket, amikor azok felmerülnek.
a tippek hasznossága a specifitás függvényében csökken. A konkrétabb tippek nem mindenkire vonatkoznak,de az általános tippek is, jól, általános. Sokkal nehezebb cselekvésre váltani őket. Tehát mit akarsz valójában, amikor azt mondod, hogy ” gyorsabban akarsz menni?”Elmondom.
amit akarsz flow
amit minden programozó akar, különösen a DevOps korában, az flow. A Flow state maximalizálja az áteresztőképességet és növeli az élvezetet a megfelelő szintű kihívás beépítésével; az ember teljes mértékben részt vesz a pillanatban és a munkában (ez nem tévesztendő össze a Ballmer Peak-kel). Az áramlási állapot fenntartása megfelelő környezetet és súrlódásmentes folyamatot igényel.
áramlási állapot, amikor a párosítás olyan, mintha mindenkinek lenne egy extra agya. Sajnos sok fejlesztői környezet, például a nyitott irodák, barátságtalan az áramláshoz.
lehetőségei korlátozottak lehetnek
ha valami optimálisat talál a folyamatával vagy önmagával kapcsolatban, az ilyen korlátozások kezelésének lehetőségei korlátozottak:
- ne törődj vele. Talán jobb lesz magától.
- Kerülje el. Tényleg szükséges?
- automatizálja. Csináld meg a géppel.
- delegálja. Ritkán lehetséges, ez halad a Bak. De ez egy legit lehetőség, ha rendelkezésre áll.
- csiszolja le. Ezt időről időre meg kell tennünk (naponta). Egyes munkahelyek nagyobbak, mint mások.
ha a gépelés lassabb, mint szeretné, szánjon egy kis időt, és szinttel feljebb. Ha az integrált fejlesztői környezet zavaró és haszontalan (vagy talán túl hasznos), próbáljon ki valami mást vagy egyszerűbbet. Ha nem tud megszabadulni tőle, tudjon meg többet róla; találhat más utat, vagy legalább megtanulhatja a korlátokat.
számos módja van a tanulásnak. A Google a barátod, csakúgy, mint a könyvek, videók, blogbejegyzések, Stack Overflow kérdések és természetesen más emberek. Néhány dolog, amit meg akarsz tanulni, rejtett lehet; mások nagyobbak lehetnek, mint amilyennek látszanak. Kiegyensúlyozd a hasznot az erőfeszítéssel, és légy türelmes magaddal. Ünnepelj minden eredményt és haladj tovább.
legfontosabb tippek a gyorsabb programozáshoz
az alábbi tippek csoportosításának És megtekintésének egyik módja az, ha néhány magas szintű kategóriát alkalmaz, hogy érdekes általánosításokat vonjon le a gyűjteményből:
- Reflektálj. Mit akarsz, mit csinálsz valójában; magában foglalja a mérést és az optimalizálást.
- áramlás. Nincs súrlódás az eszközöktől, a folyamatoktól, a környezettől vagy a tudástól; keressen folyamatos kihívást, de ne túl sokat.
- tanulni. Az alapok: nyelvek, eszközök, minták, gyakorlatok stb., mindenkitől (különösen azoktól, akik hajlandóak tanítani); tanuld meg, hogyan tanulsz, és folyamatosan tanulj.
- tanít. Taníts másokat. A dolgok elmagyarázása egyszerűsítést eredményez, a gondolatoktól a verbális vagy vizuális kifejezésekig történő átalakulás pedig betekintést eredményez.
- expressz és fedezze fel. Nézze meg a szokásos feladatait; rajzoljon, írjon, blogoljon, menjen találkozókra, vegyen részt és tartson előadásokat, beszéljen Wilsonnal a röplabdával, ha szükséges.
az alábbi tippek egyszerűen adatpontok, elgondolkodtató dolgok—nem egy életre szóló csalólap vagy egy programozó karrierjének tennivalói. 183 tippből álló listával kezdtem, kategóriákba csoportosítottam őket, prioritást rendeltem az ismétlés és a személyes elfogultság alapján, és mindegyikből az első néhányat vettem.
így van, elfogultság. Tudom, mi teszi a fejlesztőt jó vagy gyors programozóvá, így minden, amit olvastam, átszűrődött az elfogultságomon. Kimondottan, elfogult vagyok:
- agilis módszerek.
- tartományvezérelt tervezés.
- automatizált tesztelés.
- folyamatos fejlesztés.
- minimális megoldások.
- súrlódásmentes Szerszámok.
- áramlási állapotban dolgozik, amennyire csak lehetséges.
és határozottan egyetértek Robert C. “Bob bácsi” Martin nyilatkozata “heves középszerűség”:
“az egyetlen módja annak, hogy gyorsan menjen, hogy jól menjen. Minden alkalommal, amikor engedsz a kísértésnek, hogy a minőséget a sebességért cseréld, lelassulsz. Minden alkalommal.”
vegye ki a következő tippeket (és minden mást, amit az interneten olvas) egy szem sóval. Tartsa meg és alkalmazza azt, ami működik; dobja el azt, ami haszontalan.
és itt van az én tippem a gyorsabb programozáshoz: összpontosítson a minőségre, és a sebesség követi.
a reflexió a kulcs
a reflexió az önfejlesztés kulcsa:
- folyamatosan javítsa döntéshozatali folyamatát; szemrehányás nélkül tanuljon a hibáiból.
- szüntesse meg a vakfoltokat az alkalmazás teljes körének és végrehajtási környezetének megértésében.
- ne kergesd a farkad; azonosítsd és szüntesd meg az időnyeleket.
mérj objektíven
néha tudod, mi a legnagyobb kényszer, és néha meg kell mérni.
- fontolja meg, hogy néhány napig dolgozik-e részletes ellenőrzést.
- ez olyan, mint bármely kóddarab optimalizálása. Jelentkezzen be mindent, azonosítsa a hotspotokat és javítsa őket.
- hová telik az időd? Sok programozó sokkal több időt tölt kódolvasással, mint kódírással; hogyan lehet megtanulni gyorsabban olvasni a kódot?
gyakorlat, gyakorlat, gyakorlat
nincs szerzés körül valamilyen szintű gyakorlat, a különböző kihívások.
- írjon sok szoftvert.
- írjon nagyobb programokat.
- írja meg véleményét-kész kódot a get-go.
- rengeteg hely van a gyakorlatban, beleértve topcoder.com, Euler projekt, hackerrank.com. választ egyet, és megy.
Design for success
tanulási tervezési technikák kell egy adott, része a mesteri a gondolkodás eszközök. Továbbá:
- értsd meg a felhasználót; megérteni a problémájukat, az igazi problémát; majd megoldani. A domain ismerete rendkívül segít.
- beszéljen kollégáival és a domain szakértőivel a problémáról, a megoldásról és a tervezésről.
- csökkentse a kognitív terhelést rajzolással vagy írással, miközben gondolkodik és kódol.
- a hosszú élettartam és a karbantartás tervezésekor ne feledje, hogy az adatok túlélik a kódot.
- tudja, mikor kell újra feltalálni a kereket, és mikor nem (általában nem).
- céltudatosan nevezzen meg dolgokat; ez az egyetlen link a kódtól a tartományig.
köröm a folyamat
sok időt töltünk saját építésű folyamatokban; ne félj megváltoztatni őket.
- hogy a hibákat lehetetlen a tervezés. Fail fast, használjon kivételeket a null ellenőrzések helyett, használja a type system-et az adathibák megelőzésére, és használjon automatizált tesztelést.
- ha nem tudja, hol kezdje, kezdje azzal a résszel, amelyet a legjobban ért.
- írja be azt a kódot, amely először ténylegesen létrehozna egy terméket, függetlenül attól, hogy milyen buta vagy kicsi a termék.
- ne hagyja figyelmen kívül a hibákat; minden hiba jelent valamit.
- kövesse a fejlesztés agilis megközelítését.
- csak akkor húzza ki az absztrakciókat, ha van értelme és ténylegesen újrafelhasználható.
- álljon az óriások vállán; használjon nyílt forráskódú könyvtárakat, harmadik féltől származó megoldásokat stb.
- optimalizálás az egyszerűség kedvéért; a legjobb kód az a kód, amelyet nem kell írni.
- automatizálja a tesztelést és gyakorolja a tesztvezérelt fejlesztést (TDD)
- használjon intelligens eszközöket, például ide-ket, kódgeneráló segédprogramokat stb., de ne félj lefelé váltani, ha az utadba kerülnek.
- legyen rendkívül jártas a nyelv és a standard könyvtár. Minél kevesebb időt töltesz a dokumentációban, annál jobb.
- használja a forrásvezérlést — akár egyedül is.
- használjon profilozót. Optimalizálja csak a szükséges
- Ismerje meg az érintés típusát. A programozók sokat gépelnek, és nem csak kódolnak; ez nullára csökkenti a gépelés kognitív terhelését, és javítja a sebességet és a pontosságot
megfelelő munkakörnyezet létrehozása
az állandó megszakítások, a kényelmetlen körülmények és a végtelen találkozók elriasztják az áramlást.
- győződjön meg arról, hogy olyan környezetben van, amely nem vonja el a figyelmét; lehetetlenné teszi a zavaró tényezők megszakítását.
- Ismerd meg magad, és a munka a csúcsidőben — nem valaki más.
fedezze fel a munkán kívül
nem minden, amit tudni szeretne, az irodában vagy az interneten található.
- tegye ki magát új eszközöknek és technikáknak. Tartsa meg, ami működik.
- munka mellékprojekteken és nyílt forráskódú projekteken.
tartsa egészségesen
a halottak nem írnak kódot. A betegek rossz kódot írnak. Vigyázz magadra.
- Ismerje meg a kódjától való eltávolodás értékét.
- aludj többet, egyél jobban, és kevesebb órát dolgozz.
- Meditálj.
jó tanulási szokások kialakítása
a tanulás egy egész életen át tartó folyamat a programozók számára, de figyelmeztettük: az internet tele van fényes dolgokkal.
- mester az alapok: programozási paradigmák és gyakorlatok, mint például a száraz (ne ismételje meg magát)és és szilárd (egyetlen felelősség, nyitott-zárt, Liskov helyettesítés, interfész szegregáció és függőség inverzió) az OOP számára), minták és anti-minták, algoritmusok, adatelmélet, gráfelmélet stb.
- Tanulj cselekvéssel. Tanulás közben mindig játsszon a kóddal.
- keressen egy mentort.
- fedezze fel a tanulás különböző módjait, hogy lássa, mi működik az Ön számára.
a minőség nem állandó
a minőség sok területet lefed, a kód olvashatóságától a moduláris felépítésén és összetettségén át egészen a domain szándékainak kifejezéséig.
- Fókuszban a minőség, nem sebesség.
- fogadd el, hogy a “minőség” kód bármely adott pillanatban “a legjobb, amit tehetsz azzal, amit tudsz és tudsz.”
- mindig tedd a legjobbat; ez jó gyakorlat.
- csak szélsőséges esetben (pl. prototípus készítés/feltárás / eldobási kód) és átmeneti körülmények esetén hagyja, hogy a kód minősége a “legjobb, amit tehet” szint alá csökkenjen (és kissé szégyellnie kell magát.)
Soft skills matter
nem találtam sok tippet az emberek készségeiről, de az emberek nagyjából elkerülhetetlenek; azok, akiket találtam, nagyon hasznosak voltak.
- az emberekkel való interakció ismerete lehetővé teszi, hogy kevesebb súrlódással és több örömmel Tanulj és taníts a körülötted élőktől.
- ha megtanulsz tisztán írni és beszélni, az segít abban, hogy ötleteid gyorsabban megvalósuljanak.
menj tovább és kódold
szóval ennyi, összefoglalom a legjobb tanácsokat a gyorsabb programozáshoz. Kövesse ezeket a tippeket,és jó úton lesz a programozási készségek fejlesztéséhez-és a kódoláshoz.