Czy C++ jako pierwszy język to dobry wybór

0

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.

0

język to tylko narzędzie :)

5

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.

4
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

2

W ogóle to naucz się PROGRAMOWANIA, nie tylko języków programowania, to jest różnica.

2

@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ą...

0

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 :)

2
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.

0

@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.

0

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.

2

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.

0

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"

0

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).

0

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ć.

6

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.

0
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ć.

0

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.

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.

0
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.

0

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.

0

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?

1 użytkowników online, w tym zalogowanych: 0, gości: 1