Ja zaczynalem od C (zakladajac ze BASIC i Pascal sie nie licza) i polecam, tym bardziej ze jest to jezyk bardzo prosty, a jednoczesnie obecny ‘pod spodem’ wiekszosci jezykow ‘wyzszego poziomu’.
(i np. jesli jakis gem sie ‘nie instaluje’ wywalajac sie przy komplilacji kawalka w C, to zamiast lamentowac w internecie mozna samemu zajrzec o co chodzi)
Ale nie tylko - wydaje mi sie, ze jest cos we ‘wskaznikach’ w C, co powoduje, ze ich zrozumienie (wskazniki + pamiec oraz np. uswiadomienie sobie, ze wskaznik na cos, string oraz tablica to wlasciwie to samo, a roznica wynika jedynie z interpretacji pewnych adresow) umozliwia szybkie zrozumienie konstrukcji ‘wyzszego poziomu’.
Poza tym od C do komend systemowych w Unix/Linux jest 1 krok, a znajomosc tego ‘jak to dziala’ pod spodem czesto sie przydaje.
Dzieki C, dosc latwo przyszlo mi opanowanie perla. A znajac perla i jego map/grep, latwo zaczac ‘na dzien dobry’ operowac konstrukcjami ‘listowymi’ typu map, each, select w rubym. A znajac to, latwo przejsc na myslenie w kategoriach operowania na listach ktore jest powszechne np. w scali
Nie wspominajac o Objective-C - znajac dobrze C + przynajmniej jeden jezyk ‘dynamiczny’, zaczyna to wygladac bardzo znajomo. Tym bardziej, ze spora czesc API napisana jest ‘na dole’ w C (np. Core Audio) i czesto kod zawiera konstrukcje zarowno w Obj-C jak i w C (jako ze Obj-C jest ‘kombatybilne’ z C)
Polecalbym nauke C + jakiegos jezyka skryptowego (ruby, python, javascript) ROWNOLEGLE jako ‘poczatek nauki programowania’. I proby implementowania tych samych rzeczy w obu ‘swiatach’ - i tu i tu zazwyczaj korzysta sie z jakichs bibliotek (wtedy mozna odkryc, ze np. curl to nie tylko ‘polecenie systemowe’ ale glownie biblioteka libcurl, ktora mozna uzyc we wlasnym programie do komunikacji z serwerem); w ten sposob nie bedzie sie skazanym ani na ‘zbyt niskopoziomowe’ ani ‘zbyt wysokopoziomowe’ myslenie, a budowanie wlasnej bazy ‘analogii’ droga rozwiazywania konkretnych - nawet najprostszych - problemow jest bardzo cenne.
(poza tym znajac C mozna zobaczyc, jak NAPRAWDE dziala MySQL i setki innych rzeczy, ktorych uzywa sie kazdego dnia mniej lub bardziej jawnie)