Programowanie na fali

nauka programowania

Chyba każdy się ze mną zgodzi, że my, programiści, musimy cały czas się uczyć, żeby ciągle być na fali. Nowe frameworki rodzą się i umierają w zawrotnym tempie, stos technologiczny naszego projektu rozrasta się bez opamiętania, a kolejny projekt widać już na horyzoncie. Co w takim razie możemy zrobić, żeby przy tylu zmianach utrzymać poczucie komfortu i spokoju?

Nowy projekt – nowe wyzwania

Pewnie zdarzyło Ci się trafić do projektu, w którym wszystko dla Ciebie było nowe: język programowania, narzędzia, architektura. Zastanawiałeś się wtedy, jak to wszystko ogarnąć w krótkim czasie? Źródłem wiedzy, do którego kieruję pierwsze kroki w przypadku nowej technologii, jest oczywiście stackoverflow oficjalna dokumentacja. W epoce GitHuba rozwija się ona razem z kodem, dzięki czemu zazwyczaj jest aktualna. W większości przypadków znajduje się tam sekcja „getting started” czy „quick start”, która w zupełności wystarcza do stawiania pierwszych kroków. Jeżeli pozostała część dokumentacji jest zbyt obszerna, żeby przeczytać ją w całości, a termin zakończenia projektu jest bliski, wtedy szukam materiałów z konferencji (YouTube, Vimeo) lub kilkugodzinnego kursu MOOC na takich portalach jak Udemy, edX czy Pluralsight. Polecam opcję przyspieszenia odtwarzania np. 1,5 x – przy takiej prędkości materiał jest nadal zrozumiały. Jest to „minimalna skuteczna dawka”, która pozwala mi efektywnie wykonywać swoją pracę. Do książek sięgam dopiero wtedy, gdy to nie wystarcza lub jeśli potrzebuję bardziej zgłębić temat.

Nauka „z góry”

Przy opracowywaniu obszerniejszych tematów zaczynam od spojrzenia na wszystko z góry. Kiedy czytam jakąś techniczną książkę, kartkuję ją i przeglądam nazwy rozdziałów. Każdy rozdział zaczynam od tego, co autor umieścił w ramkach lub w inny sposób oznaczył jako ważne. Jeśli na początku nauki zbuduję sobie kontekst, to łatwiej jest mi później wypełnić puste pola kolejnymi elementami układanki. Dzieje się tak dlatego, że ludzki mózg, podobnie jak hashmapa w Javie, „umieszcza” dane pod konkretnymi kluczami, żeby mieć do nich łatwiejszy dostęp. W związku z tym, że ilość miejsca w pamięci operacyjnej naszego mózgu jest ograniczona, posiadanie takiego „odnośnika” pomaga przy późniejszym wykorzystaniu go w rozwiązywaniu zadań.

Pamięć zewnętrzna

Nie można jednak liczyć tylko na pamięć. Jeśli nie utrwalasz wiedzy poprzez częste odwoływanie się do niej, to połączenia między neuronami słabną i możesz o wielu rzeczach zapomnieć. Popatrz na swoje CV i pomyśl, jak dużo pamiętasz jeszcze z technologii wykorzystywanych w Twoich pierwszych projektach. Jest na to prosty sposób – zapisuj, co się da. Do robienia notatek osobiście używam Evernote’a, przez podział na notatniki, tagi i dostęp z każdego urządzenia. Wśród moich znajomych sprawdza się również mindmapa i tradycyjne, papierowe notatniki. Im więcej notujesz, tym większa szansa, że nie będziesz musiał uczyć się drugi raz tego samego i rozwiązywać drugi raz tych samych problemów.

Nauka na wszelki wypadek

W związku z tym, że stos technologiczny projektów informatycznych nieustannie rośnie, trudno Ci zapewne znaleźć czas, żeby dogłębnie poznać chociaż ten, z którym obecnie pracujesz. Nie można jednak dopuścić do tego, żeby ograniczyć się tylko do aktualnego projektu i całkowicie stracić kontakt ze światem IT. W programowaniu dzieje się coraz więcej i jak grzyby po deszczu powstają projekty, które mogą Ci się przydać. Jeśli natrafisz na problem, którego nie da się rozwiązać przy użyciu narzędzi z Twojej skrzynki, bądź świadomy, że takie narzędzie w ogóle istnieje. Do przeglądania strumienia informacji dotyczących programowania najczęściej używam Twittera. Programiści z Polski i ze świata, których śledzę na Twitterze, często chwalą się swoimi odkryciami lub swoją pracą przy projektach opensourcowych. Nierzadko z takich wpisów dowiaduję się, że w kilka minut można usprawnić działanie aplikacji lub przyspieszyć swoją pracę. Oprócz tego nasłuchuję aktualności z RSSów ulubionych blogów dotyczących programowania lub agregatów takich jak JVM Bloggers czy Java Weekly. Nawet jeśli znajduję czas tylko na pobieżne przejrzenie części wpisów, a często tylko tytułów, to widzę, jakie są trendy i czym warto się zainteresować.

Kiedy znaleźć na to czas?

Jeśli w natłoku obowiązków nie możesz znaleźć czasu na naukę, to porzuć poszukiwania i zacznij sam go organizować. Jeżeli zaplanujesz stały czas na naukę, na przykład 30 minut przed snem, to po kilku tygodniach wyrobisz u siebie nawyk i będzie to stały punkt Twojego wieczoru. Warto zakomunikować swoim domownikom, że w tym czasie będziesz dla nich niedostępny, wyłączyć powiadomienia w telefonie i zablokować dostęp do najczęściej odwiedzanych stron w przeglądarce internetowej. Stuprocentowe skupienie się na materiale pomoże Twojemu mózgowi bardziej utrwalić połączenia między neuronami, dzięki czemu materiał dłużej zostanie w pamięci.
Dobrym czasem na naukę jest także podróż do pracy. Sporo prezentacji nie zawiera kodu, więc nie wymaga uwagi wzroku. Na portalu InfoQ przy każdej prezentacji jest nawet opcja pobrania pliku mp3. Poza tym jest kilka podcastów informatycznych wartych polecenia, których z powodzeniem możesz słuchać w samochodzie, np. Changelog lub Software Engineering Daily. Możesz łatwo policzyć, ile prezentacji jesteś w stanie przesłuchać w taki sposób w ciągu miesiąca i ile wiedzy możesz przy tym zdobyć.

Zadbaj o swój warsztat

Jeśli chcesz być programistą rzemieślnikiem, powinieneś zadbać o swój warsztat. Przychodząc do nowego projektu ze skrzynką pełną narzędzi i z wiedzą, jak ich używać, nie będziesz musiał martwić się o to, że nie podołasz nowym wyzwaniom. Żeby tego dokonać, musisz się cały czas rozwijać. Zainteresowanym, jak wykorzystać właściwości mózgu do lepszego uczenia się, polecam darmowy kurs „Learning how to learn” oraz książkę „Głowa do liczb” autorstwa Barbary Oakley.

Jeśli masz sprawdzone sposoby nauki lub chciałbyś się ze mną podzielić czymś ciekawym – napisz do mnie na Twitterze.

Autor: Paweł Młynarczyk – programista od 10 lat nieustannie związany z Javą. Koduje, devopsuje i pomaga w rozwoju młodszym kolegom. Od czasu do czasu można go usłyszeć na konferencjach IT. Uczy się, kiedy tylko może. Prywatnie tata, miłośnik komiksu i czeskiego kina.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *