Trudny wybór języka na początek

Witam. Niedawno postanowiłem rozpocząć moją przygodę z programowaniem. Lecz nie mam absolutnie pojęcia od czego zacząć.

Wiem że takie tematy były milion razy lecz ja chciałbym zapytać poraz milion pierwszy. Który język jest hmm. nie tyle podstawą lecz najłatwiejszym językiem który pozwoli opanować podstawy składni czy algorytmów. Nie interesuje mnie czy jest on współcześnie używany czy jest przestarzały czy nowy i czy będę mógł o wykorzystać bo ma “moc”. Interesuje mnie tylko to żeby opanować podstawy programowania a później wziąć się za coś poważniejszego - webmasterke albo obiektowanie.

Proszę o nie usuwanie tematu. Usuniecie go gdy dostanę chociaż 3 odpowiedzi bo jestem absolutnie nie zdecydowany.

Jesteś w błędzie. Takich tematów było już dokładnie 1 000 043 :stuck_out_tongue: Swoją droga przydałby się jakiś przyklejony temat na forum dla osób, które zastanawiają się nad wyborem języka, ale do rzeczy … Jeśli jesteś jeszcze w liceum (jesteś?), to wybierz jeden z tych języków, które obowiązują na maturze z Informatyki. Na pewno jest Pascal i być może też C. Każdy z tych dwóch języków nadaje się dla osoby początkującej (wykluczając pewne elementy języka jak np. wskaźniki), chcącej poznać nie tyle składnię, a czym jest programowanie (ogólnie rozumiane). Każdy z tych języków nauczy Cię programowania strukturalnego i właśnie od tego musisz zacząć. Później przyjdzie czas na programowanie obiektowe i tym samym inne języki. Gdy już będziesz czuł się w miarę obyty z jednym z dwóch ww. języków, to możesz się zmierzyć z zadaniami z tej strony http://pl.spoj.pl/. Poćwiczysz na niej algorytmy :slight_smile: Ogólnie to na początek ważne jest, żebyś sobie znalazł jakąś na prawdę dobrą książkę, uczącą nie tyle samego języka, co również programowania (ja Ci niestety takiej nie podam, bo nie znam). I jeszcze jedno … programować nie nauczysz się w tydzień (choć podstaw składni danego języka jak najbardziej tak), tego człowiek uczy się całe życie. Powodzenia!

Jakikolwiek, byle nie asembler.

Podstawy składni są dość podobne w Pascalu, Delphi, C++, PHP, Java i podobnych. Sposób rozwiązywania problemów generalnie też jest podobny.

Ja nie znałem C#, a potrafię zrobić bez pomocy 30 zadań na semestr. Tak samo Visual Basic. IDE mocno pomaga.

Więc chyba wszystko wskazuje na Pascala. Postaram się poszukać na necie jakies poradniki a jutro odwiedzę bibliotekę miejską. Dzięki za pomoc.

Macie jakieś rady dla początkujących?

Najłatwiejszym językiem jest zdecydowanie BASIC, tyle że, jeśli myślisz o programowaniu w kategorii przyszłego zawodu, jest to język wyłącznie na początek. Tu masz kilka linków do nowych BASICów, takich bez numerów linii, instrukcji GOTO i “spaghetti code”: http://basic256.org/index_en, http://smallbasic.com/, http://freebasic.net/ . Ten ostatni to bardziej skomplikowany język, ale jest wstecznie kompatybilny z QBasicem, o którym znajdziesz masę materiałów w sieci (także po polsku).

HTML + JavaScript też może być na początek.

Języki, które, biorąc pod uwagę to co napisałeś, zdecydowanie odradzam (a które pewnie ktoś Ci poleci): Python, Perl, PHP, Pascal, C i C++, Java, C#, Asembler. I nie słuchaj głupot, że na początku to w zasadzie każdy się nadaje w takim samym stopniu.

Dodane 19.11.2011 (So) 16:02

O wiele lepszym wyborem jest BASIC. Oba są w zasadzie martwe, ale BASIC jest prostszy i przyjemniejszy, bo ma łatwiejszy dostęp do grafiki i dźwięku. Ktoś pewnie napisze, że podstaw i tak najlepiej nauczyć się w konsoli. Nawet jeśli jest to prawda z punktu widzenia czysto informatycznego, to z punktu widzenia dydaktycznego niekoniecznie. Poza tym w BASICu też możesz pisać programiki konsolowe.

Jeżeli koniecznie chcesz się uprzeć na Pascal’a, to ucz się podstaw tego języka tj. pętle, instrukcje warunkowe, procedury i funkcję, tablice jedno i wielowymiarowe. Ewentualnie operacje na plikach tekstowych i elementowych. Później możesz przejść na inny język programowania.

Pozdrawiam

Jeśli zdecydujesz się na Pascal-a, to obowiązkowo wybierz ten kompilator http://www.freepascal.org/ (cały czas jest rozwijany). Jeśli chodzi o tutorial-e, to żaden nie jest w stanie zastąpić dobrej książki. Niemniej teraz zerknąłem na google i pierwsze linki na jakie natrafiłem wyglądają dość ciekawie http://www.pascal.yoyo.pl/?section=tutorial&id=main, http://www.ks-ekspert.pl/artykuly/programowanie/pascal/2008/08/kurs-pascala-czesc-1.aspx. Możesz sobie przejrzeć.

Nie powiedziałeś wciąż, czy już studiujesz, czy jesteś jeszcze w liceum, bo to jest dość istotne. Jeśli jesteś w liceum, to mówię bierz język, który jest szczególnie popularny na maturze (choć pewno będzie to Pascal - upewnij się, że używany jest Free Pascal - lub C). Jeśli już jesteś na studiach, to być może skok na głęboką wodę, będzie lepszą decyzją, czyli od razu programowanie obiektowe. Jeśli chodzi o to co napisał ra-v, to też odradzam Assembler-a (choć ja od tego zaczynałem :P). Nie polecam jednak takich języków jak np. PHP czy JS, bo nie ma tam chociażby silnej typizacji zmiennych.

Lisp, Haskell, Whitespace, Malbolge… nie przesadzałbym z tym “jakikolwiek”.

Bez znajomości zmiennych i pętli trudno pojąć programowanie obiektowe.

Wydawało mi się, że jasno się wyraziłem, ale postaram się poprawić :slight_smile: Chodziło mi o to, że jeśli autor tematu jest już na studiach, to być może lepszym wyborem dla niego będzie rozpoczęcie nauki programowania od razu od języka obiektowego. Każda książka do nauki języka (nawet ta do nauki języka obiektowego) zaczyna się od zapoznania czytelnika ze zmiennymi, czy pętlami, tylko jest to po prostu podane w bardziej skondensowany sposób. Chyba, że natrafiłeś na książki do nauki języka, w których takie zagadnienia nie są poruszane?

EDIT: Zerknąłem co ma być na maturze 2012 http://maturzysci.com.pl/informatyka-na-maturze-2012/. Jest Pascal (Free Pascal), C/C++ i nawet o dziwo Java :slight_smile:

radek_777 ,

Zapoznaj się z tematem i popraw tytuł tematu na konkretny, mówiący o problemie. W celu dokonania zaleconej korekty proszę użyć przycisku Edytuj przy poście otwierającym ten temat.

Zignorowanie zalecenia będzie skutkowało usunięciem tematu do Kosza.

Moim zdaniem najlepiej by było rozpocząć naukę C. Jak już tutaj widać jest na maturze z informatyki. Ponadto na pewno miałbyś już pewne podstawy, jeżeli chciałbyś studiować informatykę lub cokolwiek pochodnego i oczywiście łatwo jest przejść na C++. Pascal uczy programowania typowo strukturalnego, uważam że powinno się uczyć języków na które jest pewne zapotrzebowanie. Pascal raczej takiego nie posiada ale na pewno w pewnym sensie nadaje się do edukacji podstawowej znajomości programowania, mimo wszystko teraz się trochę powtórzę, podstawy programowania możesz załapać na C i to w bardziej rozszerzony sposób, jaki nie daje Pascal. :wink:

Tego się spodziewałem. Co post to inny język się pojawia :smiley:

Na polu walki pozostał BASIC który był polecany raz ale z argumentami, C i Pascal. Już muszę sam chyba zdecydować żeby już dziś rozpocząć nauke.

Jeżeli autor tematu jest na studiach i pyta o takie rzeczy, to jego głównym problemem niedługo będzie wyrobienie sobie książeczki Sanepidu.

Składnia większości popularnych języków programowania (C++, Java, C#, PHP) jest bardziej podobna do C niż Pascala czy Basica.

C jest trudniejsze do nauki niż Pascal czy Basic, ale jest “bliżej sprzętu” i od razu uczy kwestii związanych z obsługą pamięci, a przy okazji myślenia o takich kwestiach jak wydajność i efektywność. Potem się to przydaje.

Jak możesz to daj znać na co się zdecydujesz.

Czy ja wiem, podstawowe konstrukcje, tj. pętle i instrukcje warunkowe, niczym nadzwyczajnym moim zdaniem się nie różnią. No może przy C trzeba pisać mniej słów kluczowych, ale czy to czyni go trudniejszym? No być może :slight_smile:

Poprzez obsługę pamięci masz na myśli programowanie z użyciem wskaźników, czy co dokładnie (przy okazji … wskaźniki są też w Pascal-u, choć ja z nich nigdy w tym języku nie korzystałem) ? Początkujący raczej z nich nie będzie korzystać. Chyba, że mówisz o czymś innym?

Czyli pisząc w innym języku niż C (np. Pascal-u) nie trzeba myśleć o wydajności?

Co rozumiesz przez słowo “efektywność”? Jeśli to co myślę, to przecież to jest całkowicie subiektywne. Ja np. mogę być bardziej efektywny w C# niż w Javie, co nie znaczy, że Java jest złym językiem, a jedynie oznacza, że nie znam jej wystarczająco dobrze.

Chyba jednak wybiorę C. Dużo mi wskazuję na to. Basica wykluczam od razu a pascal faktycznie mało używany.

Rozpocznę od C potem C++.

Rozumiem, czyli jednak postawiłeś na popularność ? :stuck_out_tongue: BTW myślę, że warto sobie przejrzeć kody programów w C i Pascal, żeby zobaczyć co wydaje Ci się czytelniejsze (choć może być tak, że na razie zarówno jedno, jak i drugie będzie Ci się wydawać czarną magią).

Wydaje mi się, że obsługa wejścia/wyjścia w C jest nieco trudniejsza dla początkującego przez różne dziwne funkcje wymagające masy dziwnych literek do określenia formatu oraz wskaźników.

A jak skorzysta z jednej z podstawowych funkcji “scanf”?

Ponadto, prędzej czy później, przy obsłudze tablic bądź wskaźników na funkcje do nich dojdzie.

Myśleć trzeba zawsze, pytanie czy początkujący, którzy nie wiedzą o istnieniu pamięci, myślą o niej? Bo ucząc się C nie sposób się nie natknąć na zagadnienia z nią związane.

Efektywność algorytmu, nie programisty. W sumie to samo co wydajność.

Ale wiesz, że wybrałeś dokładnie odwrotnie niż chciałeś? :slight_smile: Miał być język, który jest…

A jakby nie patrzeć C do najłatwiejszych nie należy, za to wiele osób powie, że jest właśnie podstawą. :slight_smile:

Ja już sam nie wiem, mówią że Pascal nie nauczy mnie bo nie będe zwracał uwagi na szczegóły itd. moim zdaniem C też jest trudny tylko za co innego się wziąć?

Może jednak ten Pascal? :smiley:

Nie, nie i jeszcze raz nie! :slight_smile:

Z punktu widzenia czysto informatycznego - C

Z punktu widzenia także dydaktycznego - BASIC

Jest tak jak napisał somekind. BASIC jest łatwiejszy i atrakcyjniejszy dla początkujących, ale C w większym stopniu uczy od razu czegoś co przydaje się w przyszłości. Sam musisz zadecydować co Ci bardziej odpowiada - rzucanie się na głęboką wodę czy skromniejszy początek. A Pascal ani nie jest atrakcyjny dla początkujących, ani przyszłościowy.