Nokļūšana 10x (rezultāti): tas, ko jebkurš izstrādātājs var mācīties no labākā

Ko darīt, ja es jums teiktu, ka jūs varat būt 10 reizes labāks par vidējo? Ne divtik labi. 10 reizes labāk: lieluma pakāpe. Jūs patiešām izceļas. Jums būs pieejamas labākas darba vietas, augstāks atalgojums un lielāka apmierinātība ar darbu.

Esmu intervējis, mācījis un mentojis simtiem izstrādātāju. Varbūt visvērtīgākais takeaway ir tas, ka ir ļoti daudz prasmju līmeņu, pat starp izstrādātājiem, kuri gadiem ilgi kodē iztiku.

Pat pārsteidzošāks man ir tas, cik viegli lielāko daļu no tiem var uzlabot. Esmu arī pamanījis, ka liels skaits izstrādātāju vēlas uzlabot. Liekas, ka viņi cīnās, ir zināt, pie kā strādāt un kā pie tā strādāt.

Labās ziņas tiem, kas ir apņēmušies sasniegt izcilību, ir tas, ka vairums citu izstrādātāju vienkārši nezina par iespēju uzlabot vai arī nav pietiekami motivēti, lai uzņemtos saistības.

Vienkārši nolemjot kļūt par desmitkārtīgu izstrādātāju, iegūsit milzīgas priekšrocības salīdzinājumā ar konkurenci.

Turklāt desmitkārtīgais pieaugums nav tikai attīstības prasmes. Tas ir tikai viens faktors daudzos svarīgos faktoros. Acīmredzot jūs nevarat būt desmitkārtīgs izstrādātājs bez karbonādēm, taču ar kodēšanas karbonādēm vien nepietiek.

10x izstrādātāja mēra pirmsākumi

Pētījumu pārsvars liek domāt, ka izstrādātāju veiktspēja atšķiras pēc lieluma. Lai citētu Stīvu Makkonellu (autors, “Kods pabeigts”):

Vispārējo secinājumu, ka “Starp programmētājiem pastāv atšķirības lieluma secībā”, apstiprina daudzi citi profesionālu programmētāju pētījumi (Curtis 1981, Mills 1983, DeMarco un Lister 1985, Curtis et al. 1986, Card 1987, Boehm un Papaccio 1988, Valett un McGarry 1989, Boehm et al 2000).

Izrādās, ka šī 10x lieta sniedzas tālu pāri atsevišķiem izstrādātājiem. Atšķirības pastāv komandu produktivitātē dažādās nozarēs, visu līmeņu izpildītāju un sportistu prasmju līmeņos utt.

10x šķiet ļoti daudz atšķirību. Ir viegli pieļaut kļūdu, ka mums pārējiem nav iespējas sasniegt šo izcilības līmeni - vienkāršs ir fakts, ka vairumam no mums tā nebūs. Bet tas, kas patiešām ir interesants, ir tas, ka ir skaidrs ceļš uz izcilību. Cilvēki nav dzimuši izcili izstrādātāji. Viņi tur nokļūst, izmantojot mērķtiecīgu, apzinātu praksi.

Tas rada svarīgu jautājumu: ko tieši mums vajadzētu praktizēt? Kas kopīgs labākajiem izstrādātājiem, un vai tās ir īpašības, no kurām pārējie varam mācīties un līdzināties?

Kas padara dažus DEV 10x labākus par citiem?

Ir daudz faktoru, kuru dēļ daži izstrādātāji ir desmit reizes labāki nekā citi. Tas ir daudz vairāk nekā tas, cik biļešu viņi aizver. Protams, darba padarīšana ir vitāli svarīgs pasākums, bet ko vēl jūs varat uzlabot, lai nokļūtu 10 reizes, un pie kā vispirms vajadzētu strādāt?

Mēs aptaujājām apmēram 1000 izstrādātājus, lai uzzinātu. Pirmkārt, mēs veica neformālu aptauju vietnē Twitter, lai savāktu vārdus, ko izmanto, lai aprakstītu neparastus izstrādātājus, nevis tik ārkārtējus izstrādātājus:

Pēc tam atbildes mēs apvienojām vienkāršu, aprakstošu vārdu sarakstā un izveidojām aptauju ar 2 jautājumiem ar atbilžu variantiem.

Kas padara lielisku izstrādātāju?

1. Padomājiet par visneparastāko izstrādātāju, ar kuru jūs kādreiz esat strādājis. Atlasiet visus vārdus, kas tos raksturo.

Ideja ir dot izstrādātājiem to īpašību sarakstu, uz kurām viņi var koncentrēties. Šīs ir visas prasmes, kuras varat praktizēt un uzlabot.

Sāksim ar to, kas padara lieliskos izstrādātājus lieliskus. Mēs sāksim ar pieciem labākajiem:

Izrādās, ka visi šie faktori pārspēj tādus vispārīgus produktivitātes rādītājus kā “ātrs” un “efektīvs” ar veselīgu rezervi.

Problēmu risinātājs: problēmu risināšana ir tā, ko izstrādātāji, tāpēc nav pārsteigums, ka šī kvalitāte iegūst augstas atzīmes, bet kas atšķir vidējo problēmu risinātāju no lieliskā problēmu risinātāja? Pareizo problēmu risināšana. Izstrādātāji vēlas justies produktīvi un satraukties, ja ir kādas lietas, kas viņus kavē.

Lielākajā daļā lielo kodu ir dažas koda daļas, kuras neviens nevēlas uzturēt. Ja varat atlicināt laiku iedziļināties šajā koda daļā un to sakopt, jūs atvieglosit dzīvi visiem, kam jātiek galā ar šo kodu.

Ja ir kopīgi procesi, kuriem nepieciešama automatizācija, atvēliet laiku to automatizēšanai. Iegūstiet lielas uzvaras, un jūsu kolēģi un vadītāji novērtēs iniciatīvu. Koncentrējieties uz tām problēmām, kurām ir vislielākā ietekme. Ja katrs komandas izstrādātājs 5 minūtes dienā pavada atkārtotam uzdevumam, kuru varētu automatizēt, un tā automatizēšanai būtu nepieciešamas tikai 30 minūtes, dariet to. Komandā, kurā ir 6 izstrādātāji, ieguldījuma samaksa būs tikai viena diena.

Prasmīgi: prasmes attīstās no divām sastāvdaļām: izpratnes un prakses. Vispirms jums jāzina, ko praktizēt. Jums ir jāsaprot jēdzieni, kas veido valodas un programmēšanas pamata pamatus, un tad šī izpratne ir jāievieto.

Ja nezināt, ko mācīties un praktizēt, ieskatieties “Populārākie JavaScript ietvari un tēmas, kas jāapgūst 2017. gadā”. Tehnika ātri mainās, bet valoda pielāgojas lēnām, un tādi mācību rīki kā React & Redux iemācīs jums arhitektūras modeļus un programmēšanas koncepcijas, kas jums kalpos labi gadiem ilgi, neatkarīgi no mēneša ietvara.

Es dažreiz intervēju izstrādātājus, kuri uz visiem maniem jautājumiem atbild skaisti, bet, tiklīdz es viņiem lūdzu parādīt man piemērus ar kodu, viņi paklupa. Jums ir nepieciešami grāmatu ieteikumi un praktizēta prasme. Ja jums ir tikai viens vai otrs, tas jūs nenovirzīs ļoti tālu. Lasot par jauniem jēdzieniem, noteikti tos praktizējiet un pēc tam mēģiniet tos iekļaut ikdienas kodā. Pārliecinieties, vai esat ļoti pārliecināts par to, kad un kā lietot šos jēdzienus, kā arī labi pārzināt, kā tie darbojas reālajās lietotnēs.

Labākais veids, kā iemācīties kodēt, ir kods.

Mentors / skolotājs: daudz zināt par programmēšanu ir lieliski, bet jūs esat tikai viens cilvēks. Neatkarīgi no tā, cik produktīvs esat pats, nekādā gadījumā nevarat salīdzināt lieliskā reizinātāja sniegumu. Reizinātājs ir kāds, kurš reizina visu komandu produktivitāti.

Ir grūti pārāk uzsvērt ietekmi, ko pavairotājs var atstāt uz jūsu komandu. Pat ja reizinātājs pats neizveidos kodu, 3 komandu komandā jūs joprojām iziesit priekšā, ja kāds no tiem ir lielisks reizinātājs:

  • 2 1x dev
  • 1 10x dev neko nedara, bet palīdz pārējiem 2 deviem sasniegt 5x
  • 3 devas var sakrist ar 10 1x devu vērtības ieguldījumu

Patiesībā komandas ar spēcīgu mentoru kultūru mēdz konsultēt viena otru. Visi pievieno kādu kodu. Viens vai divi izceļas un vairāk laika iegulda, palīdzot citiem izstrādātājiem un nodrošinot augstākas kvalitātes kodu pārskatus.

Protams, vienkārši palielinot problēmas caurlaidību, ātrākus rezultātus nedosit. (Sk. “Mītiskā cilvēka mēnesis”), bet izstrādātājs, kurš dalās ar paraugpraksi ar komandu un palīdz viņiem rakstīt elastīgāku, uzturamāku un bez kļūdām lielāku kodu, ir sava svara vērts zelta vērtībā.

Lielisks audzēknis: es bieži saku cilvēkiem pieņemt darbā kaislīgus audzēkņus. Tehnoloģiju pasaule ātri mainās, un neviens nevar sekot visam, taču jūs vēlaties, lai izstrādātāji ātri spētu pielāgoties, ja nolemjat veikt svarīgas tehnoloģiju izmaiņas. Ja vēlaties no multiplikatoriem gūt vislielāko labumu, jums ir arī jāpieņem darbā izstrādātāji, kuri ir apmācāmi un labprāt apgūst jaunas lietas. Labākie izstrādātāji ir gan mentori, gan konsultētie - lieliski skolotāji, kuri arī skaidri saprot, ka viņi var iemācīties vērtīgas lietas pat no zaļākajiem iesācējiem.

Kaislīgi: Lai pastāvīgi pilnveidotos, jums jābūt motivētam pārsniegt un pārsniegt pamata darba prasības. Jums jāapņemas sasniegt izcilību, un, uzlabojoties un iegūstot lielāku atzinību, šī apņemšanās tiek atlīdzināta ar atzinību un gandarījumu par darbu.

Kaislīgi izstrādātāji apgūst savu amatu, attīsta lepnuma un piederības sajūtu darbam, un viņi kļūst laimīgāki savā darbā.

Daudzi izstrādātāji man ir jautājuši, kā kļūt aizrautīgākam un motivētākam. Mana atbilde ir kļūt labākam. Ielieciet darbu. Kad jūs iegūsit vairāk prasmju, jūs varēsit tās vairāk izbaudīt. (Skat. “Tik labi, ka viņi nevar tevi ignorēt”).

Uzticieties man, nevienam mūziķim patika slogoties pa viņu svariem un ātruma treniņiem, līdz viņi sāka justies kā uzlabojušies. Tikai nedaudzi skrējēji mīlēja elpas trūkuma sajūtu, līdz pamanīja uzlabojumus skriešanas laikos vai to, cik tālu viņi varēja noskriet, pirms aptrūka elpas.

Izpildot lietas, mēs smadzenēs aktivizējam pozitīvu ķīmisko atgriezenisko saiti, kas piepilda mūs ar laimes vai eiforijas sajūtu. Šī efekta spēks atšķiras atkarībā no tā, cik liels bija mērķis, taču pat niecīgi mērķi var izraisīt pozitīvas atsauksmes ciklu.

Citiem vārdiem sakot, ja jūs cenšaties justies motivēts strādāt pie savām kodēšanas prasmēm, sāciet ar kaut ko patiešām vienkāršu, ko varat paveikt dažās minūtēs, un pēc tam izveidojiet to. Atkārtojot procesu arvien vairāk un sasniedzot lielākus mērķus, dopamīna līmenis jūsu smadzenēs palielināsies, un līdz ar to pieaugs arī jūsu prieks par mācīšanos.

Iegūstot vairāk iemaņu, jūs iegūsit lielāku aizraušanos apgūt šo prasmi.

Kas kopīgs sliktākajiem izstrādātājiem?

Neatkarīgi no tā, cik daudz lielisku īpašību jums piemīt, ir dažas negatīvas īpašības, kas jūs patiešām var aizraut. Par laimi, ja jūs par tiem zināt un jums ir iespēja skaidri redzēt savus trūkumus, varbūt jūs varat samazināt negatīvo ietekmi.

2. Padomājiet par vissliktāko izstrādātāju, ar kuru jūs kādreiz esat strādājis. Atlasiet visus vārdus, kas tos raksturo.

Nekompetenta: par laimi, visvieglāk ir labojams arī vissliktāko izstrādātāju sliktākais atribūts. Ja jūs šobrīd neesat tikai ļoti labs kodētājs, izlasiet sadaļu “Iemācieties kodēt: 13 padomi, kas varētu ietaupīt pūles gadu laikā” un dodieties uz darbu! Ja nejūtas ļoti motivēts, ritiniet uz augšu un atkārtoti izlasiet sadaļu par aizraušanās ar savu amatu attīstību.

Augstprātīgs: šo ir daudz grūtāk noteikt, bet, vienkārši nolemjot pielikt pūles, var būt liela atšķirība tajā, kā citi cilvēki jūs uztver. Augstprātīgs cilvēks izjūt vajadzību sevi uzpūst vai nolikt citus cilvēkus, lai justos labi par sevi, bet tas nekad nedarbojas. Tā vietā, lai justos labāk par sevi, jūs varat sajust izmisuma sindromu un satraukumu, ko citi cilvēki varētu atklāt, ka jūs neesat tik gudrs, kā jūs sevi izdomājat.

Augstprātīgi cilvēki bieži:

  • Pieņemsim, ka viņi ir visgudrākais cilvēks telpā.
  • Atteikties kaut ko izskaidrot, jo otra persona “nesaprastu”.
  • Runā ar citiem / samierinies.
  • Izliecieties, ka esat gudrāki, nekā viņi patiesībā ir. Bieži vien Google lietas, lai izklausītos gudri, nevis atzīst, ka pasaulē ir kaut kas, ko viņi nezina. (Piezīme: nav nekā slikta ar Google nodarbībām, lai iemācītos. Google meklēšana tikai tāpēc, lai izklausītos gudra, ir cita lieta).

Nesadarbošanās: augstprātīgi cilvēki bieži pieņem, ka zina vislabāk, un, kad citi cilvēki strādā pēc kopīga redzējuma, augstprātīgi cilvēki bieži atsakās iekļūt uz klāja. Ja kaut kam nepiekrītat, runājiet un esat uzklausīts, bet neuzņemieties, ka jums ir pilnīga izpratne par visiem kompromisiem, ko pārējā komanda apsver, un pat ja jums ir pilnīga izpratne par situāciju, neizmanto to, lai attaisnotu nepakļaušanos un saraustītu uzvedību. Vienmēr dariet visu iespējamo, lai būtu laipns un izpalīdzīgs.

Nemotivēts: ir grūti panākt kaut ko noderīgu, ja neesat motivēts iesaistīties darbā. Skatiet iepriekš sadaļu par aizraušanās attīstību.

Spītīgs: iemesls, kāpēc es nekonsolidēju “spītīgo” un “nesadarbojošos”, ir tas, ka spītība nav tikai sadarbība. Dažreiz izstrādātāji iestrēgst, mēģinot izdarīt kaut ko, kas vienkārši nedarbojas. Viņi dienas laikā ievietos risinājumā, kam nav nekādu izredžu gūt panākumus, bet dažreiz atsakās atzīt, ka ir nokļuvis klupšanas stāvoklī. Bieži vien izstrādātāji sitīs galvu pret kļūdu, kas viņiem ir akla stundām ilgi, kad kāds cits var pamanīt risinājumu dažu minūšu laikā.

Neiekrīti tajā slazdā. Esiet atvērts faktam, ka katrs izstrādātājs laiku pa laikam apzinās savas problēmas. Katrs izstrādātājs cīnās. Ikvienam izstrādātājam ir vajadzīga palīdzība šad un tad. Esiet gatavi to lūgt un pēc pieprasījuma to arī pēc pieprasījuma.

Citas 10x izstrādātāju īpašības

Manuprāt, jums vairāk jākoncentrējas uz savām stiprajām pusēm, nevis uz trūkumiem. Izvēlieties vienu uzlabojamo lietu šajā nedēļā un nerimstoši pievērsieties tam. Bet varbūt jūs esat lielākais spēks, kas nav iekļauts top 5 sarakstā. Šeit ir dažas citas īpašības, kuras var ievērojami mainīt:

Godīgi, komunikabli cilvēki mudina uz jebkuru svarīgu attīstības attiecību iezīmi: Uzticēšanās.

Bieži vien izstrādātāji nonāks slazdos, kur dienām ilgi pazūd trušu caurums, un, kad viņi atkal parādīsies, viņi ir uzbūvējuši kaut ko, kas neintegrēsies ar pārējo lietotni, vai arī jūs uzzināsit, ka viņi dzenas pakaļ aste mēģina atrisināt problēmu, kurai vajadzēja paiet stundām vai minūtēm.

Komunicēt, sazināties, sazināties. Nelietojiet pārāk ilgi noskriet pats. Katru dienu pārbaudiet savu kodu. Saņemiet kodu pārskatus no vismaz 1 vai 2 komandas locekļiem. Paziņojiet savam vadītājam, ar ko jūs strādājat katru dienu.

Tas veidos savstarpēju uzticēšanos. Jūsu komanda iegūs iespēju palīdzēt jums novērst šķēršļus, un viņi iemācīsies, ka viņi var paļauties uz jums, lai saglabātu viņus cilpā un panāktu pastāvīgu, vienmērīgu progresu.

Efektivitāte: Mani pārsteidz tas, cik tālu tas atrodas sarakstā. Tas nepārprotami ir viens no vissvarīgākajiem personīgās produktivitātes aspektiem, taču personīgā produktivitāte komandas produktivitāti ietekmē daudz mazāk, nekā jūs varētu domāt. Lai būtu patiesi efektīvs, jums jākoncentrējas uz atribūtiem, kas uzlabos jūsu reizināšanas koeficientu: Cik daudz jūs varat uzlabot visas komandas efektivitāti? Lai uzzinātu vairāk par personīgo efektivitāti, skatiet “JavaScript Jaunā gada rezolūciju atpakaļskaitīšana”. Īpaši 2. postenis: “Uzlabojiet savu attīstības procesu”.

Nākamie soļi

Kā mēs redzējām, ir daudzi svarīgi faktori, kas veicina labāko izstrādātāju panākumus. Tātad, kur jums vajadzētu sākt?

Problēmu risināšanas spēja ir saraksta augstākā pozīcija. Šeit ir dažas lietas, kuras varat darīt tūlīt, lai to uzlabotu:

  • Piespiediet sevi ar dažiem kodēšanas vingrinājumiem. Iesācējiem vajadzētu pārbaudīt JavaScript ierakstu vietnē FreeCodeCamp vai vingrinājumus Eloquent JavaScript. Izstrādātājiem, izstrādājot prakses lietotnes, vajadzētu strādāt pie arhitektūras koncepcijām. Vienmēr virzieties garām savām pašreizējām iespējām.

Tas pats darbosies, lai attīstītu jūsu prasmes, mācīšanās spējas un pat prieku un aizraušanos ar kodu: praktizējiet!

Kurš varēja nojaust, ka viss, kas jums jādara, lai izvēlētos 4 no pieciem svarīgākajiem 10x izstrādātāja atribūtiem, ir prakse?

Lai aizpildītu vienīgo trūkstošo gabalu, iemāciet to, ko iemācījāties citiem cilvēkiem. Atbildiet uz jautājumiem, konsultējieties, izveidojiet pāru programmu ar saviem kolēģiem un pārliecinieties, vai visi jūsu komandas locekļi ir apņēmušies ievērot mentoru kultūru.

Dalieties ar savu jauno atrasto izcilības aizraušanos ar visiem apkārtējiem, un visa komanda uzlabosies kopā ar jums.

Vai nezināt, pie kā strādāt?

Uzziniet JavaScript kopā ar Ēriku Elliotu. Līdzi komandai!

Ēriks Eliots ir sadaļu “Programmēšanas JavaScript lietojumprogrammas” (O’Reilly) un “Uzziniet JavaScript ar Ēriku Eliotu” autors. Viņš ir sniedzis ieguldījumu programmatūras pieredzē Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC un labākajiem ierakstu māksliniekiem, ieskaitot Usher, Frank Ocean, Metallica un daudziem citiem.

Lielāko daļu laika viņš pavada Sanfrancisko līča reģionā kopā ar skaistāko sievieti pasaulē.