Co trzeba umieć, żeby dostać pierwszą pracę jako programista?

Co trzeba umieć, żeby dostać pierwszą pracę?

Przyjrzymy się dzisiaj dosyć ciekawemu zagadnieniu, a mianowicie odpowiemy sobie na pytanie: jakie są podstawowe umiejętności programistyczne, które należy posiąść, żeby z powodzeniem szukać swojej pierwszej pracy jako programista.

Z tego odcinka dowiesz się:

  •  jakie są najczęstsze wymagania wobec kandydatów na stanowisko Junior Developer;
  • od czego warto zacząć naukę programowania, a co można zostawić na potem;
  • co trzeba umieć, żeby dostać swoją pierwszą pracę jako programista.

Mówić o sobie programista

Jest to odświeżona i rozbudowana wersja wpisu, który pierwotnie powstał na podstawie opinii ze wpisu:  Planowanie pracy kwartalnie.

Zwróciłem się tam do Was z prośbą o opinię na temat przyszłych tekstów na blogu. Wasze odpowiedzi przerosły moje oczekiwania, za co jestem Wam niezmiernie wdzięczny. Przede wszystkim dziękuję za wszelkie miłe słowa oraz podesłane sugestie, bo to właśnie one mają bardzo duży wpływ na to, co robię.

Szczególne podziękowania i gratulacje należą się Przemkowi. Poniżej znajdziecie fragment naszej korespondencji.

Mówić o sobie programista

Mówić o sobie programista

Przemku, jeszcze raz ogromne gratulacje!

Najtrudniej jest zacząć – później, gdy widać efekty, działać jest już dużo łatwiej, a jak widzicie na przykładzie Przemka, jest to osiągalne.

Uwielbiam otrzymywać tego typu wiadomości. To naprawdę uskrzydla i motywuje do dalszych działań. Jeżeli tylko macie ochotę napisać do jakiegoś autora (do mnie, czy kogokolwiek innego) śmiało to róbcie. Po drugiej stronie monitora naprawdę siedzi żywa osoba, która z pewnością doceni Wasz wysiłek. Nie chodzi tylko o miłe słowa, ale również o konstruktywną krytykę. Tylko dzięki takiej informacji zwrotnej mogę dowiedzieć się, że to, co robię działa i ma sens – lub jest jego pozbawione.

Jest to jeden z większych problemów przy komunikacji zdalnej. Jeżeli właśnie Ty nie wyślesz mi wiadomości, że coś robię źle lub mógłbym to zrobić lepiej, to jak mam się o tym dowiedzieć?

Zauważyłem, że od kiedy publikuję swoje treści w Internecie, dużo łatwiej jest mi odezwać się do innych autorów, gdy znajdę jakieś błędy. Robię to, ponieważ wiem, jak dla mnie taka informacja jest ważna.

Jak zostać programistą

Wspólnie z kolegami po fachu zebraliśmy treści pomagające młodym programistom łatwiej rozpocząć pracę w nowym zawodzie. Myślę, że mogą Cię one zainteresować.

[jak-zostac-programista-linki]

Co trzeba umieć, żeby dostać pierwszą pracę?

Przechodząc już do sedna, zastanówmy się jakie umiejętności trzeba posiąść, by dostać swoją pierwszą, wymarzoną pracę. Nie ma co się oszukiwać, to nie jest matematyka i nie znajdziemy jednej prostej recepty, która jednoznacznie odpowie nam na to pytanie. Każda firma, technologia, czy nawet miasto, w którym szukasz pracy, jest to całkowicie inna sytuacja i wymagania oczywiście będą trochę inne. Jednak mimo to, można wyróżnić zbiór takich podstawowych umiejętności, które powinna posiąść osoba starająca się o pracę jako programista.

Co musi umieć początkujący programista

Moim zdaniem takie absolutne podstawy to:

1. Programowanie obiektowe

Większość projektów informatycznych jest realizowana w językach wspierających obiektowość. To od nich masz największe szanse zacząć i dlatego musisz znać przynajmniej podstawy tego podejścia. Najlepiej zacząć od podstawowych pojęć takich jak: klasa, obiekt, dziedziczenie, abstrakcja, polimorfizm, hermetyzacja itp. W kolejnych wpisach postaram się, by kurs Java został rozszerzony o te zagadnienia.

Sama znajomość zagadnień programowania obiektowego to jednak za mało. Powinieneś również umieć wykorzystać je w praktyce, czyli przenieść sytuacje z życia codziennego na hierarchię klas oraz relacji między nimi. Zrób sobie ćwiczenie i spróbuj zaprojektować bibliotekę, sklep meblowy lub cokolwiek innego. Już jedno takie ćwiczenie pozwoli Ci utrwalić tę wiedzę w praktyce.

2. Podstawy dowolnej bazy danych

Ciężko wyobrazić sobie bardziej złożony system, który nie posiada żadnej bazy danych. Gdzieś dane przecież trzeba trzymać. Oczywiście można zacząć od przechowywania informacji w zwykłych plikach, ale szybko natrafimy na liczne ograniczenia i trudności techniczne.

Warto nauczyć się podstaw dowolnej bazy danych. Nawet jeżeli w pracy będziesz miał inny silnik bazodanowy, to na podstawie podobieństw będzie Ci dużo łatwiej się go nauczyć, niż gdybyś startował od zera.

Zacznij od podstawowych operacji takich jak: SELECT, INSERT, UPDATE, JOIN itp.

3. System kontroli wersji GIT

Czasy trzymania poszczególnych wersji aplikacji w osobnych katalogach z datą całe szczęście odeszły w niepamięć. Większość zespołów już dawno przesiadła się na GITa lub chciałaby to zrobić w najbliższej przyszłości. Chcąc wydajnie pracować nad projektem, powinieneś poznać podstawy dowolnego systemu kontroli wersji, najlepiej GIT, ponieważ jest on obecnie najbardziej popularny.

Więcej o gicie przeczytasz na kurs GIT.

4. Samodzielność i szukanie informacji

Stanowiska juniorskie od seniorskich różnią się przede wszystkim poziomem samodzielności. Na początku nikt oczywiście nie wymaga, byś wszystko robił sam. Miej jednak na uwadze, że nowy pracownik, zwłaszcza bez doświadczenia, to na początku duży koszt dla firmy (lub jak wolisz inwestycja). Dlatego umiejętność radzenia sobie samemu oraz szukanie informacji, to bardzo cenione cechy.

Zanim zaczniesz szukać pomocy u kolegów, sprawdź, czy odpowiedzi na Twoje pytanie nie ma w dokumentacji, pierwszej stronie wyników Google, Stack Overflow itp.

W praktyce inni programiści zazwyczaj są bardzo pomocni i chętnie odpowiadają na najróżniejsze pytania – jest to kolejna rzecz, za którą bardzo lubię tę branżę. Jednak staraj się nie nadużywać pomocy innych – zwyczajnie szanujmy się wzajemnie. Każdy ma jakieś zadania do wykonania i swoje problemy. Jeżeli ktoś pomaga Ci, to nie może w tym czasie wykonywać swoich obowiązków.

➡ ZOBACZ 👉: Szukaj w google

5. Kompetencje miękkie

Tak, to też jest bardzo ważne!

Nikt nie lubi pracować z osobami zadufanymi w sobie i niemiłymi. Nawet programiści czasem muszą się kontaktować z innymi osobami, a braki w umiejętnościach technicznych zazwyczaj łatwiej jest nadrobić, aniżeli zmienić charakter osoby.

Mówi się, że interesy robimy z osobami, które zwyczajnie lubimy. Ponieważ spędzamy bardzo dużo czasu ze swoimi współpracownikami, nikogo nie powinien dziwić fakt, że chcemy spędzić ten czas miło, z ludźmi na odpowiednim poziomie.

Więcej na ten temat przeczytasz w artykule: Umiejętności i kompetencje miękkie – soft skills.

6. Przynajmniej jeden zrealizowany projekt

Po licznych rozmowach z ludźmi, zaczynającymi swoją karierę w IT, przekonałem się, jak ważne jest zrealizowanie przynajmniej jednego projektu informatycznego od samego początku, do jego końca.

Jeżeli nie wdrożyłeś żadnego projektu produkcyjnie, to tak naprawdę nie znasz jeszcze życia projektowego. Dopiero doprowadzenie przynajmniej jednego projektu od początku do samego końca i zebranie opinie od prawdziwych użytkowników daje pełny i prawdziwy pogląd na temat pracy programisty.

Nie musi to być nic wielkiego. Wystarczy, że doprowadzisz do końca jakiś swój wybrany projekt. Gwarantuję Ci, że będziesz zaskoczony ogromem rzeczy, które musiałeś zrobić i których musiałeś się douczyć, a o których nie pomyślałeś nawet na początku projektu. Jest to również świetna okazja, by uzupełnić swoje portfolio projektów w CV.

➡ ZOBACZ 👉: CV Programisty – moje doświadczenia i konsultacje

7. Znajomość technologii

Celowo wymieniam tę umiejętność pod koniec, by wyraźnie zwrócić Twoją uwagę na pozostałe punkty. Tak zwane umiejętności twarde są bardzo często przeceniane przez programistów. Oczywiście znajomość przynajmniej jednego języka programowania jest niezbędna, żeby w ogóle myśleć o programowaniu. Jednak bez pozostałych wymienionych tu kompetencji i tak wiele nie zrobimy.

Technologia dla programisty jest narzędziem pracy, którym powinien posługiwać się możliwie jak najlepiej. Jest to wiedza, której podstawy stosunkowo łatwo zdobyć, a mimo to nawet po kilku latach aktywnego programowania ciągle można odkryć jakieś kruczki, o których wcześniej nie miało się pojęcia.

Zacznij od podstaw składni swojego ulubionego języka programowania, np. Javy. Powinieneś sprawnie posługiwać się zmiennymi, instrukcjami warunkowymi, operatorami logicznymi i arytmetycznymi, strukturami danych itp.

➡ ZOBACZ
👉: Jak się uczyć programowania? Sprawdzone sposoby na naukę nowych rzeczy i pogłębianie wiedzy.
👉: Kurs Java | Darmowy Kurs Programowania w Javie

8. Umiejętność rozwiązywania problemów i ich dekompozycji

Z moich obserwacji wynika, że początkujący programiści mają bardzo dużo problemów, zanim jeszcze dojdzie do samego pisania kodu. Zrozumienie problemu oraz późniejsze rozbicie go na mniejsze zadania, tak by można było je swobodnie rozwiązać, jest jedną z kluczowych umiejętności, bez której nie poradzisz sobie z większymi zadaniami.

By się tego nauczyć trzeba po prostu wyćwiczyć w sobie tę umiejętność. Rozwiązując kolejne, coraz to trudniejsze zadania, nauczysz się wyłapywać odpowiednie schematy i relacje, tak by bez trudu rozwiązywać nawet skomplikowane problemy.

Czy to już wszystko, co muszę umieć?

Zdecydowanie nie! Jest to jednak świetny punkt wyjścia do dalszego pogłębiania swojej wiedzy. Taki bagaż umiejętności i doświadczeń powinien Ci jednak pozwolić już dość konkretnie myśleć o podjęciu pierwszej pracy lub stażu. Dalszą naukę najlepiej jest kontynuować już przy prawdziwych projektach i sukcesywnie zwiększać sobie poziom trudności.

Z mojej strony życzę Ci wytrwałości i samozaparcia w pogłębianiu swojej wiedzy. Powodzenia. Pamiętaj też, że w razie potrzeby służę pomocą.

Dodatkowe materiały

 


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

2 komentarze
Share:

2 Comments

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *