sobota, 30 lipca 2022

馃憣馃槑W jaki spos贸b uczy膰 si臋 z pracy馃槑馃憣

Kiedy艣 czyta艂em, 偶e przeci臋tny cz艂owiek uczy si臋 w pracy jedynie przez pierwszy rok, a nast臋pnie, przestaje si臋 rozwija膰. Osoba kt贸ra ma 10 lat do艣wiadczenia i pracuje ci膮gle na tym samym stanowiska, prawdopodobnie mo偶e umie膰 mniej, ni偶 kto艣 kto pracuje tam rok. Jednocze艣nie, w wi臋kszo艣ci zawod贸w, a w IT w szczeg贸lno艣ci, najwa偶niejsz膮 umiej臋tno艣ci膮 jest uczenie si臋 nowych rzeczy. Jak to zrobi膰, by stale rozwija膰 swoje umiej臋tno艣ci?

Je艣li pracujesz, jeste艣 w uprzywilejowanej sytuacji je艣li chodzi o nauk臋, poniewa偶 raczej wiesz, z jakimi przypadkami mo偶esz si臋 zetkn膮膰. Wiesz jakie technologie s膮 u偶ywane w zespole, mo偶e nawet dochodzisz do wniosku, 偶e niekt贸re nie sprawdzaj膮 si臋 zbyt dobrze. W tym artykule opisz臋, jak zacz膮膰 poprawia膰 swoje umiej臋tno艣ci, zaczynaj膮c od technologii kt贸re znamy i przechodz膮c do tych, kt贸re przydaj膮 si臋 nam mniej.


Nasze s艂abe punkty

Pierwszy akapit i od razu z grubej rury...

W projekcie jest zwykle tak, 偶e musimy jak膮艣 funkcjonalno艣膰 sko艅czy膰 jak najszybciej. Powoduje to d艂ug technologiczny. Napisali艣my kod kt贸ry dzia艂a, ale nie wiemy do ko艅ca jak, albo z daleka widzimy 偶e rozwi膮zanie jest ma艂o eleganckie. Albo napisanie jakiego艣 niby prostego fragmentu kodu zaj臋艂o nam du偶o czasu, bo np. brakowa艂o nam wiedzy w pewnym obszarze j臋zyka.

Je艣li 艣wiadomie nie zajmiesz si臋 takim obszarem, b臋dziesz pope艂nia艂 te same b艂臋dy za ka偶dym razem.

Moja porada - zapisuj sobie wszystkie takie rzeczy na kartce i wrzucaj je na list臋 rzeczy do nauczenia, a nast臋pnie konsekwentnie si臋 tego douczaj. Je艣li widzisz d艂ug techniczny, szukaj sposob贸w na jego popraw臋. R贸b projekty demo, kt贸re pozwalaj膮 na wy膰wiczenie danej umiej臋tno艣ci. Zajrzyj do dokumentacji, by膰 mo偶e problem z kt贸rym si臋 m臋czy艂e艣 by艂 ju偶 dobrze opisany. Taka analiza po napisaniu kodu jest wa偶na, poniewa偶 nie skupiasz si臋 wtedy na rozwi膮zaniu problemu a na innych aspektach.

W tym obszarze warto zastosowa膰 jak膮 form臋 treningu, na przyk艂ad przerabianie zada艅.

Ulepszenia

Czasem wi臋cej dobrego wyci膮gniemy z ulepszania tego, co ju偶 mamy, ni偶 z pr贸b odkrycia czego艣 zupe艂nie nowego.

W latach 70. James Dyson postanowi艂 偶e stworzy odkurzacz o jakim 艣wiatu si臋 nie 艣ni艂o. Wymy艣li艂 odkurzacz bezworkowy i po艣wi臋ci艂 czas na ulepszenie ka偶dego aspektu tradycyjnego odkurzacza. Powsta艂a z tego firma warta ponad miliard dolar贸w.

Co by si臋 sta艂o, gdyby艣 codziennie ulepszy艂 jedn膮 rzecz w swoim projekcie, zaczynaj膮c od rzeczy kluczowych? By膰 mo偶e pewne struktury kodu s膮 ju偶 przestarza艂e, albo zdajesz sobie spraw臋, 偶e kod m贸g艂by dzia艂a膰 wydajniej. A mo偶e wprowadzenie jakiej艣 zmiany pozwoli u偶ytkownikowi na wygodniejsze korzystanie, albo programi艣cie na 艂atwiejsze tworzenie kodu. Albo mo偶e istnieje biblioteka (lub mo偶esz napisa膰 tak膮 bibliotek臋), kt贸ra pozwoli na wyizolowanie pewnego obszaru kodu i mniejsze zwi膮zanie go z obecnym…

Przyk艂adem mo偶e by膰 repo, https://github.com/ngneat, kt贸rej autorzy opracowali mi臋dzy innymi Transloco do t艂umacze艅 w Angularze oraz Spectatora, u艂atwiaj膮cego testowanie.

Nowe pomys艂y najlepiej wypr贸bowywa膰 w swoich projektach lub w projektach typu greenfield, gdzie tworzysz co艣 nowego. Je艣li dzia艂aj膮 dobrze, mo偶na je wprowadza膰 na przyk艂ad w nowych funkcjonalno艣ciach w obecnym projekcie.

Ostrzenie pi艂y, czyli szlifowanie umiej臋tno艣ci

To poj臋cie pochodzi z ksi膮偶ki Stevena Coveya 7 nawyk贸w skutecznego dzia艂ania. Wyt艂umacz臋 to na moim ulubionym modelu, czyli na grze w szachy.

Za艂贸偶my 偶e ju偶 znasz zasady szach贸w, wiesz jak da膰 mata na kilka sposob贸w i chcesz zwi臋kszy膰 sw贸j poziom. W takiej sytuacji najgorsze co mo偶esz zrobi膰, to … tylko gra膰 w szachy. Je艣li chcesz gra膰 lepiej, musisz przerabia膰 podr臋czniki szachowe, ogl膮da膰 filmy na temat strategii i taktyki i robi膰 膰wiczenia. Wtedy Tw贸j poziom ro艣nie. Z biegiem czasu wybierasz coraz trudniejsze materia艂y.

Podobnie jest w programowaniu, je艣li tylko dzia艂asz na projekcie, albo si臋 nudzisz powtarzalnymi taskami, albo frustrujesz si臋, bo stale co艣 Ci nie wychodzi. Cz臋sto ten problem zauwa偶am backendowc贸w kt贸rzy zacz臋li robi膰 GUI. Pr贸buj膮 zmienia膰 kod CSS i zwykle nic z tego nie wynika, opr贸cz zdenerwowania. Tymczasem warto by najpierw zapozna膰 si臋 z tym, jak co艣 dzia艂a a potem zmienia膰.

Druga rzecz - je艣li programujesz d艂ugo w danej technologii, powiniene艣 co jaki艣 czas przegl膮da膰 dokumentacj臋, aby przypomnie膰 sobie jak co dzia艂a. O niekt贸rych rzeczach po prostu zapominamy.

Ciekawo艣膰

Bardzo dobr膮 cech膮 programisty jest dociekliwo艣膰, doszukiwanie informacji o tym, jak rzeczy dzia艂aj膮. Warto robi膰 to nawet wtedy, gdy dana technologia nie dotyka nas bezpo艣rednio. Przyk艂ady - mo偶esz np. sprawdza膰 jak dzia艂aj膮 pod spodem biblioteki, albo analizowa膰 dzia艂anie frontendu/backendu, nawet je艣li w nim nie pracujesz.
W programowaniu ci膮gle pojawiaj膮 si臋 nowe rzeczy. Mo偶esz si臋 z nimi zapozna膰 na przyk艂ad zapisuj膮c si臋 do kilku newsletter贸w. Dzi臋ki takiej proaktywnej postawie zawsze b臋dziesz mia艂 do odkrycia co艣 nowego, a Twoja praca stanie si臋 艂atwiejsza i ciekawsza.

Podstawy - matematyka i algorytmy

Tutaj kryje si臋 ogromna dawka niewiedzy. Czy wiesz, do czego u偶ywa si臋 transformaty Fouriera? Albo czym s膮 liczby urojone, lub jak liczy si臋 cosinus? Czy pami臋tasz jeszcze co艣 ze z艂o偶ono艣ci algorytmicznej? Matematyka i algorytmika to podstawy informatyki i je艣li ich nie znasz, to niekt贸re rozwi膮zania b臋dziesz wynajdywa艂 na nowo, a niekt贸rych problem贸w nie rozwi膮偶esz wcale. Ksi膮偶ki z tych dw贸ch temat贸w nie starzej膮 si臋, dlatego warto je mie膰 na p贸艂ce.

Nowe rzeczy

Warto tak偶e zg艂臋bia膰 nowe dziedziny informatyki, rzeczy kt贸re mog膮 ca艂kowicie zmieni膰 to, jak pracujemy za kilka lat. Przyk艂ady - ML, BigData, IOT (Internet of Things) czy Blockchain. By膰 mo偶e w Twojej obecnej pracy jest mo偶liwo艣膰 zajmowania si臋 projektem kt贸ry jest nieco ciekawszy, ni偶 zwyk艂y CRUD. A mo偶e taki program u艂atwi Ci jakie艣 powtarzalne zadania w domu i warto stworzy膰 go samemu?

Brak komentarzy:

Prze艣lij komentarz