logoskutecznyprogramista.pl

Zacznij dowozi─çBlogKontakt

­čôĽ Cztery najwa┼╝niejsze ksi─ů┼╝ki, kt├│re zrobi┼éy ze mnie programist─Ö

Źródło: https://unsplash.com/@impatrickt

D┼éugo┼Ť─ç wpisu: 7 min

Od czasu do czasu zdarza mi si─Ö, ┼╝e kto┼Ť zapyta o jakie┼Ť warto┼Ťciowe ksi─ů┼╝kowe polecajki. Mam kilka ksi─ů┼╝ek, kt├│re mnie ukszta┼étowa┼éy i przekszta┼éci┼éy m├│j spos├│b pracy.

Poni┼╝ej pierwsze cztery, kt├│re polecam w pierwszej kolejno┼Ťci.

Clean Code - Robert Martin

Clean Code

Gdy by┼éem na studiach, to my┼Ťla┼éem, ┼╝e dobrze napisany kod to taki, kt├│ry dzia┼éa, pokrywa wszystkie przypadki brzegowe i nie ma ┼╝adnych bug├│w. Drabinka if├│w wydawa┼éa mi si─Ö sensownym i eleganckim rozwi─ůzaniem.

Gdy poszed┼éem na praktyki, a potem do pracy, to okaza┼éo si─Ö, ┼╝e tak naprawd─Ö jest to wymagane minimum, a tworzenie oprogramowania, to co┼Ť znacznie wi─Öcej.

Jednym z wa┼╝niejszych element├│w jest pisanie czystego kodu. Jest to istotne nie tylko dla programist├│w, kt├│rzy nawazajem czytaj─ů sw├│j kod i musz─ů go rozumie─ç, ale te┼╝ dla biznesu.

Kod, kt├│rego nie mo┼╝na ┼éatwo zmienia─ç, powoduje, ┼╝e dowo┼╝enie ficzer├│w i naprawianie bug├│w b─Ödzie si─Ö przeci─ůga─ç, fundusze b─Öd─ů topnie─ç, a u┼╝ytkownicy b─Öd─ů si─Ö denerwowa─ç.

Podstawowym ┼║r├│d┼éem wiedzy o pisaniu czystego kodu jest klasyczny ju┼╝ Clean Code od Uncle Boba. Jest to najprawdopodobniej najcz─Ö┼Ťciej polecana ksi─ů┼╝ka dla programist├│w, wi─Öc nikogo nie powinno dziwi─ç, ┼╝e wpad┼éa na pierwsze miejsce na mojej li┼Ťcie.

Pami─Ötam, ┼╝e czyta┼éem t─Ö ksi─ů┼╝k─Ö je┼╝d┼╝─ůc autobusem i wywar┼éa na mnie tak du┼╝e wra┼╝enie, wci─ůgn─Ö┼éa tak mocno, ┼╝e do dzisiaj nie pami─Ötam, dok─ůd ten autobus mnie wozi┼é ­čÖâ.

Pami─Ötam za to uczucie - jakby kto┼Ť budzi┼é mnie ze snu i pokazywa┼é kolejne rzeczy, kt├│re od razu mog─Ö wdra┼╝a─ç podczas pisania kodu w pracy.

Dzieki tej ksiażce, mój kod stawał się lepszy z dnia na dzień.

Jedyny minus, kt├│ry tak naprawd─Ö nie jest minusem, jest to, ┼╝e przyk┼éady napisane s─ů w Javie, a nie ka┼╝dy w Javie kodzi. Dla programist├│w C# to nie problem, dla JavaScriptowc├│w mo┼╝e by─ç.

Niestety ksi─ů┼╝ka nie ma sensownego zamiennika. S─ů repozytoria i setki wpis├│w na blogach, kt├│re staraj─ů si─Ö wyja┼Ťni─ç zasady opisane w ksi─ů┼╝ce stosuj─ůc inne j─Özyki (w tym JS), ale nie spotka┼éem jeszcze przyk┼éad├│w, kt├│re nie by┼éyby poprzekr─Öcane w jaki┼Ť spos├│b.

Zasady tam opisane s─ů uniwersalne i ponadczasowe, trzeba je tylko dostosowa─ç do aktualnego stacku technologicznego.

Dlatego nadal uwa┼╝am, ┼╝e najlepiej samemu si─Ögn─ů─ç do ┼║r├│d┼éa. Uwa┼╝am, ┼╝e jest to podstawowa lektura ka┼╝dego programisty i kto jeszcze jej nie czyta┼é, powinien zrobi─ç to w nast─Öpnej koleno┼Ťci.

Clean Coder - Rober Martin

Clean Coder

Po przeczytaniu Czystego Kodu postanowi┼éem, ┼╝e zabior─Ö si─Ö za kontynuacj─Ö. Clean Coder by┼é reklamowany jako druga cz─Ö┼Ť─ç, wi─Öc spodziewa┼éem si─Ö ksi─ů┼╝ki technicznej.

Zamisat tego dosta┼éem solidnego li┼Ťcia w pysk od Uncle Boba, kt├│ry mia┼é mi pokaza─ç, ┼╝e nie samym kodzikiem programista ┼╝yje.

Clean Coder to ksi─ů┼╝ka, kt├│ra doskonale opisuje, co to znaczy by─ç profesjonalist─ů. Pokazuje odpowiedzialno┼Ťci dobrego programisty i sposoby pracy z innymi osobami uczestnicz─ůcymi w procesie tworzenia softu.

Dzięki niej nauczyłem się też, czego mogę wymagać od innych i znalazłem swoje miejsce w całym procesie.

Jest to ksi─ů┼╝ka, kt├│ra pozwoli┼éa mi ┼Ťci─ůgn─ů─ç do ko┼äca pieluch─Ö juniora i dzi─Öki kt├│rej zacz─ů┼éem chodzi─ç na dw├│ch nogach, zamiast pe┼éza─ç na czworakach.

Wydaje mi si─Ö, ┼╝e dwie najwi─Öksze zalety tej ksi─ů┼╝ki to:

  • zrozumienie profesjonalnej postawy
  • znalezienie swojego miejsca w procesie

Warto spojrze─ç na Clean Codera, je┼Ťli interesuja Ci─Ö te dwa tematy.

Extreme Programming Explained - Kent Beck, Cynthia Andres

XP

Extreme Programming to w mojej g┼éowie ksia┼╝ka, kt├│ra pokazuje romantyczn─ů (dla mnie) wizj─Ö grupki znajomych siedz─ůcych w jednym pokoju, naparzaj─ůcych pair-programming i robi─ůcych quality software z szybko┼Ťci─ů hackathonow─ů.

Z jednym, wa┼╝nym wyj─ůtkiem.

Tryb pracy na hackathonie pozwala na pisanie spaghetti. Natomiast XP pokazuje jak pracowa─ç, ┼╝eby kod z ka┼╝d─ů iteracj─ů przeistacza┼é si─Ö w tw├│r o ekstremalnie wysokiej jako┼Ťci i jednocze┼Ťnie rozwi─ůzywa┼é tylko te problemy, kt├│re trzeba w danej chwili rozwi─ůzywa─ç.

Podoba mi si─Ö ten opis z https://www.agilealliance.org/glossary/xp/:

Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team.

Ten drugi aspekt, czyli wy┼╝sza jako┼Ť─ç ┼╝ycia dla development teamu jest dla mnie nawet wa┼╝niejszy ni┼╝ kod.

Wielu programist├│w lubi XP, bo jest metodyk─ů agile (tak─ů jak Scrum, czy Kanban), kt├│ra jest mocno nastawiona na dzia┼éania zespo┼éu programist├│w. Pokazuje, jak taki zesp├│┼é powinien pracowa─ç oraz jakie praktyki stosowa─ç, ┼╝eby samodzielnie tworzy─ç kod we wsp├│┼épracy z klientem.

Managerowie, Scrum Masterzy, czy Agile Coache nie rozmawiaj─ů zbyt cz─Östo o Extreme Programmingu. Podejrzewam, ┼╝e pow├│d w jest prosty. W momencie, gdy zesp├│┼é mo┼╝e wszystko zrobi─ç samemu, bo ma do tego narz─Ödzia, te role po prostu staj─ů si─Ö zb─Ödne ­čĄĚÔÇŹÔÖé´ŞĆ.

XP w czystej postaci jest ekstremalnie rzadko spotykany, jednak skutecznie udawa┼éo mi si─Ö przemyca─ç r├│┼╝ne metodyki do Scruma, Kanbana, czy czego tam u┼╝ywali┼Ťmy. S─ů one po prostu kompatybilne. Wielu programist├│w, kt├│rych znam, robi dok┼éadnie to samo.

I najlepsze jest to, ┼╝e Scrum Masterzy, nawet o tym nie wiedz─ůc, uwielbiaj─ů, gdy zesp├│┼é pracuje, korzystaj─ůc z zasad XP, bo staje si─Ö wtedy bardziej dojrza┼éy i nie trzeba im we wszystkim pomaga─ç jak ma┼éym dzieciom.

Zdarzy┼éo mi si─Ö kilka razy pracowa─ç w XP i jest to dla mnie idealny tryb pracy, do kt├│rego zawsze b─Öd─Ö d─ů┼╝y┼é.

An additional, and equally important, contribution of XP is the focus on practice excellence.

The method prescribes a small number of absolutely essential practices and encourages teams to perform those practices as good as they possibly can, almost to the extreme.

This is where the name comes from. Not because the practices themselves are necessarily radical (although some consider some of them pretty far out) rather that teams continuously focus so intently on continuously improving their ability to perform those few practices.

Je┼Ťli interesuje Ci─Ö ÔÇťfocus on practice excellenceÔÇŁ, to ta ksi─ů┼╝ka jest dla Ciebie.

Slipstream Time Hacking - Benjamin P. Hardy

Slipstream Time Hacking

Ta ksi─ů┼╝ka mo┼╝e by─ç zaskoczeniem, bo prawie nikt jej nie zna i nie ma nic wsp├│lnego z programowaniem. A jednak wywar┼éa na mnie taki sam wp┼éyw, jak Clean Code.

W najwi─Ökszym skr├│cie Ben Hardy wykorzystuje Szczeg├│ln─ů Teori─Ö Wzgl─Ödno┼Ťci Einsteina, ┼╝eby zasugerowa─ç, ┼╝e nasze ┼╝ycie warto mierzy─ç jako przebyty dystans, a nie jako czas, kt├│ry up┼éyn─ů┼é.

Zamiast mierzy─ç, jak du┼╝o czasu min─Ö┼éo, mo┼╝emy mierzy─ç, jak daleko zaszli┼Ťmy.

Zamiast mierzy─ç lata do┼Ťwiadczenia, mo┼╝emy mierzy─ç faktyczne do┼Ťwiadczenie.

Od samego pocz─ůtku pracy w IT wiedzia┼éem, ┼╝e mierzenie do┼Ťwiadczenia w latach, to najwi─Ökszy bullshit w tej bran┼╝y. G┼é├│wnie za spraw─ů ÔÇťsenior├│wÔÇŁ z ÔÇťwieloletnim do┼ŤwiadczeniemÔÇŁ, kt├│rych wiedza i umiej─Ötno┼Ťci znajdywa┼éy si─Ö na znacznie ni┼╝szym pozimie, ni┼╝ sugerowa┼éyby to czas. Przekonywano mnie, ┼╝e otrzymam od takich os├│b pomoc i mentoring, a w praktyce nie mo┼╝na by┼éo wymaga─ç zbyt wiele.

Na szcz─Ö┼Ťcie spotyka┼éem te┼╝ osoby ze znacznie kr├│tszym sta┼╝em, kt├│rzy zjadali tych senior├│w na ┼Ťniadanie pod wzgl─Ödem wiedzy, umiej─Ötno┼Ťci i sposobu, w jaki potrafili przekazywa─ç swoj─ů wiedz─Ö.

A to wszystko dlatego, że te osoby z krótszym stażem przebyły znacznie większy dystans, w krótszym czasie.

A to z kolei znaczy, ┼╝e szybciej si─Ö poruszali.

I w┼éa┼Ťnie w tym momencie staje si─Ö jasne, ┼╝e aby przeby─ç wi─Ökszy dystans, w kr├│tszym czasie, warto szuka─ç tuneli czasoprzestrzennych. Jest to motyw przewodni ksi─ů┼╝ki.

Takie tunele, to dzia┼éania i okazje w naszej karierze, kt├│re pozwalaj─ů zdoby─ç lata do┼Ťwiadczenia w kilka miesi─Öcy lub czasem tygodni.

Ta metafora bardzo do mnie przemawia, wi─Öc zacz─ů┼éem szuka─ç tuneli czasoprzestrzennych, do kt├│rych m├│g┼ébym wskoczy─ç. Ju┼╝ wtedy, po przeczytaniu ksi─ů┼╝ki, okaza┼éo si─Ö, ┼╝e z kilku tuneli ju┼╝ skorzysta┼éem. Jednym z nich jest np. prowadzenie szkole┼ä. Ten tunel zaprowadzi┼é mnie do miejsca, w kt├│rym mocno doszlifowa┼éem swoj─ů wiedz─Ö oraz umiej─Ötno┼Ťci, nauczy┼éem dzieli─ç si─Ö wiedz─ů i pokaza┼éem si─Ö w bardzo dobrym ┼Ťwietle.

Teraz, kilka lat ┼Ťwietlnych dalej wiem, ┼╝e to podej┼Ťcie dzia┼éa nawet zbyt dobrze i ┼╝e mo┼╝na przypadkiem skoczy─ç zbyt daleko. Z przeci─Ötnego programisty, mo┼╝esz sta─ç si─Ö osob─ů, od kt├│rej ka┼╝dy co┼Ť b─Ödzie chcia┼é, a b─Ödziesz wiedzie─ç, ┼╝e mo┼╝esz im pom├│c. Jednak anga┼╝uj─ůc si─Ö w te inicjatywy, czasem z rozp─Ödu, efektywnie zmniejszasz czas na programowanie i rozw├│j. Czyli na to, po co wielu z nas przysz┼éo do tej bran┼╝y. Warto na to uwa┼╝a─ç.

Twarz Matiego na poni┼╝szym obrazku pokazuje, ┼╝e takie skakanie nie jest ┼éatwe i ┼╝e mo┼╝na zabrn─ů─ç zbyt daleko.

Trzeba si─Ö przygotowa─ç na to mentalnie i ta ksi─ů┼╝ka opisuje jak to zrobi─ç.

Mati Płacze

Mam ju┼╝ w g┼éowie kolejne cztery ksia┼╝ki (i chyba na tym sko┼äcz─Ö), kt├│re mocno pomog┼éy mi znale┼║─ç si─Ö w tym miejscu, w kt├│rym jestem teraz. Kiedy┼Ť si─Ö pewnie zabior─Ö za ich opisanie. W mi─Ödzyczasie daj zna─ç, czy takie podsumowanie jest pomocne i czy Ty masz jakie┼Ť ksi─ů┼╝ki, kt├│re wnios┼éy wiele dobrego do Twojej pracy.

Notatki z tych ksi─ů┼╝ek b─Öd─Ö stopniowo umieszcza┼é na blogu, wi─Öc warto tam zagl─ůda─ç.

Podziel si─Ö:

Zapisz si─Ö do newslettera, aby otrzymywa─ç powiadomienia o nowych wpisach.

Wy┼Ťl─Ö Ci r├│wnie┼╝ dokument, dzi─Öki kt├│remu zaczniesz szybciej dowozi─ç taski ­čĺ¬.

Zapisz mnie

Cze┼Ť─ç! Jestem Krzysztof. Poka┼╝─Ö Ci jak wdro┼╝y─ç nawyki, narz─Ödzia i taktyki skutecznych programist├│w. Je┼Ťli jeste┼Ť tu poraz pierwszy to zacznij tutaj.


Instagram, Twitter, YouTube, Facebook, LinkedIn