Your SlideShare is downloading. ×
Urychlovače vývojářova profesního růstu
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

351
views

Published on

Přednáška z DevFest 2012

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
351
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Urychlovače vývojářovaprofesního růstuRobert Dreslerwww.robertdresler.cz@rdresler
  • 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. Produktivita vývojářůVynikající vývojářPrůměrný vývojářŠpatnývývojář Produktivita 0 >
  • 4. Povahové vlastnosti podle McConnella Zvědavost Kreativita Skromnost Syrová inteligence * Zkušenosti Duševní upřímnost Kuráţ Neústupnost Lenost Disciplína
  • 5. Skromnost
  • 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. Mějme sloţitost pod kontrolou > Sloţitost aplikace Mentální kapacita
  • 8. Sloţitý = špatný Sloţitý = špatný, náchylný k chybám, s nízkou vnitřní kvalitou
  • 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. Odstupňovaný návrh Zdroj: Code Complete, McConnell
  • 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. 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. Dědění Abstrakci určuje bázová třída Příliš hluboká hierarchie sloţitost zvyšuje
  • 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. 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. Č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. Připusťme si omylnost Potlačení ega, spolupráce s kolegy Revize, inspekce, testy Extrémní programování Zpětná vazba
  • 18. Zvědavost
  • 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. 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. 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. Praktikujme Code-kata Code Retreat Párové programování Hackathon
  • 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. Duševní upřímnost
  • 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. 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. 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. 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. Lenivost
  • 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. Komunikační dovednosti
  • 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. Další tipy
  • 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. 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. 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. Osobní management Time management Stanovování priorit podle důleţitosti Návyky efektivního chování (Covey)
  • 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. Ţivot ≠ Práce
  • 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č