Pragmatyczny developer
ARKADIUSZ KONDAS
Backend Team Leader
@ Da Vinci Studio
Zend Certified Engineer
Code Craftsman
Blogger
Ultra Runner
@ ArkadiuszKondas
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/1920070/twitter-xxl.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/1920092/5328e4296f63cd592700018f_globe-icon.png)
itcraftsman.pl
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2035686/DSC_0339.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2035688/zce-php5-3-logo.gif)
Zend Certified Architect
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2035692/zf-zce-logo.gif)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2591904/blacksmith-1310850_1280.jpg)
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"
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2615236/os.png)
Narzędzia
IDE - Integrated Development Environment
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2591990/screenshot-www.jetbrains.com_2016-05-10_21-53-02.png)
Narzędzia
Język
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592003/1460142776__1_.jpg)
Narzędzia
Framework
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592034/django-logo-negative.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592036/Ruby_on_Rails.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592038/shield-with-beta.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592040/spring-by-pivotal.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592041/symfony_black_01.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592042/dotnet-logo.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2653145/screenshot-feedly.com_2016-05-23_22-03-20.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2653201/feedly-512.png)
feedly.com
Wiedza - Social Media
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2615240/Twitter-Facebook.png)
@unclebobmartin
@KentBeck
@coderabbi
@martinfowler
@codinghorror
@spolsky
@mollydotcom
@rosstuck
@shanselman
@s_bergmann
@mariuszgil
@andrzejkrzywda
@_ericelliott
@venkat_s
Grupy na FB
Praktyka
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2591799/the-strategy-1080528_1920.jpg)
Praktyka - Kata
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592243/6a0120a85dcdae970b0128777051e0970c-pi.png)
- codingkata.org
- codekata.pragprog.com
- codekata.com
- codewars.com
- codefights.com
- codingame.com
Praktyka - Własny projekt
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592286/Screenshot_from_2016-05-10_22-53-46.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2620697/screenshot-github.com_2016-05-16_23-37-50.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2620758/github.jpg)
Praktyka - Kontrybucja
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592303/screenshot-symfony.com_2016-05-10_22-56-26.png)
Czas
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2592385/wristwatch-407096_1920.jpg)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2653491/screenshot-trello.com_2016-05-23_23-09-25.png)
Code review
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2036388/comments.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2653395/crossweb-logo.png)
Warsztaty
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2586796/11_IMG_9283_adrian.jpg)
Warsztaty
-
wewnętrzne
-
na zamówienie
-
konferencje
Hackathon
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2293642/pasted-from-clipboard.png)
Hackathon
https://challengerocket.com
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2586763/screenshot-challengerocket.com_2016-05-09_22-55-41.png)
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 ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/2586630/board-776688_1920.jpg)
Dziękuję za uwagę
@ ArkadiuszKondas
itcraftsman.pl
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/1920070/twitter-xxl.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/1920092/5328e4296f63cd592700018f_globe-icon.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/341527/images/1920105/dziekuje-za-uwage.png)
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,532