Witam! Dopiero zaczynam początki z programowaniem. Uczę się jako pierwszego języka ANSI C z książki "Klasyka Informatyki" D. Ritchie, W. Kernighan. I tu pytanie: czy jako pierwszy język to dobry wybór i lepiej później PHP czy C++ i dopiero PHP? Czy ta książka jest dobra dla początkującego? Dodam jeszcze, że nie chce wiązać przyszłości z tym językiem. Wolę bardziej pójść w strony java, .NET. Proszę o rady.
język to tylko narzędzie :)
C, C++, potem C#, Java albo Python, ew. od razu Haskell, LISP, Prolog albo coś innego, równie rozwijającego. Nie ucz się PHP, to jeszcze większa dziwka niż (bardzo) zaawansowane C++, wbrew pozorom to język trudny do opanowania, przyniajmniej w sytuacji, kiedy chcesz go używać świadomie i właściwie.
BPUZY napisał(a)
C, C++, potem C#, Java albo Python, ew. od razu Haskell, LISP, Prolog albo coś innego, równie rozwijającego. Nie ucz się PHP, to jeszcze większa dziwka niż (bardzo) zaawansowane C++, wbrew pozorom to język trudny do opanowania, przyniajmniej w sytuacji, kiedy chcesz go używać świadomie i właściwie.
czemu C, C++ a pozniej C# ? C# jest "najlatwiejszy" z tych 3 jezykow :) i oprocz nazwy nie ma z pozostalymi dwoma WIELE wspolnego
W ogóle to naucz się PROGRAMOWANIA, nie tylko języków programowania, to jest różnica.
@ano, co z tego, że najłatwiejszy? Skoro już zaczął C to niech to kontynuuje, niech nauczy się tego, jak program naprawdę funkcjonuje. Na języki automagicznie ukrywające 90% aktywności programu jeszcze przyjdzie czas. Na początek najlepiej albo C z klasykiem wymienionym przez autora wątku, albo Scheme z nieśmiertelnym SICP pod ręką...
ja zacząłem od C++, potem faramework Qt. Teraz uczę się C# i .NET i uważam że postąpiłem prawidłowo (samym programowaniem zajmuję się już jakieś 2 lata)
jednakże po poznaniu czystego c++ polecam jeszcze poznać podstawy winappi, najlepiej z książki "Programowanie Windows" a dopiero potem Qt
w przyszłości planuje zapoznać się z Pythonem (PyQt) :)
trzymaj się z daleka od javy, bo to zuo wcielone!
jeśli chcesz pisać programy i tylko programy to myślę że plan taki jaki ja obrałem jest ok.
jeśli jednak skłaniasz się też ku skryptom to raczej i tak PHP poznasz
wnioskując, tak C++ to dobry język na początek :)
PoziomeQ napisał(a)
jeśli chcesz pisać programy i tylko programy to myślę że plan taki jaki ja obrałem jest ok.
jeśli jednak skłaniasz się też ku skryptom to raczej i tak PHP poznasz, ewentualnie ASP.NET
Zdania pozbawione sensu, w językach skryptowych również tworzy się programy. ASP.NET to technologia, nie język programowania, zazwyczaj używa się w niej języka C#... Java nie jest złem wcielonym, nie uprawiaj propagandy.
@PoziomeQ: jak ty mało jeszcze wiesz! do tego udzielasz informacji bez pokrycia, zasłyszanych zapewne od kumpli (przykład javy - zero argumentów). Nie rozumiem po co poznawać winapi przed Qt? Po to właśnie powstają takie frameworki aby nie przejmować się api systemowym :]
PoziomeQ napisał(a)
samym programowaniem zajmuję się już jakieś 2 lata
raczej dopiero :] ale z "już" to tak troszkę dumniej brzmi.
Dorzucę swoje trzy grosze. Bo widzę że tutaj ktoś wspomniał że Java jest tylko pod Androidy... :]
No to faktycznie ktoś tu ostro pojechał. Ogólnie Java jest jednym z powszechnie używanych języków.
A wystarczy poprzeglądać oferty pracy. Dla dobrego Javowca praca się znajdzie bez problemu.
Wiele aplikacji, dużo biznesowych, jest pisanych w javie. Ponieważ w tym języku zrealizowanie projektu
jest dużo szybsze niż np w C++. A czas realizacji projektu to duże pieniądze. Chociaż sam nie przepadam
jakoś za tym językiem, to powiem że z jego znajomością o pracę nietrudno.
A co do winapi, to wg mnie dobrze jest chociaż sobie przerobić w kilka dni jakieś podstawowe tutoriale,
żeby zaznajomić się z tym jak w programach są obsługiwane zdarzenia (messages), callback'i itp sprawy.
W Qt ogrom mozliwości może zbytnio przysłonić samą ideę działania takich podstawowych rzeczy.
Wiadomo że pisanie aplikacji z interfejsem graficznym w winapi raczej ma sie jak kwiatek do korzucha, to jednak
te kilka dni na poznanie winapi to nic straconego.
Java jest tak obszerna, że tworzy własną galaktykę jednego języka z której można się nie ruszać i wciąż uczyć nowych rzeczy.
nie od kumpli, a wnioskując po postach ludzi na tym forum(programistów doświadczonych)
ścieżki mi "kumple" nie skazali, a sam taką sobie obrałem, poczytałem do czego służy konkretny język i postanowiłem że to mi się najbardziej przyda do realizowania moich projektów "garażowych"
Wg. mnie nie jest dobry na początek, ale nie jest też na tyle zły, żeby go zmieniać jeśli rozpocząłeś już naukę. Proponuję jednak jak najprędzej jednak zacząć pisać w czystym C (praktycznie każdy kod w C skompiluje się w C++, więc sam domyśl się jak te języki są podobne). Nauka C++ na początku może wydawać się męcząca ze względu, że w pewnym momencie zaczniesz zastanawiać się jak to wszystko działa (np. w jaki sposób cin >> zmienna; działa i inne tego typu rzeczy), przez co zacznie Ci się wydawać że to jest wszystko nielogiczne i możesz się zniechęcić. C jest nieobiektowy i jeśli dostatecznie ogarniesz pisanie kodu w C (zaczniesz swobodnie korzystać z funkcji, struktur, wskaźników...) to ogarnięcie koncepcji programowania obiektowego będzie stosunkowo proste. Staraj się na początku nie wykonywać operacji na tekstach (możesz się zniechęcić, ale pocieszające jest to, że w C++ i praktycznie w każdym innym języku programowania jest to dużo prostsze, aczkolwiek nie koniecznie szybsze jeśli robi się to nieświadomie - po zaprawie z C będziesz czuł, że niektóre operacje na tekstach są dla procesora bardziej czasochłonne niż inne).
Moim zdaniem tylko i wyłącznie C++. Jest on prosty, dopiero szablony są trudniejsze. Już nie wspominając o książce Grębosza (Symfonia C++ Standard później Pasja C++). Dzięki niej poznasz nowe elementy w odpowiednim czasie. Kuc nie umierać.
C++ prosty?
C jest prosty.
"C with cout" jest prosty.
"C with classes" jest średnio prosty.
Ale C++? Już na sam początek programowania obiektowego dostajesz konstruktory kopiujące, operatory przeżucia-wyplucia i ściśnięcia-pierdnięcia, i to jeszcze zanim dojdziesz do szablonów.
A szablony akurat nie są takie złe.
Bumcykowy napisał(a)
Moim zdaniem tylko i wyłącznie C++. Jest on prosty, dopiero szablony są trudniejsze. Już nie wspominając o książce Grębosza (Symfonia C++ Standard później Pasja C++). Dzięki niej poznasz nowe elementy w odpowiednim czasie. Kuc nie umierać.
Zanim dojdziesz do szablonów masz całe wskaźniki, referencje i zarządzanie pamięcią. To w C++ jest głównym problemem w zrozumieniu. Szablony to po prostu pewien sposób, który należy umieć zastosować.
Rzeczywiście C++ jest dość zawiły, ale od czegoś trzeba zacząć, czy to będzie C++, Java, Pascal... Ja zaczynałem od C++, później miałem dość sporą przerwę... i teraz na początku studiów znowu C++, bo akurat tego języka się "uczyliśmy". No, ale teraz wziąłem się za to bardziej poważnie, a dzisiaj zaczynam sobie czytać o UML 2.0.
Hej :)
Tak, C++ jest dobrym językiem na początek. Dlaczego? Zanim to wyjaśnię to powiem Ci tak - nie ucz się języka, tzn nie kładź na to takiej wielkiej wagi tylko ucz się programować :). Składnia i programowanie to dwie różne rzeczy.
Teraz dlaczego C++ jest dobrym językiem na początek? Zaraz mnie ktoś za to zjedzie (pozdro^^) ale w C++ masz tzw. dowolny styl pisania. Możesz pisać tak jak Tobie się podoba a nie tak jak by tego chcieli twórcy języka. Zaczynając programowanie od C++ samemu po czasie stwierdzisz, czy nadajesz się do tego czy też nie. Możesz w tym języku wyrobić sobie styl programowania i nabrać swoich (niekoniecznie dobrych) nawyków. C++ jest trudne. Ale nie na początku. Na początku będziesz pisał programy typu sortowanie przez wstawianie, NWD, NWW i inne proste. Trudność języka C++ pojawia się na poziomie wskaźników, referencji, konstruktorów kopiujących, srających itd... zarządzanie pamięcią to po prostu jest masakra. Nie zwolnisz gdzieś zarezerwowanej pamięci i proszę wyciek. Potem szukaj tu błędów w programie dużym na miarę GG. Natomiast trudność programowania w C++ pojawia się na poziomie, kiedy chcesz napisać... komunikator. Tak, do dobry przykład. Tutaj koniecznie już jakaś biblioteka bo w czystym C++ tego nie zrobisz. To znowu się wiąże z poświęceniem czasu na poznanie tej biblioteki.
Musisz zadać sobie pytanie - co chcesz programować?
Jeżeli gry to jak najbardziej C++, jeżeli systemy operacyjne - również.
Aplikacje biznesowe/użytkowe - tutaj już na scenie pojawiają się wręcz stworzone do tego C# i Java.
C# i Java również są w pewnym sensie wszechstronne. W nich też się da pisać gry (C# - XNA Framework) Java np. Minecraft.
Azarien napisał(a)
C++ prosty?
C jest prosty.
"C with cout" jest prosty.
"C with classes" jest średnio prosty.Ale C++? Już na sam początek programowania obiektowego dostajesz konstruktory kopiujące, operatory przeżucia-wyplucia i ściśnięcia-pierdnięcia, i to jeszcze zanim dojdziesz do szablonów.
A szablony akurat nie są takie złe.
Dlatego wspomniałem o Symfonii, która jak żadna inna wprowadza w tajniki programowania no i łagodnie, bez stresu pozwala poznać język C++. Dzięki temu C++ nie jest trudny w nauce. No i chyba lepiej w razie potrzeby przejść z C++ -> C#, niż odwrotnie.
WitcherLogout napisał(a)
Musisz zadać sobie pytanie - co chcesz programować?
Jeżeli gry to jak najbardziej C++, jeżeli systemy operacyjne - również.
Aplikacje biznesowe/użytkowe - tutaj już na scenie pojawiają się wręcz stworzone do tego C# i Java.
C# i Java również są w pewnym sensie wszechstronne. W nich też się da pisać gry (C# - XNA Framework) Java np. Minecraft.
Wątpię ze będzie rozsądnie umiał udzielić odpowiedzi na to pytanie i to jeszcze długo.
Zresztą nie ma co się rozwodzić, to tak jak szukać wyższości Świąt Wielkanocnych nad Świętami Bożego Narodzenia.
zarządzanie pamięcią to po prostu jest masakra. Nie zwolnisz gdzieś zarezerwowanej pamięci i proszę wyciek.
Ee tam. C++ jest źle nauczane. Po prostu wielu wykładopwców zatrzymało się ze znajomością C++ na poziomie lat 90-tych. Nowe C++ ma wiele mechanizmów bardzo ułatwiających zarządzanie pamięcią i praktycznie można nie wiedzieć o new/delete ani konstruktorach kopiujących i programować w sposób prosty i poprawny. Trzeba tylko poznać dobrze bibliotekę standardową: std::move, std::unique_ptr, std:shared_ptr; nauczyć się używać RAII i standardowych kontenerów. A tymczasem większość kursów jakie widziałem, zostawia te elementy na deser, wcześniej katując studentów nagimi wskaźnikami, tablicami i new/delete; tak jakby to nadal było C tyle że z klasami.
Jeżeli gry to jak najbardziej C++, jeżeli systemy operacyjne - również.
Systemy operacyjne.... Wszędzie wszyscy powtarzają, że C++ do systemów operacyjnych, a ja bym chciał wreszcie się dowiedzieć, jaki to system napisano w C++? Ostatni był chyba Symbian (choć to takie C z klasami było), ale zawalił się pod własnym ciężarem. Jak chcesz programować systemy operacyjne, to musisz znać biegle C, C i jeszcze raz czyste C.
Jeśli szukasz C do nauki to zacznij od... Javy.
Składnia bardzo podobna, a masz od razu obsługę okienek.
Do tego perspektywy na robienie stron web i mobile.
C++ to głównie konsola, chyba że od razu chcesz zabrać się za Qt lub wxWidgets.
Ale wtedy to na pewno nie będzie łatwa nauka.
Albo nauczysz się perfekcyjnie C++/Qt (po jakichś 5-10 latach) i będziesz myślał że zawojujesz świat.
A potem ktoś Ci pokaże Pythona, Lazarusa, Lispa, Scale, Groovy i... stwierdzisz że nic nie wiesz.
Lepiej zacznij od prostszych środowisk.
Jaki język programowania wybrać
http://4programmers.net/Forum/C_i_C++/228070-jaki_jezyk_na_poczatek_c++_czy_java
http://4programmers.net/Forum/C_i_C++/123771-czy_c++_jako_pierwszy_jezyk_to_dobry_wybor
http://4programmers.net/Forum/Newbie/163040-alternatywa_dla_c++_poczatki_programowania
Jaki język programowania na początek ?
Jaki język programowanie wybrać na początek?