9 darmowych API dzięki, którym Twój projekt urwie 🍑 rekruterom.

kodujmy.pl 2 lat temu

To już ostatni commit, który wypchnąłeś do swojego repozytorium. Trzy poprzednie miesiące były ciężkie, zarywałeś noce, aby dokończyć swój projekt. Projekt nie byle jaki, bo będący przepustką do kariery programistycznej. Taką przynajmniej masz nadzieję. Liczysz, iż wiele godzin spędzonych na wertowaniu stackoverflow i hektolitry wypitej kawy były tego warte. Oczekujesz, iż któryś z rekruterów w końcu odpowie na Twoją kandydaturę i zaprosi Cię do kolejnego etapu.

Niestety, nic takiego nie ma miejsca, a Ty zaczynasz się zastanawiać, co jest powodem takiego stanu rzeczy. Zaczynasz coraz poważniej traktować pojawiające się opinie, mówiące o tym, iż pracę w IT zdobywa się tak naprawdę po znajomości.

To jedna z opinii, na jakie natrafiłem ostatnimi czasy, niestety mocno dezinformująca innych.

Tak się składa, iż regularnie jestem po drugiej stronie monitora i zdarza mi się odrzucać projekty takie jak Twój. Mam kilka przemyśleń, z którymi chętnie się z Tobą podzielę.

Twój projekt jest bliźniaczo podobny do całej masy innych. Technicznie, to kolejny prosty CRUD z bazą danych opartą na dwóch tabelach. Złośliwy powiedziałby, iż to kolejna przeglądarka do bazy. Co więcej, ze świecą szukać tam interesującego fragmentu domeny, ot zwykłe encje na twarz i pchasz. Nie mam nic przeciwko prostym projektom, bo każdy od czegoś zaczyna i jest na różnym etapie nauki, to jednak w kontekście rekrutacji wygrywają te, które potrafią się wyróżnić.

CRUD to CRUD, choćby jak ma inny kolor.

Rekrutacja osób bez doświadczenia, często przypomina „Mam talent”, gdzie kandydaci często rywalizujemy z innymi o wymarzone stanowisko. Czasem proste detale typu dopracowane README czy schludny interfejs powodują, iż ktoś skrada tym serca jurorów rekruterów.

Porad jak taki projekt dałoby się uatrakcyjnić, jest sporo. W dzisiejszym artykule skupię się na jednej. Takiej, która z mojego doświadczenia do dziś nie jest praktykowana zbyt często, a powinna!

Dlaczego warto wykorzystywać zewnętrzne API w projekcie?

Być może zastanawiasz się, jak wykorzystanie rozwiązań innych miałoby Ci pomóc? Czy w rekrutacji na stanowisko programistyczne, nie chodzi właśnie o to, aby pokazać swoje umiejętności i zakodować coś od 0 i nie wspierać się gotowcami? Moim zdaniem nie zawsze, szczególnie o ile są powody, aby tego nie robić.

Pozwól, iż wypunktuję Ci, co daje skorzystanie z gotowych rozwiązań w postaci API.

Pokazujesz jedną z cenniejszych umiejętności – integrowanie systemów.

Podczas realizacji projektów komercyjnych bardzo istotną umiejętnością jest dzielenie większego problemu na pod problemy. Te z kolei, niekoniecznie muszą być rozwiązane w pełni przez Ciebie. Często, dużo mądrzejszym posunięciem będzie wykorzystanie gotowych usług, produktów, które przybliżą Cię do pożądanego celu, taniej i szybciej. Wie o tym większość doświadczonych programistów, która rozwiązuje problemy, a nie koduje dla samego faktu kodowania.

Jeżeli dopiero zaczynasz swoją karierę, to warto będzie o tym pamiętać i spróbować wpleść taki zestaw umiejętności w swoje projekty. Rekruterzy doceniają takie podejście i wiedzą, iż wiedza z pet projektów, jest dobrym fundamentem na przyszłość – już podczas komercyjnej pracy. Zdają sobie sprawę, iż integracja nie należy też do zadań trywialnych i stawia dużo ciekawych wyzwań na swojej drodze, które można rozwiązać.

Oszczędzasz czas, poprzez wykorzystanie gotowych funkcjonalności.

Kolejnym powodem jest oszczędność czasu. Tutaj można też znaleźć analogię do pracy profesjonalnej, gdzie z reguły rozwiązania pisane od zera stanowią tylko trzon domeny, zaś wszystko odtwórcze i mniej istotne, najlepiej jak jest realizowane przez gotowe komponenty. Nie zawsze się oczywiście da i czasem brakujące 5% potrafi wywrócić cały misterny plan do góry nogami. przez cały czas jest to jednak element, który ciężko pomijać podczas codziennej pracy.

Z Twojego podwórka projektu niekomercyjnego, wykorzystanie pewnych gotowych funkcjonalności API zaoszczędzi Ci mnóstwo czasu, który możesz wykorzystać na unikalną część projektu Twojego autorstwa. Załóżmy, iż API zwróci Ci zawsze świeże dane pogodowe/drogowe/kursów walut/nft/itd. Ty w tym czasie będziesz mógł wykazać się kreatywnością i zastanowić co dalej z tymi danymi zrobić.

Masz dostęp do ciekawych danych

Jest wiele API, które udostępniają interesujące dane. W bardzo łatwy sposób mogą uatrakcyjnić Twój projekt. Dużo milej ogląda się prawdziwe dane o kursach walut czy pogodowe, porównując je z samodzielnie przygotowanymi fikcyjnymi zbiorami Twojego autorstwa.

Jeżeli już o tych danych mówimy, to po raz kolejny zaoszczędzisz mnóstwo czasu w ich wprowadzanie. Mając pewność, iż ich jakość będzie stała na najwyższym poziomie. Z danymi wprowadzanymi przez Ciebie, może być natomiast różnie.

Twój projekt wygląda profesjonalniej.

To wszystko, sprawia, iż projekty wykorzystujące dane poprzez integrację z API, sprawiają wrażenie dużo bardziej profesjonalnych. Raz, iż właśnie tak często wyglądają złożone projekty komercyjne, dwa pokazują, iż osoba realizująca projekt działa w sposób mądry, nie wymyśla koła na nowo i skupia się na dowiezieniu wartości.

Lista świetnych API

Liczę, iż przynajmniej w jakimś stopniu zachęciłem Cię do wykorzystania API w swoim następnym projekcie. Poniżej krótka lista wybranych przeze mnie 10 otwartych API, wraz z pomysłami na projekt, które możesz wykorzystać przy następnej okazji.

Tasty API

https://rapidapi.com/apidojo/api/tasty/

Na pierwszy ogień leci API, serwujące gotowe przepisy kulinarne. Bazuje na przepisach dostępnych na stronie https://tasty.co i jest w stanie dostarczyć, pokaźną ilość danych, wliczając w to miniatury, składniki dania, kroki do jego wykonania, listę przypraw, a choćby nagranie z procesu przygotowania.

Co z jego pomocą można stworzyć? Mógłbyś np. pokusić się o serwis, który zbiera preferencje użytkownika i serwuje mu losowy przepis na podstawie tych preferencji. Przykładowo jako użytkownik, chciałbym dostać szybki przepis na jakiś deser do kawy, ale proszę, uwzględnij, iż mam uczulenie na laktozę.

API w darmowej wersji posiada limit 500 requestów dziennie, jednak na potrzeby budowy serwisu do swojego portfolio powinni wystarczyć.

Quiz API

https://quizapi.io/

To bardzo interesujący serwis oferujący bazę pytań i odpowiedzi w postaci API. Znajdziesz tutaj pytania dotyczące różnych technologii zaczynając od Linuxa, Dockera, MySQL, JavaScript i inne. Co więcej, o ile istniejąca baza nie spełni twoich oczekiwań, możesz ją rozszerzyć o własne pytania.

Jeżeli chodzi o projekt oparty na tego typu API, może to być to np. quiz sprawdzający z wiedzy na temat X, gdzie twoim wkładem w tym projekcie będzie przygotowanie algorytmu punktacyjnego, który uwzględni trudność pytań i prędkość odpowiedzi. W ramach projektu mógłby powstać też publiczna tablica highscores pokazująca osoby, które najlepiej poradziły sobie w quizie.

Words API

https://www.wordsapi.com/

Kolejną ciekawą stroną, którą można wykorzystać w twoim projekcie jest API słownikowe. Działa bardzo prosto, dostarczasz słowo, a API zwraca Ci, definicję, synonimy, antonimy, rymy i wiele innych powiązanych z tym słowem konstrukcji.

Projektem, który mi przychodzi do głowy na wykorzystanie takiego API, to edytor, który byłby w stanie wyłapywać powtórzenia i sugerować synonimy, lub generator wierszy, oferujący słowa rymujące. W przypadku niektórych funkcjonalności jak np. synonimy możesz pokusić się o połączenie API tłumaczącego (np. https://www.deepl.com oferujący jedną z najwyższych jakości tłumaczenia) i zbudowanie narzędzia wielojęzykowego.

Air Quality API

https://www.iqair.com/air-pollution-data-api

Temat smogu i zanieczyszczenia powietrza jest od kilku lat ważnym tematem społecznym. Równie interesujący i istotny może być Twój projekt oparty o API prezentujące dużo danych o jakości powietrza. API jest bardzo wygodne w użyciu, zwraca lokalizacje miejsc, dla których posiada dane i same informacje o zanieczyszczeniach. Tutaj jest z przykładów odpowiedzi:

{ "status": "success", "data": { "city": "Lodz", "state": "Lodz Voivodeship", "country": "Poland", "location": { "type": "Point", "coordinates": [ 19.4509, 51.775411 ] }, "current": { "weather": { "ts": "2021-12-28T15:00:00.000Z", "tp": -4, "pr": 1006, "hu": 84, "ws": 0.89, "wd": 135, "ic": "01n" }, "pollution": { "ts": "2021-12-28T14:00:00.000Z", "aqius": 91, "mainus": "p2", "aqicn": 44, "maincn": "p2" } } } }

Airtable API

https://airtable.com/api

Airtable to jak mówią sami twórcy hybryda arkusza kalkulacyjnego i bazy danych. Świetnie się sprawdza w celu porządkowania, zbierania i przetwarzania danych, posiada multum integracji z popularnymi serwisami, w ofercie znajdziesz również wygodne API, które można wykorzystać w swoim projekcie. W końcu nie samym SQLem człowiek żyje i czasem nasz zasób danych może stanowić kilka tabel w Airtable. Na pochwałę zasługuje wygodne API, które prezentuje przykłady na podstawie twoich faktycznych danych trzymanych w Airtable.

Jakie projekty możesz stworzyć dzięki takiemu API? Tutaj możliwości jest tak wiele, iż ciężko się ograniczyć. Ważniejsze aby na tego typu integrację, spojrzeć z perspektywy alternatywnego źródła danych.

Zawsze warto zerknąć na świat open source i na to czy jakiś projekt nie oferuje wygodnego wrappera na API, które chcemy użyć. W przypadku Airtable takim projektem jest np. https://github.com/Sybit-Education/airtable.java

Gofile

https://gofile.io/welcome

Jest spora liczba błędów początkujących, którzy chcą stworzyć program, który w swoim działaniu wykorzystuje pliki. Wśród najczęstszych jest to, że:

  • używają w tym celu lokalnego zasobu plików, który owszem lokalnie działa, o tyle po wdrożeniu na serwerze już niekoniecznie,
  • zapisują duże dane binarne w bazie (to praktyka, którą miałem okazję widzieć również w komercyjnych projektach),

A można przecież użyć w tym celu dedykowanych serwisów, do obsługi plików. Wśród najpopularniejszych prym wiedzie oczywiście usługa s3 od Amazon Web Services. Sprawdzi się tutaj genialnie i nie będzie nas nic kosztować (zakładając, iż dużo czasu upłynie, zanim wyczerpiemy nasz free tier) Minusem jest konieczność podpięcia naszej karty, co na etapie początkujących może nieść ryzyko wycieku klucza i w konsekwencji dużych strat finansowych.

Nie zrozum mnie źle, nie chcę straszyć, czy zniechęcać Cię do korzystania i nauki o chmurach. To bardzo wartościowa i porządna w tej chwili na rynku wiedza. Pragnę Cię jednak uczulić, na ryzyko, które istnieje i którego powinieneś być świadomy. Wszędzie tam, gdzie podajesz swoje wrażliwe dane bankowe, powinieneś obchodzić się z nimi bardzo ostrożnie.

Więcej o samych historiach wycieków i jak się przed nimi chronić przeczytasz np. tutaj:
https://ichi.pro/pl/jak-uchronic-sie-przed-nieoczekiwanie-wysokimi-rachunkami-za-aws-86625660856052

Są jednak darmowe alternatywy, które w pełni sprawdzą się tutaj podobnie co s3. Jedną z nich jest właśnie serwis Gofile, oferujący wygodne API Restowe do obsługi plików. W łatwy sposób możemy je wykorzystać w celu zapisywania danych od użytkowników, czy serwowania dowolnych plików przez naszą aplikację. Ten wygodny i sprawdzony sposób spowoduje, iż Twoja aplikacja nie będzie wymagała dużego serwera. Ty natomiast zostaniesz oceniony jako ten, który wie, jakie są dobre praktyki obsługi plików w projektach.

Co do samego pomysłu na aplikację, ciężko tutaj coś zaproponować. W dzisiejszych czasach niemal każda z aplikacji korzysta z plików w różnej postaci. Dlatego integracja z tego typu serwisem powinna znaleźć zastosowanie w bardzo wielu projektach.

Art Institute of Chicago

https://api.artic.edu

Interesującym pomysłem na aplikacje może być połączenie świata sztuki i technologii. Taką możliwość udostępnia między innymi Muzeum Sztuk Pięknych w Chicago, które oferuje API do swoich zbiorów. O samym muzeum warto wspomnieć, iż posiada w swoich zbiorach jedną z najwspanialszych na świecie kolekcji malarstwa europejskiego, obejmującą ponad 3500 dzieł. To tutaj znajdziesz między innymi obrazy Moneta, Picassa czy Van Gogha.

API oferuje interesujące zbiory danych, które mogą zostać wykorzystane w kreatywnych sposobów. Zaczynając od aplikacji typu Quiz, z wiedzy na temat malarstwa, po aplikację oferującą obraz na dziś + zbiór ciekawostek.

Craft My PDF

https://craftmypdf.com

Kolejnym bardzo ciekawym API, które ma szansę stać się podwaliną pod profesjonalny użytkowy projekt, jest craftmypdf. Serwis ten oferuje możliwość tworzenia szablonów pdf, które możemy dynamicznie generować. API jest bardzo proste, ale razem z intuicyjnym kreatorem szablonów w serwisie pozwala na pełną automatyzację wypluwania gotowych wypełnionych dokumentów.

Do czego taki serwis mógłbyś wykorzystać? Ja sam mam co najmniej kilka ciekawych pomysłów. Zaczynając od prostego systemu generowania faktur (z tą prostotą to może przesadziłem, w końcu jesteśmy w Polsce i system podatkowych, do najłatwiejszych nie należy ;-)) Innym pomysłem, może być generator imiennych certyfikatów lub generator imiennych kopii e-booków.

TomTom API

https://developer.tomtom.com/

Na koniec wspomnę o możliwości wykorzystania API firmy, dla której w tej chwili pracuję. o ile w swoim projekcie myślisz o wykorzystaniu danych lokalizacyjnych, to co oferuje TomTom będzie zdecydowanie warte rozważenia. Na uwagę zasługuje korzystna opcja Freemium, bez wymogu podania danych Twojej karty bankowej.

TomTom oferuje wiele API, które możesz wykorzystać w swoim projekcie. Znajdziesz tutaj API do map, nawigacji, miejsc czy informacji o aktualnym natężeniu ruchu drogowego. Daje Ci to duże możliwości do stworzenia interesującego projektu.

Poza samą okazją do podzielenia się ciekawymi API i jednoczesnym wypromowaniu rozwiązań firmy, w której pracuję, chciałem tutaj zawrzeć jeszcze jedno przemyślenie. W miejsce tego konkretnego przykładu API, mógłbyś wstawić jakiekolwiek inne, którego właścicielem jest firma, do której rozważasz aplikować. Moim zdaniem, tak skrojony projekt, nie tylko wyróżni się na tle innych, ale ma bardzo duże szanse, na to, aby pozytywnie zaskoczyć rekrutera. Tym samym, zadbasz o dobre wrażenie już na starcie. Piszę o tym, ponieważ tego typu zabieg jest niezwykle rzadki wśród kandydatów. Liczę na to, iż zmieni się to po publikacji tego artykułu.

Nowa edycja stażu w TomTom!

W momencie pisania tego artykułu mija kilka dni odkąd zakończyliśmy kolejną, ósmą już turę praktyk (31.12.2021). Kilkoro praktykantów kontynuuje z nami współpracę, są też osoby, które znalazły pracę w innych firmach (między innymi w Allegro, pozdro Adam :-))

W najbliższym czasie będziemy otwierać kolejny nabór do naszego programu stażowego. Rekrutacja jest prosta, bo składa się tylko z dwóch etapów, gdzie pierwszy to weryfikacja CV i własnego portfolio na Githubie. Drugi to godzinna rozmowa z nami. Dostać się jest stosunkowo ciężko (w ostatniej turze mieliśmy około 60 aplikacji, z których wybraliśmy 15 osób na rozmowy i z tej grupy wybraliśmy 4 najmocniejsze osoby). Zakładam, jednak, iż o ile jesteś czytelnikiem mojego bloga, możesz wyłapać kilka wskazówek, które pomogą Ci w całym procesie i zwiększysz swoje szanse. Zestaw porad po ostatniej rekrutacji spisałem w formie artykułu, który znajdziesz tutaj:

https://kodujmy.pl/9-rad-dla-osob-bez-doswiadczenia-szukajacych-pierwszej-pracy-lub-stazu-w-programowaniu/

Jeżeli jesteś na etapie poszukiwań pierwszego doświadczenia, to zapraszam do kontaktu.
Daj mi znać, na pewno rozważymy każdą kandydaturę

https://www.linkedin.com/in/towczarek/

Idź do oryginalnego materiału