[+] Pascal/C++ - od którego zacz
Nie chcę zakładać niepotrzebnie nowego tematu, więc zapytam tutaj. Wiele osób zachwala książkę "Symfonia C++". Jak prezentuje się w porównaniu z nią "Thinking in C++"? Może ktoś miał w ręku obie te pozycje? Zastanawiam się, która byłaby lepsza dla początkującego programisty (czyli takiego, który wie mniej więcej o co chodzi z programowaniem, co to są obiekty i wskaźniki).
Obie książki są dobre. Uczyłem się z Symfoni i polecam, Thinking ... czytałem kawałki i też całkiem niezła, choć nie gwarantuje za całość bo np. w Thinking in Java Eckel wymyślił sobie że każdy musi znać wyrażenia regularne i skonstruował dziwne klasy które służyły zamiast wydruków programów co powodowało moją niechęć do czytania tej książki, mimo bardzo dobrego tłumaczenia składni javy.
A wracając do Twojego wcześniejszego pytania to:
pascal - w miarę łatwy język do nauki dla początkującego programisty, ale nie za bardzo przyda ci się w przyszłości, wymyślono go jako pomoc dydaktyczną i w tym sprawdza się najlepiej. Na windows mógłbyś ewentulnie przenieść się na Delphi który jest oparty na Pascalu
c/c++ - są dość trudne dla początkującego i obecnie raczej rzadko używa się ich do pisania programów dla biznesu, opłaca się w nich pisać programy które mają działać szybko, w czasie rzeczywistym lub gdy bardzo wielu użytkowników będzie z nich korzystać
Java i C# - to obecnie chyba najbardziej popularne języki do tworzenia oprogramowania użytkowego - wcale nie musisz zaczynać od C lub C++ aby nauczyć się w nich programować, (chyba że chcesz poświęcić dużo czasu na naukę wtedy warto zapoznać się w cześniej z C/C++)
języki skryptowe - dość łatwe do nauki, umożliwiają wykonywanie w prosty sposób rzeczy które w innych językach wymagają wielu godzin pracy i wysokich umiejętności . Niestety ich wadą jest mniejsza prędkość działania więc nie napisze się w nich wielkiej szybkodziałającej aplikacji. Za to szybkość tworzenia programów jest dużo większa.
Wybór języka zależy głównie od tego ile czasu chcesz poświęcić na naukę i co chcesz zrobić z tą umiejętnością. Osobiście polecałbym Ci rozpoczęcie nauki języka skryptowego typu python, perl itd a z czasem wraz ze wzrostem wiedzy ogólnej douczenie się innych języków w zależności od potrzeb.
Słyszałem kiedyś taką opinię, że należy zaczynać naukę od C bo później gdy ktoś nauczy się Javy lub pythona to nie chce już sięgać do tak niskopoziomowego języka jak C. Ale świadczy to chyba o tym, że większości nie jest on już potrzebny.
To oczywiście moja subiektywna opinia, ale najważniejsze abyś się szybko zdecydował i zaczął wreszcie pisać bo jak mówił pewien znany poeta: "¯eby nauczyć się pisać trzeba pisać ..."
Pozdrawiam
MS
A wracając do Twojego wcześniejszego pytania to:
pascal - w miarę łatwy język do nauki dla początkującego programisty, ale nie za bardzo przyda ci się w przyszłości, wymyślono go jako pomoc dydaktyczną i w tym sprawdza się najlepiej. Na windows mógłbyś ewentulnie przenieść się na Delphi który jest oparty na Pascalu
c/c++ - są dość trudne dla początkującego i obecnie raczej rzadko używa się ich do pisania programów dla biznesu, opłaca się w nich pisać programy które mają działać szybko, w czasie rzeczywistym lub gdy bardzo wielu użytkowników będzie z nich korzystać
Java i C# - to obecnie chyba najbardziej popularne języki do tworzenia oprogramowania użytkowego - wcale nie musisz zaczynać od C lub C++ aby nauczyć się w nich programować, (chyba że chcesz poświęcić dużo czasu na naukę wtedy warto zapoznać się w cześniej z C/C++)
języki skryptowe - dość łatwe do nauki, umożliwiają wykonywanie w prosty sposób rzeczy które w innych językach wymagają wielu godzin pracy i wysokich umiejętności . Niestety ich wadą jest mniejsza prędkość działania więc nie napisze się w nich wielkiej szybkodziałającej aplikacji. Za to szybkość tworzenia programów jest dużo większa.
Wybór języka zależy głównie od tego ile czasu chcesz poświęcić na naukę i co chcesz zrobić z tą umiejętnością. Osobiście polecałbym Ci rozpoczęcie nauki języka skryptowego typu python, perl itd a z czasem wraz ze wzrostem wiedzy ogólnej douczenie się innych języków w zależności od potrzeb.
Słyszałem kiedyś taką opinię, że należy zaczynać naukę od C bo później gdy ktoś nauczy się Javy lub pythona to nie chce już sięgać do tak niskopoziomowego języka jak C. Ale świadczy to chyba o tym, że większości nie jest on już potrzebny.
To oczywiście moja subiektywna opinia, ale najważniejsze abyś się szybko zdecydował i zaczął wreszcie pisać bo jak mówił pewien znany poeta: "¯eby nauczyć się pisać trzeba pisać ..."
Pozdrawiam
MS
mikolajs poruszył ważną kwestię. Zastanów się CO chcesz programować. Jeżeli aplikacje okienkowe dla zwykłych biznesu to faktycznie Java może być dobra. Jeśli aplikacje okienkowe dla zwykłych juserów, to IMHO C++ nadal ma duże znaczenie.
Natomiast C obecnie jest używany głównie (pomijając GTK) do pisania sterowników, kernela, ogólnie "blisko" sprzętu.
Natomiast C obecnie jest używany głównie (pomijając GTK) do pisania sterowników, kernela, ogólnie "blisko" sprzętu.
3ndriu thinking in C++ mozesz sobie zobaczyc w necie, jest do sciagniecia za darmo (angielska wersja)
thinking in C++ tylko przegladalem, ale wydaje mi sie ze symfonia jest ciekawiej napisana i lepiej wytlumaczona, thinking in C++ taki bardziej techniczny imho, ale nie przeczytalem calej ksiazki wiec moge sie mylic, ale przy tym chyba posiada wiecej informacji
thinking in C++ tylko przegladalem, ale wydaje mi sie ze symfonia jest ciekawiej napisana i lepiej wytlumaczona, thinking in C++ taki bardziej techniczny imho, ale nie przeczytalem calej ksiazki wiec moge sie mylic, ale przy tym chyba posiada wiecej informacji
Na p2p jest masa ksiazek informatycznych, do C++ multum, po polsku tez. Zreszta moim zdaniem upieranie sie na materialy po polsku uczac sie programowania to glupota i niestety predzej czy pozniej przyjdzie chwila, ze trzeba bedzie siegnac po angielska dokumentacje. Jezeli angielski to dla kogos bariera nie do pokonania, to niech da sobie spokoj z programowaniem, bo zbyt daleko nie zajdzie.
Tak na dobra sprawe ksiazke mozna przeczytac uczac sie samych podstaw (typu skladnia i wszystkie konstrukcje dostepne w danym jezyku), ale zawsze najlepsza nauka to praktyka. A poza tym, poznajac nowe technologie ksiazka bedzie zawsze nieaktualna albo wcale jej nie bedzie.
Pokazcie mi jakakolwiek ksiazke o wxWidgets, GTK (po polsku, ale porzadna), QT. Ilosc ksiazek po polsku do C#, to pewnie okolo 2-3, a zadna nie dotyczy na pewno Visual C# 2008, .NET 3.5. Linq, WebSerwice Software Factory - takich rzeczy najlepiej uczyc sie z oficjalnej dokumentacji, a nie wydawac kase na ksiazki.... no ale to tylko moje zdanie
Co do wydajnosci... C++ - natywne, szybkie, C# - prawie rownie szybkie (najwiekszy narzut przy pierwszym uruchomieniu aplikacji, co wynika ze sposobu dzialania .net) i bardziej pamieciozerne, Java - cholernie pamieciozerna i bardzo wolna w porownaniu z pozostalymi dwoma, ale za to wieloplatformowa..... czego uzyc to zalezy od sytuacji
Tak na dobra sprawe ksiazke mozna przeczytac uczac sie samych podstaw (typu skladnia i wszystkie konstrukcje dostepne w danym jezyku), ale zawsze najlepsza nauka to praktyka. A poza tym, poznajac nowe technologie ksiazka bedzie zawsze nieaktualna albo wcale jej nie bedzie.
Pokazcie mi jakakolwiek ksiazke o wxWidgets, GTK (po polsku, ale porzadna), QT. Ilosc ksiazek po polsku do C#, to pewnie okolo 2-3, a zadna nie dotyczy na pewno Visual C# 2008, .NET 3.5. Linq, WebSerwice Software Factory - takich rzeczy najlepiej uczyc sie z oficjalnej dokumentacji, a nie wydawac kase na ksiazki.... no ale to tylko moje zdanie
Co do wydajnosci... C++ - natywne, szybkie, C# - prawie rownie szybkie (najwiekszy narzut przy pierwszym uruchomieniu aplikacji, co wynika ze sposobu dzialania .net) i bardziej pamieciozerne, Java - cholernie pamieciozerna i bardzo wolna w porownaniu z pozostalymi dwoma, ale za to wieloplatformowa..... czego uzyc to zalezy od sytuacji
Przepraszam 3ndriu ale nie zauważyłem, że kto inny pyta o książkę, a kto inny zakładał post.
Co do C# to na Windows działa on trochę szybciej niż Java (ale nie tak bardzo) natomiast w mono jest znacznie wolniej niż w Java (Linux). Poza tym C# jest dużo wolniejszy od C++ a nie prawie tak samo szybki. Można co prawda używać unsafe mode ale jest to kłopotliwe. Przenośność C# na inne platformy nie jest tak dobra jak Javy. Język jest bardzo podobny do Javy dlatego też dużo łatwiejszy od C++, ale nie daje takich możliwości jak C++. Programiście który chce robić programy głównie na Linux nie polecałbym tego języka. Jest on idealny dla programistów windows.
Moja opinia oczywiście jest bardzo subiektywna bowiem pisałem dużą aplikację w tym języku choć szczerze go nienawidzę!
Jeśli chodzi o książki po polsku to osobiście zdecydowanie lubię czytać w rodzinnym języku!
Czytając książkę po polsku szybciej zrozumiem o co chodzi. Oczywiście książka jest tylko podstawą, wporwadzeniem do zagadnienia, a wszystkiego i tak trzeba nauczyć się w praktyce i dopiero tutaj sięgam po dokumentację. ¯adna dokumentacja nie jest napisana dobrze pod względem dydaktycznym. Nie wyobrażam sobie nauczenia się języka programowania z dokumentacji (references).
Pozdrawiam.
Co do C# to na Windows działa on trochę szybciej niż Java (ale nie tak bardzo) natomiast w mono jest znacznie wolniej niż w Java (Linux). Poza tym C# jest dużo wolniejszy od C++ a nie prawie tak samo szybki. Można co prawda używać unsafe mode ale jest to kłopotliwe. Przenośność C# na inne platformy nie jest tak dobra jak Javy. Język jest bardzo podobny do Javy dlatego też dużo łatwiejszy od C++, ale nie daje takich możliwości jak C++. Programiście który chce robić programy głównie na Linux nie polecałbym tego języka. Jest on idealny dla programistów windows.
Moja opinia oczywiście jest bardzo subiektywna bowiem pisałem dużą aplikację w tym języku choć szczerze go nienawidzę!
Jeśli chodzi o książki po polsku to osobiście zdecydowanie lubię czytać w rodzinnym języku!
Czytając książkę po polsku szybciej zrozumiem o co chodzi. Oczywiście książka jest tylko podstawą, wporwadzeniem do zagadnienia, a wszystkiego i tak trzeba nauczyć się w praktyce i dopiero tutaj sięgam po dokumentację. ¯adna dokumentacja nie jest napisana dobrze pod względem dydaktycznym. Nie wyobrażam sobie nauczenia się języka programowania z dokumentacji (references).
Pozdrawiam.