Urychlovače vývojářovaprofesního růstuRobert Dreslerwww.robertdresler.cz@rdresler
Jak hodnotíme dobrého vývojáře?   Příjemný, kamarádský a charakterní člověk   Píše přehledný a čitelný kód   Vyřeší ryc...
Produktivita vývojářůVynikající vývojářPrůměrný vývojářŠpatnývývojář                     Produktivita             0       ...
Povahové vlastnosti podle McConnella         Zvědavost                      Kreativita             Skromnost              ...
Skromnost
Buďme skromní   „Nejlepšími programátory jsou lidé, kteří si    uvědomili, jak malé jsou jejich mozky. Jsou    skromní.“...
Mějme sloţitost pod kontrolou                         >    Sloţitost aplikace       Mentální kapacita
Sloţitý = špatný   Sloţitý = špatný, náchylný k chybám, s nízkou    vnitřní kvalitou
Techniky zvládání sloţitosti   Odstupňovaný návrh   Abstrakce   Zapouzdření implementace   Dědičnost   Udrţování voln...
Odstupňovaný návrh                     Zdroj: Code Complete, McConnell
Abstrakce   Je schopnost věnovat se určité koncepci při    současném ignorování části detailů   Na úrovni rozhraní k met...
Zapouzdření implementace   Začíná tam, kde abstrakce ukrývá detaily   Jeden ze základních principů OOP   Známe CO, ale ...
Dědění   Abstrakci určuje bázová třída   Příliš hluboká hierarchie sloţitost zvyšuje
Udrţování volných vazeb   Vazby = sloţitost => minimalizovat   Malý počet přímých, viditelných a flexibilních    vztahů ...
Návrhové vzory   Hotová konvenční zobecnění (abstrakce)   Heuristická hodnota v naznačení návrhových    alternativ   Ze...
Čistý kód   Principy čistého kódu (clean code)   Krátké metody, významové názvy, málo    argumentů, …   Kódovací styly ...
Připusťme si omylnost   Potlačení ega, spolupráce s kolegy   Revize, inspekce, testy   Extrémní programování   Zpětná ...
Zvědavost
Buďme zvědaví   Časté změny technických informací,    specifikací, technologií   Vysoce konkurenční trh   Jsou Indové a...
Brusme pilu   Praktikování x přemýšlení o řemesle   Diskuze, sebepoznávání, studium   Názory jiných lidí   Jedna nová ...
Experimentujme   Efektivní studijní metoda programování   Krátké testovací programy, izolované problémy,    rysy program...
Praktikujme   Code-kata   Code Retreat   Párové programování   Hackathon
Sdruţujme se s ostatními odborníky   Znalosti a schopnosti jedinců se v týmu velmi    rychle zlepšují   Sdílení znalostí...
Duševní upřímnost
Přiznejme chybu   „Jakýkoli hlupák může obhajovat své chyby –    a většina z nich to také dělá.“ – Dale Carnegie   Nepři...
Nebuďme falešní experti   Nepředstírejme, ţe rozumíme určité oblasti,    pokud to není pravda   Přiznejme si skutečný st...
Informujme pravdivě o aktuálním stavu   Přiznejme skutečný stav a postup projektu   Manaţer je na informacích od program...
Rozumíme svému kódu?   V kódu, kterému autor nerozumí, se často    skrývají bugy   Pouţijme refaktorizační a zjednodušuj...
Lenivost
Buďme „leniví“   Vytvářejme nástroje a pomůcky, které za nás    vykonají nepříjemnou práci - „Dlouhodobá    lenost“   Kl...
Komunikační dovednosti
Zlepšujme komunikační dovednosti   Programátoři jsou obvykle introverti   Vyjádřit názor, mlčet, naslouchat   Stručnost...
Další tipy
Zlepšujme angličtinu   Lingua franca vývojářů software   Číst, psát, mluvit   Větší profesní moţnosti, mezinárodní týmy...
Nepřeceňujme zkušenosti   Zkušenosti nejsou vţdy zásadní   Dřívější návyky se mohou stát handicapem   10 let zkušeností...
Braňme se vyrušování   Kratší soustředěný blok práce je efektivnější    neţ dlouhý přerušovaný   Vyhýbejme se paralelism...
Osobní management   Time management   Stanovování priorit podle důleţitosti   Návyky efektivního chování (Covey)
Pečujte o své zdraví   Sezení = likvidace těla, zátěţ zad, srdce, …   Sport, pravidelný pohyb, sex   Zdravé jídlo   Sm...
Ţivot ≠ Práce
Ceník odpovědí Typ dotazu                 Cena odpovědiS odpovědí typu Ano / Ne   ZdarmaS krátkou odpovědí         5 KčS ...
Upcoming SlideShare
Loading in...5
×

Urychlovače vývojářova profesního růstu

375

Published on

Přednáška z DevFest 2012

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
375
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Urychlovače vývojářova profesního růstu

  1. 1. Urychlovače vývojářovaprofesního růstuRobert Dreslerwww.robertdresler.cz@rdresler
  2. 2. Jak hodnotíme dobrého vývojáře? Příjemný, kamarádský a charakterní člověk Píše přehledný a čitelný kód Vyřeší rychle kaţdý problém Má programovací jazyk / technologii v malíčku, vţdy umí poradit Jeho aplikace vykazuje minimum chyb Týmový hráč Je vysoce produktivní Jeho odchod můţe firmu významně ohrozit
  3. 3. Produktivita vývojářůVynikající vývojářPrůměrný vývojářŠpatnývývojář Produktivita 0 >
  4. 4. Povahové vlastnosti podle McConnella Zvědavost Kreativita Skromnost Syrová inteligence * Zkušenosti Duševní upřímnost Kuráţ Neústupnost Lenost Disciplína
  5. 5. Skromnost
  6. 6. Buďme skromní „Nejlepšími programátory jsou lidé, kteří si uvědomili, jak malé jsou jejich mozky. Jsou skromní.“ „Špatným programátorům brání jejich ega v tom, aby se stali dobrými.“ „Čím skromnější jste, tím rychleji se budete zlepšovat.“ Edsger Dijkstra, Skromný programátor
  7. 7. Mějme sloţitost pod kontrolou > Sloţitost aplikace Mentální kapacita
  8. 8. Sloţitý = špatný Sloţitý = špatný, náchylný k chybám, s nízkou vnitřní kvalitou
  9. 9. Techniky zvládání sloţitosti Odstupňovaný návrh Abstrakce Zapouzdření implementace Dědičnost Udrţování volných vazeb Návrhové vzory Testy řízený návrh (TDD) Čistý kód (Clean Code) …
  10. 10. Odstupňovaný návrh Zdroj: Code Complete, McConnell
  11. 11. Abstrakce Je schopnost věnovat se určité koncepci při současném ignorování části detailů Na úrovni rozhraní k metodám, třídám, balíčkům
  12. 12. Zapouzdření implementace Začíná tam, kde abstrakce ukrývá detaily Jeden ze základních principů OOP Známe CO, ale nevíme JAK Minimalizuje dosaţitelnost tříd a jejich členů Programování proti rozhraní
  13. 13. Dědění Abstrakci určuje bázová třída Příliš hluboká hierarchie sloţitost zvyšuje
  14. 14. Udrţování volných vazeb Vazby = sloţitost => minimalizovat Malý počet přímých, viditelných a flexibilních vztahů = volná vazba Snadné propojení a odpojení Pozor na sémantické vazby
  15. 15. Návrhové vzory Hotová konvenční zobecnění (abstrakce) Heuristická hodnota v naznačení návrhových alternativ Zefektivnění komunikace o návrhu
  16. 16. Čistý kód Principy čistého kódu (clean code) Krátké metody, významové názvy, málo argumentů, … Kódovací styly a standardy Konvence pojmenování Minimalizace doby na pochopení významu Rychlejší ladění
  17. 17. Připusťme si omylnost Potlačení ega, spolupráce s kolegy Revize, inspekce, testy Extrémní programování Zpětná vazba
  18. 18. Zvědavost
  19. 19. Buďme zvědaví Časté změny technických informací, specifikací, technologií Vysoce konkurenční trh Jsou Indové a Číňané zvědavější? Nezájem = programátorský „domov důchodců“
  20. 20. Brusme pilu Praktikování x přemýšlení o řemesle Diskuze, sebepoznávání, studium Názory jiných lidí Jedna nová zkušenost z kaţdé aktivity Zdokonalování ovládání nástrojů Sledujme zajímavé informační zdroje, Twitter * Cizí kód, úspěšné projekty Přílišné broušení = prokrastinace
  21. 21. Experimentujme Efektivní studijní metoda programování Krátké testovací programy, izolované problémy, rysy programovacího jazyka / technologie Prototypy jsou levnější Zpětná vazba Poučení z chyb
  22. 22. Praktikujme Code-kata Code Retreat Párové programování Hackathon
  23. 23. Sdruţujme se s ostatními odborníky Znalosti a schopnosti jedinců se v týmu velmi rychle zlepšují Sdílení znalostí Vývojářská setkání, konference, networking, firemní workshopy
  24. 24. Duševní upřímnost
  25. 25. Přiznejme chybu „Jakýkoli hlupák může obhajovat své chyby – a většina z nich to také dělá.“ – Dale Carnegie Nepřiznání chyby = ztráta kreditu Přiznejme se rychle, rozhodně a poučme se Obvykle se jedná o naši chybu
  26. 26. Nebuďme falešní experti Nepředstírejme, ţe rozumíme určité oblasti, pokud to není pravda Přiznejme si skutečný stav znalostí Pozor na narcismus Naslouchejme druhým a učme se od nich
  27. 27. Informujme pravdivě o aktuálním stavu Přiznejme skutečný stav a postup projektu Manaţer je na informacích od programátorů závislý Paretovo pravidlo 80/20
  28. 28. Rozumíme svému kódu? V kódu, kterému autor nerozumí, se často skrývají bugy Pouţijme refaktorizační a zjednodušující techniky
  29. 29. Lenivost
  30. 30. Buďme „leniví“ Vytvářejme nástroje a pomůcky, které za nás vykonají nepříjemnou práci - „Dlouhodobá lenost“ Klávesové zkratky, makra Code snippety, šablony, generování kódu Automatizace spouštění buildů, testů, generování reportů
  31. 31. Komunikační dovednosti
  32. 32. Zlepšujme komunikační dovednosti Programátoři jsou obvykle introverti Vyjádřit názor, mlčet, naslouchat Stručnost a jednoznačnost Progres: Obhájení názoru před kolegou, v týmu, ve fóru, na blogu, na veřejné přednášce
  33. 33. Další tipy
  34. 34. Zlepšujme angličtinu Lingua franca vývojářů software Číst, psát, mluvit Větší profesní moţnosti, mezinárodní týmy Globální trh „Anglicky raději špatně neţ vůbec“ od @adent Programovací jazyky se lokalizovat nebudou :) Pozor na anglicko-českou polévku v kódu
  35. 35. Nepřeceňujme zkušenosti Zkušenosti nejsou vţdy zásadní Dřívější návyky se mohou stát handicapem 10 let zkušeností nebo 10 x 1 rok zkušeností?
  36. 36. Braňme se vyrušování Kratší soustředěný blok práce je efektivnější neţ dlouhý přerušovaný Vyhýbejme se paralelismu činností Pomůcky: RescueTime, Pomodoro, sluchátka, růţová desetiminutovka
  37. 37. Osobní management Time management Stanovování priorit podle důleţitosti Návyky efektivního chování (Covey)
  38. 38. Pečujte o své zdraví Sezení = likvidace těla, zátěţ zad, srdce, … Sport, pravidelný pohyb, sex Zdravé jídlo Smích, neberme se moc váţně Resetovačky hlavy, koníčky
  39. 39. Ţivot ≠ Práce
  40. 40. Ceník odpovědí Typ dotazu Cena odpovědiS odpovědí typu Ano / Ne ZdarmaS krátkou odpovědí 5 KčS dlouhou odpovědí 10 KčNa který neznám odpověď 100 Kč
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×