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

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

on

  • 518 views

Přednáška z DevFest 2012

Přednáška z DevFest 2012

Statistics

Views

Total Views
518
Views on SlideShare
514
Embed Views
4

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 4

https://twitter.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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ší 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
  • 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 Syrová inteligence * Zkušenosti Duševní upřímnost Kuráţ Neústupnost Lenost Disciplína
  • Skromnost
  • 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
  • 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ých vazeb Návrhové vzory Testy řízený návrh (TDD) Čistý kód (Clean Code) …
  • 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 metodám, třídám, balíčkům
  • 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í
  • 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ů = volná vazba Snadné propojení a odpojení Pozor na sémantické vazby
  • Návrhové vzory Hotová konvenční zobecnění (abstrakce) Heuristická hodnota v naznačení návrhových alternativ Zefektivnění komunikace o návrhu
  • Č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í
  • Připusťme si omylnost Potlačení ega, spolupráce s kolegy Revize, inspekce, testy Extrémní programování Zpětná vazba
  • Zvědavost
  • 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ů“
  • 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
  • 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
  • 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í Vývojářská setkání, konference, networking, firemní workshopy
  • 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řiznání chyby = ztráta kreditu Přiznejme se rychle, rozhodně a poučme se Obvykle se jedná o naši chybu
  • 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
  • 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
  • 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
  • Lenivost
  • 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ů
  • Komunikační dovednosti
  • 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
  • Další tipy
  • 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
  • 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í?
  • 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
  • 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ích, neberme se moc váţně Resetovačky hlavy, koníčky
  • Ţ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 dlouhou odpovědí 10 KčNa který neznám odpověď 100 Kč