Jak być na bieżąco z technologiami i wiedzą o programowaniu?

Jak być na bieżąco z technologiami i wiedzą o programowaniu?

No właśnie.. W świecie programowania dzieje się DUŻO. Nowości pojawiają się z miesiąca na miesiąc. Jak nadążyć za tym wszystkim? Jak być na bieżąco z nowinkami technologicznymi i ogólnie pojętą wiedzą programistyczną? Wskazówek, jak poszerzać swoją wiedzę o programowaniu jest wiele. Pisaliśmy już o tym na PoznajProgramowanie.pl (tu i tam), piszą o tym inni. W tym poście nie chcę jednak zasypać Cię gotowymi, “złotymi” sposobami. Co nie oznacza, że nie znajdziesz tutaj paru sprawdzonych metod na poszerzanie swojej wiedzy 😉 Główny zamysł na ten post jest jednak inny – chciałbym wejść z Tobą w dyskusję na niniejszy temat i wspólnie wymienić swoje doświadczenia, a może nawet wypracować jakieś nowe podejście do tematu.

Problem

Jakiś czas temu organizowaliśmy na PoznajProgramowanie.pl pewnego rodzaju ankietę.. Odbiorcami były głównie osoby zaczynające przygodę z programowaniem. Jedno z pytań brzmiało:

Jaki jest twoim zdaniem największy problem związany z nauką programowania? Czy tematyka wydaje się być za trudna? Nie masz odpowiednich materiałów do nauki? Potrzebujesz kogoś, kto wskaże ci drogę?

W odpowiedziach można było spotkać się z opiniami typu: “… z materiałami bywa różnie. Jest tego od groma i człowiek gubi się z którego czerpać wiedzę.”. Brzmi znajomo. Gdy przypomnę sobie siebie jeszcze parę lat temu to zdanie miałem takie samo. Mnóstwo rzeczy do nauki, nie wiadomo w co ręce włożyć. Dziś, po ok. 4 latach zawodowej kariery moje zdanie się nie zmieniło, dalej czuję się tym wszystkim przytłoczony.

Tyle chciałbym wiedzieć

Mnóstwo rzeczy do nauki – czy na pewno? Ja osobiście mam poczucie, że tak. Tych wszystkich rzeczy jest mnóstwo. Zaczynając od specjalizacji, poprzez języki programowania, kończąc na konkretnych technikach i metodykach pracy. Wystarczy rzucić okiem na Web Developer Roadmap.

Jestem full-stack web developerem nasuwa się mi więc pytanie – co powinienem umieć?

Czy wszystkie rzeczy znajdujące się na takiej roadmapie powinienem umieć? Czy da się być super backend – frontend – devops – developerem? Zależy jak spojrzeć na temat, ale moim zdaniem raczej nie. Do “super” frontendowca pasują mi umiejętności związane z designem, grafiką i UX (taki samowystarczalny gość), z “super” backend developerem natomiast kojarzą mi się przykładowo dodatkowe mocne umiejętności związane z bazami danych. A co z full-stack developerem? Gość do wszystkiego i do niczego? Moim celem nie jest tutaj drwienie z full-stack developerów, bo sam nim jestem.

Moje odczucie jest jednak takie, że gdy skupiam się na frontendzie (ostatni projekt w ExtJS) to uciekają mi rzeczy z C#. Co prawda to co już umiem to raczej nie zapomnę, ale ficzery z C# 7.0 gdzieś mi uciekły niezauważone. A co z Angularem, w którym ostatni projekt robiłem rok temu, jeszcze w Angular 1, a na portalach z newsami pojawiają się jakieś Angulary 4 i 5. Reacta też dobrze byłoby poznać i popróbować. Jeszcze siąść do baz danych i zgłębić wiedzę na ich temat. Chociaż pouczyć się czegoś z baz relacyjnych SQL, z którymi pracuję na co dzień. O bazach dokumentowych, czy grafowych już nie wspominając. ASP.NET Core, CQRS, EventSourcing, Azure/Amazon z wszystkimi ich możliwościami i nowościami, Internet of Things.. ehh..

Upływający czas

Można próbować złapać wszystkie sroki za ogon i zdarzało się, że ja też próbowałem. Jedno jest pewne pożera to cholernie dużo czasu. Z chęciami również bywa różnie. Świeżo po studiach łatwiej było siąść po pracy i programować przez dodatkowe 2 godziny, teraz coraz z tym ciężej. Jeden dzień “przyciśniesz” to kolejny odpokutujesz w pracy obniżoną efektywnością. Mózg (przynajmniej mój) potrzebuje odpoczynku. Wcześniej jakoś się na to nie zwracało uwagi. Z pomocą na pewno przyszła książka Rework, gdzie autorzy obalają mit herosa pracującego nad projektem po godzinach, na rzecz prawdziwych herosów odpoczywających w tym czasie w domu, którzy całą wymaganą pracę zdążyli wykonać w normalnym czasie pracy.

Wartość na rynku pracy

Można się spotkać z dość rozsądną opinią, że to nie o te nowe frameworki chodzi.. Lepiej skupić się na żelaznych praktykach, wzorcach, zrozumieć to, co dzieje się pod spodem. Wtedy każdy nowy framework można traktować jako nowa “nakładka” na to samo. Jeżeli dobrze opanujesz podstawy to przyswojenie nowego frameworka nie będzie dużym problemem.

Jednak z drugiej strony ciągle “coś” ciągnie mnie do poznawania tych nowinek. Patrząc na oferty pracy nie znajdziemy za bardzo wymagań w stylu “dobra znajomość protokołu HTTP i obsługi JS w przeglądarce”, raczej znajdziemy oferty typu “React, Angular”. Może to powierzchowne spojrzenie, ale czy tak nie jest? Czy nie zależy Ci, aby mieć w CV jak najwięcej najnowszych technologii?

Metody na “bycie” na bieżąco

Metod jest wiele, jedne z najpopularniejszych:

  1. Twitter
  2. Blogi / agregatory treści
  3. Podcasty
  4. Konferencje
  5. Książki
  6. Inne źródła (czytanie kodu na GitHub itd.)

No to jak jest tyle źródeł, z których można czerpać wiedzę to w czym problem? No właśnie w tym, że jest ich aż tyle. Sam dobrze “skonfigurowany” Twitter, czy Facebook jest w stanie dosłownie zalać nas informacjami. Cały dzień musiałbym nic nie robić tylko scrollować feed. Blogi, podcasty, książki to samo – mnóstwo, mnóstwo, mnóstwo.

Jak radzić sobie z tym natłokiem informacji? Coraz częściej łapie się na tym, że czytam informację, która mnie zainteresowała, więc poświęcam na to jakiś czas, 5-15 minut. Następnie po paru dniach zapominam kompletnie o tym, co przeczytałem. Ciężko zresztą, aby po jednej 15 minutowej sesji zapamiętać coś na całe życia, czy choćby na lata. Jaki więc sens ma poświęcanie czasu na przeglądanie tych wszystkich rzeczy? I tak najczęściej jak coś potrzebujesz to musisz sobie to wygooglać.

W efekcie mam poczucie, że mnogość źródeł, a co za tym idzie ilość dostępnych informacji bardziej mi przeszkadza niż pomaga. Z wszystkim chciałbym się zapoznać (patrząc wyżej chyba niesłusznie), bo mnie ciekawi, ale brakuje czasu.. ostatecznie powstają ogromne listy w moim OneNote “na wypadek, żebym o czymś nie zapomniał”.

Problem z tymi puchnącymi listami jest taki, że na dłuższą metę zaczynają one człowieka męczyć. Patrze na nie i zamiast spokojnie spędzać popołudnie i odpoczywać to szukam każdej wolnej chwili, aby coś z tej listy “zdjąć”. Na miejsce odhaczonego jednego linku zazwyczaj pojawiają się, znalezione w międzyczasie, dwa nowe. Tak jakby śledzenie tych wszystkich rzeczy przeradzało się w mój obowiązek.

Rozwiązanie?

Jeden z moich wniosków jest następujący – w dużej mierze przeszkadza mi towarzyszący tym wszystkim informacją chaos. Może to tylko moje odczucie, bo lubię mieć wszystko uporządkowane. Pewnie z tego powodu mój OneNote tak puchnie i staram się, żeby nic nie uszło mojej uwadze.

W kwestii uporządkowania rzeczy ciekawym rozwiązaniem jest radar technologiczny. W pewnym stopniu porządkuje on to na czym stoi świat programowania. Wchodzisz – widzisz co jest na topie, teoretycznie wiesz w takim razie czym warto sobie zaprzątać głowę. Może nie będziesz pierwszy w każdej nowince, ale na pewno będziesz na bieżąco i przy okazji sporo “bajzlu” Cię ominie. Takie podejście, w mojej opinii, “good enough”.

To czego mi dalej brakuje to pewnej interakcji i możliwości określenia, gdzie w tym wszystkim jestem ja – chciałbym móc odznaczyć to z czym się zapoznałem, czy mieć listę rzeczy “pending”, którymi WARTO się zająć.

A jak to wygląda u Ciebie?

Ok, tyle z mojej strony. Mam nadzieję, że udało mi się przedstawić trochę mój punkt widzenia i moje “myślenie”. A jak to wygląda u Ciebie? Jakie masz podejście do tego tematu? Możliwe, że podchodzisz na dużo większym luzie do tych spraw, albo zupełnie się tym nie przejmujesz. Może też starasz się być na bieżąco, ale masz jakiś inny wypracowany sposób na radzenie sobie z tym? Ostatecznie, co myślisz nad poruszonym w powyższej sekcji rozwiązaniem? Czy uważasz, że istnieje potrzeba na takie narzędzie?

Cokolwiek sobie myślisz – nawet to, że wygaduję jakieś głupoty albo pomieszało mi się w głowie – po prostu daj znać (ale chociaż uzasadnij 🙂 ). Czekam na Twój komentarz!

Powiązane

books#10 – „Crucial Conversations” W trakcie naszej przygody z programowaniem zetknęliśmy się z książkami poruszającymi najróżniejsze tematy. Programowanie, branża IT, biznes, nowe te...
books#3 – “Oprogramowanie szyte na mia... W trakcie naszej przygody z programowaniem zetknęliśmy się z książkami poruszającymi najróżniejsze tematy. Programowanie, branża IT, biznes, nowe tech...
Po pierwsze – nie zepsuć internetu Dynamiczny rozwój przeglądarek oraz technologii działających po stronie klienta sprawia, że każdego roku kolejne zastępy programistów decydują się...
Programista na rynku pracy – wymagane kwalif... Jakie są wymagane kwalifikacje, kompetencje i umiejętności od programistów na rynku pracy? Jakiś czas temu wspominaliśmy o inicjatywie STARTER, któ...