Czytam aktualnie knigę Pana Stephena Prata pt. Szkoła programowania C++.
Gość pisze że C++ zawiera w sobie wszystko to co ma C bo z niego się wywodzi i pisze też że C++ uzupełnia C o pojęcia obiektowe, że zawiera programowanie generyczne i że C++ zachował wszystko co ma w sobie C.
Pytanie brzmi … od czego ma zacząć naukę laik? Od C czy od razu od C++?
Dlaczego większość ludzi sądzi że naukę zaczynamy od C a nie od C++ skoro C++ to tak jak by C po tuningu?
Cześć, traktuj naukę C jako wstęp do C++. Prawie każda książka o c++ (każda jaką znam czyli min. symfonia c++) jedzie po łebkach podstawy takie jak wskaźniki, alokacja pamięci itp. bo autor zakłada że znasz to już z C.
C# ma się do C tak jak Java do JavaScript. To i to jest językiem programowania i ma wspólny człon nazwy ;-).
Czyli mówi kolega że zaczynać od C i zaglądać do C++…
Tak myślałem ale wolałem się upewnić.
Mam pytanko:
Mając książkę Praty którą mam próbować zdobyć Symfonię (którą tak polecają) czy to co mam wystarczy?
Ostatnie pytanie: którą książkę do C# kolega poleci?
Przyznam że w antykwariatach i bibliotekach tu lokalnie to wywiało wszystko co z C# związane.
C - podstawowy język bez programowania obiektowego.C++ to C + programowanie obiektowe,klasy,obiekty,itd.C# język podobny do Javy,który już wszystko ma obiektowe,stworzony na biblioteki i platformy programistyczne DotNet,Net Framework.Charakteryzuje się tym,że wszystkie jego funkcje są pogrupowane w klasy podobnie jak Java.
O tak, klasy, obiekty … i początkujący zakręcony.
Mógł by ktoś wyjaśnić na jakimś dziwnym ale prostym przykładzie z życia wziętym o co chodzi z tym językiem obiektowym a nieobiektowym?
Drugie głupie pytanie - język wysokopoziomowy a nisko poziomowy …
Chodzi nie o sam język a o programowanie obiektowe,tworzy się specjalne struktury zwane klasami.Potem na podstawie tych struktur tworzy się obiekty,poczytaj co to jest programowanie obiektowe.np piszesz klasę samochód,nadajesz jej właściwości markę,kolor,typ silnika,prędkość.Potem możesz tworzyć obiekty w pamięci.To właśnie umożliwia C++.Na tym bazują nowsze języki programowania.Język niskopoziomowy-chodzi o to,że jest blisko sposobu w jaki działa komputer.W językach wysokiego poziomu wywołujesz funkcje biblioteczne,w języku niskiego poziomu musisz je często sam napisać.To tak jak w Basicu wywołujesz print.
Serdeczne dzięki za zainteresowanie tematem i przede wszystkim za zaangażowanie w czyjejś sprawie.
Wszystko jest niby cacy lecz jest jedno ogromne ale.
Kupiłem książkę Stephena Praty do C++ (szkoła programowania).
Porównałem oryginalną książkę z książkami pobranymi w pdfach dawno temu z różnych stron (pebx, chomik i inne).
Tylko w jednej książce znalazłem kilkanaście błędów i dalej przestałem szukać.
Błędy są celowe. Tak wnioskuję.
Kod z książki:
{
int c;
while ((c= getc(ifp)) != EOF)
putc(c,ofp);
}
Kod z dokumentu pdf z chomika:
{
int c;
while ((c= get(ifp)) != EOF)
put(c,ofp);
}
Kod z dokumentu z pebx:
{
int c;
while ((c= getc(if)) != EOF)
putc c,ofp;
}
i takich przykładów jest w ciul! Wspominam o tym tylko i wyłącznie dlatego że nie umiem przestawić się na większe zaufanie do materiałów znalezionych w necie.
Może z poradnikami bezpośrednio ONLINE nie jest jeszcze tak źle jak z książkami bo praktycznie w czasie rzeczywistym ludzie nad tym czuwają (posty, komentarze, fora) ale z książkami skanowanymi nie jest już tak wesoło. To samo jest z kopią książki WPROWADZENIE DO J. C. Bieleckiego z 1988r.
Język C jest podzbiorem języka C++. Pierwszy był C potem ktoś dodał do niego obiekty(klasy) i powstał C++.
C# to nowoczesna wersja języka C++ - działa trochę wolniej od C, C++ ale za to jest bezpieczniejsza no i do uruchamiania programu napisanego w C# potrzebujesz platformy .NET tzn. WIRTUALNEJ MASZYNY.
Tak w ramach ciekawostki napiszę tylko że świat programowania to ciężki świat. Ciężki ale wspaniały. Gdy dodasz do programowania jeszcze elektronikę to słów brakuje. Wystarczy że człowiek liźnie trochę C#/C, Arduino, AVR i inne i chce więcej, więcej. Jakie to piękne samemu zrobić bardzo dobry alarm do samochodu za 40zł. Jakie to piękne zrobić cyfrowy sterownik klimatyzacji, alarmu, domofonu i wszystko ślicznie zintegrować w jednym fajnym urządzeniu za kwotę łączną 80zł
Jakie to śliczne wszystko mieć włączniki światła sterowane głosem bądź z pilota. Jakie to piękne odebrać domofon przez telefon z androidem będąc na drugim końcu miasta. Piękny świat ta elektronika.
Szkoda tylko że “biurko” elektronika jest tak drogie. Stacja lutownicza, multimetry, wytrawiarki, oscyloskop, mikroskop i masa, masa innych gadżetów jak mierniki freq., programatory, odpowiednie PC do pracy i cała reszta. Ale warto zwłaszcza gdy w przyszłości mamy zamiar na tym zarabiać.
C++ to nie tylko dodanie mechanizmów obiektowych do C, a wiele więcej. W samym C tez można pisać obiektowo, za pomocą odpowiednich konstrukcji albo frameworka (Vala). C# nie jest nowoczesnym C++… C# ma bliżej do Javy i Delphi niż do C++. Główny inżynier projektujący C# wzorował się troszkę na Javie, a ten sam gość wcześniej stworzył implementacje kompilatora TurboPascal oraz zaprojektował język ObjectPascal do pakietu Delphi.
Nauka C nie jest wstępem do C++. C jest prostym i ubogim w konstrukcje standardowe językiem. C++ ma zupełnie inna filozofie tworzenia, pełno UB oraz W.TF … C++ to możliwie najgorszy wybór jaki może podjąć początkujący, piszę to jako wieloletni programista C++, ale nie tylko.
Może i na początek to chore, ale daje do myślenia a to jednak pomaga, zadania masz na http://pl.spoj.com/problems/latwe/ także jest gdzie ćwiczyć. Bardziej chore jest to że code block i vs od ms trochę inaczej czytają kod, może to kwestia wersji c++, wiem tylko tyle że zabawka od ms lubi się buntować bo coś nie jest zgodnie z standardem i odsyła doi dokumentacji na sieci. PS. nie pytaj jaki język na początku, wybierz jeden i zacznij, zastanawianie się który lepszy nic nie da, gdyż każdy ma swoje wady jak i zalety w pewnych aspektach, dlatego ja osobiście jadę na c++, nie dlatego ze lubię, tak wyszło i tyle.
Powodzenia.