Nauka programowania może przybierać przeróżne formy. Jedną z nich jest nauka poprzez analizowanie/rozwijanie repozytoriów. Postanowiłem wyjść naprzeciw Tobie i zebrałem 10 repozytoriów kodu, które moim zdaniem każdy programista powinien znać!
Szkoda, że nie znałem ich, kiedy zaczynałem swoją przygodę z programowaniem. Potraktuj je jako wartościowy skrót, który przyspieszy Twoją karierę programisty.
Nie skupiałem się na ocenach, wybrałem subiektywnie najbardziej wartościowe materiały. Każde ze wspomnianych poniżej repo wniesie coś ekstra do Twojego programistycznego warsztatu.
Zaczynajmy!
Zatrzymaj się!
Książki to obowiązkowa pozycja dla każdego zainteresowanego programowaniem!
Jest to zdecydowanie jedno z najlepszych źródeł do nauki programowania! Zyskasz przewagę w branży IT i osiągniesz dużo jako deweloper.
1. Awesome Git
Zacznę tę listę od zupełnych podstaw. Korzystając z GitHub, musisz znać zagadnienia dotyczące gita. Git to nie tylko zarządzanie kodem w prosty sposób. To również narzędzia, hostingi czy rozszerzenia do IDE.
O wszystkim tym dowiesz się z tego właśnie Repo. Ciekawe jest to, że repozytoria mogą służyć też jako pewnego rodzaju dokumentacja, blog czy zbiór materiałów do nauki. Jeśli chcesz poznać moc gita, zrozumieć jego działanie i wybrać odpowiednie narzędzia, to Awesome Git jest dla Ciebie.
I zapamiętaj, bez zrozumienia git, zgubisz się na GitHub!
- Licencja: CC0-1.0 license
- Ocen: 1,6k
- Link: https://github.com/dictcp/awesome-git
- Współtwórców: 39
- Obserwujących: 40
2. 100-Days-Of-ML-Code
Biłem się z myślami, czy umieszczać to właśnie repozytorium na tej wąskiej liście. ML jest nadal bardzo wąską dziedziną, jeśli chodzi o cały przekrój IT. Postanowiłem jednak zaryzykować i wstawić to repo tu na blogu.
ML według mnie będzie wiodło prym w IT w najbliższych latach i warto, by programiści w jak największej grupie studiowali zagadnienia związane z uczeniem maszynowym. 100 Days of Machine Learning Coding to prawdziwa perełka, bo daje Ci idealnie ułożony plan nauki Machine Learning. Od podstaw, aż po zagadnienia bardzo zaawansowane. Na cały materiał wystarczy poświęcić trzy miesiące codziennej nauki.
Sam nie pracuję z ML, ale podstawy mam już za sobą i wiele to wnosi do mojej kariery programisty.
- Licencja: MIT
- Ocen: 38.2k
- Link: https://github.com/Avik-Jain/100-Days-Of-ML-Code
- Współtwórców: 7
- Obserwujących: 2.5k
3. Allegro Tech
Nasz rodzimy, technologiczny gigant. Repozytorium firmy poznałem w czasie rozmów o pracę, które miałem przyjemność przechodzić w Allegro. Finalnie w Allegro nie wylądowałem, ale repozytorium obserwuję od tamtego momentu.
Całe Allegro Tech składa się z ponad 100 repo, gdzie znajdziemy wiele narzędzi, z których zbudowana jest platforma. Korzystamy z niej na co dzień w polskich domach, więc tym bardziej szacunek dla twórców za to, że dzielą się kodem w taki sposób.
Warto śledzić również Podcast Allegro Tech, bo są tam inspirujące rozmowy na tematy technologiczne na dużą skalę.
- Licencja: ??
- Ocen: Około 5000
- Link: https://github.com/allegro
- Współtwórców: Około 200
- Obserwujących: Około 1000
4. NestJS
Kamil Myśliwiec to programista, którego musisz poznać. Pracuje w Google, do tego jest twórcą jednego z najlepszych framework dla Node.js. Sprawdza się idealnie do tworzenia wydajnych i skalowalnych aplikacji po stronie serwera.
Jeśli komuś marzy się kariera programisty-wyjadacza, to Kamil jest wzorem do naśladowania. Po cichu, spokojnie zbudował wokół swojego programistycznego projektu społeczność i zyskuje powoli miano programisty legendarnego, zwłaszcza w Polsce.
Jestem fanem talentu Kamila i obserwuję go, czerpię inspirację między innymi z tego, w jak elegancki sposób tworzy wspomniany framework.
- Licencja: MIT
- Ocen: 49.8k
- Link: https://github.com/nestjs/nest
- Współtwórców: 330
- Obserwujących: 688
5. List of Free Learning Resources In Many Languages
Prawdziwa gwiazda wśród repozytoriów GitHub. Darmowe źródła nauki programowania w postaci blogów, materiałów akademickich czy wreszcie książek jest od dawna w TOP 3 najpopularniejszych repo.
I nie ma się co dziwić. Prawie 2000 programistów stworzyło niesamowitą bazę wiedzy. Jest też cała sekcja po polsku, która ma w sobie materiały na temat najpopularniejszych programistycznych języków. Niebawem pojawi się tam również mój darmowy kurs Python 3 by MR.
A jeśli potrzebujesz materiałów w innych językach niż polski czy angielski, to proszę bardzo. Od arabskiego, po chiński a na bardziej egzotycznym hindi czy tamil kończąc.
- Licencja: CC-BY-SA-4.0 license
- Ocen: 246k
- Link: https://github.com/EbookFoundation/free-programming-books
- Współtwórców: 1995
- Obserwujących: 9.7k
6. Coding Interview University
Chcesz pracować dla kogoś z FAAMG (Facebook, Amazon, Apple, Microsoft, Google)? To repozytorium jest właśnie dla takich osób, jak Ty. Autor postanowił, że dostanie się do Google, wylądował ostatecznie w Amazon.
Uczył się codziennie przez niemal rok, poświęcając na naukę nawet 12 godzin dziennie. Całość materiałów umieścił na tym repozytorium. Materiały były tak dobre, że szybko społeczność podłapała temat i dziś Coding Interview University to najpopularniejsze repozytorium dla osób szukających nowej pracy w IT.
Najlepsze w tym wszystkim jest to, że masz ułożony gruntowny plan nauki, od podstaw po aspekty najbardziej zaawansowane. Wszystkich tych rzeczy w mniejszym lub większym stopniu powinniśmy jako programiści uczyć się na studiach informatycznych, ale jak wiemy, studia często pozostawiają wiele do życzenia.
- Licencja: CC-BY-SA-4.0 license
- Ocen: 231k
- Link: https://github.com/jwasham/coding-interview-university
- Współtwórców: 260
- Obserwujących: 8.5k
7. 30 Days Of JavaScript
30 dni nauki JS to repozytorium, które zawsze polecam osobom pytającym mnie o materiały do nauki tego właśnie języka. Nie ma co ukrywać, w dzisiejszych czasach nawet 9/10 uczących się programowania na start wybiera właśnie JavaScript. Czy jest to dobry wybór? Nie wiem.
Repozytorium udostępnia bardzo dużo materiałów, dzięki którym przy systematycznej nauce możesz poznać podstawy JS w zaledwie 30 dni. Nie jest jednak ważne to, jak szybko opanujesz ten język. Grunt to zrozumieć wszystko, najlepiej podczas systematycznej, codziennej nauki.
Podział na poszczególne dni nauki wygląda następująco:
01 | Introduction |
02 | Data Types |
03 | Booleans, Operators, Date |
04 | Conditionals |
05 | Arrays |
06 | Loops |
07 | Functions |
08 | Objects |
09 | Higher Order Functions |
10 | Sets and Maps |
11 | Destructuring and Spreading |
12 | Regular Expressions |
13 | Console Object Methods |
14 | Error Handling |
15 | Classes |
16 | JSON |
17 | Web Storages |
18 | Promises |
19 | Closure |
20 | Writing Clean Code |
21 | DOM |
22 | Manipulating DOM Object |
23 | Event Listeners |
24 | Mini Project: Solar System |
25 | Mini Project: World Countries Data Visualization 1 |
26 | Mini Project: World Countries Data Visualization 2 |
27 | Mini Project: Portfolio |
28 | Mini Project: Leaderboard |
29 | Mini Project: Animating characters |
30 | Final Projects |
Na koniec dodam, że jest wiele odpowiedników tego repozytorium, chociażby dla języka Python czy Java.
- Licencja: ??
- Ocen: 27k
- Link: https://github.com/Asabeneh/30-Days-Of-JavaScript
- Współtwórców: 30
- Obserwujących: 730
8. The Algorithms
Łącznie 35 repozytoriów, gdzie w 35 językach znajdziemy setki algorytmów. Znajdziesz tam takie języki jak JS, Python, Java czy C++. Z mniej popularnych to algorytmy napisane w F#, Lua czy Julia.
Poza algorytmami znajdziemy tam szereg implementacji struktur danych czy przeróżnych matematycznych formuł. Jest to moje ulubione repozytorium, ponieważ w przeszłości bardzo mocno stawiałem na naukę algorytmów. Ich implementacje są bardzo optymalne, chociaż czasami zdarzają się dziwne wybiegi programistyczne.
Pamiętaj, algorytmika w programowaniu jest super ważna!
- Licencja: GPL v3.0/MIT
- Ocen: około 150k
- Link: https://github.com/TheAlgorithms
- Współtwórców: 97
- Obserwujących: kilka tysięcy
9. Linux kernel source tree
Linux nie trzeba nikomu przedstawiać. Jego ogromny potencjał, mnogość dystrybucji i fakt, że jest otwarty i darmowy powoduje, że ma miliony zwolenników na całym świecie.
Sam mam przygody z Ubuntu, Mint, Fedorą czy Kali i każda z dystrybucji zajęła kawałek mojego programistycznego serca. Nie mogłem pominąć przez to na tej liście właśnie repozytorium Linux, które utworzył nie kto inny, jak Linus Torvalds. Co ciekawe Linus jest również twórcą gita, na którym GitHub się opiera.
Ponad milion commitów robi wrażenie, a nie zapominajmy, że dotyczy to tylko jądra systemu.
Informacje o repozytorium:
- Licencja: GPL v2.0
- Ocen: 137k
- Link: https://github.com/torvalds/linux
- Współtwórców: +5 000
- Obserwujących: 38k
10. Public APIs
Każdy szanujący się programista prędzej czy później będzie zmuszony skorzystać z API. Zarówno w pracy zawodowej, jak i w prywatnych projektach po godzinach. Problem z API jest taki, że nie zawsze są one dostępne.
I tu z pomocą przychodzi repozytorium Public APIs, który zawiera masę darmowych, dostępnych API, z których w dowolnym momencie możesz skorzystać w swoich projektach.
Na ogromny plus zasługuje podział API na kategorie. Na czas pisania tego artykułu jest tam dokładnie 51 kategorii.
Informacje o repozytorium:
- Licencja: MIT
- Ocen: 207k
- Link: https://github.com/public-apis/public-apis
- Współtwórców: 1 267
- Obserwujących: 3.7k
10 repozytoriów kodu – Podsumowanie
Jeśli jeszcze nie masz w zwyczaju przeglądać repozytoria kodu innych programistów, to zachęcam gorąco. Według mnie jest to prawdziwa skarbnica wiedzy. Nigdzie tak dobrze nie poznałem niuansów języków programowania, wzorców architektonicznych czy po prostu stylu pisania kodu, jak właśnie na GitHub.
Mówi się, że GitHub to taki Facebook dla geeków, ale nie mogę się z tym zgodzić w 100%. Jest to narzędzie, które usprawnia pracę, nie powoduje rozproszenia i zapewnia programiście mniej stresu przy pracy z kodem. To, co może łączyć GitHub i Fb, to popularność. Ponad 37 milionów użytkowników i ponad 100 milionów repozytorium jest dowodem popularności Github i pokazuje miłość programistów do tej niesamowitej strony. Skala niech mniejsza, niż w przypadku FB, ale jeśli spojrzymy procentowo na ogół społeczności IT, to ogromny odsetek korzysta głównie z GitHub.
Newsletter
Nie przegap i dołącz już dziś do 840 osób będących w tym Newsletter! Otrzymuj co niedzielę o godzinie 20 listę kilku ciekawych tematów, które miałem okazję obserwować w mijającym tygodniu.
Tematy będą głównie techniczne, ale czasami pojawi się coś, co może wprowadzi Cię w stan zadumy i zmusi do dyskusji w szerszym gronie. Zero spamu!