Ruby daje ci Array, Hash i Set, ale nie ma kopca, kolejki priorytetowej, listy wiązanej ani drzewa. W tej ścieżce budujesz każdą brakującą strukturę w Ruby, gdzie przejście po elementach to jeden blok each, potem sortujesz, stosujesz rekurencję i przeszukujesz z nimi grafy, a na koniec rozwiązujesz oceniane zadania rekrutacyjne. Za darmo, w przeglądarce, z certyfikatem w większości kursów.
Każdy krok to zestaw istniejących kursów Coddy, a każdy przycisk Start otwiera je w Ruby. Trzy kursy, które nie są jeszcze prowadzone w Ruby, są wymienione po krokach.
1
Krok 1
Seria Struktury danych, część pierwsza
Zacznij ten krokZacznijStos, kolejka, drzewo binarne, tablica mieszająca i lista wiązana, każda struktura zbudowana od zera w Ruby, a potem użyta do rozwiązywania zadań. Po tym kroku Array jako stos albo kolejka i Hash jako tablica wyszukiwania to wybory, które potrafisz uzasadnić, a nie nawyki.Zacznij
Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL: wszystko poza Array, Hash i Set, co Ruby zostawia tobie. Kopiec, który tu piszesz, to kolejka priorytetowa potrzebna w kroku o grafach.Zacznij
Zacznij ten krokZacznijSortowanie bąbelkowe, przez wybieranie, przez wstawianie, przez scalanie, szybkie, przez kopcowanie, przez zliczanie i pozycyjne, napisane w Ruby i oglądane w wizualizatorze. Array#sort nie obiecuje stabilności. Po tym kroku wiesz, które z ośmiu sortowań mogłyby ją zagwarantować.Zacznij
Zacznij ten krokZacznijWyzwania z rekurencji w Ruby. Niekontrolowana rekurencja rzuca SystemStackError (stack level too deep), a Ruby domyślnie nie optymalizuje wywołań ogonowych, więc warto pilnować głębokości nawet w tak wyrozumiałym języku. Programowanie dynamiczne i operacje na bitach są wymienione po krokach, bo prowadzi się je w Pythonie i C++.ZacznijOsobna strona15 lekcje15 wyzwania
5
Krok 5
Algorytmy grafowe
Zacznij ten krokZacznijPrzeszukiwanie wszerz i w głąb, Dijkstra, Bellman-Ford, sortowanie topologiczne, Kruskal i Prim w Ruby, na grafie zbudowanym w kroku drugim. Ruby nie ma kolejki priorytetowej, więc kopiec z kroku drugiego to ten, którego potrzebuje algorytm Dijkstry.Zacznij
Zacznij ten krokZacznijDziesięć pakietów wyzwań rekrutacyjnych i dwa banki zadań programistycznych w Ruby, oceniane przez testy: nieznane zadania rozwiązywane bez samouczka, z blokami i hashami, których koszt już znasz.Zacznij
Wszystko, czego potrzebujesz do nauki programowania
Ucz się w praktyce
Pisz prawdziwy kod, odpytuj bazy danych, twórz strony internetowe i opanuj prompty AI. Nasze interaktywne lekcje obejmują wszystkie umiejętności, których potrzebuje współczesny programista.
playground.js
Edytor kodu
1const greeting ="Hello, Coddy!"
2function sayHi(name) {
3return greeting +" "+ name
4}
5
Test #1
Test #2
Test #3
Dane wejściowe
"Alex"
Wynik
"Hello, Coddy! Alex"
Buduj swoją serię
Ucz się regularnie i patrz, jak rosną twoje postępy! Śledź codzienny nawyk programowania, chroń serię dzięki zamrożeniom i zdobywaj nagrody za każdy dzień nauki.
12 dni serii
Wróć jutro, aby utrzymać serię!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
Podwójnie albo nic
Dzień 5 z 7
Zamrożenie serii
2 left
Programuj wszędzie
Zabierz naukę programowania ze sobą! Bez konfiguracji i pobierania plików: po prostu otwórz i zacznij kodować. Dostępne na iOS, Androida i w przeglądarce, z oceną 4,9 gwiazdki.
Dlaczego warto uczyć się algorytmów w Ruby z Coddy
Struktury, których Ruby nie ma. Array to jednocześnie stos i kolejka, Hash to tablica mieszająca zachowująca kolejność wstawiania, a Set jest w bibliotece standardowej. Poza tym nie ma kopca, kolejki priorytetowej, listy wiązanej ani drzewa. Gdy zadanie na rozmowie z Ruby wymaga jednej z nich, oczekuje się, że ją napiszesz, i w tej ścieżce to robisz.
Krótki kod, czytelne algorytmy. Bloki i Enumerable (each, map, select, reduce) mieszczą przejście po strukturze w jednej albo dwóch linijkach, więc przeszukiwanie wszerz czy scalanie czyta się prawie jak pseudokod. Pamiętaj tylko, że każde z tych wywołań to pętla z kosztem, a liczenia tych kosztów uczy ta ścieżka.
Prawie cała ścieżka w Ruby. Każda struktura danych, sortowanie, algorytm grafowy, wyzwanie z rekurencji i pakiet rekrutacyjny jest prowadzony w Ruby. Trzy kursy są prowadzone w innych językach i wymienione po krokach, każdy z linkiem: programowanie dynamiczne i seria rekrutacyjna w Pythonie oraz operacje na bitach w C++. Operacje na bitach łatwo czytać z perspektywy Ruby, który ma te same operatory, działające na liczbach całkowitych, które nigdy się nie przepełniają.
Oceniane jak na rozmowie rekrutacyjnej. Każda lekcja kończy się wyzwaniem w Ruby sprawdzanym przez testy, a gdy coś nie przechodzi, Bugsy czyta twój kod i naprowadza cię na poprawkę, nie podając gotowej odpowiedzi. Darmowy certyfikat w większości kursów, każdy do zweryfikowania pod własnym adresem URL.
Najczęstsze pytania o algorytmy i struktury danych w Ruby
Czy Ruby nadaje się do nauki algorytmów i struktur danych?
Tak, do nauki i na rozmowy w firmach pracujących z Rails: kod jest tak krótki jak w Pythonie, a bloki sprawiają, że przejścia po strukturach wyglądają jak sam algorytm. Warto znać dwie luki. Biblioteka standardowa nie ma kopca, kolejki priorytetowej, listy wiązanej ani drzewa, więc piszesz je samodzielnie. Poza tym Array#sort nie obiecuje stabilności, więc gdy równe elementy muszą zachować kolejność, sortuj po parze: sort_by.with_index { |x, i| [x, i] }.
Które klasy Ruby odpowiadają którym strukturom danych?
Array to tablica dynamiczna, która służy jako stos (push, pop) i kolejka (push, shift). Hash to tablica mieszająca pamiętająca kolejność wstawiania, a Set z biblioteki standardowej to zbiór oparty na haszowaniu. I to cała lista. Nie ma kopca, kolejki priorytetowej, listy wiązanej, drzewa, drzewa trie ani grafu, więc te budujesz samodzielnie, w krokach pierwszym i drugim.
Jak napisać kolejkę priorytetową w Ruby?
Ruby nigdy jej nie dostarczył, więc są trzy uczciwe odpowiedzi: sortować tablicę po każdym wstawieniu, O(n log n) za każde dodanie; utrzymywać ją posortowaną przez bsearch_index i insert, O(n) za każde dodanie; albo napisać kopiec binarny na Array, O(log n) zarówno dla dodania, jak i zdjęcia. Trzeciej odpowiedzi szuka rekruter, a w kroku drugim ją budujesz.
Dlaczego kolejność wstawiania w Hash w Ruby ma znaczenie dla algorytmów?
Bo zamienia niektóre klasyczne projekty w kilka linijek. Pamięć podręczna LRU, ulubione zadanie rekrutacyjne, to Hash, w którym odczyt usuwa klucz i wstawia go ponownie, żeby przenieść go na koniec, a usuwanie najstarszego wpisu to shift. W większości języków wymaga to tablicy mieszającej i listy dwukierunkowej, czyli struktur, które budujesz w krokach pierwszym i drugim, więc potrafisz wyjaśnić, co Ruby robi za ciebie.
Które kursy z tej ścieżki nie są prowadzone w Ruby?
Trzy: programowanie dynamiczne i seria rekrutacyjna w Pythonie, prowadzone w Pythonie, oraz operacje na bitach, prowadzone w C++. Są wymienione po krokach, każdy z linkiem, który otwiera go w jego własnym języku. Memoizacja w Ruby może być Hash z domyślnym blokiem, jak w Hash.new { |h, n| h[n] = n < 2 ? n : h[n - 1] + h[n - 2] }, a n[i] odczytuje bit i liczby całkowitej bezpośrednio, tam gdzie C++ pisze (n >> i) & 1.
Czy muszę znać Ruby, zanim zacznę tę ścieżkę?
Przynajmniej metody, bloki, tablice, hashe i klasy. Jeśli to dla ciebie nowość, kurs Ruby w Coddy najpierw cię tam doprowadzi, za darmo, a ta ścieżka zaczyna się tam, gdzie on się kończy.
Czy dostanę certyfikat za ścieżkę Algorytmy i struktury danych?
Tak. Ukończ każdy krok, a dostaniesz jeden darmowy certyfikat za całą ścieżkę Algorytmy i struktury danych. Wymienia on każdy kurs ukończony po drodze oraz linkuje do certyfikatu każdego kursu, więc każdy może sprawdzić każdą wymienioną umiejętność. Możesz dodać go do profilu na LinkedInie. To certyfikat ukończenia od Coddy, a nie akredytowana kwalifikacja.
Inne ścieżki nauki
Te same kursy, ułożone pod inną rolę. Postępy się przenoszą: kurs ukończony na jednej ścieżce liczy się na każdej ścieżce, która go zawiera.