Pragmatyczny developer
ARKADIUSZ KONDAS
Backend Team Leader
@ Da Vinci Studio
Zend Certified Engineer
Code Craftsman
Blogger
Ultra Runner
@ ArkadiuszKondas
itcraftsman.pl
Zend Certified Architect
Agenda:
- Ja
- Zespół
- Społeczność
Ja
Pragmatyczna filozofia
Pragmatyzm – system filozoficzny, którego podstawowym elementem jest pragmatyczna teoria prawdy, uzależniająca prawdziwość tez od praktycznych skutków, przyjmująca praktyczność za kryterium prawdy. Pragmatyzm przyjmuje wynikające z przyjmowania tez skutki i ich użyteczność za kryterium prawdy.
Potocznie pragmatyzmem nazywana jest także postawa, polegająca na realistycznej ocenie rzeczywistości, liczeniu się z konkretnymi możliwościami i podejmowaniu działań, które gwarantują skuteczność.
Co to znaczy być pragmatycznym ?
- Dociekliwość
- Krytyczne myślenie
- Reagowanie na nowości (zmiana warsztatu)
- Realizm
- Nowe wyzwania
- Ciągły rozwój i nauka
Narzędzia
Mózg to twoje jedyne wartościowe narzędzie
Daniel Suarez
Narzędzia
System operacyjny
Powłoka
find . -name '*.c' -newer Makefile -print
scp user@host:remote/path local/path
mysqldump --user=john -p books > books.sql
find -size -100c -type f -printf "%p %s B\n"
Narzędzia
IDE - Integrated Development Environment
Narzędzia
Język
Narzędzia
Framework
Wiedza
Inwestycja w wiedzę zawsze przynosi największe zyski.
Benjamin Franklin
Wiedza - książki
- Pragmatyczny programista
- Mityczny osobomiesiąc
- Wzorce projektowe (Gang of Four)
- TDD. Sztuka tworzenia dobrego kodu
- Mistrz czystego kodu
- Software Craftsmanship
- Refaktoryzacja
- Czysty kod
- Pułapki myślenia. O myśleniu szybkim i wolnym
Klasyka:
Wiedza - blogi
- http://blog.cleancoder.com/
- http://blog.codinghorror.com/
- https://davidwalsh.name/
- http://www.martinfowler.com/
- http://www.joelonsoftware.com/
- https://www.toptal.com/blog
- http://blog.agiledeveloper.com/
- http://devstyle.pl/
- http://gynvael.coldwind.pl/?blog=1&lang=pl
feedly.com
Wiedza - Social Media
@unclebobmartin
@KentBeck
@coderabbi
@martinfowler
@codinghorror
@spolsky
@mollydotcom
@rosstuck
@shanselman
@s_bergmann
@mariuszgil
@andrzejkrzywda
@_ericelliott
@venkat_s
Grupy na FB
Praktyka
Praktyka - Kata
- codingkata.org
- codekata.pragprog.com
- codekata.com
- codewars.com
- codefights.com
- codingame.com
Praktyka - Własny projekt
Praktyka - Kontrybucja
Czas
Znajdowanie czasu
- znajdź cel
- śledź swój harmonogram
- ogranicz "pustą" rozrywkę
- 30 minut przed snem
- Kindle, iPad, Smartphone
- audiobooki i podcasty
- spotkania z community
- świeże powietrze (a.k.a. rusz tyłek)
Zespół
Zespół
W grupie L Stoffel nadzoruje pracę sześciu doskonałych programistów
— to dla menedżera wyzwanie porównywalne do pilnowania grupy kotów.
The Washington Post Magazine,
9 czerwca 1985
Stand-up / daily
-
Co robiłem ?
-
Co będę dziś robił ?
-
Czy coś mnie blokuje ?
Maksymalnie 15 minut !
Stand-up / daily
-
Stała pora
-
Kary za spóźnienia
-
Nie odpuszczamy
-
Nawyk
Retrospektywa
-
Co poszło dobrze
-
Co poszło źle
-
Co poprawiamy
-
Konkretne taski
Retrospektywa
Code review
Code review
Przeglądanie lekkie:
do 200-400 wierszy kodu
do 300-500 wierszy na godzinę
do 30-60 minut
nie ma za małych zmian
Programowanie w parach
- nie ma sztywnych zasad
- lepsza jakość kodu
- częsta zmiana "nawigatora" (attention span)
- mieszanie poziomów doświadczenia (motywacja)
Programowanie w parach
- strefa intymna (45 cm)
- wspólne narzędzia (hardware i software)
- słabnąca synergia
- nie każde zadanie
- brak przekonania (złe nastawienie)
Baza wiedzy
strona/blog/gitlab
Certyfikaty i szkolenia
Ruby on Rails | Certified Ruby Programmer |
PHP | Zend Certified Engineer |
JavaScript | CIW Web Development Series, W3Schools |
NodeJS | ATG Certified |
Python | O'Reilly School of Technology |
Java | Oracle Certified Professional Java SE Programmer |
ASP.Net MVC | Microsoft's MCTS: Web Applications Development with Microsoft .NET Framework 4 |
Objective-C | Brain Measures, Expert Rating |
Certyfikaty i szkolenia
MOOC - Massive Online Open Courses
Udacity
Coursera
Społeczność
Konferencje i meetupy
sporo w naszym regionie, najczęściej darmowe
Warsztaty
Warsztaty
-
wewnętrzne
-
na zamówienie
-
konferencje
Hackathon
Hackathon
https://challengerocket.com
Zacznij i przekonaj innych
Od czego zacząć ?
- Zdobądź zaufanie
- Nabierz doświadczenia
- Zachęcaj innych własnym przykładem
- Jeden front na raz
- Kolejna iteracja
Pytania ?
Dziękuję za uwagę
@ ArkadiuszKondas
itcraftsman.pl
https://slides.com/arkadiuszkondas
Pragmatyczny developer
By Arkadiusz Kondas
Pragmatyczny developer
Co to jest pragmatyzm i jak można być pragmatycznym programistą. Przegląd narzędzi, technik i metodyk jakie każdy developer może i powinien znać. Zakres prezentacji obejmuje jednostkę, zespół i społeczność.
- 1,630