Czy trzeba znać algorytmy, żeby być programistą?
Czy naprawdę musisz nauczyć się algorytmów, aby zostać programistą? Wiele osób rozpoczynających karierę programistyczną zadaje sobie to pytanie. Opowiem Tobie moje przemyślenia na temat algorytmów i tego, czy są one konieczne, czy nie.
W przeszłości technologia nie była tak zaawansowana jak teraz. Programiści musieli nauczyć się wielu algorytmów do implementacji kilku funkcji. Ale teraz mamy wiele bibliotek i narzędzi, które ułatwiają nam wszystko. Możemy więc tworzyć aplikacje nawet bez pomocy algorytmów.
To nie znaczy, że nie masz uczyć się algorytmów. Mam na myśli, że można programować zawodowo bez znajomości zaawansowanych algorytmów. Zwłaszcza, jeśli tworzysz aplikacje internetowe lub aplikacje mobilne.
Dlaczego mam uczyć się algorytmów ?
Prezentuję Tobie kilka argumentów, które potwierdzają, że warto uczyć się algorytmów:
Argument 1
Gdy umiesz używać algorytmów rozpoznasz problemy, o których inni mogą nawet nie wiedzieć.
Jak zobaczysz określony problem, możesz rozpoznać, że rozwiązanie wiąże się z konkretnym algorytmem. Następnie możesz zastosować go i rozwiązać trudność znacznie szybciej.
Argument 2
Czy kiedykolwiek brałeś udział w rekrutacji jako programista ?
Firmy takie jak Google, Facebook, Amazon itp. przeprowadzają wywiady na tablicy, gdzie trzeba rozwiązać problem za pomocą algorytmów. Jeśli znasz algorytmy, łatwo będzie przejść tego rodzaju wywiad programistyczny. Chcesz zarabiać więcej – ucz się algorytmów!
Argument 3
Znając algorytmy, możesz zwiększyć wydajność oprogramowania, zmniejszając jego złożoność czasową, zasoby sprzętowe lub pakiet danych internetowych.
Podsumowując, Twój program będzie działał w krótszym czasie, zajmując mniej miejsca w pamięci.
Jak uczyć się algorytmów ?
Przede wszystkim wybierz język programowania, naucz się go i trzymaj się go. Nie żongluj zbyt wieloma językami jednocześnie. Jeśli masz podstawową wiedzę na temat programowania, zaczniemy uczyć się algorytmów i struktur danych. Oto dwie ciekawe książki, które mi pomogły:
Algorytmy. Ilustrowany przewodnik – Super, ilustrowana książka pozwalająca w ciekawy sposób przyswoić wiedzą o algorytmach i strukturach danych.
Rozmowa rekrutacyjna dla programistów. Przewodnik do sukcesu – Książka zawiera gotowe scenariusze rozmowy rekrutacyjnej, pytania i rozwiązania z zakresu algorytmów i struktur danych.
Jednak najlepszym sposobem na poprawę swoich umiejętności w zakresie algorytmów i rozwiązywania problemów jest udział w wyzwaniach związanych z kodowaniem. Istnieje kilka platform internetowych. Dlatego polecam Ci je:
- SPOJ https://pl.spoj.com/
Bardzo duży przekrój zadań, bardzo dużo łamigłówek i zadań, polecam gorąco. - Projekt Euler https://projecteuler.net/ –
to seria trudnych problemów programowania, których rozwiązanie wymaga wiedzy matematycznej i programistycznej. - https://www.hackerrank.com/ – niesamowita platforma zawierająca zadania z różnych dziedzin programowania i algorytmów.
Nie będę Tobie polecać filmów na YT i innych platformach video, ponieważ w moim przypadku taka nauka była bardzo mało efektywna. Traciłem czas na kopiowanie czyjegoś kodu.
Wolę przeczytać coś o danym algorytmie w książce, a potem znaleźć zadanie w Internecie, gdzie mogę zaimplementować go. Na koniec wrzucam moje rozwiązania na github, w ten sposób rozwijam moje portfolio programisty.
Konkluzja
Jestem zdania, że warto uczyć się algorytmów, ponieważ będziemy lepszymi specjalistami, a dzięki temu eliminujemy stres w pracy. To jest chyba najważniejsze dziś, żeby mniej się denerwować w cyfrowym świecie ! A stres zamieniać na uśmiech i życzliwość, która udziela się innym nawet przez video konferencje. Aby nauczyć się algorytmów czytaj książki i rozwiązuj zadania w Internecie. Praktyka czyli mistrza.
Na koniec, jeśli podobają się informacje i umiejętności, które opisuje, zostaw komentarz.
Ostatecznie w zamian za dostarczoną treść, proszę więcej uśmiechu w cyfrowym świecie! 😉
Polecam również moje posty o umiejętnościach miękkich w IT:
- Jak radzić sobie z szefem ?
- NETWORKING
- Lista umiejętności Inżyniera danych (Data engineer)
- Testy funkcjonalne
- Elementy zwiększające poziom zaufania do strony