Skocz do zawartości

Motywacja do nauki C++


Recommended Posts

Witam

Ma ktoś z was sposób na zmotywowanie mnie do nauki programowania C++.

Wielokrotnie podchodziłem do kursów, książek i zawsze brakowało mi czegoś co popchnie mnie dalej, zmusi do dalszego zagłębiania wiedzy.

Wielokrotnie utykałem na tablicach (to sam początek nauki) wydaje mi się że brakowało mi zawsze informacji do czego mi to będzie potrzebne, gdzie można tego użyć. Może nie taki kurs, książka.

Mam chęci do nauki. Niestety motywacji brakuje.

Uczyć się chce dla siebie. Pracę posiadam. Więc proszę nie pisać ile zarabia programista dla mnie nie będzie to żadna motywacją.

 

Link to post
Share on other sites

Dokładnie. Bardzo dobrze uczyć sie na własnych projektach ze względu na to, że masz pełniejszą gamę problemów do rozwiązania, a przy okazji musisz nauczyć się szykać wskazówek i rozwiązań w necie. Po drodzę trafisz na wiele pomocnych źródeł informacji oraz sugestie doświadczonych programistów jak można podejść do danego zadania.

Dla mnie osobiście najlepszą motywacją zawsze był brak wyboru. Jak już miałem przyzwoity poziom, a chcialem się nauczyć dużo więcej, to przyjmowałem zlecenia na projekt, których nie potrafiłem wykonać i miałem przy tym bardzo dużo nauki. Największych skoków dokonywałem właśnie takim sposobem. Wcześniej oczywiście trzeba konkretnie zaplanować projekt, określić ile wiemy, a ile nie, którze rzeczy wykonujemy pierwszy raz i wziąć sobie więcej czasu na dany projekt.

Link to post
Share on other sites

Będę robił kolejne podejście zgodnie z Waszymi sugestiami zaczynając od ..... (to zależy od sugestii)

Jakie środowisko. Ostatnio bawiłem się w DEV, czy nadal pozostać przy nim czy może coś z MS jakiegoś Visuala (o ile są jakieś za free).

Czy bawić się od samego początku w aplikacje okienkowe (wstawiasz przycisk programujesz go itp.) czy pisać pod DOS ?

 

Pewnie to co napisałem brzmi śmiesznie, z racji użytych mało fachowych terminów :D

Link to post
Share on other sites

Pisanie konsolowych aplikacji rzeczywiście może nie być za bardzo motywujące. Ogarnij podstawy, a potem zabierz się za coś bardziej ambitnego - jakaś aplikacja okienkowa albo gra (zależy co lubisz). Najlepiej napisz coś, co chociaż teoretycznie mogłoby ci się przydać - przykładowo aplikacja do pobierania prognozy pogody z sieci, gra "statki" albo pacman.

 

Możesz też popróbować się z zadaniami na spoj.pl - automat sprawdza poprawność rozwiązania oraz czas wykonania kodu.

 

A może to C++ cię zniechęca? Jeśli tak, mógłbyś spróbować innego języka, np C# albo Java. Mógłbyś napisać jakąś aplikację internetową i przy okazji poznać HTML i CSS. Jest cała masa możliwości.

Edytowane przez Luki91
Link to post
Share on other sites

Jeśli C# to oczywiście Visual Studio. Są darmowe wersje: Community 2013 lub Express 2013 for Web.

Jeśli chcesz pisać aplikację okienkową, polecam wybrać framework WPF. Jeśli webową, to ASP.NET MVC. Na stronie http://www.microsoftvirtualacademy.com/jest dużo tutoriali.

 

Jeśli chodzi o Javę, to najpopularniejszy jest chyba Eclipse lub NetBeans. Ale nic konkretnie nie polecę, ponieważ nie lubię tego języka i żadne środowisko nie przypadło mi specjalnie do gustu.

Link to post
Share on other sites

Witam Ma ktoś z was sposób na zmotywowanie mnie do nauki programowania C++. Wielokrotnie podchodziłem do kursów, książek i zawsze brakowało mi czegoś co popchnie mnie dalej, zmusi do dalszego zagłębiania wiedzy. Wielokrotnie utykałem na tablicach (to sam początek nauki) wydaje mi się że brakowało mi zawsze informacji do czego mi to będzie potrzebne, gdzie można tego użyć. Może nie taki kurs, książka. Mam chęci do nauki. Niestety motywacji brakuje. Uczyć się chce dla siebie. Pracę posiadam. Więc proszę nie pisać ile zarabia programista dla mnie nie będzie to żadna motywacją.

jesteś zadowolony z zarobków, masz chęci do nauki, ale nie ma masz motywacji. To się niemal wyklucza. :D Może Cię zmotywuje satysfakcja, że umiesz coś, czego 99% ludzi nie umie. Patrząc pod kątem pracy, motywującymi czynnikami mogą być nienormowane godziny pracy, praca zdalna, rozwiązywanie problemów, dobra atmosfera w zespołach, fajne biura. Wyklep coś z interfejsem użytkowanika, wtedy jest ciekawiej. Będziesz chciał posortować imiona alfabetycznie i tablica zapewne się przyda. A raczej kolekcja.

 

 

Wiem że języki programowania są w miarę do siebie podobne. Znając dobrze 1 kolejnych już dużo łatwiej się uczy.

Już to kiedyś tu wspominałem. Języki są podobne tylko ze składni i to podobieństwo kończy się na projektach o poziomie skomplikowania programu zalczeniowego na studia. Różne języki mają inaczej działające mechanizmy, albo nie mają ich w ogóle. Np: Java ma catched i uncatched excepions, a C# tylko uncatched. Java nie ma przeciążania operatorów, a C++ ma. C# ma mutiple dynamic dipsatch, w Javie trzeba to symulować wzorcem projektowym. Java 8 ma elemety programowania funkcyjnego, a Java 7 nie ma. W C++ są destruktory, a w Javie nie. Intenalizacja Stringów oraz substring w Javie 5 robią wycieki pamięci, w Javie 7 już nie. Iterfejsy i funkcje wirtualne też inaczej działą w tych językach. Mechanizmy typu autoboxig być może również (nie wiem). Dodatkowo ten sam kod Javy może zwrócić inny rezultat na różnych JVM. I tak dalej, i tak dalej. Owszem, znając FORa i IFa w C++ zna się go też w Javie. A poza tym robi się dziwne błędy, bo się nie wie, czy zmienna jest do funkcji przekazywana przez kopię czy referencję. Będac uber-wymiataczem w Javie, na pewno po miesiącu czy dwóch nie będzie się dobrym w C++.

 

A to są tylko różnice w samym standardzie języka. Do tego istnieje masa bibliotek wbudowanych (np std dla C++ i java.util dla Javy), które też trzeba umieć używać. Poza tym jest masa użytecznych bibliotek 3rd party, które w komercyjnych projektach są szeroko używane (Boost dla C++, Guava dla Javy). A na sam koniec jest masa wielkich frameworków, których nauka zajmie więcej, niż nauka samego języka i jego wbudowanych bibliotek. Powiedziałbym, że sam język to jest 20% wiedzy.

Najgorszą rzecz, jaka mogłaby się dla mnie stać, to konieczność zmiany technologii. Efektywnie pracuje się dopiero mając rok solidnego doświadczenia (często uzupełnionego jeszcze siedzeniem nad własnym projektem poza pracą). Na pewno byłoby łatwiej, gdybym trafił do tego samego (systemy internetowe) z Javy do C#, bo wiedziałbym co to są HTTP, POST, GET, JS, CSS, itp. Ale i tak byłoby dużo nowego. A iść w C++ i gry nawet bym nie próbował. Wszystko od zera.

 

Pytanie czy Java jest łatwiejsza od C#?

Te dwa akurat są podobne i często w kolejncyh wersjach coś od siebie kopiują. Wg mnie poziom trudności jest podobny.

 

 

Na koniec - nie wybieraj języka, tylko wybieraj technologię potrzebna do tego, co chcesz robić. Do stron www będzie Java/C#/PHP/whatever, a do tego będzie niezbędny zestaw innych technologii, np CSS, JS, ajax, HTML. A jeśli chcesz robić gry, to pewnie trafisz C++, matematykę, oGL/DX, shadery.

  • Popieram 1
Link to post
Share on other sites
Pytanie czy Java jest łatwiejsza od C#?

 

Zaczynamy wchodzić w śliski temat "Java vs. C#" ;) To trochę jak z pytaniami "Android czy iOS", "Linux czy Windows", itp. Tak naprawdę najważniejsze różnice nie tkwią w samych językach (oba są bardzo podobne), tylko w całej otoczce, czyli we frameworkach i środowiskach. Nie odpowiem na twoje pytanie, bo obawiam się, że nie ma na to odpowiedzi. Ja osobiście pracuję na co dzień z C#. Do Javy próbowałem się przekonać wielokrotnie, ale bez skutku. Z drugiej strony mam znajomych, którzy zaczynali od C#, a teraz pracują w Javie. Wydaje mi się, że C# może być łatwiejszy dla początkującego, ale gdy już ktoś się w to wszystko zagłębi, to wybór Java vs. .NET zależy bardziej od osobistych preferencji.

 

TL-DR: Spróbuj obydwu i stwierdź sam, co ci się bardziej podoba :P

Edytowane przez Luki91
Link to post
Share on other sites

Ja uwielbiam C++, ale Javy nienawidzę jak psy dziada w ciasnym kącie. :P  IMO jest to przekombinowany C++. Jedyną rzeczą, którą możnaby przenieść z Javy do C++, to pętla for each. Poza tym, czy brałeś pod uwagę taką opcję, że po prostu programowanie jest nie dla Ciebie? Nie każdy nadaje się do tej pracy. Jeśli to Cię po prostu nudzi, to po co się katować? Dla zasady? Mody? Jeśli Ci się nie chce po paru godzinach, to wyobrażasz sobie robić to godzinami dzień po dniu przez x lat?

Poza tym, może spróbuj czegoś zupełnie innego: Deplhi, Phyton, Ruby, Rust, Haskell. Języków programowania jest na hektary, może znajdziesz swoją niszę w czymś innym. Mam kolegę (programista Ruby i Rust), który całą "rodzinę C" określa mianem "smutnych języków programowania" ;)

  • Popieram 1
Link to post
Share on other sites

@@Luki91, on się tylko pyta, który język jest łatwiejszy, więc nie ma co rozpętywać wojny. Wydaje mi się, że obydwa języki mają podobny próg wejścia (chociaż C# ma więcej cukru), ale bardziej obiektywny byłby ktoś, kto próbował zacząć od jednego i drugiego.

 

Popieram @Khavia, jeśli C++ Ci nie leży to próbuj czegoś innego. Wielu ludzi z którymi pracowałem nie potrafiłoby napisać czegoś bardziej skomplikowanego w C++ i jakoś żyją. Wyżej pod względem poziomu abstrakcji  niż Java/C# jest Python i Ruby. Do tego JavaScript jest teraz wszędzie i plasuje się gdzieś pomiędzy. Rust natomiast to taki bardziej cywilizowany C++, ale w dalszym ciągu leży na tym samym poziomie.

 

I w ogóle jak można początkującemu polecać Haskella? Sadysta jakiś. O_o

Link to post
Share on other sites

Zostało postanowione

Podchodzę do C++

Zaopatrzenie Symfonia C++ oraz Thinking in C++ - wersje papierowe jakoś bardziej do mnie przemawiają niż kursy on-line.

Pozostało do wybrania środowisko IDE.

Może jakieś sugestię ?

Widziałem DEV, Code::Blocks i Visual Studio

Link to post
Share on other sites
  • 3 tygodnie później...

Sam zaczynam się jakoś na "poważnie uczyć" - utykam na książkowych problemach, czytając bełkot Stephena Praty z jego książki o new int od godziny zastanawiam się do czego to tak właściwie służy i na co mi to w realnym zastosowaniu. To w końcu wskaźniki czy dynamiczne struktury danych. Jedno jest pewne - chyba za namową tu zebranych kolegów zacznę tworzyć jakieś projekty i na bazie problemów, które napotkam będę się uczył, bo klepanie regułek doprowadza do szału.

 

ps: maku, ja korzystam z code::blocksa, przerzuciłem się z deva i jest moim zdaniem o wiele lepszy

Link to post
Share on other sites
  • 4 tygodnie później...

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...