6 rzeczy, które każdy junior powinien wiedzieć
Opiszę dzisiaj wnioski, które nasunęły się przez cały czas mojej nauki. Podpowiem gdzie umieścić swoje projekty żeby nadawały się do portfolio. Udowodnię, że wyszukiwanie rozwiązań w Google to bardzo dobra rzecz. Podrzucę pomysł na tworzenie projektów i wyleczę Cię z fobii do frameworków. Zaczynajmy!
#1 Korzystanie z Githuba
To chyba najważniejsza rzecz, o której chciałbym wiedzieć jak zaczynałem swoją przygodę z programowaniem. Wbrew pozorom, podstawy obsługi tego portalu nie są skompikowane, a jeśli chcesz je poznać, to zapraszam do mojego wcześniejszego postu, gdzie wyjaśniłem wszystkie kroki od założenia konta po pierwszy commit.
http://www.idaszak.com/article/2017/03/23/daj-sie-poznac-2-projekt-konkursowy-mistrzmakro.
Wrzucanie publicznie kodu to świetna wizytówka podczas szukania pracy, oraz świetny sposób żeby otrzymać jakiś feedback. Na swoim profilu widać ile commitów zrobiłeś na każdy dzień, myślę że spora ilość, pokazująca przepracowane godziny z kodem świadczy bardzo dobrze o młodym programiście.
Systematyczne commitowanie warto mieć na uwadze, a może nam pomóc w tym challenge #100DaysOfCode, który jest opisany szerzej na stronie medium https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4#.wfu98r7q0
a w skrócie polega na tym, by przez 100 dni wrzucać kod na Github i dokumentować wykonaną pracę w specjalnym repozytorium.
#2 Praktyka ponad teorią
We wcześniejszym poście opisywałem początki mojej nauki, gdzie przedzierałem sie przez grube książki, zamiast pisać projekty. Na początek najlepiej zabrać się za tutoriale i wspomóc się Stack Overflow, żeby poznać zastosowania języka, dopiero potem zainteresować się bardziej teorią. Zyskamy wtedy szerszy pogląd na różne zagadnienia i łatwiej będzie nam sobie wyobrazić przykłady z książek. Kolejnym krokiem powinien być własny projekt. Możemy w taki sposób wzmocnić swoje portfolio. Wiele osób poleca tworzyć projekty, które zostaną ukończone i wydane w internecie do ogólnego użycia. Pracodawcy cenią bardziej projekty, które nie są tylko "pisane do szuflady".
Skąd brać pomysły na projekty? Osobiście nie miałem większej okazji korzystać, ale podobno Free Code Camp pozwala na stworzenie wielu ciekawych projektów. Dobrym pomysłem jest też uczestniczenie w projektach open sourcowych. Wyszukiwać takie można w Githubowej zakładce trending, a potem szukać zadań do wykonania w zakładce Issues
#3 Google zamiast forum
Internet jest tak ogromnym miejscem, że możemy znaleźć w nim rozwiązania prawie wszystkich programistycznych problemów, jednak wymogiem jest posługiwanie się językiem angielskim. Stack overflow, to wspaniałe miejsce, gdzie zaczynając swoją przygodę z językiem czy frameworkiem możemy znaleźć bardzo przydatne fragmenty kodu. Trzeba tylko uważać czy dany kod nie jest sprzed wielu lat, lub nie jest złą praktyką. Apeluję, żeby nie zaśmiecać forów internetowych i grup na Facebooku, na których codziennie mozna znaleźć setki pytań, które można rozwiązać pierwszym linkiem z google.
Czy to wstyd że programista czegoś nie zna na pamięć i sprawdza coś banalnego w dokumentacji czy Stack Overflow? Świetnie obrazuje to akcja developerów na twitterze, gdzie ludzie przeciwstawili się pisaniem kodu na tablicy z głowy podczas rozmów kwalifikacyjnych. Przykładowe tweety możesz zobaczyć poniżej:
Hello, my name is David. I would fail to write bubble sort on a whiteboard. I look code up on the internet all the time. I don't do riddles.
— DHH (@dhh) 21 lutego 2017
Hello my name is Jon, I'm the Android lead at Phunware. I can't read an input stream without copying and pasting code from stack overflow. https://t.co/EsZWcTP1Us
— Jon F Hancock (@JonFHancock) 21 lutego 2017
Hello my name is Sadiksha, I am working on rails since 2011. I don't know migrations syntax to add/remove column, I google it everytime. https://t.co/sIMUFoeG7r
— Sadiksha Gautam (@sadikshagautam) 26 lutego 2017
Hello, my name is Tim. I'm a lead at Google with over 30 years coding experience and I need to look up how to get length of a python string. https://t.co/TZZeckGPyw
— Tim Dierks (@tdierks) 26 lutego 2017
#4 Nie ucz się samotnie
Uważam, że podjęta decyzja o nauce programowania nie jest czymś co warto dzielić z wszystkimi. Mogą pojawić się negatywne opinie ludzi, którzy sami nie są zdolni do takiego kroku. Jednak odnalezienie partnera chętnego do wspólnej nauki, to niesamowity kopniak motywujący do działania. Dzielenie się małymi sukcesami i nowymi informacjami bardzo ułatwi naukę. Pamiętaj, że proces uczenia się jest bardziej efektywny, gdy przyswojoną wiedzę próbujemy przekazać komuś innemu. Świetnym pomysłem jest też odnalezienie doświadczonego mentora, który pokieruje nauką, albo usiądzie i będzie programował razem z Tobą. Poza tym, że wyniesiesz z tego bardzo dużo wiadomości, to będziesz gotów, jeśli na rozmowie kwalifikacyjnej wymagany będzie "pair programming".
#5 Nie bój sie frameworków!
Ten punkt jest jakby odnośnikiem do punktu drugiego. Na forach i grupach doświadczeni programiści podkreślają wagę czystego języka, bez frameworków. Straszą, że frameworki są niesamowicie skomplikowane i na początku nauki nie ma sensu się ich uczyć. Oczywiście nie podważam tego, tak samo uważam że w wielu wypadkach lepsze aplikacje można by zrobić bez użycia żadnej biblioteki czy frameworka zajmującego dużo pamięci, a podstawy języka powinno się bardzo dobrze znać. Jednak realia są zupełnie inne, posady dla początkujących programistów wymagają poza podstawową wiedzą znajomości frameworków.
Przy dzisiejszej dostępności najróżniejszych tutoriali, kursów i dobrych dokumentacji nie jest trudno poznać podstawy frameworka. A to właśnie frameworki pozwalają poznać więcej zaawansowanych konceptów w programowaniu, które ciężko zrozumieć początkującym poprzez samo oglądanie przykładów w książce.
#6 LinkedIn, CV, Portfolio
Github to strona, która w prosty sposób może odgrywać dla nas rolę portfolio. Jednak gdzie można znaleźć najwięcej programistów i rekruterów podczas szukania pracy? Portal LinkedIn umożliwia stworzenie własnego wirtualnego CV oraz zbudowania sieci znajomości, które mogą pomóc nam w znalezieniu pracy. Sam Linkedin posiada także grupy dyskusyjne przypominające te na Facebooku. Poza stworzeniem konta na LinkedIn, warto także pomyśleć o swoim CV. Dobrze jest myśleć o nim od początku swojej nauki, żeby wpaść na pomysł, jak wypełnić lukę w tabeli zawierającej doświadczenie.