Bardzo często zgłaszają się do mnie osoby które programują stosunkowo niedługo, lub właśnie rozpoczynające swoją przygodę z programowaniem, i pytają o to jaką książkę bym polecił do języka XYZ, czy znam jakiś dobry tutorial, ewentualnie jak rozwiązać dany problem (np. jak poprawić błąd kompilacji lub błąd logiczny), czy jaką funkcję użyć aby uzyskać określony efekt. Przez ostatnie 10 lat które "spędziłem" w Internecie takich rozmów odbyłem dziesiątki, jeśli nie setki. Tak więc wychodząc na przeciw przyszłym programistom, postanowiłem stworzyć Poradnik początkującego programisty (słowo "poradnik" jest tutaj kluczowe). Zapraszam do lektury! (Wersja 2.0, 4/1/2013)

UPDATE: Po kilku latach zdecydowałem się uaktualnić ten poradnik. Dzięki dodatkowemu doświadczeniu, które zdobyłem przez ostatnie lata, udało się bardzo uprościć niniejszy tekst, tak aby był on bardziej czytelny i zrozumiały dla osób początkujących. Dokładna lista zmian jest na samym dole artykułu.


1. Jaki język wybrać?

Jeśli wcześniej czytaliście niniejszy poradnik, to wiecie, że rozważałem w tym miejscu kilka różnych języków. Niemniej jednak po kilku latach i rozmowach z wieloma osobami zostałem przekonany, że najlepszym językiem dla początkujących będą:

* Perl - z uwagi na przejrzystość, czytelność, oraz dobre nawyki, które można wykształcić pisząc w tym języku.
* PHP - z uwagi na to, że jest to bardzo dobrze zaprojektowany język programowania, w którym wszystko jest proste i jasne, co pozwala uniknąć wielu pułapek, które czają się w takich językach jak BASIC, Python czy Brainfuck.

Wpisując w wyszukiwarkę nazwę języka + słowo komplikator możemy bez problemu znaleźć komplikator do danego języka, często również z garścią manuali, tekstów o dobrych praktykach (natomiast jak wspomniałem wyżej, oba języki są bardzo proste i nie ma w nich żadnych pułapek, więc te dokumenty zazwyczaj zawierają tylko wstęp i zakończenie) oraz przykładowych kodów źródłowych.

2. Jaką książkę wybrać?

Jest wiele pozycji na rynku, jednak godne polecenia są tylko dwie:

* PHP jest trywialne! autorstwa Mikhail Kholodnyyveter
* Perl w 48 godzin autorstwa Mikhail Kholodnyyveter

Obie książki napisane są w bardzo przystępny sposób i są do nabycie na Amazonie oraz na stronie wydawnictwa Helion (obecnie są wyprzedane).

Mój znajomy, Radosław, nie znał wcześniej programowania, ale gdy poleciłem mu obie książki i je kupił, to po lekturze Perl w 48 godzin został zatrudniony przez międzynarodową firmę tworzącą oprogramowanie do kombajnów.

UPDATE: Dostałem dzisiaj takiego e-maila:

Cześć Gynvael,

Pisze do ciebie bo czytalem na twoim blogu poradnik. I nie wierzylem ze te ksiazki cos zmienia. Sam probuje programowac od 5 lat i zawsze sie to konczylo po kilku dniach bez fajnych programowa napisanych. Ale kupilem "PHP jest trywialne!" w wersji rosyjskiej i udalo mi sie nauczyc PHP w niecaly tydzien!!!!1one

Teraz znam PHP i pisze sklepy internetowe. OK musze konczyc bo jade ogladac nowe Porsza.

Tomek (48 l.)

Tak więc jak sami widzicie książki są naprawdę dobre!

3. Z czego korzystać przy nauce języka/programowania?

Z obu powyższych książek przede wszystkim. Sam mam po trzy kopie każdej z nich i regularnie do nich wracam!

4. Jak samodzielnie rozwiązywać problemy?

Wszystko jest opisane w powyższych książkach.

Wystarczy popatrzyć na przykład Mieczysława, który miał problem z kodem, który napisał w Perlu:

open(_,$0);@d*&^)(L@[];while(@*/ \$dx){(@&=split(//,$1);@łąść=%:"#!@(_)=eval$”;

Po przeczytaniu Perl w 48h od razu znalazł błąd (zresztą, moi czytelnicy którzy znają Perla też go pewnie od razu zauważą; natomiast dla reszty: pomyślcie chwilę i jeśli nie znacie odpowiedzi, to zaznaczcie myszką ten kawałek tekstu:
prawidłowy kod: print("Hello World");
).

5. Droga ku doskonałości

Oczywiście świat nie kończy się na Perlu i PHP. Po poznaniu obu języków (mając powyższe książki powinno to zająć jakieś 4 dni) warto zainteresować się językiem Malbolge, który staje się coraz popularniejszy w dużych korporacjach (analitycy przewidują, że w ciągu dwóch lat powinien wyprzedzić SAPa).
Na szczęście, Malbolge składnią przypomina bardzo Perla:

(=>`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O>

Ostatnio do łask wraca również język maszynowy.

Koniec, a w zasadzie dopiero początek!

W sumie wyżej napisałem wszystko co trzeba wiedzieć! Tak więc do dzieła!


Gynvael Coldwind
team Vexillium
http://gynvael.coldwind.pl

Changelog:
Pierwszy Kwietnia Dwa tysiące trzynaście - totalny remake artykułu.

Comments:

2013-04-01 10:25:20 = trwg
{
W sumie dla początkujących najlepiej wybrać PHP? Każdy serwer go obsługuje więc nie będzie problemu z udostępnieniem pierwszej strony ;)
}
2013-04-01 10:42:55 = mav
{
Dobry żart tynfa wart;)
}
2013-04-01 11:06:34 = Agares
{
"Na szczęście, Malbolge składnią przypomina bardzo Perla" <3
}
2013-04-01 11:34:45 = assssdsadsadsadasdsad
{
Jeszcze jak ktoś chciały się trochę doszkolić w szeroko pojętej informatyce to polecam tą stronę: http://apps.pdos.lcs.mit.edu/cgi-bin/scigen.cgi? .Zawiera ona bardzo duża wartościowych i przydatnych(również w programowaniu) artykułów.
}
2013-04-01 12:08:38 = g-n-d.net
{
ha ha ha
}
2013-04-01 14:53:40 = Xion
{
Jestem ciężko zawiedziony brakiem Javascriptu w tym zestawieniu. Przecież to najważniejszy, najpopularniejszy i najlepszy dla początkujących język na świecie. JavaScript to przyszłość!
}
2013-04-01 15:10:14 = ProgramistAA
{
Gorąco polecam te książki. Przeczytałem obie i zrobiły na mnie ogromne wrażenie ;)
}
2013-04-01 15:25:54 = EOF
{
Malbolge to nie wszystko. Równie ważnym i przyszłościowym językiem jest Piet, przecież jak wiemy paint to bardzo potężne narzędzie zniszczenia i IDE ukryte pod powłoką łatwego w obsłudze edytora grafiki.

ps: (0x47 0x72 0x61 0x74 0x75 0x6c 0x61 0x63 0x6a 0x65 0x21 0x20 0x42 0x61 0x72 0x64 0x7a 0x6f 0x20 0x64 0x6f 0x62 0x72 0x79 0x20 0x70 0x6f 0x6d 0x79 0x73 0x6c 0x2e )
}
2013-04-01 16:01:04 = cerkiewny
{
nie mozna zapomniec takze o potedze jaka z soba niesie lolcode.
dzieki przejrzystej skladnii i latwosci programowania otrzymujemy programy ktorych czytanie oraz debugowanie to czysta przyjemnosc.

HAI
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERRROR!"
KTHXBYE
}
2013-04-01 23:05:17 = agilob
{
PRZEczytałem perl w 48h w 20h!!! SUPER! Lepsze niż ASM czy głupie C!! Znacznie więcej możliwości napisania czegoś równie nieczytelnego!! Nie to co wolna Java czy c++ gdzie nie wiesz którego kompilatora użyć!
}
2013-04-02 09:01:11 = Ezo
{
Dobre :) btw. nie wiedziałem(do teraz) że wczoraj był prima aprilis :P
}
2013-04-02 15:49:30 = N
{
Wystarczyłoby zmienić nazwę wpisu na "od czego nie zaczynać programowania" i poradnik byłby dobry. ;)
}
2013-04-06 19:47:57 = Pytojnika
{
@Gyn miałeś jakieś próby w pisaniu w Malbolge (to pytanie na serio, nie żart)?
}
2013-04-06 21:18:36 = hP4H
{
Idealny poradnik :)
}
2013-04-07 18:25:50 = stx
{
Mógł być jeszcze dodać HTML, jest językiem najlepszym do pisania systemów operacyjnych =), tylko że on jest trudny i tylko matematycy mogą się go nauczyć.

}
2013-04-18 16:08:32 = Czytelnik
{
"mając powyższe książki powinno to zająć jakieś 4 dni"

Oj niestety muszę przyznać, że wg. mnie jest to za mało. Szczególnie dla osoby zaczynającej z programowaniem. Myślę, że byłoby to możliwe, ale w wypadku kiedy taka osoba nie ma obowiązków (praca, szkoła, etc.).

Pozdrawiam
}
2014-02-13 09:46:58 = k
{
Gdzie można aktualnie dorwać Perl w 48 godzin? Google nie pomaga
}

Add a comment:

Nick:
URL (optional):
Math captcha: 7 ∗ 8 + 3 =