Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen

Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen

Techlead Skyeng Kirill Rogovoy (flashhhh) stellt eng Presentatioun op Konferenzen, an där hien iwwer d'Fäegkeeten schwätzt, déi all gudden Entwéckler soll entwéckelen, fir dee Beschten ze ginn. Ech hunn him gefrot dës Geschicht mat Habra Lieser ze deelen, ech ginn dem Kirill d'Wuert.

De Mythos iwwer e gudden Entwéckler ass datt hien:

  1. Schreift propper Code
  2. Kennt vill Technologien
  3. Kodéieren Aufgaben méi séier
  4. Kennt eng Rëtsch Algorithmen an Designmuster
  5. Kann all Code refactoréieren mat Clean Code
  6. Verschwënnt keng Zäit op net-programméiere Aufgaben
  7. 100% Meeschter vun Ärer Liiblingstechnologie

Esou gesäit den HR ideal Kandidaten aus, an d’Vacances deementspriechend och esou ausgesinn.

Awer meng Erfahrung seet datt dëst net ganz richteg ass.

Als éischt zwee wichteg Verzichterklärungen:
1) meng Erfahrung ass Produktteams, d.h. Firmen mat hiren eegene Produit, net Outsourcing; beim Outsourcing kann alles ganz anescht sinn;
2) Wann Dir e Junior sidd, da wäerten net all Berodung applicabel sinn, a wann ech du wier, géif ech mech elo op d'Programméiere konzentréieren.

Gutt Entwéckler: Realitéit

1: Besser wéi duerchschnëttlech Code

E gudden Entwéckler weess wéi cool Architektur ze kreéieren, cool Code schreiwen an net ze vill Bugs maachen; Am Allgemengen mécht hien besser wéi duerchschnëttlech, awer hien ass net an den Top 1% vun de Spezialisten. Déi meescht vun de coolsten Entwéckler, déi ech kennen, sinn net sou super Coderen: si si super op wat se maachen, awer si kënnen näischt super-aussergewéinleches maachen.

2: Léisst Problemer anstatt se ze kreéieren

Loosst eis virstellen, datt mir en externen Service an de Projet musse integréieren. Mir kréien d'technesch Spezifikatioune, kucken d'Dokumentatioun, gesinn datt eppes do ass, verstinn datt mir zousätzlech Parameter musse passéieren, e puer Upassunge maachen, probéieren alles iergendwéi ëmzesetzen an eng kromme Method richteg ze maachen, endlech, no e puer vun Deeg verstinn mir datt mir net esou kënne weidergoen. D'Standardverhalen vun engem Entwéckler an dëser Situatioun ass fir zréck an d'Geschäft ze soen: "Ech hunn dat an dat gemaach, dee funktionnéiert net esou, an dee funktionnéiert guer net, also gitt et selwer eraus. " E Geschäft huet e Problem: Dir musst a verdéiwen wat geschitt ass, mat engem kommunizéieren, a probéiert et iergendwéi ze léisen. De futtisse Telefon fänkt un: "Dir sot him, ech schécken hatt, kuckt wat se geäntwert hunn."

E gudden Entwéckler, dee mat esou enger Situatioun konfrontéiert ass, fënnt selwer Kontakter, kontaktéiert him um Telefon, diskutéiert de Problem, a wann näischt klappt, sammelt hien déi richteg Leit, erklärt alles an bitt Alternativen (wahrscheinlech gëtt et eng aner externe Service mat besserer Ënnerstëtzung). Sou en Entwéckler gesäit e Geschäftsproblem a léist et. Seng Aufgab ass zougemaach wann hien e Business Problem léist, an net wann hien an eppes leeft.

3: Probéiert e minimalen Effort ze verbréngen fir maximal Resultater ze kréien, och wann et Krutchen schreift

Softwareentwécklung a Produktfirmen ass bal ëmmer déi gréissten Ausgabeartikel: Entwéckler sinn deier. An e gudden Entwéckler versteet datt e Geschäft de maximale Betrag u Sue wëll kréien andeems se de Minimum ausginn. Fir him ze hëllefen, wëll e gudden Entwéckler de Minimum vu senger deierer Zäit verbréngen fir de maximale Gewënn fir de Patron ze kréien.

Et ginn zwee Extremer hei. Een ass datt Dir allgemeng all Probleemer mat enger Krut léise kënnt, ouni d'Architektur ze stéieren, ouni refactoring, etc. Mir wëssen all wéi dat normalerweis endet: näischt funktionnéiert, mir schreiwen de Projet vun Ufank un. En aneren ass wann eng Persoun probéiert mat enger idealer Architektur fir all Knäppchen ze kommen, eng Stonn op der Aufgab a véier op Refactoring ze verbréngen. D'Resultat vun esou Aarbecht gesäit super aus, mä de Problem ass, datt op der Affär Säit zéng Stonnen dauert e Knäppche komplett, souwuel am éischten an zweete Fäll, einfach aus verschiddene Grënn.

E gudden Entwéckler weess wéi een tëscht dësen Extremer balancéiert. Hie versteet de Kontext an mécht déi optimal Decisioun: an dësem Problem wäert ech eng Krut schneiden, well dëst Code ass, deen eemol all sechs Méint beréiert gëtt. Awer an dësem wäert ech mech stéieren an alles sou korrekt wéi méiglech maachen, well honnert nei Features, déi nach net entwéckelt ginn, hänkt vun deem wat ech geléngt.

4. Huet säin eegene Business Management System an ass fäeg un Projeten vun all Komplexitéit ze schaffen.

Aarbecht op Prinzipien Gitt Things Done - Wann Dir all Är Aufgaben an iergendenger Textsystem opschreift, vergiesst keng Ofkommes, dréckt jidderengem op, stellt iwwerall op Zäit op, wësst wat wichteg ass a wat am Moment net wichteg ass, verléiert Dir ni Aufgaben. D'allgemeng Charakteristik vun esou Leit ass, datt wann Dir op eppes mat hinnen averstanen, Dir ni Suerg, datt se wäert vergiessen; an Dir wësst och, datt se alles opschreiwen an dann net dausend Froen stellen, op déi Äntwerten schonn diskutéiert goufen.

5. Froen an klären all Konditiounen an Aféierung

Och hei ginn et zwee Extremer. Engersäits kënnt Dir skeptesch sinn iwwer all Aféierungsinformatioun. D'Leit ier Dir mat e puer Léisunge komm sinn, awer Dir mengt datt Dir et besser maache kënnt a fänkt un iwwer alles ze diskutéieren wat virun Iech koum: Design, Geschäftsléisungen, Architektur, etc. Dëst verschwendt vill Zäit fir souwuel den Entwéckler wéi och déi ronderëm him, an huet en negativen Impakt op Vertrauen an der Firma: aner Leit wëllen net Entscheedungen treffen, well se wëssen datt dee Guy zréck kënnt an alles briechen. Deen aneren Extrem ass wann den Entwéckler all Aféierungs-, technesch Spezifikatioune a Geschäftswënsch als eppes aus Steen geschnëtzt erfaasst, a just wann hien mat engem onléisbare Problem konfrontéiert ass, fänkt hien un ze denken ob hien iwwerhaapt mécht wat hien mécht. E gudden Entwéckler fënnt och hei e Mëttelwee: hie probéiert d'Decisioune virun oder ouni him ze verstoen, ier d'Aufgab an d'Entwécklung geet. Wat wëll d'Geschäft? Si léise mir seng Problemer? De Produktdesigner ass mat enger Léisung komm, awer verstinn ech firwat d'Léisung funktionnéiert? Firwat ass d'Teamführung mat dëser spezieller Architektur komm? Wann eppes net kloer ass, da musst Dir froen. Am Prozess vun dëser Klärung kann e gudden Entwéckler eng alternativ Léisung gesinn, déi just nach ni virdru geschitt ass.

6. Verbessert Prozesser a Leit ronderëm Iech

Et gi vill Prozesser ronderëm eis lass - alldeeglech Reuniounen, Meetups, Scrums, Tech Rezensiounen, Code Bewäertungen, etc. E gudden Entwéckler wäert opstoen a soen: kuckt, mir kommen zesummen an diskutéieren all Woch datselwecht, ech verstinn net firwat, mir kënnen och dës Stonn op Contra verbréngen. Oder: fir déi drëtt Aufgab hannereneen kann ech net an de Code kommen, näischt ass kloer, d'Architektur ass voller Lächer; Vläicht ass eise Bewäertungscode lëschteg a mir musse refactoréieren, loosst eis de Meetup all zwou Wochen refactoréieren. Oder während enger Code Iwwerpréiwung gesäit eng Persoun datt ee vu senge Kollegen e bestëmmten Tool net effektiv genuch benotzt, dat heescht datt hie méi spéit muss kommen an e puer Rotschléi ginn. E gudden Entwéckler huet dësen Instinkt; hien mécht esou Saachen automatesch.

7. Excellent bei Gestioun anerer, och wann net e Manager

Dës Fäegkeet verbënnt gutt mam Thema "léisen anstatt Probleemer ze kreéieren." Dacks gëtt am Text vun der Vakanz, fir déi mir bewerben, näischt iwwer d'Gestioun geschriwwen, awer dann, wann Dir mat engem Problem iwwer Är Kontroll konfrontéiert sidd, musst Dir nach ëmmer anerer op déi eng oder aner Manéier managen, eppes vun hinnen erreechen, wann Dir vergiess - dréckt, gitt sécher datt se alles verstanen hunn. E gudden Entwéckler weess wien wat interesséiert ass, kann mat deene Leit eng Versammlung ruffen, Ofkommes opschreiwen, se an d'Schlack schéckt, se um richtegen Dag erënneren, sécherstellen datt alles prett ass, och wann hien net perséinlech direkt verantwortlech ass fir dës Aufgab, mä säi Resultat hänkt vun hirer Ëmsetzung.

8. Erkennt säi Wëssen net als Dogma, ass stänneg op fir Kritik

Jidderee kann e Kolleg aus enger fréierer Aarbecht erënneren, deen net fäeg ass op seng Technologie ze kompromittéieren a jäizt datt jidderee fir e puer falsch Mutatiounen an der Häll verbrennt. E gudden Entwéckler, wann hien 5, 10, 20 Joer an der Industrie schafft, versteet datt d'Halschent vu sengem Wëssen verfault ass, an an der reschtlecher Halschent weess hien net zéng Mol méi wéi hie weess. An all Kéier wann een mat him net averstan ass an eng Alternativ bitt, ass et net en Ugrëff op säin Ego, mee eng Geleeënheet eppes ze léieren. Dëst erlaabt him vill méi séier ze wuessen wéi déi ronderëm him.

Loosst eis meng Iddi vun engem ideale Entwéckler mat dem allgemeng akzeptéierten vergläichen:

Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen

Dëst Bild weist wéivill vun de Punkten uewen beschriwwen Zesummenhang mat de Code sinn, a wéivill sinn net. Entwécklung an enger Produktfirma ass nëmmen een Drëttel Programméierung, déi reschtlech 2/3 huet wéineg mat Code ze dinn. An obwuel mir vill Code schreiwen, hänkt eis Effektivitéit staark vun dësen "irrelevanten" Zwee-Drëttel of.

Spezialisatioun, Generalismus an d'80-20 Regel

Wann eng Persoun léiert e puer schmuel Problemer ze léisen, studéiert laang an haart, awer léist se dann einfach an einfach, awer huet keng Expertise a verwandte Beräicher, dat ass Spezialisatioun. Generalismus ass wann d'Halschent vun der Trainingszäit am Beräich vun der eegener Kompetenz investéiert gëtt, an eng aner Halschent a verbonne Beräicher. Deementspriechend maachen ech am éischte Fall eng Saach perfekt an de Rescht schlecht, an der zweeter maachen ech alles méi oder manner gutt.

D'80-20 Regel seet eis, datt 80% vum Resultat kënnt aus 20% vun der Effort. 80% vum Akommes kommen aus 20% vun de Clienten, 80% vum Gewënn kënnt vun 20% vun de Mataarbechter, etc. Am Enseignement bedeit dat datt 80% vum Wëssen an den éischten 20% vun der Zäit verbraucht ginn.

Et gëtt eng Iddi: Kodéierer sollten nëmmen codéieren, Designer sollten nëmmen designen, Analysten sollen analyséieren, a Manager sollten nëmme managen. Menger Meenung no ass dës Iddi gëfteg a funktionnéiert net ganz gutt. Et geet net drëm, datt jidderee en universellen Zaldot muss sinn, et geet ëm Ressourcen ze spueren. Wann en Entwéckler op d'mannst e bëssen iwwer Gestioun, Design an Analyse versteet, wäert hien fäeg sinn vill Probleemer ze léisen ouni aner Leit ze involvéieren. Wann Dir eng Zort Feature maache musst an dann iwwerpréift wéi d'Benotzer domat an engem bestëmmte Kontext schaffen, wat zwou SQL Ufroen erfuerdert, dann ass et super fir den Analyst net mat dësem oflenken ze kënnen. Wann Dir braucht e Knäppche vun Analogie mat bestehend ze embed, an Dir verstitt déi allgemeng Prinzipien, Dir kënnt et maachen ouni Designer ze involvéieren, an d'Firma wäert Iech Merci fir et.

Ganzen: Dir kënnt 100% vun Ärer Zäit verbréngen fir eng Fäegkeet bis op d'Limite ze studéieren, oder Dir kënnt déiselwecht Zäit op fënnef Beräicher verbréngen, an all eenzel Niveauen bis zu 80%. Andeems Dir dës naiv Mathematik verfollegt, kënne mir véiermol sou vill Fäegkeeten an der selwechter Zäit gewannen. Dëst ass eng Iwwerdreiung, awer et illustréiert d'Iddi.

Zesummenhang Fäegkeeten kënnen net vun 80% trainéiert ginn, mee vun 30-50%. Nodeems Dir 10-20 Stonnen verbréngt, wäert Dir merkbar verbesseren a verbonne Beräicher, vill Verständnis vun de Prozesser kréien, déi an hinnen optrieden a vill méi autonom ginn.

Am IT-Ökosystem vun haut ass et besser sou vill wéi méiglech Fäegkeeten ze hunn an keen Expert an enger vun hinnen ze sinn. Well éischtens all dës Fäegkeeten séier verschwannen, besonnesch wann et ëm d'Programméierung geet, an zweetens, well mir 99% vun der Zäit net nëmmen Basis, awer sécher net déi sophistikéiert Fäegkeeten benotzen, an dat geet duer och am Kodéierung, och an cool Firmen.

A schliisslech ass Training eng Investitioun, an Diversifikatioun ass wichteg an Investitiounen.

Wat ze léieren

Also wat ze léieren a wéi? En typeschen Entwéckler an enger staarker Firma benotzt regelméisseg:

  • Kommunikatioun
  • Selbstorganisatioun
  • geplangt
  • Design (normalerweis Code)
  • an heiansdo Gestioun, Leedung, Daten Analyse, Schreiwen, Recrutement, Mentoring a vill aner Fäegkeeten

A praktesch keng vun dëse Fäegkeeten schneide sech op iergendeng Manéier mam Code selwer. Si mussen getrennt geléiert a moderniséiert ginn, a wann dat net gemaach gëtt, bleiwen se op engem ganz nidderegen Niveau, wat et net erlaabt datt se effektiv benotzt ginn.

A wéi enge Beräicher ass et derwäert ze entwéckelen?

  1. Soft Fäegkeeten sinn alles wat net d'Knäppercher am Editor betrëfft. Esou schreiwen mir Messagen, wéi mir eis a Versammlungen behuelen, wéi mir mat de Kollege kommunizéieren. Dëst schéngen alles offensichtlech Saachen ze sinn, awer ganz dacks gi se ënnerschat.

  2. Self-Organisatioun System. Fir mech perséinlech ass dëst e super-wichtegt Thema am leschte Joer ginn. Ënnert all de coolen IT-Aarbechter, déi ech kennen, ass dat ee vun de meescht entwéckelt Fäegkeeten: si sinn superorganiséiert, si maachen ëmmer wat se soen, si wësse genee wat se muer maachen, an enger Woch, an engem Mount. Et ass néideg e System ronderëm Iech selwer ze bauen an deem all Saache an all Froen opgeholl ginn; dat erliichtert d'Aarbecht selwer immens an hëlleft immens mat anere Leit ze interagéieren. Ech mengen datt d'lescht Joer d'Entwécklung an dëser Richtung mech vill méi verbessert huet wéi meng technesch Fäegkeeten ze verbesseren; Ech hunn ugefaang wesentlech méi Aarbecht pro Zäitunitéit ze maachen.

  3. Proaktiv, oppe-minded a plangen. D'Theme si ganz allgemeng a vital, net eenzegaarteg fir IT, a jidderee soll se entwéckelen. Proaktivitéit heescht net op e Signal ze waarden fir ze handelen. Dir sidd d'Quell vun Evenementer, net Reaktiounen op hinnen. Open-mindedness ass d'Fäegkeet all nei Informatioun objektiv ze behandelen, d'Situatioun isoléiert vun der eegener Weltbild an alen Gewunnechten ze evaluéieren. Planung ass eng kloer Visioun wéi d'Aufgab vun haut de Problem fir d'Woch, Mount, Joer léist. Wann Dir d'Zukunft iwwer eng spezifesch Aufgab kuckt, ass et vill méi einfach ze maachen wat Dir braucht, an net Angscht no der Zäit ze realiséieren datt et verschwend ass. Dës Fäegkeet ass besonnesch wichteg fir eng Carrière: Dir kënnt erfollegräich Resultater fir Joer erreechen, awer op der falscher Plaz, a schliisslech all de cumuléierten Gepäck verléieren wann et kloer gëtt datt Dir an déi falsch Richtung bewegt.

  4. All Zesummenhang Beräicher op der Basis Niveau. Jiddereen huet seng eege spezifesch Beräicher, awer et ass wichteg ze verstoen datt andeems Dir 10-20 Stonnen Zäit verbréngt fir e puer "auslännesch" Fäegkeeten opzebauen, kënnt Dir vill nei Méiglechkeeten a Kontaktpunkten an Ärer alldeeglecher Aarbecht opmaachen, an dës Stonnen kann duergoen bis Enn vun der Carrière.

Wat ze liesen

Et gi vill Bicher iwwer Selbstorganisatioun; et ass eng ganz Industrie wou e puer komesch Kärelen Sammlunge vu Rotschléi schreiwen a Formatiounen sammelen. Zur selwechter Zäit ass et net kloer wat se selwer am Liewen erreecht hunn. Dofir ass et wichteg Filteren op d'Auteuren ze setzen, ze kucken wien se sinn a wat se hannert sech hunn. Meng Entwécklung an Ausbléck goufen am meeschte vu véier Bicher beaflosst, all vun hinnen op déi eng oder aner Manéier verbonne mat der Verbesserung vun de Fäegkeeten hei uewen beschriwwen.

Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen1. Dale Carnegie "Wéi Frënn ze gewannen an d'Leit beaflossen". E Kultbuch iwwer mëll Kompetenzen, wann Dir wësst net wou ufänken, wielt et eng win-win Optioun. Et ass op Beispiller gebaut, ass einfach ze liesen, erfuerdert net vill Effort fir ze verstoen wat Dir liest, an déi erfuerene Fäegkeeten kënnen direkt applizéiert ginn. Am Allgemengen, deckt d'Buch d'Thema vun der Kommunikatioun mat Leit.

Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen2. Stephen R. Covey "7 Gewunnechten vun héich effektiv Leit". Eng Mëschung vu verschiddene Fäegkeeten, vu Proaktivitéit bis Soft Fäegkeeten, mat engem Akzent op Synergie z'erreechen wann Dir e klengt Team zu enger grousser Kraaft maache musst. Et ass och einfach ze liesen.

Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen3. Ray Dalio "Prinzipien". Enthüllt Themen vun Open-mindedness a Proaktivitéit, baséiert op der Geschicht vun der Firma, déi den Auteur gebaut huet, déi hie fir 40 Joer geschafft huet. Vill schwéier-gewonnen Beispiller aus dem Liewen weisen, wéi Viruerteeler an ofhängeg eng Persoun ka sinn, a wéi et lass ze ginn.

Firwat just Är Kodéierung upgrade wäert Iech net e besseren Entwéckler maachen4. David Allen, "Getting Things Done". Obligatoresch Liesung fir Selbstorganisatioun ze léieren. Et ass net sou einfach ze liesen, awer et bitt eng ëmfaassend Set vun Tools fir d'Liewen an d'Affären ze organiséieren, all Aspekter am Detail ënnersicht an hëlleft Iech ze entscheeden wat Dir genau braucht. Mat hirer Hëllef hunn ech mäin eegene System gebaut, deen et erlaabt ëmmer déi wichtegst Saachen ze maachen ouni de Rescht ze vergiessen.

Dir musst verstoen datt just liesen net genuch ass. Dir kënnt op d'mannst e Buch pro Woch schlucken, awer den Effekt dauert e puer Deeg, an da gëtt alles op seng Plaz zréck. Bicher sollen als Berodungsquell benotzt ginn, déi direkt an der Praxis getest gëtt. Wann Dir dëst net maacht, dann alles wat se ginn ass e bësse Verbreedung vun Ären Horizont.

Source: will.com

Setzt e Commentaire