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:

  1. Ja
  2. Zespół
  3. 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,413