Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu

Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu

Techlead Skyeng Kirill Rogovoy (flashhhh) dà una presentazione in cunferenze in quale si parla di e cumpetenze chì ogni bonu sviluppatore deve sviluppà per diventà u megliu. L'aghju dumandatu di sparte sta storia cù i lettori di Habra, dà a parolla à Kirill.

U mitu di un bonu sviluppatore hè chì ellu:

  1. Scrive codice pulito
  2. Cunnosci assai tecnulugia
  3. I compiti di codificazione più veloce
  4. Cunnosce una mansa di algoritmi è mudelli di disignu
  5. Pò refactor qualsiasi codice usendu Clean Code
  6. Ùn perde micca u tempu nantu à e attività chì ùn sò micca di prugrammazione
  7. 100% maestru di a vostra tecnulugia preferita

Hè cusì chì HR vede i candidati ideali, è i posti vacanti, per quessa, pare ancu cusì.

Ma a mo sperienza dice chì questu ùn hè micca assai veru.

Prima, dui disclaimers impurtanti:
1) a mo sperienza hè squadre di produttu, i.e. cumpagnie cù u so propiu pruduttu, micca outsourcing; in outsourcing tuttu pò esse assai diffirenti;
2) sè vo site un junior, allora micca tutti i cunsiglii seranu applicabili, è se eru tù, mi cuncentrassi in a prugrammazione per avà.

Bonu sviluppatore: a realtà

1: megliu cà codice mediu

Un bon sviluppatore sà cumu creà una architettura fresca, scrive un codice cool, è micca fà troppu bug; In generale, faci megliu cà a media, ma ùn hè micca in u top 1% di i specialisti. A maiò parte di i sviluppatori più cool chì cunnoscu ùn sò micca cusì grandi codificatori: sò grandi in ciò chì facenu, ma ùn ponu micca fà nunda di super-straordinariu.

2: Risolve i prublemi invece di creà

Imaginemu chì avemu bisognu di integrà un serviziu esternu in u prugettu. Ricevemu e specificazioni tecniche, fighjate à a ducumentazione, vede chì qualcosa hè obsoletu, capisce chì avemu bisognu di passà parametri supplementari, fà alcuni aghjustamenti, pruvate à implementà tuttu in una certa manera è fà qualchì metudu stortu funziona currettamente, infine, dopu un paru. di ghjorni avemu capitu chì ùn pudemu micca cuntinuà cusì. U cumpurtamentu standard di un sviluppatore in questa situazione hè di vultà in l'affari è di dì: "Aghju fattu questu è quellu, questu ùn funziona micca cusì, è quellu chì ùn funziona micca in tuttu, allora vai à scopre. " Un affari hà un prublema: avete bisognu à sfondà in ciò chì hè accadutu, cumunicà cù qualchissia, è pruvate di risolve in qualchì manera. U telefuninu rottu cumencia: "Dite à ellu, li scriveraghju, fighjate ciò chì anu rispostu".

Un bonu sviluppatore, di fronte à una tale situazione, truverà cuntatti stessu, cuntattatelu per u telefunu, discuterà u prublema, è se nunda ùn funziona, riuniscerà e persone giuste, spiegà tuttu è offre alternative (probabilmente, ci hè un altru. serviziu esternu cù un supportu megliu). Un tali sviluppatore vede un prublema cummerciale è u risolve. U so compitu hè chjusu quandu risolve un prublema di cummerciale, è micca quandu si mette in qualcosa.

3: Pruvate di passà u minimu sforzu per ottene u massimu risultati, ancu s'ellu significa scrive crutches

U sviluppu di software in l'imprese di produttu hè quasi sempre u più grande spesa: i sviluppatori sò caru. È un bonu sviluppatore capisce chì un affari vole ottene u massimu di soldi gastendu u minimu. Per aiutà, un bonu sviluppatore vole passà a quantità minima di u so tempu caru per ottene u prufittu massimu per u patronu.

Ci sò dui estremi quì. Unu hè chì in generale pudete risolve tutti i prublemi cù una crutch, senza fastidiu cù l'architettura, senza refactoring, etc. Tutti sapemu cumu finisci di solitu: nunda ùn funziona, riscrivemu u prugettu da zero. Un altru hè quandu una persona prova di vene cun una architettura ideale per ogni buttone, passendu una ora nantu à u compitu è ​​quattru in refactoring. U risultatu di un tali travagliu pare bellu, ma u prublema hè chì in u latu di l'affari ci vole dece ore per compie un buttone, in u primu è in u sicondu casu, solu per diverse ragioni.

Un bon sviluppatore sapi cumu equilibrà questi estremi. Capisce u cuntestu è face a decisione ottima: in questu prublema, aghju tagliatu una crutch, perchè questu hè u codice chì hè toccu una volta ogni sei mesi. Ma in questu, aghju da disturbà è fà tuttu u più currettamente pussibule, perchè un centu di funzioni novi chì anu da esse sviluppatu dependeranu di ciò chì successu.

4. Hà u so propiu sistema di gestione di l'affari è hè capaci di travaglià nantu à prughjetti di ogni cumplessità in questu.

U travagliu nantu à i principii Getting Things Done - quandu vi scrivite tutti i vostri compiti in qualchi tipu di sistema di testu, ùn vi scurdate di ogni accordu, spinghja tutti, apparisce in ogni locu à tempu, sapete ciò chì hè impurtante è ciò chì ùn hè impurtante in u mumentu, ùn perde mai compiti. A caratteristica generale di tali persone hè chì quandu avete d'accordu nantu à qualcosa cun elli, ùn avete mai preoccupatu chì si scurdanu; è sapete ancu ch'elli scrivenu tuttu è ùn ponu micca allora mille dumande, e risposte à quale sò digià statu discutitu.

5. Quistioni è clarifica ogni cundizione è introduzione

Quì ancu ci sò dui estremi. Da una banda, pudete esse scetticu nantu à tutte l'infurmazioni introduttive. A ghjente prima di voi hè vinutu cù qualchi suluzioni, ma pensate chì pudete fà megliu è cumincià à ridiscutà tuttu ciò chì hè vinutu prima di voi: disignu, suluzioni cummerciale, architettura, etc. Questu perdi assai tempu per u sviluppatore è quelli chì l'intornu, è hà un impattu negativu nantu à a fiducia in a cumpagnia: l'altri ùn volenu micca piglià decisioni perchè sanu chì quellu tippu torna è rompe tuttu. L'altru estremu hè quandu un sviluppatore percepisce ogni introduzione, specificazioni tecniche è desideri di l'affari cum'è qualcosa scolpitu in petra, è solu quandu si trova in fronte à un prublema insolubile, principia à pensà s'ellu face ciò chì face. Un bon sviluppatore trova ancu una via media quì: prova di capiscenu e decisioni prese prima o senza ellu, prima chì u compitu entre in u sviluppu. Chì volenu l'affari? Risolvimu i so prublemi ? U designer di u produttu hè stata cun una suluzione, ma capiscu perchè a suluzione hà da travaglià? Perchè u capu di a squadra hè stata cun questa architettura particulare? Se qualcosa ùn hè micca chjaru, allora avete bisognu à dumandà. In u prucessu di sta chiarificazione, un bonu sviluppatore pò vede una suluzione alternativa chì simpricimenti ùn era micca accadutu à nimu prima.

6. Improves prucessi è ghjente intornu à voi

Ci sò assai prucessi chì passanu intornu à noi - riunioni di ogni ghjornu, incontri, scrums, tecnulugichi, recensioni di codice, etc. Un bonu sviluppatore s'arrizzò è dicerà: fighjate, avemu riunitu è ​​discutemu a listessa cosa ogni settimana, ùn capiscu micca perchè, pudemu ancu passà sta ora in Contra. Or: per u terzu compitu in una fila ùn possu micca entra in u codice, nunda hè chjaru, l'architettura hè piena di buchi; Forsi u nostru codice di rivisione hè zoppu è avemu bisognu di refactor, andemu à refactor l'incontru ogni duie simane. O durante una rivista di codice, una persona vede chì unu di i so culleghi ùn usa micca un certu strumentu in modu abbastanza efficace, chì significa chì deve vene più tardi è dà cunsiglii. Un bonu sviluppatore hà stu stintu; face tali cose automaticamente.

7. Eccellente à gestisce l'altri, ancu s'ellu ùn hè micca un manager

Questa cumpetenza si ligami bè cù u tema di "risolviri invece di creà prublemi". Spessu, in u testu di u vacante per quale applicàmu, nunda ùn hè scrittu annantu à a gestione, ma dopu, quandu face un prublema fora di u vostru cuntrollu, avete sempre à gestisce l'altri in un modu o l'altru, ottene qualcosa da elli, sè vo avete. scurdatu - push, assicuratevi chì anu capitu tuttu. Un bonu sviluppatore sà quale hè interessatu in ciò chì, pò chjamà una riunione cù queste persone, scrive l'accordi, mandate à slack, ricurdate à u ghjornu ghjustu, assicuratevi chì tuttu hè prontu, ancu s'ellu ùn hè micca personalmente direttamente rispunsevuli di stu compitu, ma u so risultatu dipende da a so implementazione.

8. Ùn percive micca a so cunniscenza cum'è dogma, hè sempre aperta à a critica

Ognunu pò ricurdà un cullega di un travagliu precedente chì ùn hè micca capaci di cumprumette nantu à a so tecnulugia è urla chì tutti brusgianu in l'infernu per qualchì mutazione sbagliata. Un bonu sviluppatore, s'ellu travaglia per 5, 10, 20 anni in l'industria, capisce chì a mità di a so cunniscenza hè putridu, è in a mità restante ùn cunnosci micca dece volte più di ciò chì sà. È ogni volta chì qualchissia ùn hè d'accordu cun ellu è offre una alternativa, ùn hè micca un attaccu à u so ego, ma una opportunità per amparà qualcosa. Questu li permette di cresce assai più veloce di quelli chì l'intornu.

Comparamu a mo idea di un sviluppatore ideale cù quella generalmente accettata:

Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu

Sta stampa mostra quanti di i punti descritti sopra sò ligati à u codice, è quanti ùn sò micca. U sviluppu in una cumpagnia di produttu hè solu un terzu prugrammazione, u restu 2/3 hà pocu à fà cù u codice. E ancu s'ellu scrivimu assai codice, a nostra efficacità dipende assai di sti dui terzi "irrelevanti".

Specializazione, generalismu è a regula 80-20

Quandu una persona ampara à risolve certi prublemi stretti, studia longu è duramente, ma poi risolve facilmente è simplicemente, ma ùn hà micca sapè fà in campi cunnessi, questu hè a specializazione. U generalismu hè quandu a mità di u tempu di furmazione hè investita in l'area di a so propria cumpetenza, è l'altra mità in i zoni cunnessi. In cunsiquenza, in u primu casu, aghju fattu una cosa perfetta è u restu pocu, è in u sicondu, aghju fattu tuttu più o menu bè.

A regula 80-20 ci dice chì u 80% di u risultatu vene da u 20% di u sforzu. 80% di i rivenuti venenu da u 20% di i clienti, u 80% di u prufittu vene da u 20% di l'impiegati, è cusì. In l'insignamentu, questu significa chì 80% di a cunniscenza avemu guadagnatu in u primu 20% di u tempu passatu.

Ci hè una idea: i codificatori duveranu solu codice, i diseggiani duveranu solu cuncepisce, l'analisti anu da analizà, è i gestori anu da gestisce solu. In my opinion, sta idea hè tossica è ùn viaghja micca bè. Ùn si tratta micca di tutti chì anu da esse un suldatu universale, questu hè di salvà risorse. Se un sviluppatore capisce almenu un pocu nantu à a gestione, u disignu è l'analitiche, serà capaci di risolve parechji prublemi senza implicazione di altre persone. Sè avete bisognu di fà qualchì tipu di funziunalità è poi verificate cumu l'utilizatori travaglianu cun ellu in un certu cuntestu, chì duverà esse dumandate duie dumande SQL, allora hè grande per esse capace di ùn distractà l'analista cun questu. Sè avete bisognu di incrustà un buttone per analogia cù quelli esistenti, è capisce i principii generali, pudete fà senza participà à un designer, è a cumpagnia vi ringraziarà per questu.

Totale: pudete passà u 100% di u vostru tempu à studià una cumpetenza à u limitu, o pudete passà u stessu tempu in cinque spazii, leveling sin'à 80% in ognunu. Dopu à sta matematica ingenua, pudemu guadagnà quattru volte più cumpetenze in u stessu tempu. Questa hè una esagerazione, ma illustra l'idea.

Cumpetenze Related pò esse furmatu micca da 80%, ma da 30-50%. Dopu avè passatu 10-20 ore, migliorerete notevolmente in i zoni cunnessi, guadagnerete assai cunniscenza di i prucessi chì si verificanu in elli è diventeranu assai più autonomi.

In l'ecosistema IT di l'oghje, hè megliu avè tante cumpetenze pussibule è ùn esse espertu in alcunu di elli. Perchè, prima, tutte queste cumpetenze fade rapidamente, soprattuttu quandu si tratta di prugrammazione, è in segundu, perchè u 99% di u tempu usamu micca solu basi, ma certamente micca e cumpetenze più sofisticate, è questu hè abbastanza ancu in codificazione, ancu in cumpagnie cool.

È infine, a furmazione hè un investimentu, è a diversificazione hè impurtante in investimenti.

Cosa à insignà

Allora chì insignà è cumu? Un sviluppatore tipicu in una cumpagnia forte usa regularmente:

  • cumunicazione
  • l'autourganizazione
  • pianificazione
  • disignu (di solitu codice)
  • è qualchì volta gestione, dirigenza, analisi di dati, scrittura, reclutamentu, mentoring è parechje altre cumpetenze

È praticamenti nimu di sti cumpetenze intersece cù u codice stessu. Hanu bisognu à esse insignatu è aghjurnatu separatamente, è s'ellu ùn hè micca fattu, fermanu à un livellu assai bassu, chì ùn li permette micca di esse usatu in modu efficace.

In quali zone vale a pena sviluppà?

  1. E cumpetenze soft sò tuttu ciò chì ùn cuncerna micca pressu i buttoni in l'editore. Questu hè cumu scrivimu missaghji, cumu si cumportamu in riunioni, cumu cumunicà cù i culleghi. Quessi tutti parenu esse cose evidenti, ma assai spessu sò sottovalutati.

  2. Sistema d'autourganizazione. Per mè personalmente, questu hè diventatu un tema super-impurtante annantu à l'annu passatu. Trà tutti i travagliadori IT cool chì cunnoscu, questu hè una di e cumpetenze più sviluppate: sò super-urganizati, facenu sempre ciò chì dicenu, sanu esattamente ciò chì farà dumane, in una settimana, in un mese. Hè necessariu di custruisce un sistema intornu à sè stessu in quale tutte e cose è tutte e dumande sò registrate; questu facilita assai u travagliu stessu è aiuta assai à interagisce cù l'altri populi. Mi sentu chì l'annu passatu, u sviluppu in questa direzzione m'hà migliuratu assai più cà migliurà e mo cumpetenze tecniche; Aghju cuminciatu à fà significativamente più travagliu per unità di tempu.

  3. Proattivu, di mente aperta è di pianificazione. I temi sò assai generali è vitali, micca unichi per l'IT, è ognunu deve sviluppà. Proattività significa micca aspittà un signalu per piglià l'azzione. Sò a fonte di l'avvenimenti, micca reazzione à elli. A mente aperta hè a capacità di trattà ogni nova informazione in modu obiettivu, per valutà a situazione in isolamentu da a propria visione di u mondu è di i vechji abitudini. A pianificazione hè una visione chjara di cumu u travagliu di l'oghje risolve u prublema per a settimana, mese, annu. Se vi vede u futuru oltre un compitu specificu, hè assai più faciule per fà ciò chì avete bisognu, è ùn avè micca paura dopu à u tempu di capisce chì era persu. Sta cumpetenza hè soprattuttu impurtante per una carriera: pudete ottene risultati per anni, ma in u locu sbagliatu, è eventualmente perde tutti i bagaglii accumulati quandu diventa chjaru chì si move in a direzzione sbagliata.

  4. Tutte e aree ligati à u livellu di basa. Ognunu hà u so propiu spazii specifichi, ma hè impurtante di capiscenu chì, passendu 10-20 ore di tempu in u nivellu di qualchì abilità "straniera", pudete scopre parechje opportunità novi è punti di cuntattu in u vostru travagliu di ogni ghjornu, è queste ore ponu basta à a fine di a carriera.

Cosa à leghje

Ci hè una grande quantità di libri nantu à l'autourganizazione; hè tutta una industria induve certi ragazzi strani scrivenu cullezzione di cunsiglii è cullighjanu furmazioni. À u listessu tempu, ùn hè micca chjaru ciò chì elli stessi anu ottenutu in a vita. Per quessa, hè impurtante di mette filtri nantu à l'autori, fighjate quale sò è ciò chì anu daretu. U mo sviluppu è a prospettiva sò stati più influenzati da quattru libri, tutti d'una manera o di l'altru ligati à migliurà e cumpetenze descritte sopra.

Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu1. Dale Carnegie "Cumu vince amici è influenzà a ghjente". Un libru di cultu nantu à e cumpetenze soft, se ùn sapete da induve principià, scegliendu hè una opzione win-win. Hè custruitu nantu à esempi, hè faciule di leghje, ùn hè micca bisognu di assai sforzu per capisce ciò chì leghje, è e cumpetenze acquistate ponu esse applicate immediatamente. In generale, u libru copre u tema di cumunicazione cù e persone.

Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu2. Stephen R. Covey "7 Abitudini di e persone altamente efficace". Un mischju di sferenti cumpetenze, da a proattività à e cumpetenze soft, cù un enfasi à ottene sinergia quandu avete bisognu di trasfurmà una piccula squadra in una forza enormosa. Hè ancu faciule di leghje.

Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu3. Ray Dalio "Principi". Revela temi di apertura è proattività, basatu annantu à a storia di a cumpagnia chì l'autore hà custruitu, chì hà gestitu per 40 anni. Parechje esempii duru vintu da a vita mostranu quantu preghjudiziu è dipendente una persona pò esse, è cumu si sbarazza.

Perchè solu aghjurnà a vostra codificazione ùn vi farà micca un sviluppatore megliu4. David Allen, "Getting Things Done". Lettura obbligatoria per amparà l'autourganizazione. Ùn hè micca cusì faciule di leghje, ma furnisce un inseme cumpletu di strumenti per urganizà a vita è l'affari, esamina tutti l'aspetti in dettagliu, è vi aiuta à decide ciò chì esattamente avete bisognu. Cù u so aiutu, aghju custruitu u mo propiu sistema chì mi permette di fà sempre e cose più impurtanti senza scurdà di u restu.

Duvete capisce chì a sola lettura ùn hè micca abbastanza. Pudete inghjustà almenu un libru à settimana, ma l'effettu durà parechji ghjorni, è dopu tuttu torna à u so locu. I libri deve esse usatu cum'è una fonte di cunsiglii chì hè immediatamente pruvatu in pratica. Se ùn fate micca questu, allora tuttu ciò chì daranu hè un allargamentu di i vostri orizonti.

Source: www.habr.com

Add a comment