•  

    #cpp #naukaprogramowania #programowanie

    ###################
    # WSTĘP
    ###################

    Częstotliwość pytań o to jak lub z czego się uczyć programowania C++ jest wysoka. Więc dla wszystkich tych którzy zadali to pytanie, a może ktoś też podrzuci tą odpowiedź zadającym to pytanie w najbliższej (bo kiedyś i ta odpowiedź się zdezaktualizuje) przyszłości, postanowiłem napisać ten post.

    ###################
    # JAK SIĘ NIE UCZYĆ
    ###################

    Chciałbym raz na zawsze wyjaśnić pewną rzecz, nawet jeżeli część z was się ze mną nie zgodzi.

    Otóż "Symfonia C++" to nie jest dobry podręcznik,nie należy go nikomu polecać. Szczególnie w dzisiejszych czasach. Trzymam ten podręcznik właśnie w rękach. Czytałem ten podręcznik jak byłem na studiach. Ten podręcznik uczy starego stylu i wielu złych praktyk. Język C++ naprawdę się rozwinął od tamtego czasu.

    Zacznijmy od kilku podstaw:
    "Symfonia C++" to książka opisująca starodawną wersję C++ ARM. Nie brzmi strasznie, ale straszne jest w istocie:
    - Nie znajdziesz w Symfonii C++ czegoś tak potrzebnego i popularnego jak obsługa wyjątków (exception handling)
    - Nie znajdziesz przestrzeni nazw (namespaces)
    - Nie znajdziesz szablonów (templates)
    - Nie znajdziesz wielu innych rzeczy takich jak różne rodzaje rzutowań
    - Nie znajdziesz nic co doszło w standardzie ISO.

    "Symfonia C++ Standard" to nowsza wersja opisująca standard ISO zamiast archaicznego ARM. Ale. Dalej nie znajdziesz tam obsługi wyjątków i szablonów.

    pokaż spoiler Żeby być zgodnym z prawdą muszę nadmienić, że jest im poświęcona inna książka - "Pasja C++".


    Ale to wszystko umywa się przy tym, że w całej książce nazwy zmiennych (i funkcji i klas) są napisane po polsku. Nikt tak nie uczy, nawet na studiach się od tego odchodzi lub już się dawno odeszło. Tylko najbardziej przestarzali i zatwardziali w swoim konserwatyzmie wykładowcy się tego trzymają.

    Osobliwy sposób wcięć szczególnie i formatowania w ogólności to już sprawa subiektywna, ale mnie nie podszedł.

    But wait, there's more!

    Gdyby tego wszystkiego było mało, to w 2011 roku wyszła nowa wersja standardu, C++11, wnosząca bardzo dużo do języka, w tym ogromnie dużo dobrego.
    https://en.wikipedia.org/wiki/C%2B%2B11
    Można by rzec "ale kto by z tego korzystał to na pewno zaawansowane rzeczy dla wymiataczy" - ale to nie prawda. Zmiany były tak szerokie że nawet fundamentalne rzeczy używane przez początkujących programistów zostały pozmieniane. Nic z tego w tej książce (tych książkach) nie zobaczysz.

    ###################
    # JAK SIĘ UCZYĆ
    ###################

    1. Zacznijmy od książek:
    http://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ - to bardzo dobra książka, bardzo dokładna, zaprowadzi się od zera do kompetencji.

    Jeżeli natomiast już coś ogarniasz, ale nie jesteś pewien swojej wiedzy, albo skończyłeś część (lub całość) powyższej książki i chcesz więcej albo inaczej:
    http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/
    http://www.amazon.com/Tour-C--Depth/dp/0321958314/

    pokaż spoiler Nie jestem w stanie nawet wyrazić jak bardzo powinieneś się uczyć programowania w języku angielskim, a jak go nie znasz to powinieneś się najpierw nauczyć angielskiego. Ale, jeżeli prędzej umrzesz niż przeczytasz książkę programistyczną po angielsku to wiedz, że są dostępne te tłumaczenia:
    http://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm
    http://helion.pl/ksiazki/jezyk-c-kompendium-wiedzy-bjarne-stroustrup,jcppkw.htm


    But wait, there's more!
    W tym roku (2014) wyszła wersja C++14.
    https://en.wikipedia.org/wiki/C%2B%2B14

    Być może niedługo po napisaniu tego wpisu, zostanie w pełni opublikowana książka Scotta Mayersa która pozwoli ci "być na bierząco".
    http://shop.oreilly.com/product/0636920033707.do

    Znajomość języka to jednak nie wszystko i jeżeli chcesz być ogólnie kompetentnym programistom polecam poniższe książki:
    Algorytmy:
    http://www.amazon.com/Introduction-Algorithms-Edition-Thomas-Cormen/dp/0262033844/
    http://www.amazon.com/Algorithms-4th-Edition-Robert-Sedgewick/dp/032157351X/

    Wzorce obiektowe:
    http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/

    Bazy danych:
    http://www.amazon.com/Database-Design-Mere-Mortals-Hands-/dp/0321884493/
    http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/
    Pozycje nieobowiązkowe, ale najdogłębniejsze - http://www.amazon.com/C.-J.-Date/e/B000AQ6OJA/

    Dobre praktyki i inne:
    http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/
    http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/
    http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/
    http://www.amazon.com/The-Mythical-Man-Month-Engineering-Anniversary/dp/0201835959/

    Nie trzeba przeczytać wszystkiego (ale MOŻNA), niemniej należałoby przeczytać przynajmniej po jednej książce z każdej grupy.

    2. Video:
    Screencasty / kursy video potrafią sporo pomóc, nie korzystaj wyłącznie z nich, to po prostu kolejna pomoc naukowa.

    http://www.pluralsight.com/courses/table-of-contents/learn-programming-cplusplus - od postaw - niemniej nie rezygnuj z książek, skorzystaj z kursu video jako dodatku do książki.

    http://www.pluralsight.com/courses/modern-cplusplus-libraries - aby poszerzyć wiedzę
    http://www.pluralsight.com/courses/introduction-qt-cplusplus-framework - nauka Qt taka biblioteka do tworzenia graficznych interfejsów
    http://www.pluralsight.com/courses/boost-cpp-libraries-introduction - popularna biblioteka wielorakiego użytku

    http://www.informit.com/store/introduction-to-c-plus-plus-concurrency-livelessons-9780134031484 - programowanie współbieżne - super ważna rzecz w dzisiejszych czasach

    Filmy z konferencji, np. najświeższe - https://www.youtube.com/user/CppCon

    3. Wyzwania i potyczki
    TO SUPER WAŻNE żebyś podczas czytania i oglądania programował, nie kopiował gotowego kodu z paczek źródłowych do książek tylko ręcznie pisał, starając się zrozumieć co piszesz. Musisz eksperymentować, wprowadzać własne zmiany, pisać własne projekty i realizować własne pomysły.

    https://warosu.org/data/g/img/0441/94/1410874830625.png - zbiór 100 pomysłów na projekty treningowe aby nauczyć się na nich programowania

    Strony z zadaniami i zagadkami algorytmicznymi, poćwiczą twoje myślenie i niejednokrotnie optymalizację kodu. Miłe oderwanie od innej nauki. Uwaga - nie przesadzać, bo wpadniesz w złe praktyki i spiralę przedwczesnej optymalizacji.

    http://pl.spoj.com/
    http://codeeval.com/
    https://www.hackerrank.com/
    http://www.codechef.com/
    https://www.reddit.com/r/dailyprogrammer

    Różnego rodzaju ćwiczenia znajdziesz też na http://www.programmr.com/zone/cpp

    4. Pozostałe

    Korzystaj z dobrego środowiska:
    - Zapomnij o Dev-Cpp i Borland C++ Builderze, a jeżeli ich nie znałeś to nawet ich nie googluj
    - Jeżeli chcesz pisać tylko (głównie) na Windowsa to używaj Microsoft Visual Studio, tak tylko tego, yup, poważnie (http://www.visualstudio.com/)
    - Jeżeli interesuje cię wiele platform, zainteresuj się QtCreatorem (http://qt-project.org/wiki/Category:Tools::QtCreator) lub, odrobinę w ciemno, ale z dużą dozą pewności (bo JetBrains jest znane z fenomenalnych IDE) polecam też CLiona (http://www.jetbrains.com/clion/) który jest obecnie w fazie ostrej produkcji.

    Korzystaj z dobrego kompilatora:
    - Microsoft C++ Compiler (raczej tylko jeżeli wybrałeś powyżej Visual Studio)
    - GCC (https://gcc.gnu.org/)
    - Clang (http://clang.llvm.org/)
    Tyle, jeżeli nie masz naprawdę dobrego argumentu to nie zmieniaj kompilatora na jakiś niszowy.

    Nauczyć się ładnego formatowania kodu i odpowiedzi na najczęściej zadawane pytania:
    https://google-styleguide.googlecode.com/svn/trunk/cppguide.html
    http://www.stroustrup.com/bs_faq2.html

    Naucz się GITa (system kontroli wersji):
    http://git-scm.com/book
    https://try.github.io/
    https://www.atlassian.com/git/
    http://www.git-tower.com/learn/ebook/command-line/introduction

    Publikuj swój kod i czytaj kod innych:
    https://github.com/
    https://bitbucket.org/

    Naucz się języka SQL i opanuj przynajmniej jeden system zarządzania bazą danych:
    O SQL jest 4 tony całkiem niezłych książek, kursów i tutoriali, łatwo znaleźć więc nic konkretnego nie podam.
    PostgreSQL - gorąco polecam - http://www.postgresql.org/
    MySQL (MariaDB) - https://www.mysql.com/
    Oracle - http://www.oracle.com/pl/products/database/overview/index.html

    pokaż spoiler IBM Informix i DB2 dla hipsterów - taki żart ;)

    Naucz się co to CMake i jak go używać:
    http://www.cmake.org/cmake/help/cmake_tutorial.html

    Interesuj się i bądź na bieżąco:
    https://www.reddit.com/r/cpp
    https://www.reddit.com/r/learnprogramming
    https://www.reddit.com/r/programming

    Jeżeli prosisz kogoś o pomoc pamiętaj żeby:
    - Wkleić kod na jakieś pastie - np. http://dpaste.com/ , http://hastebin.com/
    - Sprawdzić czy kod faktycznie nie działa -u siebie i np na http://ideone.com/
    - Wklejając fragmenty kodu na wykop używać http://wykop-code.appspot.com/ w celu zachowania czytelności i wcięć
    - Opisać zrozumiale z czym masz problem i czego już probowałeś żeby temu zaradzić
    - Wkleić pełną treść błędu (jeżeli jest długo to na pastie) jeżeli takowy wystąpił

    •  

      @aseeon: No może teraz zmniejszy się częstotliwość spamu w tym tagu :)

    •  

      @aseeon: Tysiąc plusów za to!

    •  

      @sylwke3100: Na to bym nie liczył, ale może przynajmniej nie będzie trzeba im zamykać tematów i odsyłać do google ( ͡º ͜ʖ͡º)

    •  

      @aseeon: Szacunek za ten wpis.

    •  

      Wartościowy wpis, trochę się wkurzyłem, bo niedawno kupiłem symfonię, no cóż...

      pokaż spoiler Taktyk

    •  

      https://www.youtube.com/user/MiroslawZelent/videos a filmy tego gościa? Wykopki polecają

      @Oskarek89: Osobiście uważam, że wypada to raczej słabo, szczególnie na tle tego co wymieniłem we wpisie. A gdy dojdzie się u niego do filmów w których poleca skorzystanie z Borland C++ Builder i biblioteki VCL do GUI to już jest klapa. Nie byłoby to tak złe gdyby nie to, że gość jest niedokładny, przez co czasem pcha ludzi w niewłaściwe tory myślowe i rozwiązania. Do tego podobnie jak w symfonii, nie ma tam za wiele z C++11.

    •  

      @aseeon: gratuluję, to pierwszy wpis, który dodałem do ulubionych, jeden plus to mało :)

    •  

      @aseeon: Bardzo wartościowy wpis, z wielką chęcią przeczytałbym podobne o innych językach programowania.

    •  

      @nbzwdsdzbcps: Pewnie trzasnę jeszcze taki o Pythonie, kiedyś

      pokaż spoiler ale niczego nie obiecuję ( ͡º ͜ʖ͡º)

    •  

      @aseeon: Osobiście najchętniej przeczytałbym o Javie ale bardzo doceniam taką inicjatywę, gdyby jeszcze tego typu wpisy mogły zostać przyklejone.

    •  

      @aseeon: W końcu jakiś dobry i ciekawy wpis!

    •  

      @aseeon: Da się nauczyć Pythona?

      pokaż spoiler nie mając żadnych podstaw w innych językach... ( ͡º ͜ʖ͡º) w sumie to jeśli masz jakiś godny polecenia tutorial to możesz podrzucić ;) nie zajmuje się programowaniem, ale w mojej pracy używam świetnego narzędzia do którego można przemawiać komendami lub gdy chce się osiągnąć specjalne efekty przy pomocy Pythona :)

    •  

      @aseeon: Wpis leci do ulubionych, dobra robota milordzie :)

    •  

      @aseeon: Nie mieszaj polskiego z angielskim. Szczególnie, jak Ty nawet "templates" nie umiesz napisać. Ty się swojego języka najpierw naucz

      +: diemsi
    •  

      a ja mam pytanie, jak właściwie powstał nowy język programowania? bo dla mnie jako początkującego wygląda to na zasadzie: z du... y, magia coś z niczego

    •  

      Komentarz usunięty przez autora

    •  

      @aseeon: Taktyk, przyda się, wielkie dzięki :D
      Python też dobry pomysł, na pewno skorzystam, z Javy (jakbyś dał radę) też :D

    •  

      @aseeon: Niestety, ale mogę dać Ci tylko 1 plusa. Dobra robota.

    •  

      @aseeon: Nigdy nawet nie pomyslalem o tym, zeby sie uczyc c++, ale wpis leci do ulubionych. A moze sie kiedys przyda, kto wie. Na bogato!

    •  

      @tigere61: nie interesuje mnie programowaniecale ale daje plusa bo miło przeczytać cos wartościowego w gorących a nie spierdoliny różowych pasków czy inne żebranie o plusy.

    •  

      @aseeon: Świetny wpis. Nie prowadzisz czasem bloga o programowaniu?

    •  

      @aseeon: kurwa, napisales to niecały tydzień po kupieniu symfonii xD

    •  

      Nie mieszaj polskiego z angielskim. Szczególnie, jak Ty nawet "templates" nie umiesz napisać. Ty się swojego języka najpierw naucz

      @TheBestest: (。◕‿‿◕。)

      pokaż spoiler Jak nie popełniłeś nigdy żadnego błędu to gratuluję, szczególnie pisząc takie długie teksty w środku nocy, a jak popełniłeś to idź sobie zazdrościć gdzie indziej ( ͡° ͜ʖ ͡°)

    •  

      @Gil-Galad: Da się nauczyć pythona nie znając niczego, powiedziałbym więcej, jest to jeden z najlepszych "pierwszych" języków. Tak na szybko, pierwsze linki pod ręką:
      http://www.codecademy.com/en/tracks/python - kurs pythona z uruchamianiem w przglądarce, bardzo przystępny, merytorycznie dla bardzo początkujących
      http://learnpythonthehardway.org/book/ - książka(darmo)/filmy(płatne) w postaci zbioru ćwiczeń
      http://anandology.com/python-practice-book/index.html - ćwiczenia (ale też sporo uczących akapitów tam jest)

    •  
      japer via MirkoWP

      +1

      @aseeon: Ja uczyłem się na Jurku i trzaskam na Qt z nowym standardem. Nie rozumiem całej spiny o Jurka. :/

      +: Rzuku
    •  

      Odradzam uczenie się C++ jako pierwszego języka programowania. C++ jest jednym z najtrudniejszych języków, ofert pracy nie ma wiele a te które są wymagają specjalistycznej wiedzy z wąskich dziedzin. Ponieważ język jest trudny potrzeba kilku lat nauki żeby dostać się do pierwszej pracy. Na start lepsze są: Java, C#, JavaScript.

      Omijałbym też: PHP(przestarzały język programowania uczy złych praktyk), Python(nowoczesny i fajny, ale wciąż nisza w Polsce, ciężko o etat).

      +: leoha, kkjj
    •  

      @aseeon: W mojej ocenie nie podałeś jednego bardzo, ale to bardzo ważnego linku:

      http://www.open-std.org/jtc1/sc22/wg21/

      gdzie można znaleźć ostatni working draft standardu, bo kto podczas codziennej pracy nie czyta standardu, ten nie powinien nazywać się programistą C++ ;)

      No i co jak co, ale na zaznajomienie się z boostem powinieneś dać większy nacisk, bo to nie jest jakaś tam przydatna biblioteka, tylko najważniejszy pakiet bibliotek zaraz po bibliotece standardowej, bez którego nie wyobrażam sobie poważnej pracy (oczywiście pomijając takie wynalazki jak QT, ale ludzie z tym programujący sami decydują się na porzucenie standardowego C++).

      I ostatnia rzecz: Visual Studio nie jest na zwykłą kieszeń, ale ma dający radę darmowy odpowiednik Visual C++ Express, którego jedynym bolesnym okrojeniem jest brak rozszerzeń, ale do nauki wystarczy.

      A jakie masz uzasadnienie na podmianę standardowego kompilatora Microsoftu na Intel C++?

    •  

      Python(nowoczesny i fajny, ale wciąż nisza w Polsce, ciężko o etat).

      @notauser: Możliwe, że nie zdajesz sobie sprawy, ale napisałeś straszną bzdurę :D
      Jest sporo ofert pracy w Pythonie, najwięcej we Wrocławiu, dużo w Krakowie, Poznaniu i Warszawie. Nie ma problemu ze znalezieniem tego mitycznego etatu.

    •  

      @laoong: Masz rację we wszystkim co napisałeś.
      Link to standardu to ważna sprawa
      Boost to bardzo ważna biblioteka, ale zasługiwałaby wręcz na swój własny wpis, niestety nie znam boosta, może dlatego go potraktowałem po macoszemu
      Przez Visual Studio miałem na myśli i darmową i płatną wersję, zrobiłem taki skrót myślowy, który jak się okazuje jest oczywisty tylko dla mnie

      A jakie masz uzasadnienie na podmianę standardowego kompilatora Microsoftu na Intel C++?
      Żadnego, mea culpa, tam miało pisać Microsoft jak bum cyk cyk, dlatego nawet wspomniałem o Visual Studio w nawiasie (╥﹏╥)

    •  

      @aseeon: Ja pracuję jako programista Python, ilość ofert w Pythonie jest nie porównywalna do Java a poza tym często wymagają znajomości innych języków jak JavaScript, Ruby, Java etc. http://www.pracuj.pl/praca/python;kw - 112, http://www.pracuj.pl/praca/java;kw - 678 ofert

    •  

      @notauser: Wyobraź sobie, że też pracuje jako programista Pythona.
      A jaki sens ma porównywanie do Javy, pisałeś, że jest problem ze znalezieniem pracy, co jest bzdurą. Ofert jest mniej niż Javy czy C#, ale zupełnie nie ma problemu żeby znaleźć pracę. Tylko tyle i aż tyle. Kompletnie nie bierzesz pod uwagę, że kandydatów / programistów Pythona też jest odpowiednio mniej.

    •  

      @aseeon: dzięki Ci, dobry człowieku! Akurat muszę na studiach C++ zaliczyć, a nie planuję w nim tworzyć w przyszłości. :)

    •  

      @aseeon: Po patrz na te oferty, tylko kilka z nich to faktyczni programiści Python i te wymagają kilku lat doświadczenia, pozostałe to oferty z innych języków a Python jest tylko językiem wsparcie(mile widziany) to jest definicja niszy.

    •  

      @aseeon: OK. To wszystko jasne. Wspomniałem o Expresie, bo dobrze jest mieć świadomość, że VS jednak jest płatny - studentowi to wszystko jedno, ale po studiach w domu lepiej dla czystego sumienia używać Expressa.
      No i tak w ogóle, to super wpis :)

    •  

      @aseeon: włożyłes sporo zaangażowania w napisanie tego dla anonimowych użytkowników wykopu, łap plusa :)

    •  

      @laoong: @aseeon:
      Co do kompilatora Intela... też mnie to zainteresowało i zacząłem trochę grzebać na ten temat.

      tl;dr: Produkuje szybszy kod pod procki Intela. (doh)

      http://stackoverflow.com/questions/1982178/intel-c-compiler-as-an-alternative-to-microsofts
      https://software.intel.com/en-us/c-compilers

      Dorzucając do powyżych linków informacje z wiki wychodzi na to, że kompilator Intela jest zwykle "nieco" do przodu względem Microsoftowego. Raz, że pełne wsparcie dla C++11... dwa, że podobno lepiej optymalizuje, tworząc kod w różnych wersjach - wersja ostateczna wybierana jest przy uruchomieniu na podstawie możliwości procesora. Niestety, sensownie to robi tylko z procesorami Intela. Na tych od AMD strzela focha i odpala wersję kodu bez optymalizacji - nawet wtedy, gdy procesor z optymalizacjami by sobie poradził (chociaż podobno da się to w pewnym stopniu obejść). No i tani nie jest, a darmowej wersji najwyraźniej nie ma.

    •  

      @aseeon: dzięki za poradnik. Czy to prawka, że po cpp przeskoczenia na inny język to już chwila roboty? Na studbazie mam cpp do zaliczenia i nie wiem ile w to się pchać..

    •  

      @DejwiD: Nie na dowolny inny język, ale jak umiesz dobrze obiektowe programowanie w C++ to na inny język obiektowy raczej łatwiej przejść.

    •  

      @aseeon: za dzielenie sie wiedza zawsze plus :)

    •  

      @aseeon: Zajebioza, dzięki! A masz cokolwiek o C do polecenia?

    •  

      @NevilX: Robiłem w robocie ewaluację kompilatora Intela i mogę powiedzieć, że jest bardzo przyjazny - praktycznie bezproblemowe plug-n-play w miejsce g++, nie próbowałem podmieniać za kompilator MS, ale wg dokumentacji powinno być równie łatwe. Nie zauważyłem jednak aż takiej różnicy w wydajności. Paradoksalnie największy kopniak dało nie same użycie kompilatora, ale jego implementacji biblioteki standardowej, gdzie głupie memcpy potrafiło być trochę szybsze. Globalnie poprawa okazała się praktycznie niezauważalna, ale może to specyfika programu.
      Co do dispatchera, to w kompilatorze MS nie jest tak źle, bo jak się przypadkiem wejdzie przy debugowaniu do disassemblingu jego runtime'u, to widać w różnych metodach sprawdzanie, czy jest SSE i w zależności od tego różne ścieżki.

    •  

      @aseeon: to czas zacząć

    •  

      No i co jak co, ale na zaznajomienie się z boostem powinieneś dać większy nacisk, bo to nie jest jakaś tam przydatna biblioteka, tylko najważniejszy pakiet bibliotek zaraz po bibliotece standardowej, bez którego nie wyobrażam sobie poważnej pracy (oczywiście pomijając takie wynalazki jak QT, ale ludzie z tym programujący sami decydują się na porzucenie standardowego C++).

      @laoong: wat? Masz na myśli opcjonalny MOC, który automatycznie tworzy w pełni zgodny ze standardem kod na podstawie klas uƶytkownika?

    •  

      Komentarz usunięty przez autora

    •  

      Sądzisz, że ktoś kto nie umie programować zacznie od angielskiej literatury?

      @pietro137: Tak, jak ktoś zna angielski to powinien zaczynać od angielskiej literatury. A jak nie zna to powinien poznać. Poza tym przecież podałem 2 książki po polsku tam, na wszelki wypadek.

    •  

      Komentarz usunięty przez autora wpisu

    •  

      @aseeon: Właśnie na studiach mamy zrobić projekt gry 2d w cpp, gdzie w poprzednim semestrze złapaliśmy podstawy c. Na pewno się przydadzą te informacje :)

    •  

      @aseeon: ile można na tym zarobić? Podasz jakieś widełki?

    •  

      @swierzaq: To zależy jaki dobry jesteś, jak nauczysz się wszystkiego co tutaj wymieniłem to ci się krzywda nie stanie i za minimalną robić nie będziesz. Ogólne widełki to bym powiedział od 3 do 30 tysięcy złotych będące wypadkową umiejętności, doświadczenia i szczypty szczęścia.

    •  

      @aseeon: prawie prawilnie... ale co to, jest C++ ARM? ᕦ(òóˇ)ᕤ
      Nie wprowadzaj osób, które chcą się uczyć cpp jakimiś dziwnymi terminami, nie istniejącymi w ISO C++.
      To tak, jakbym napisał, że przeportowany C++ na lodówkę nazywa się Lodówka C++... :/

      Ja ze swojej strony polecam:
      c++ reference
      boost reference
      zapoznanie się z takimi nazwiskami: Sutter, Meyers, Martin, Stephan T. Lavavej (pan STL, albo pirat xD), Alexandrescu
      no i stackoverflow. Oglądać, czytać, kodzić, robić błędy, szukać odpowiedzi, czytać, oglądać, pisać, kodzić, robić błędy, naprawiać błędy, debugować po wiele godzin, czytać, oglądać. Tak staniecie się dobrymi klepaczami kodu.
      By być naprawdę pro i mieć skilla na poziomie ww. należy:
      - albo być mega mózgiem i wszystko szybko obczajać, jednocześnie zapieprzając dużo,
      - zapierdalać jak pojebany i cisnąć i cisnąć i cisnąć i cisnąć ;)

    •  

      @aseeon: O takie Mirko walczyłem :-) jakby kogoś interesowała nauka Qt po polsku to polecam http://blog.matthew.org.pl

    •  

      @Pies_: Książkę Praty o C, do tego jakies rzeczy stricte linuxowe (advanced linux programming), może linux device drivers.

    •  

      @aseeon: Świetny wpis! Przydałby mi się taki o JavaScript, bo właśnie zaczynam. No, ale wszystkiego mieć nie można. Mile widziany do Pythona. ;)

    •  

      prawie prawilnie... ale co to, jest C++ ARM? ᕦ(òóˇ)ᕤ
      Nie wprowadzaj osób, które chcą się uczyć cpp jakimiś dziwnymi terminami, nie istniejącymi w ISO C++.


      @calka: No ARM nie istnieje w ISO, bo to było przed ISO ( ͡° ͜ʖ ͡°)
      Poza tym idź się kłóć z Gręboszem http://www.ifj.edu.pl/~grebosz/symfonia_c++_std_p.html

      (O Symfonii Standard) Książka ta jest następczynią bardzo kiedyś popularnej książki "Symfonia C++". Ta poprzednia książka opisywała język C++ według jego ówczesnej definicji zwanej skrótowo ARM.

    •  

      @KrzaQ2: Mam na myśli to, że drogi "Standard C++" i "QT C++" rozeszły się gdzieś w latach 90-tych.
      QT jest frameworkiem dostarczającym wszystko, czego programista QT może potrzebować, przez co nie ma potrzeby zaglądać do biblioteki standardowej, a często do żadnej innej. Bilbioteki QT mają zaprogramowane wszystko po swojemu i często sprzecznie z "duchem" standardowego C++.

      +: RRRRR
    •  

      Pewnie trzasnę jeszcze taki o Pythonie, kiedyś

      @aseeon: W takim wypadku wołaj proszę.

    •  

      taktycznie w huk + leci do ulubionych:) nie zajmuję się C++, zmieniłem swoje tory edukacyjne, ale dobry wpis zawsze trzeba docenić

    •  

      Taktycznie. 1000 plusów pęknie, tak sądzę.

    •  

      Potezny taktyk, w koncu cos czego szukalem, ale nie mailem kogo zapytac.

    •  

      Jeżeli ktoś chce po prostu zacząć, a nie czuje się mocny w angielskim (co trzeba jak najszybciej naprawić) to ja poleciłbym na początek "Szkoła programowania" -Stephen Prata.

    •  

      @aseeon: Za wartościowe wpisy zawsze plus. Byłoby miło, gdybyś zawołał na Pythona.

    •  

      @aseeon: Czekam na Pythona!

    •  

      @aseeon: Bardzo duży plus za chęci i zrobienie zestawienia!
      Może zrób znalezisko? Będzie lepiej widoczne i więcej ludzi może skomentować i pomóc.

    •  

      @BeSmarter: Możliwe, że zrobię coś takiego, gdy (jeśli) jeszcze opiszę tego Pythona i wrzucę je razem, zobaczymy.

      +: fsh
    •  

      @aseeon: To jest naprawdę wystarczająca ilość materiału na znalezisko :)

    •  

      @BeSmarter: Masz moje pozwolenie, żeby wrzucić, jeżeli uważasz, że to dobry pomysł :)
      Jeżeli się uzbiera kiedyś więcej to ja wrzucę zbiorczy wtedy.

    •  

      @aseeon: Miło, ale uważam że cała chwała należy się Tobie, jeśli jesteś głównym/jedynym autorem. Pozdrawiam i daj się docenić.

    •  

      @aseeon: może i Symfonia nie jest dobra do nauki C++ ale wydaje mi się odpowiednia do nauki programowania.
      Tu nie chodzi o samego C++ ale o poznanie narzędzi, które możemy wykorzystywać do tworzenia własnych projektów. Nigdy nie użyjemy narzędzia, którego na oczy nie widzieliśmy.

      Znasz lepszą książkę do nauki programowania?
      Tak aby miała wszystkie podstawy, pojęcia i zagadnienia opisane?

      +: Tojot
    •  

      @Caishen: Nie ma takiej jednej książki i nigdy nie będzie, bo by musiała mieć 6000 stron.
      Prata świetnie tłumaczy, tam właśnie są podstawy, bardzo dobrze wytłumaczone, jesteśmy prowadzeni za rączkę wręcz.

      A co do reszty, jest zalinkowane kilkanaście książek z których tego wszystkiego można i warto się nauczyć.
      Powiedz mi też jakie konkretnie narzędzia masz na myśli.

      Być może mylne, ale odnoszę wrażenie, że nie zadałeś sobie trudu zaglądnięcia nawet w te 3 podstawowe książki (choćby na spis treści), że przeczytałeś akapit o symfonii, i jako jej właściciel poczułeś się urażony.

    •  

      Naucz się GITa (system kontroli wersji):

      @aseeon: Dodam do tego: w każdym programie, nad którym spędzisz więcej niż kilka godzin, używaj kontroli wersji. Może się to wydawać bezsensowne, ale przy którymś z kolei pisaniu paru linijek od nowa, bądź usuwania testowego kodu zacznie nabierać sensu.

      +: laoong
    •  

      @aseeon: niesamowity wpis, dzięki Mirke, dałbym z dziesięć plusów :)

    •  

      @aseeon: Takie może głupie pytanie, ale gdybyś od nowa miał się uczyć programowania, to zaczynałbyś od c++ czy raczej od jakiegoś innego języka?

    •  

      @morsisko: Na ten moment pewnie chciałbym zaczynać od Pythona.

    •  

      @aseeon: Właśnie dość dużo naczytałem się zarówno o cpp jak i o Pythonie i przez to mam taki mętlik w głowie, że już sam nie wiem czego lepiej zacząć się uczyć. Dużo dobrych argumentów przemawia zarówno za pierwszym jak i za drugim językiem. :(

    •  

      @morsisko: Taka prawda, każdy musi dopasować do siebie to czego się uczy.

    •  

      No, to czas zarabiać 10k! :)

      pokaż spoiler Czas pójść w ogóle do pracy...


      @aseeon Dzięki za wpis!

      +: Cry
    •  

      @aseeon: Thx ;) Ciągle ktoś się mnie pyta, czemu ja taki niewyspany/wykończony/zmarnowany jestem. Może jak zacznę kodzić, co już nawet kiedyś zacząłem, to wreszcie będę mógł odpowiedzieć na pytanie tych ludzi co ja po nocach robię.

      +: a....n
    •  

      Wiele bym dał za podobny "poradnik" dla javy :)

    •  

      a mowilem ze rzadzisz :)

    •  

      @aseeon: Orientujesz się może, gdzie najtaniej można kupić C++ Primer Plus (6th Edition) (Developer's Library)?

    •  

      @aseeon: Odnośnie baz danych można jeszcze polecić taki ogólny wstęp w formie interaktywnego kursu.

      https://class.coursera.org/db

      +: a....n
    •  

      @StringerBell: Nie wiem gdzie najtaniej, ale zwykle dobre ceny mają w krainie książek:
      http://krainaksiazek.pl/C-Primer-Plus,9780321776402.html

    •  

      @aseeon: To poproszę takie samo, tylko że do Javy. ;)

    •  

      A dla średniozaawansowanych (w tym języku to lvl max ;));
      * Meyers - doskonałe książki, trudno dostępne po polsku, mnie się udało wyrwać ledwo jedną :(
      * Sutter - to samo + rewelacyjny blog pełen ultraciekawych ciekawostek (herbsutter.com)
      * Alexandrescou - łatwiej dostępny, tematyka trudniejsza i może trochę niszowa, ale fajnie powytrzeszczać oczy ;)

      +: laoong
    •  

      To poproszę takie samo, tylko że do Javy. ;)

      @haryen: To chyba musiałbyś prosić innych mirków: może @MacDada albo @JavaDevMatt lub @Eoghan (mógłbyś nawet zareklamować javastart przy okazji Eoghan )

    •  

      @aseeon: Jeden random z internetu nie przekona do, bądź co bądź, dość czasochłonnej roboty. BTW Leci plus, dobra robota.

    •  

      @aseeon: A co powiesz o http://docs.oracle.com/javase/tutorial/ bo nie wiem czy opłaca się kupować książkę, jeśli ktoś już zna składnię języka, podstawy obiektowości (dziedziczenie, polimorfizm). Ogarnąć materiał z tego tutka i kupować Effective Java 2nd czy jednak to nie wystarczy?

    •  

      Mógłby ktoś podrzucić albo wyjaśnić co i jak z tym githubem?

    •  

      Tyle tych materiałów... Świetny wpis (i pierwszy dodany do ulubionych). Widziałem "od zera do gier kodera", wikibooksa, symfonię, cplusplus.com i inne rzeczy, ale nie sądziłem że jest aż tyle informacji do nauki C++. Czuję teraz tzw. "mindf#ck'a" i zmieszany, bo nigdy się nie nauczę C++ do porządku. Życia "studenckiego" mi nie starczy. Mam 20 lat i znam raptem podstawy C (pętle, zmienne, tablice etc.). Tym wpisem mnie przestraszyłeś i to mocno, bo pojutrze mam pierwsze "laborki" z C++ na studiach.

    •  

      @aseeon: dlaczego nie polecasz borlandowskiego C++?
      Mam bardzo dobre doświadczenia z Borland Delphi od lat '90 po dziś dzień dlatego jestem ciekaw przeciwwskazań.

    •  

      @grodd_belham:
      Borland C++ Builder de facto już nie istnieje, w sensie nie jest rozwijany, null nic. A jak coś nie jest rozwijane to się praktycznie cofa w rozwoju. Choćby podświetlanie składni, wszystko co diametralnie zmieniło się w C++11 nie będzie nawet dobrze podświetlone, o podpowiadaniu takiej składni już nie wspomnę. Wszystko co zmieniło się od 2006 roku, wszystkie narzędzia które od tego czasu powstały czy zmieniły się, nie będzie dla nich wbudowanego wsparcia w IDE.

      pokaż spoiler Z ciekawostek, teraz jest coś co się nazywa Embarcadero C++Builder XE7 i nie mam pojęcia jakie jest

    •  

      @ursus: ! "Na ten moment pewnie chciałbym zaczynać od Pythona"

    •  

      Dodam link do dobrego poradnika bardzo znanej osobistości w świecie IT -> Gynvael Coldwind

    •  

      @aseeon: Odnosnie Dev-Cpp to ciekawe, bo wlasnie od niego zaczynalem. Calkiem przyjemny na poczatek.

    •  

      @aseeon Ty pało, przecież każdy wie, że nie masz pojęcia o programowaniu ( ͡° ͜ʖ ͡°)

    •  

      @aseeon: bogato, ale... było milion razy na setce for internetowych? ;)

      Ogółem najprościej dla początkującego:
      Symfonia C++ Standard albo Megatutorial Od zera do gier kodera (ten drugi trochę przyjemniejsze i za darmo jak dla mnie). Później jak ktoś załapie ocb i trochę popisze proste rzeczy dalej z neta może bez problemu ciągnąć wiedzę litrami bo później już łatwiej wchodzi niż na początku.

      A wyjątki, template-y i inne pierdoły nie potrzebne na początek można samemu choćby z C++ Reference się douczyć. Tak samo jak kontenerów i algorytmów z STLa.

    •  

      @Horix: Idź mi stąd trollu.

    •  

      @pejczi: dev-cpp nadaje sie na jedno-plikowe projekty >_< Polecam równie lekki i prosty w użyciu CodeBlocks. Jak ktoś chce kobyłę do dużego projektu to Visual jest świetny, taka prawda, ale trzeba sporo czasu spędzić nad nim żeby się dobrze go nauczyć. I ma super debugger, prosty i potężny.

      +: predek
    •  

      Ogółem najprościej dla początkującego:
      Symfonia C++ Standard albo Megatutorial Od zera do gier kodera


      @Far3W3ll7: Cały ten wpis powstał, żeby nie promować takiego ślepego podejścia. Prata jest prosty, wcale nie jest prościej z tymi dwoma. A do tego najprościej to wcale nie jest najlepiej, także po prostu Nie.

      Także to jest tragiczne podejście, droga na skróty w programowaniu owocuje znacznym nawałem niepotrzebnej roboty później. Będziesz prostował te wszystkie złe nawyki które wpajają takie kursy.

    •  

      @aseeon: wow super, a byłoby coś o C#?

    •  

      @aseeon: yyy, tzn. problem masz z czym w moim poście konkretniej? Lubisz dać początkującemu wybór 20 książek i ten zobaczy 1 rozdział "tu jest prościej, wezmę tą książkę?"
      Piszesz o templateach i wyjątkach komuś kto się zaczyna 1 języka uczyć ? Genialne! :) Też się potrafię czepiać, ale jaki to ma sens?

      Ogółem kawał dobrej roboty z listą, aż dziw że Ci się chciało (dałbym 10 plusów nawet). Po prostu nie widzę sensu bo przeleciałem wiele kursów nawet niedawno w necie itp. i... większość jest słaba/porównywalna, znow tam masz przystępnie napisane i wszystko w jednym co w podstawowych rzeczach trzeba umieć. Gratis to drugie jest w pełni darmowe. Jak ktoś załapie podstawy to dalej sobie sam poradzi bez problemu, a podążanie czyjąś ścieżką albo za rączkę prowadzenie też nie jest dobre.

      Nie polecał bym też C++11 dla początkujacych bo haczy o tematy jak wielowątkowść itd. które po prostu pomieszają mu. Przesiąść się ze starszego na 11 nie jest ani trochę trudno, a można to zrobić po kilku miesiącach nauki - dużo nie straci, nawyków nie wyrobi a nie przerazi się od tak hardcorowym materiałem, którego nie zrozumie.

      + Za algorytmike i GITa ;)

    •  

      @Far3W3ll7: To ja nie wiem czego ty się chcesz czepiać:

      http://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/

      Jedna książka, całe podstawy w niej są, razem, nawet jest polskie tłumaczenie które również dałem we wpisie.

      Wszystko jest ułożone w tym wpisie, nikomu nie daje 20 książek na raz.

    •  

      @aseeon: ja za pythonem byłbym jak najbardziej! ( ͡° ͜ʖ ͡°)( ͡º ͜ʖ͡º)( ͡º ͜ʖ͡º)

    •  

      @aseeon: we wpisie dajesz wlasnie kilkanascie pozycji, do tego algorytmike (+, bo dobrze umiec to, ale na początek za dużo!).

      Ja sie nie czepiam, po prostu uważam, że jak ktoś chce sie nauczyc C++ a ty mu jebniesz listę jak zrobiłeś to się przestraszy i zniechęci. Od siebie skróciłem twoją listę do 2 pozycji, które uważam za klasykę i jako co najmniej wystarczające (a nawet dalej bardzo dobre).

      pokaż spoiler PS. Mówić że C++14 już wyszedł to trochę za dużo, nie sądzisz? ;) chyba że chodzi ci o **specyfikacje standardu**, to owszem, ale po co to początkującemu? Nawet template'y to spooro za dużo na sam początek. Ba, nawet STL nie jest potrzebny na sam poczatek. Chyba że kierujesz to do kogoś kto przechodzi z innego języka, wtedy ok. Ale po pozycjach myślę, że dla początkujących "zielonych".

    •  

      Mówić że C++14 już wyszedł to trochę za dużo, nie sądzisz

      @Far3W3ll7: Wyszedł standard to wyszedł, poza tym:
      http://clang.llvm.org/cxx_status.html - wszystko z C++14 wspierane

    •  

      @aseeon: Cytuj całość, przecież napisałem że standard owszem. Po prostu z jego implementacją już tak różowo nie było (o Clangu widać nie nadrobiłem, propsy dla ekipy!).

      Wow, clang przez ostatnie kilka msc trochę nadrobił (choć i tak zawsze jak porównywałem z MS/GCC i innymi był zazwyczaj na prowadzeniu) ;) Z GCC nie było już tak wesoło nawet 2msc temu (wiem, bo sam szukałem czegoś do projektu w C++11). Nawet z obsługą głupich wątków w GCC musiałem własnoręcznie kompilować wersję z wątkami w POSIX, co dla POCZĄTKUJĄCEGO jest zapewne barierą nie do przebicia.

      https://gcc.gnu.org/wiki/C11Status - kilka rzeczy z C11 (nie C++11) jeszcze brakuje
      http://msdn.microsoft.com/en-us/library/hh567368.aspx - też sporo z 11 brakuje ;)

      Clang widzę przez te 2 miesiące "załatał" brakujące dziury, choć nie jestem przekonany, że żadne bugi się jeszcze nie zdarzą bo część rzeczy musiał implementować w ostatnich 2-3 miesiącach (na początku wakacji na pewno nie miał wszystkiego z C++11). No i dodaj do tego, że często środowiska (te proste) mają GCC ustawione standardowo (albo M$ ma swój) więc o 14 bym nie mówił, że jest już w 100% użyteczny. Owszem, dla chcącego - da sobie radę. Dla początkującego - nie bardzo ;)

      PS. W Clangu wątki działają bezproblemowo jak i reszta z C++11? Może się przesiądę... Hmm...

    •  

      @aseeon: będę musiał potestować :) aktualny projekt może już dokończę na tym dziwnym GCC (konkretniej MinGW builds), ale chyba dalej się przerzucę na Clanga. Naprawdę tempo mają tam niezłe, patrząc na ślamazarne GCC...

      PS. do materiałów z zadankami itp. dorzuć informatyka.wroc.pl - jest tam sporo zadań itd. z rodzimych stron i uczelni (to też plus), które można śmiało nawet na początku próbować rozwiązywać. Trochę artykułów też chyba było, więc myślę, że warta dodania strona.

    •  

      Komentarz usunięty przez autora wpisu

    •  

      @aseeon: a z C++14 chętnie przetestuję generyczne lambdy, z 11 bardzo mi się spodobały.

      Tak czy siak propsy za post, ale jak dla mnie było by to zbyt nieczytelne i zbyt duży wybór - pewnie by mnie zniechęciło jako dzieciaka (a w tedy zaczynałem).

    •  

      @Far3W3ll7: No to co powiesz na wersję Mikro Izi Edition:
      #########################
      Przeczytaj
      http://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/
      najlepiej własnie po angielsku, ale jeżeli no nie ma takiej opcji to weź polskie tłumaczenie
      http://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm

      Kod pisz w Visual Studio Express jeżeli chcesz pisać głównie pod Windowsem lub w QTCreatorze jeżeli na wszystkie systemy.

      Jeżeli prosisz kogoś o pomoc pamiętaj żeby:
      - Wkleić kod na jakieś pastie - np. http://dpaste.com/ , http://hastebin.com/
      - Sprawdzić czy kod faktycznie nie działa -u siebie i np na http://ideone.com/
      - Wklejając fragmenty kodu na wykop używać http://wykop-code.appspot.com/ w celu zachowania czytelności i wcięć
      - Opisać zrozumiale z czym masz problem i czego już probowałeś żeby temu zaradzić
      - Wkleić pełną treść błędu (jeżeli jest długa to na pastie) jeżeli takowy wystąpił

      Jak będziesz chciał więcej wróć do dużego wpisu
      #########################

    •  

      @aseeon: co sądzisz o kursach na coursera.org i środowisku programistycznym Geany na początek?

    •  

      @Grande_Esteban: Nie znam wszystkich kursów, są dobre i są złe, zupełnie jak książki. Geany to środowisko które wszystko robi poprawnie, ale niczego nie robi naprawdę dobrze, zawsze (no dobra, zwykle) wolę rozwiązania specjalistyczne.

      Wypróbuj przynajmniej QtCreatora.

    •  

      @aseeon: o stary widać, ze wiesz o czym piszesz przynajmniej podstawowo

    •  

      @aseeon: Taktyk over najn Tałznd

    •  

      @aseeon: fajny wpis ;) jak dla mnie dużo czytelniejszy :) Dodał bym darmowy tutorial (ten który polecałem, lub lepszy jeśli jakiś znasz i uważasz że lepszy od tamtego jest). Książki są ok, ale nie każdy lubi płacić / uczyć się z książki. I dodał bym prostsze IDE choćby CodeBlocks. Dev-Cpp rzeczywiście ssie. Visual jest świetny, ale serio nie dla początkującego - pogubi się w opcjach tworzenia projektu pewnie albo ustawieniach jego... Tak samo Eclipse po 1 otworzeniu wygląda masakrycznie, a tak naprawdę jest całkiem ok.

      Z QtCreatora nie miałem okazji korzystać, ale może załapię się na studiach na coś o Qt-cie albo w wakację podszkolę się z tego. Słyszałem za to bardzo dobre opinie ;)

    •  

      @Leniwiec1: Tak, znajdzie się. C# ma świetne książki:
      Prawdopodobnie pierwsza pozycja jaką powinieneś przeczytać:
      http://www.amazon.com/Microsoft-Visual-2013-Step-Developer/dp/073568183X/
      Troelsen też zawsze na propsie (tu jest praktycznie wszystko co można chcieć prawie 1600 stron):
      http://www.amazon.com/Pro-NET-Framework-Experts-Voice/dp/1430242337/

      I jeszcze dwie świetne pozycje:
      http://www.amazon.com/Programming-Windows-Writing-Developer-Reference/dp/0735671761/
      http://www.amazon.com/C-Depth-3rd-Jon-Skeet/dp/161729134X/

    •  

      @Far3W3ll7: A widziałeś http://codelite.org/ ? Jak już o czymś prostszym / łatwiejszym / mniejszym mowa.

    •  

      @aseeon: styknie, choć sam wygląd tego IDE do mnie akurat nie przemawia ;)

      Jeszcze chciałem dodac dla potomych (bo się napociłem a już odpowiedzieliście mi)...

      Co do megatutoriala - link macie TUTAJ
      Zalety :
      - darmowy
      - świetnie napisany, w prostym i przyjaznym języku
      - tematyka jest ciekawsza dla przykładów niż ta z książek (wg. mnie)
      - polecany przez setki ludzi, którzy od niego zaczynali, a skończyli dużo wyżej
      - wbrew nazwie nie koniecznie trzeba iść w kierunku gier z nim, sam kurs potrafi nauczyć większość podstaw języka po kolei nie wchodząc w żadne tematy gamedevu.
      - uczy tego co na początek jest najważniejsze pomijając zagadnienia, które są skomplikowane i mogły by zniechęcić.

      Na końcu też są chyba linki do materiałów co później, ale nie jestem tego pewny. Po polecał bym lekturę STLa i jakieś podsumowanie C++11 i nauczenie się właśnie go (już po ogarnięciu podstaw i po zakodzeniu kilkunastu małych rzeczy samemu). Bo praktyka jest najważniejsza, czytać można co się chce ale jak się samemu nie będzie kodzić i kombinować to na nic będzie nauka.

      Jednak każdy uczy się inaczej i podoba mu się co innego więc... ;) na pewno ktoś kto chce znajdzie coś dla siebie, ja jestem za darmowymi źródłami nauki, bo jest ich tak wiele, że praktycznie nie ma zagadnienia z podstaw C++ czy nawet średnio-zaawansowanych tematów, które były by słabo wytłumaczone w darmowych źródłach i jedyne dobre materiały to książki. Ale to moje zdanie, niech każdy robi jak woli ;)

      PS. nie korzystam z tego na Wykopie, ale bardzo fajne narzędzie ktoś zrobił:
      http://wykop-code.appspot.com/ ;)

      Aaaa i koniecznie dodaj stack overflow ;) co prawda angielski, ale na kazdy temat profesjonalna pomoc i to w miarę szybko :)

    •  

      @aseeon: Fajne :) Dodał bym jeszcze Eclipse do IDE - wiem że ciężkie ale za to obejmuje wszystkie ważne języki, frameworki, systemy, etc... Jak pójdzie się gdzieś do roboty to duża szansa że Eclipse będzie w użyciu (no chyba że będzie to iSoft ;-)).

      Mnóstwo wiedze jest też na http://stackoverflow.com/. Bardzo bogata skarbnica. Trudno znaleźć problem, którego tam nie opisali :) A te typowe problemy są opisane w wielu wariantach ;-)

      I jeszcze pamiętajcie. Czytajcie cudzy kod! Patrzcie jak inni piszą - to jest bardzo pouczające. Zarówno do czerpania dobrych wzorców jak i do patrzenia jak nie należy bazgrać...

    •  

      @notauser: Kolego, chyba nie siedzisz w temacie skoro takie rzeczy wypisujesz.

    •  

      kiedys tu zajrze

    •  

      @aseeon: Wartościowy wpis, ale:
      1. Uważam, że programowania nie wolno uczyć się od C/C++. Te języki się do tego po prostu nie nadają. Mają wiele możliwości, ale równocześnie ubogą bibliotekę, sposób pisania nieprzyjazny laikom (wiele zagadnień bardzo trudno wytłumaczyć laikowi "po bożemu") i wymagają przynajmniej jakiejś znajomości podstaw. Z C++ jest jeszcze gorzej niż z C - ten język jest cholernie rozbudowany i ma zbyt wiele haczyków. Poza tym w PL nie ma zbyt wiele ofert pracy dla programistów C++.
      2. Warto najpierw zacząć od Pythona. Ma prostą składnię oraz bogatą i świetnie udokumentowaną bibliotekę standardową. W dodatku, wymusza trzymanie się tego samego formatowania składni. Dzięki temu można łatwo ogarnąć "myślenie algorytmiczne" i sposób w jaki powinno się pisać programy. Owszem rozmaici hakierzy będą narzekać, że to wolne i nieoptymalne, ale nie oto chodzi. Przede wszystkim można liznąć programowania w praktycznie bezbolesny sposób.
      3. Co masz do Grębosza? Fakt, książka jest już stara i w świetle współczesnych standardów leciwa, ale wiele elementów języka (wskaźniki, wejście i wyjście, myślenie obiektowe) omawia w bardzo przystępny sposób. Ponadto zwraca uwagę na te nawyki w kodowaniu, które nadal są przydatne w C++.

    •  

      @japer: Ja również na Jurku. I też nie rozumiem spiny. Przede wszystkim kwestia polskich nazw funkcji - nie łapię. To są tylko przykłady. Jak ktoś jest na tyle ograniczony, że tego nie rozumie, nie rozumie, że w pracy się tak nie robi - no cóż - to nie powinien w ogóle dotykać programowania. C++11 - a raczej jego brak. W 100% firm w których pracowałem kodzi się wykorzystując raczej mało nowe konwencje wprowadzone przez niego - bo... kod jest dość stary. Od Jurka dobrze zacząć i potem sięrozwijać. No i kolejna sprawa - w Pascji C++ jest uzupełnienie o Templates, STL, Exceptions etc.

    •  

      @Far3W3ll7: @aseeon:
      Świetny wpis, duży browar się należy!

      Mam tylko pytanie. Zakładając, że ktoś się tego nauczy (python, c++ etc) ale nie ma wykształcenia informatycznego, to ma jakąkolwiek szansę na zatrudnienie jako programista?
      Przyznam szczerze, że od dłuższego czasu chciałbym ogarnąć programowanie albo bazy danych, jednak mgr mam w całkiem innym kierunku. Zaczynać jakieś studia w ciemno i od zera to ryzyko, a po nauczeniu to minie nieco czasu...

      Macie jakieś doświadczenie w tej kwestii?

    •  

      @madrass: Udowodni mi że się mylę dając link do tych wszystkich mitycznych ofert pracy dla Junior Python Programmer, (Junior mówimy tutaj o Python z perspektywy początkującego) które nie wymagają znajomości innych języków(początkujący).

    •  

      to ma jakąkolwiek szansę na zatrudnienie jako programista?

      @hpiotrekh: jak będzie dobrze kodził i sporo umiał to ma. Na kokosy niech nie liczy, ale jak popisze się na rozmowie kwalifikacyjnej to ma. Teraz dużo ludzi szuka tanich programistów, którzy też coś potrafią a nie koniecznie tak super to zrobią - bo wyjdzie taniej a zatrudnią 2 takich zamiast jednego koksa, który sam by to zrobił. Niemniej jak idziesz w tym kierunku to polecam jednak jakieś wykształcenie z tego mieć, bo wiadomo. Za głupi certyfikat dostaje się sporo więcej zielonych, więc za papierki z uczelni itp. pewnie też tak jest. No i powinno być łatwiej, po dobrej uczelni to praktycznie sami się biją żebyś do nich poszedł (znów - o ile coś serio umiesz a nie prześlizgnąłeś się na pomocy innych i ściągach itp.).

      Czy ja wiem czy 3 lata na licencjat to kupa czas... jak dla mnie nie, a przyda Ci się na całe życie. Pomyśl czy na pewno Ci się takie coś podoba, jak nie wiesz to naucz się takiego C / C++ i zobacz czy wydaje Ci się fajne. Możesz też pomyśleć o webówce, tam też sporo roboty jest (imho mniej płatnej, ale jak kto trafi), a czasami są ciekawsze rzeczy do roboty. Jak Ci się nie spodoba to olej, a jak Ci się bardziej spodoba od tego co teraz robisz, to zapisz się na np. 2 kierunek i po semestrze czy dwóch zdecydujesz. Dużo nie stracisz na pewno.

    •  

      @Far3W3ll7: dzięki za wyczerpującą odpowiedź.
      pytanie tylko jak dobrym można być po nauce własnej w domu :)
      zakładając że coś umiemy, mamy jakąś pracę za minimum to robienie papierów nie jest żadnym problemem.
      Problemem może być pójście na studia z 'zerowa' wiedzą i odpadniecie po semestrze :D.

      Tak czy inaczej od dzisiaj zaczynam naukę, tylko chyba z naciskiem na Pythona

    •  

      Uważam, że programowania nie wolno uczyć się od C/C++
      @ramirez_park: Po pierwsze, nigdzie nie napisałem, że należy, nigdzie w tym wpisie nie jest napisane "Gdy chcesz uczyć się C++ jako pierwszego języka", wpis tej jest przeznaczony dla ludzi chcących się nauczyć C++ niezależnie czy to będzie ich pierwszy czy dziesiąty język.

      Po drugie, "nie wolno" to wierutna bzdura, całe rzesze programistów tak zaczynały i dalej tak zaczynają, i mają się dobrze, ba, nawet czasem wychodzi im to na zdrowie że dowiadują się o zarządzaniu pamięcią wszystkiego już na początku.

      Warto najpierw zacząć od Pythona
      @ramirez_park: Też doradzam rozpoczęcie od Pythona, co nawet napisałem w komentarzach tutaj :)

      @szybki_bil: Idź stąd trollu.

      +: dante87
    •  

      @hpiotrekh: Można być naprawdę świetnym, kwestia czy lubisz to i ile czasu włożysz w to.

    •  

      Link nie działa, proszę o edycję.
      https://warosu.org/data/g/img/0441/94/1410874830625.png

    •  

      Jeżeli miałbym napisać aplikację okienkową tylko na Windows, i dalej ją rozwijać, to lepszy będzie C++ czy C#?

    •  

      Ja polecam książkę "c++ pierwsze starcie" i stronkę cpp0x.pl

    •  

      @aseeon: na tutorialspoint.com jest kurs C++ :D

    •  

      @notauser: co do PHP: ci, którzy zaczęli kilka lat temu, teraz nie mają na co narzekać jeśli chodzi o PHP bo już zdążyli sobie wyrobić markę :P

    •  

      @aseeon: pozwolę sobie tylko opisać to, czego próbowano (bo już to znałem parę (para to 2) lat wcześniej, byłem już olskoolowcem z Turbo Pascala i Delphi w tym momencie) mnie nauczyć na studiach, na podstawach C/C++:
      1. Zmienne
      2. Pętle
      3. Operatory
      4. Wskaźniki
      5. Klasy
      6. Dziedziczenie
      7. Struktury dynamiczne
      8. Wyjątki
      9. Rzutowanie zmiennych (wraz z pisaniem własnych funkcji w tym celu)
      10. Użycie kodu assemblerowego w C/C++
      Tego uczono [innych - przyp. tłum.] kilka lat temu na studiach, na postawach C/C++.
      Szkoda że wzorców projektowych oraz głębszych akcji uczono dopiero na zastosowaniach C#, ale Microsoft sponsorował uczelnię...

    •  

      @soplowy: Ja wiem. PHP to taki COBOL XXI wieku. Niby przestarzały, ale systemów w nim napisanych jest tyle, że ciągle potrzebny. Teraz pensje programistów PHP będą tylko rosły. No i obowiązkowe zdanie w wątku o PHP: PHP to nie język programowania ;)

      +: soplowy
    •  

      Komentarz usunięty przez autora wpisu

    •  

      @brukiew naucz się wypowiadać kulturalnie, ale przestań się wypowiadać w ogóle, bo taki ton możesz przyjmować jak będziesz mówił do swoich kolegów z gimnazjum

    •  

      Komentarz usunięty przez autora wpisu

    •  

      @brukiew no cóż, fanatyzm symfonii osiągnął nowe maksimum, skoro chcesz mnie lać po mordzie i wyzywać
      cytując klasyka "skąd się biorą tacy głupcy"

    •  

      super wpis, widział ktoś coś podobnego o Javie lub może mi napisać jakie są główne różnice między tymi dwoma językami?

    •  

      Sporo ludzi poleca Pythona na początek. Są o nim jakieś dobre książki po polsku?

    •  

      @nightcall: Są ale i tak lepiej od razu zaczynać od angielskich bo prędzej czy później i tak będziesz musiał korzystać z angielskiej dokumentacji czy szukać informacji na anglojęzycznych stronach.

      Chyba jedna z popularniejszych i ogólnodostępnych po polsku jest:

      http://pl.wikibooks.org/wiki/Zanurkuj_w_Pythonie

      Ja i tak na początek polecam codecademy, nie wymaga żadnego przygotowania a pozwala sprawdzić czy się ma faktycznie zajawkę na takie zabawy :)

    •  

      @aseeon: nie mogę odpalić filmikow na pluralsight... musze wykupic licencje?

    •  

      @t3rror1st: Jak to mówią, nie ma nic za darmo.

    •  

      spoko materiały. zauważyłem że początkujący programiści skupiają się na książkach dotyczących składni, konstrukcji języka itd. Należy pamiętać że umiejętność programowania to matematyka, algorytmika, pomysłowość i logiczne myślenie. Język to kwestia tygodnia.

    •  

      @aseeon: Znam wszystkie podstawowe konstrukcje (pętle itd.), ogarniam w miarę OOP, znam podstawy Pythona i liznąłem troszkę C# - mogę ominąć jakieś rozdziały w tej książce C++ Primer Plus, czy jechać wszystko od początku? Drugie pytanie - znając C++ bez problemu będę mógł przestawić się na pisanie w C? Kręcą mnie interpretatory, kompilatory itd.

    •  

      @aseeon: A na Politechnice Świętokrzyskiej trzaskamy Turbo Pascala przez 2(pierwsze) lata :D

    •  

      mogę ominąć jakieś rozdziały w tej książce

      @endriu17: odpowiedź brzmi, nie wiem, nie wiem na ile umiesz, co to znaczy, że liznąłeś trochę C#. Najlepsza rada jaką mogę ci dać, to nie omijaj nic, najwyżej szybciej zrobisz i nie będziesz musiał powtarzać informacji z jakiegoś rozdziału.

      A jak cię kręcą kompilatory, interpretery i reszta, to po prostu się ucz C, jest książka tego samego autora do C.
      http://www.informit.com/store/c-primer-plus-9780321928429

      @bucia: Współczuję, ja miałem na szczęście tylko jeden semestr jednego przedmiotu z pascalem.

    •  

      @aseeon Powiedzmy, że uczę się programowania C++/C# i SQL 2 lata, nie mam wiedzy akademickiej (lub częściowo co pokryło się w książkach z których się uczę) - mam szanse na rynku pracy jako programista?
      Zdaje sobie sprawę, że nie trzeba być magistrem, żeby być świetnym programistą ale powiedz tak szczerze, będę robił to tylko dla siebie czy też zarobie z tego na piwo a z czasem na whisky czy tylko piwo (takie zobrazowanie mi przyszło do głowy)?

    •  

      @rubesom: wiedzę, którą nazywasz akademicką, możesz zdobyć z książek wymienionych w tym wpisie i gdy nauczysz się jej sam, z pasji, to będziesz się znał lepiej niż 95% absolwentów.

      A odpowiadając wprost, będąc samoukiem możesz jak najbardziej zarobić na whisky, bo coś pić trzeba i na eleganckie szklanki. No i siąść gdzieś trzeba, więc i na kanapę zarobisz i na salon w którym ta kanapa stanie.

    •  

      Symfonia jest ok jak ma się bibliotekę żeby dostać to za friko jak się nie może zrozumieć działania wskaźników czy innych pierdół bo akurat to co w książce wg. mnie ważne to umiejętność wytłumaczenia. Ale może lepiej doczytywać jak się czegoś nie rozumie. Angielski to prawda - pytałem profesora o książkę o algorytmach i jak podał angielski tytuł to zwątpiłem i kazał mi w wakacje angielski kuć bo bez tego ani rusz. Kolega który wchodzi w rynek pracy powiedział to samo. Do wzorców polecę metodyki zwinne i bardzo fajną książkę UML i Wzorce Projektowe, Larmana.
      I polecam czytać dokumentację, nie wiem jak w C++ ale ta z Javy naprawdę jest spoko ( nawet z moim angielskim ).

    •  

      @aseeon Wielkie dzieki za ten wpis, leci plus! Mam tylko pytanko, polecasz ksiazke Algorithms 4th edition, ktora uzywa java'y: (http://www.amazon.com/Algorithms-4th-Edition-Robert-Sedgewick/dp/032157351X/).

      Zauwazylem jednak ze jest rowniez ksiazka, nieco starsza, Algorithms in C++ (bodajze w 2 czesciach) tego samego autora (http://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/ref=sr_1_1?s=books&ie=UTF8&qid=1415040077&sr=1-1&keywords=algorithms+in+c%2B%2B).

      Czy miales z nia stycznosc? Czy moglbys ja rowniez polecic? Czy fakt ze jest z 1998 roku definitywnie ja przekresla i lepiej uzywac nowszej, ale w javie?

      Z gory dzieki za odpowiedz!

    •  

      @wygnaniec: Nigdy nie miałem z nią żadnej styczności, więc nie mogę się niestety wypowiedzieć.

    •  

      Żebym nie szukał

    •  

      - Nie znajdziesz w Symfonii C++ czegoś tak potrzebnego i popularnego jak obsługa wyjątków (exception handling)
      - Nie znajdziesz przestrzeni nazw (namespaces)
      - Nie znajdziesz szablonów (templates)


      @aseeon: Pasja C++.

      pokaż spoiler Nie ma za co.

    •  

      Cytat z wpisu powyżej

      Żeby być zgodnym z prawdą muszę nadmienić, że jest im poświęcona inna książka - "Pasja C++".

      @alosha: Naucz się czytać.

      pokaż spoiler Nie ma za co.

      +: cohh
    •  

      @aseeon: To nic nie zmienia. Równie dobrze można z Sienkiewicza łacha drzeć pisząc coś w stylu:
      "Potop jest bez sensu, bo nie ma tam nabijania nikogo na pal, ani wysadzania się w powietrze z najlepszym kumplem. Co prawda jest to opisane w Panu Wołodyjowskim, ale jednak nie w Potopie. Nie polecam."

      pokaż spoiler ( ͡° ͜ʖ ͡°)

      Poza tym odniosłem wrażenie, że chodzi o naukę języka C++, a nie wszelkich możliwych wzorców projektowych/dobrych praktyk programistycznych/itd. Te są niezależne od języka. Dlatego powinny być opisane w pseudojęzyku.

      pokaż spoiler Choć są na szczęście języki, w których nie ma potrzeby stosowania np. niektórych bzdurnych wzorców projektowych, które służą jedyne obejściu biednych ograniczeń języka/technologii.

    •  

      @alosha: Czyli najpierw komentujesz mój wpis, w ogóle go nie czytając, bazując tylko na kogoś innego zacytowaniu. Później porównujesz książki do nauki języków programowania do trylogii Henryka Sienkiewicza. Aha.

      Powiedz jeszcze, że nie czytałeś Praty w ogóle i skończymy tą jałową dyskusję.

      Ty uważasz, że Symfonia C++ Standard jest zajebista, a Pasja C++ (treść merytoryczna z przed 15 lat, lekko odświeżona kosmetycznie 12 lat temu) to jej nieodłączna część i broń cię panie boże przed wypowiadaniem się tylko o pierwszej "części".

      Ja uważam, że nie jest nawet w pierwszej 5, oraz, podobnie jak jej autor, że Pasja C++ to jednak osobna książka.

    •  

      @aseeon: jeszcze raz chcialbym serdecznie podziekowac aseeon-owi za kawal roboty i jeszcze updaty tresci :) obys nie musial sie za czesto z tym elementem kłócić i psuc humoru

    •  

      Witam, jak myślicie, po jakim czasie dosyć intensywnej nauki programowania w c++ można dostać pracę jako młodszy programista? Jestem w klasie maturalnej i wybieram się na informatykę, chciałbym już od pierwszego roku zacząć pracować, czy jest ktoś kto po pół roku, albo roku zaczął pracować w tej branży? Podzieli się ktoś swoim doświadczeniem z początkami? Planuję w przyszłości zostać freelancerem i wydaje mi się, że w pracy dużo się można nauczyć w tym kierunku.

    •  

      @alosha: Dalej nie rozumiem fanatyzmu i bronienia przestarzałych książek które nic dobrego nie wnoszą do programowania a wręcz mogą uczyć jak nie-programować. Język się zmienią tym bardziej od czasu wydania tych książek.

      Zauważyłem że tylko do C++ jest taka silna tendencja bronienia dinozaurów której nie ma w Pythonie, Javie czy C# bo tam nikt nie lamentuje i narzeka po co się uczyć nowych standardów jak są książki z przed kilku lat które Javy 1.6 czy PHP 2 uczą

    •  

      "Symfonia C++ Standard" to nowsza wersja opisująca standard ISO zamiast archaicznego ARM. Ale. Dalej nie znajdziesz tam obsługi wyjątków i szablonów.

      Żeby być zgodnym z prawdą muszę nadmienić, że jest im poświęcona inna książka - "Pasja C++".

      @a....n:

      Ok czyli podsumowując, gdy zamiast starej Symfoni która była wydana przed powstaniem C++11 / C++x0 przeczytasz jej nowszą pełną wersję (nową Symfonia C++ + aktualną Pasja C++) to nauczysz się wszystkiego razem z rzutowaniem, wyjątkami, szablonami.

      Tam jest z 100 stron tylko o szablonach i z 50 o wątkach.

    •  

      @a....n: O ile mogę się zgodzić, że symfonia jest stara i dlatego nienajlepsza do nauki na początek, to wypunktowanie, że nie ma tam opisu wyjątków czy szablonów, jest jakby nie na miejscu, bo te sa opisane że tak powiem w dalszej części - czyli w Pasji.

    •  

      up /char

      +: Rzuku

Gorące dyskusje ostatnie 12h