W PHP jeden typ robi prawie wszystko: array to uporządkowana mapa haszująca, która jest jednocześnie listą, słownikiem i stosem. W tej ścieżce budujesz w PHP struktury, które ona zastępuje, i te, których zastąpić nie może, 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 PHP. Trzy kursy, które nie są jeszcze prowadzone w PHP, 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 PHP, a potem użyta do rozwiązywania zadań. Po tym kroku wiesz, kiedy array jest dobrym stosem, dlaczego array_shift daje słabą kolejkę i co robi za ciebie mapa haszująca ukryta w każdej tablicy.Zacznij
Zacznij ten krokZacznijLista dwukierunkowa, kopce i kolejki priorytetowe, drzewa trie, grafy i samorównoważące się drzewo AVL. Po tym kroku SplDoublyLinkedList to struktura, której kod znasz, SplMinHeap i SplMaxHeap to jedna idea zwrócona w dwie strony, a zrównoważone drzewo, którego PHP nie dostarcza, to coś, co potrafisz zbudować.Zacznij
Zacznij ten krokZacznijSortowanie bąbelkowe, przez wybieranie, przez wstawianie, przez scalanie, szybkie, przez kopcowanie, przez zliczanie i pozycyjne, napisane w PHP i oglądane w wizualizatorze. sort() jest stabilne od PHP 8.0. Po tym kroku wiesz, co oznacza ta obietnica i które z ośmiu sortowań mogłyby jej dotrzymać.Zacznij
Zacznij ten krokZacznijWyzwania z rekurencji w PHP. Funkcja nazwana swobodnie wywołuje samą siebie, ale anonimowa musi najpierw przechwycić siebie przez referencję, jak w $f = function ($n) use (&$f) { ... }. Ten szczegół warto znać, zanim na rozmowie ktoś poprosi o rekurencyjne domknięcie. 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 PHP, na grafie zbudowanym w kroku drugim. SplPriorityQueue to kopiec maksymalny, więc algorytm Dijkstry albo neguje odległości, albo działa na własnym kopcu z kroku drugiego.Zacznij
Zacznij ten krokZacznijDziesięć pakietów wyzwań rekrutacyjnych i dwa banki zadań programistycznych w PHP, oceniane przez testy: nieznane zadania rozwiązywane bez samouczka i bez array wykonującej każdą pracę.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.
Czym naprawdę jest array. array w PHP to uporządkowana mapa haszująca, dlatego działają zarówno $a[] = $x, jak i $a['key'] = $x, i dlatego array_shift jest wolne: numeruje od nowa każdy pozostały element. Budowanie prawdziwego stosu, kolejki i tablicy mieszającej to sposób, żeby się dowiedzieć, które operacje na tablicach są tanie, a które po cichu wcale nie.
Algorytmy dla programistów webowych. Na PHP działają WordPress i Laravel, a wolna strona to czasem przebrany problem algorytmiczny: in_array w pętli to wyszukiwanie liniowe przy każdym przejściu, a isset na tablicy z kluczami ma średnio stały czas. Myślenie, które pozwala przejść rozmowę rekrutacyjną, to samo myślenie, które naprawia taką stronę.
Prawie cała ścieżka w PHP. Każda struktura danych, sortowanie, algorytm grafowy, wyzwanie z rekurencji i pakiet rekrutacyjny jest prowadzony w PHP. 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 PHP, który ma te same &, |, ^, ~, << i >> co C++.
Oceniane jak na rozmowie rekrutacyjnej. Każda lekcja kończy się wyzwaniem w PHP 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 PHP
Czy PHP nadaje się do nauki algorytmów i struktur danych?
Do nauki tak, gdy porzucisz jeden nawyk: sięganie po array do wszystkiego. Tablica w PHP jest na tyle elastyczna, że może być listą, słownikiem i stosem, i właśnie to ukrywa koszt każdej operacji. Zbuduj struktury samodzielnie, a PHP okaże się całkiem dobrym językiem do rozumowania o algorytmach i naturalnym językiem na rozmowę, jeśli pracujesz w PHP.
Które klasy SPL odpowiadają którym strukturom danych?
SplStack i SplQueue to stos i kolejka, obie zbudowane na SplDoublyLinkedList. SplMinHeap i SplMaxHeap to kopce, SplPriorityQueue to kopiec maksymalny uporządkowany według priorytetu, a SplFixedArray to tablica o stałym rozmiarze z indeksami całkowitymi, zużywająca mniej pamięci niż array. Zwykła array to twoja tablica mieszająca. Nie ma klasy drzewa, drzewa trie ani grafu, więc te piszesz samodzielnie, w krokach pierwszym i drugim.
Dlaczego array_shift jest wolne jako kolejka w PHP?
Bo po usunięciu pierwszego elementu numeruje od zera każdy pozostały klucz całkowity, co dotyka całej tablicy: kolejka zbudowana na array_shift kosztuje O(n) za każde zdjęcie elementu i czas kwadratowy na jej opróżnienie. Użyj SplQueue albo trzymaj indeks początku tablicy i przesuwaj go. W kroku pierwszym samodzielnie budujesz kolejkę, co jest najpewniejszym sposobem, żeby zobaczyć różnicę.
Czy sort() w PHP jest stabilne?
Od PHP 8.0 tak: sort(), usort(), asort() i pozostałe funkcje sortujące zachowują oryginalną kolejność równych elementów. Przed wersją 8.0 nie dawały takiej obietnicy, więc kod zależny od kolejności równych elementów mógł zachowywać się różnie w różnych wersjach. Z ośmiu sortowań z kroku trzeciego sortowanie przez scalanie i przez wstawianie są stabilne, a quicksort i sortowanie przez kopcowanie nie. Po tym kroku wiesz dlaczego.
Które kursy z tej ścieżki nie są prowadzone w PHP?
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. Tablica memoizacji w PHP to array z kluczami odpowiadającymi podproblemom. Jedna pułapka przy przenoszeniu sztuczek bitowych: jeśli oba operandy &, | albo ^ są łańcuchami znaków, PHP operuje na wartościach bajtów ich znaków i zwraca łańcuch, więc najpierw upewnij się, że wartości są liczbami całkowitymi.
Czy muszę znać PHP, zanim zacznę tę ścieżkę?
Przynajmniej funkcje, tablice, pętle i klasy, bo węzeł to w naturalny sposób obiekt z właściwością $next. Jeśli to dla ciebie nowość, kurs PHP 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.