+ All Categories
Home > Documents > Urychlovače vývojářova profesního růstu

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

Date post: 05-Jul-2015
Category:
Upload: rdresler
View: 379 times
Download: 2 times
Share this document with a friend
Description:
Přednáška z DevFest 2012
40
Robert Dresler www.robertdresler.cz @rdresler Urychlovače vývojářova profesního růstu
Transcript
Page 1: Urychlovače vývojářova profesního růstu

Robert Dresler

www.robertdresler.cz

@rdresler

Urychlovače vývojářova

profesního růstu

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

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

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

Produktivita vývojářů

Produktivita0

Vynikající

vývojář

Průměrný

vývojář

Špatný

vývojář

>

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

Povahové vlastnosti podle McConnella

Zvědavost

Skromnost

Duševní upřímnost

Kreativita

DisciplínaLenost

Syrová inteligence *

Zkušenosti

Neústupnost

Kuráţ

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

Skromnost

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

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

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

Mějme sloţitost pod kontrolou

>

Sloţitost aplikace Mentální kapacita

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

Sloţitý = špatný

Sloţitý = špatný, náchylný k chybám, s nízkou

vnitřní kvalitou

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

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)

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

Odstupňovaný návrh

Zdroj: Code Complete, McConnell

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

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

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

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í

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

Dědění

Abstrakci určuje bázová třída

Příliš hluboká hierarchie sloţitost zvyšuje

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

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

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

Návrhové vzory

Hotová konvenční zobecnění (abstrakce)

Heuristická hodnota v naznačení návrhových

alternativ

Zefektivnění komunikace o návrhu

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

Č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í

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

Připusťme si omylnost

Potlačení ega, spolupráce s kolegy

Revize, inspekce, testy

Extrémní programování

Zpětná vazba

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

Zvědavost

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

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ů“

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

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

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

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

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

Praktikujme

Code-kata

Code Retreat

Párové programování

Hackathon

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

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

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

Duševní upřímnost

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

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

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

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

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

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

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

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

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

Lenivost

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

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ů

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

Komunikační dovednosti

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

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

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

Další tipy

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

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

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

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í?

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

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

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

Osobní management

Time management

Stanovování priorit podle důleţitosti

Návyky efektivního chování (Covey)

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

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

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

Ţivot ≠ Práce

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

Ceník odpovědí

Typ dotazu Cena odpovědi

S odpovědí typu Ano / Ne Zdarma

S krátkou odpovědí 5 Kč

S dlouhou odpovědí 10 Kč

Na který neznám odpověď 100 Kč


Recommended