3 projekty, które wpłyną na twoją karierę


Poznaj 3 kategorie projektów, które wpłyną na twoją karierę i wzniosą Cię na wyższy poziom.


Rynek jest zalewany ogłoszeniami o pracę dla Juniorów. Jednocześnie juniorzy mają problem ze znalezieniem swojej pierwszej pracy. Z czego to może wynikać? Czy wymagania na pierwszą pracę są zbyt wygórowane? A może to kandydaci są za słabi? Dobre portfolio może pomóc w znalezienia swojej pierwszej pracy. A co powinno się w nim znaleźć? Zapraszam do lektury, zwłaszcza dla programistów webowych.

Całość podzieliłem na 3 kategorię. Jednak zanim do tego dojdziemy musisz przestawić trochę myślenie. Po pierwsze portfolio to nie tylko twoja "teczka". Jest dużo pracodawców, którzy nawet tego nie zauważą. Budując portfollio bardzo się uczysz i na tym skup się na swoich początkach. W poprzednim wpisie opisałem jak się uczyć . Dziś przejdźmy do konkretów i zobaczmy 3 projekty, które wpłyną na twoją karierę.

Przede wszystkim, nie pisz programu na ślepo. Nie próbuj też dopasować problemu do aplikacji, która twoim zdaniem go rozwiąże. Na samym początku określ problem. Zastanów się czy jest coś czym się interesujesz. A może coś co możesz zautomatyzować? Jest jakaś aplikacją którą używasz ale ma ona w sobie jakieś wady? Poświęć chwilę i poszukaj obszarów w których możesz coś poprawić.

A teraz wspomnianych wcześniej kategori.

Scraper/Crawler

O różnicy między sraperami i crawlerami można napisać bardzo ciekawy artykuł. Mają one bowiem różne zastosowania ale często korzysta się z nich wspólnie. W bardzo dużym uproszczeniu crawler, to taki robot co chodzi sobie po stronach i na ich podstawie robi jakąś listę. Scraper natomiast wyciąga ze strony potrzebne informacje. Teraz pomyśl jaki program możesz napisać.

Często korzystasz z konkretnych stron internetowych? Może jakieś informacje możesz wyciągać automatycznie

Szukasz promocji na pepper? Zrób automat, który wyłapie promocje za Ciebie.

Polujesz na wymarzone auto na serwisie aukcyjnym? Skrypt, który śledzi zmiany wyłapie każde ogłoszenie będzie bardzo pomocny.

Może zbierasz newsy z różnych stron? Po co szukać ich po różnych serwisach, skoro możesz grupować je w jednym miejscu.

Grasz w gry i korzystasz z poradników lub historii meczów? Ustaw powiadomienie za każdym razem gdy wyjdzie aktualizacja wpisu twojej ulubionej postaci.

I mój ulubiony - Lubisz gotować ale nie masz pomysłu na obiad? Niech skrypt losuje za Ciebie przepis i robi listę potrzebnych składników.

Jak widzisz możliwości jest bardzo dużo. Takie skrypty nauczą Cię jak odpytuje się różne strony i wyciąga z nich odpowiednie treści. Do tego przyda się jakieś automatyczne uruchamianie tego i powiadomienia, a więc kolejna porcja wiedzy. Jak widzisz niby prosty skrypt, a trochę pracy trzeba w to włożyć.

Możesz zapytać jak takie proste skrypty wpłyną na twoją karierę. Po pierwsze pokazujesz, że rozwiązujesz konkretny problem, co już jest wartością samą w sobie. Po drugie taki produkt w przyszłości może okazać się twoim źródłem zarobku. Nie muszą to być od razu miliony ale nawet niewielki pasywny dochód może dodać Ci pewności siebie. I na koniec pomimo tego, że są to proste projekty to wymagają jednak pewnego zestawu umiejętności i skutecznego rozwiązywania problemów.

API

Umiejętność korzystania z API jest bardzo ważna dla każdego programisty. API jest to po prostu zestaw reguł w jaki sposób dane programy, bądź fragmenty programów się ze sobą komunikują. Ja mam na myśli API webowe, czyli interfejs sieciowy. Aktualnie najczęściej do komunikacji używa się protokołu HTTP, dlatego też warto się z nim zapoznać.

Na temat samego API można pisać bardzo dużo. Skupmy się na jego praktycznym zastosowaniu.

Pisząc program, który komunikuje się z zewnętrznym API stajesz przed masą różnych wyzwań, którym musisz sprostać. Musisz podjąć decyzję min.

  • W jaki sposób bezpiecznie przechowasz klucz API.
  • W jaki sposób będziesz się autoryzował, o ile autoryzacja jest wymagana.
  • Musisz zaimplementować odpowiednią serializację danych. W związku z tym musisz wybrać najlepsze narzędzie do tej serializacji.
  • Czasem zachodzi potrzeba integracji się z więcej niż jednym API i dane należy w jakiś sposób zintegrować. W jaki sposób to zrobisz również zależy od Ciebie.
  • Walidacja danych i obsługa błędów jest również bardzo ważną kwestią.
  • No i w końcu musisz pamiętać, że łączysz się z inną, często zewnętrzną usługą. Musisz przyjąć, że ta usługa nie jest idealna i nie zawsze odpowie w wyznaczonym czasie. Może się też zdarzyć, że w odpowiedzi dostaniesz błąd. Nie możesz swojej aplikacji uzależniać w całości od zewnętrznych usług i to. Ty powinieneś zadbać o odpowiednie zabezpieczenie takich przypadków.

Jak widzisz jest sporo kwestii o których musisz pamiętać, dlatego implementacja takiego API jest bardzo rozwijająca. Umiejętność korzystania z API  jest również ogromnym plusem podczas ewentualnych rekrutacji .

No dobra, wiemy już jakie problemy mogą Cię spotkać podczas implementacji programu, który korzysta z API. Ale gdzie szukać inspiracji? Skąd wiedzieć jaki problem zaimplementować. Tu podobnie jak wcześniej, ogranicza Cię jedynie wyobraźnia. Niemal każdy problem jaki możesz wymyślić ma wystawione publiczne API w internecie . Zaczynając od API z cenami w sklepach wystawionych np. przez Nokaut po API z NASA jeśli chcesz agregować zdjęcia różnych planet. Lubisz filmy i chcesz na bieżąco pobierać informacje o filmach? Polecam np. OMDB API. A może to Ty chcesz wystawić jakieś API? Myślisz nad aplikacją mobilną i internetową, które będą miały wspólne źródło danych? Wspólne API jest tutaj kluczowe. Wystarczy trochę czasu i kreatywności.

Od kilku lat modne są też mikroserwisy i w nich jest to kluczowa umiejętność, dlatego pokazując że wiesz jak korzystać z API zwiększasz swoje szanse podczas szukania pracy a nic tak nie wpłynie na twoją karierę jak zarobkowa praca :).

Od razu drobne sprostowanie - zwłaszcza na początku kariery praca w zespole z bardziej doświadczonymi osobami zwiększa prawdopodobieństwo i tempo skutecznego rozwoju. Są osoby, które dobrze czują się uczać się samodzielnie ale doświadczone oko kolegów szybciej pozwoli wyłapać Ci błędy i wskaże ścieżkę rozwoju, tym samym wpływając na twoją karierę. To taki lekki offtop ;)

Strona internetowa

No to teraz będzie najbardziej trywialny przykład, czyli strona internetowa. Ktoś może zarzucić, że ameryki tym nie odkryłem, bo programista webowy robi strony i to jest oczywiste. Ale mimo to wiele osób dalej pyta jaki projekt zrobić na początku kariery. Niezależnie od tego czy chcesz iść w stronę frontendu czy wolisz backend warto żebyś wiedział jak działa cały proces działania strony internetowej. Oczywiście to nie jest tak, że od razu musisz być fullstack deweloperem ale jak wspomniałem, warto jest się orientować a początek twojej drogi pozwoli wybrać w ktorą stronę wolisz iść.

Tu frontendowcy mają nieco łatwiej. Można bowiem zrobić bardzo fajną stronę, która nie musi mieć własnego backendu. Trudniej jest jednak pokazać nawet najlepszy backend bez dobrej wizualizacji. Później będzie łatwiej ale zaczynając swoją przygodę warto zrobić przynajmniej jedną, całą stronę. Chociażby po to, że poznać problemy tej drugiej strony i w przyszłości projektować systemy łatwiejsze w odbiorze.

Co może zawierać taka strona?
Może chcesz obsłużyć użytkowników z rejestracją i logowaniem. Na pewno powinieneś skupić się na kwestii cache i optymalizacji. A jeśli masz formularz na stronie, to przyda się jakieś zabezpieczenie przed spamem (tu zachęcam do zapoznania się z moim rozwiązaniem ). Wyświetlając obiekty zapewne nie pokażesz od razu wszystkich na jednej liście i przyda się jakaś paginacja lub endless scroll. To wszystko musi jakoś wyglądać, więc nawet jeśli nie lubisz css i js to skorzystasz przynajmniej z bootstrapa. To tylko czubek góry lodowej wymagań jakie stoją przed programistami webowymi ale już na tym etapie jest sporo do roboty.

Co pokazuje taki projekt? A no bardzo dużo. Przede wszystkim fakt, że potrafisz projekt dociągnąć do końca. Dwie poprzednie kategorie mogłeś realizować w postaci skryptów, które nie muszą mieć całej zewnętrznej otoczki. Pisząc stronę musisz zachaczyć o wszystkie aspekty wytwarzania oprogramowania, wliczając w to wdrożenie.

Strona internetowa może być ostatecznie opakowaniem do projektów które utworzyłeś wcześniej. Crawler znacznie łatwiej jest wyzwalać wchodząc na konkretny adres aniżeli za każdym razem uruchamiać to przez komendę. Na stronie możesz też ładniej zwizualizować wyniki i dzielić się nimi z innymi.

Prosta strona typu blog, lista todo, bądź kalkulator za bardzo nie pokażą twojego potencjału i tym bardziej nie będą atutem podczas rekrutacji ale już ładna strona z nowoczesnym designem, napisania w sprawdzonym frameworku w której dbasz o szybkość i bezpieczeństwo to coś co pozwoli Ci się wybić na rekrutacji, a jak wspomniałem wcześniej będzie to miało ogromny wpływ na twoją karierę.

Podsumowanie

Nie musisz od razu realizować wszystkich z trzech wspomnianych projektów. Podczas realizacji jednego może przyjść Ci pomysł na kolejny a może się okazać też, że wszystkie z wymienionych kategorii zawrzesz w jednym projekcie.

Już wiesz, że możesz wydobyć ze strony informacje poprzez scrapowanie. A może zamiast scrapować dane znajdziesz jakieś API? Może też zdarzyć się, że będziesz zbierać dane z różnych serwisów. Część z nich będzie udostępniać bardzo fajne API ale pozostałe nie i wtedy scrapowanie jest jedynym wyjściem na wydobycie danych. Korzystając ze strony internetowej ułatwiasz sobie dostęp do tych wszystkich informacji i w łatwy sposób budujesz portfolio. Zauważ jak ładnie się to wszystko zazębia.

Zaprezentowałem Ci projekty z trzech różnych kategorii. Każdy nauczy Cię innego zestawu umiejętności i każdy pokaże inne perspektywy. Jeśli zrealizujesz wszystkie z wymienionych, to będziesz mieć solidne podstawy i ciekawe portfolio, które ułatwią Ci dostać, lub zmienić pracę.

Ostatecznie będziesz realizować swoje projekty dzięki czemu twoja motywacja nie opadnie tak łatwo.

Nie jest to komplet problemów z jakimi się spotkasz podczas codziennej pracy. Ale moim zdaniem te wspomniane kategorie pozwolą zetknąć Ci się z ich największą częścią. Jak zapewne zauważyłeś wpis kierowany jest raczej do osób na początku swojej drogi i tych, którzy szukają pomysłów na projekty. Nie chciałem dawać gotowych zadań do implementacji, bo odszukanie problemu jest również istotną umiejętnością, która ma wpływ na twoją karierę.

Mam nadzieję, że przedstawione kategorie zmotywowały Cię do działania. Koniecznie podziel się w komentarzu swoimi pomysłami. A może już coś zrealizowałeś? O tym również daj znać. A jeśli uważasz, że tekst przydałby się innym których znasz to nie zwlekaj i koniecznie podziel się z nimi tym tekstem.

Oct 18, 2019

Najnowsze wpisy

Zobacz wszystkie