Kontynuacja nauki C++ czy Java?

0

Witam, od jakiegoś czasu uczę się języka C++, zaczynałem od poradników Mirosława Zelenta jednak po kilku odcinkach przeniosłem się na kurs webowy cpp0x. Przerobiłem większość tematów i została mi obiektówka. Ostatnio mam lekki niedosyt, chciałbym pisać poważniejsze projekty podobne do tych realizowanych na rynku pracy. Moje pytanie brzmi czy opłaca mi się nadal uczyć C++ i przerobić dodatkowo angielskie kursy typu learncpp czy może olać to i uczyć się jakiegoś języka wysokopoziomowego np Java?

3
  1. nie uczyles sie c++ tylko uczyles sie C z klasami
  2. C++ jest wysokopoziomowym jezykiem
  3. Ucz sie tego co sprawi Ci przyjemnosc. Zastanow sie co chcesz zrobic (wymysl sobie projekt), dobierz jezyk do projektu i zrob projekt. W ten sposob bedziesz sie uczyl programowania tworzac cos co lubisz/chcesz stworzyc
1

Zmiana języka pewnie ma sens, bo C++ to takie ni w pięć ni w dziewięć już. Tak mi się zdaje. Jeśli nie chcesz zejść niżej (C, assembler) to pewnie warto do góry. Jednak polecam zainteresować się raczej Scalą jeśli chodzi o JVM. Ten język ma przyszłość komercyjną (już jest używany coraz szerzej: scalac, software mill, itd) i jest znacznie wygodniejszy od Javy, bo wspiera w pełni programowanie funkcyjne, bo to wsparcie w Javie to taka prowizorka zupełnie, język się do tego nie nadaje. Jak nie chcesz programowania funkcyjnego (sic!) to może rzeczywiście Java?
A poza tym radzę nauczyć się korzystać z powłoki (np. bash), to bardzo użyteczne narzędzie programisty.

1

Większość kursów i książek uczy tylko języka programowania a nie samego programowania. Zgodnie z panującym przekonaniem tego ostatniego masz się nauczyć sam metodą prób i błędów, robiąc własny projekt. Według mnie to głupota ale oczywiście łatwiej sprzedać książkę która uczy języka C++/C#/Python itd niż jakiegoś abstrakcyjnego programowania. Z drugiej strony żeby być programistą wcale nie trzeba umieć programować. Wystarczy znać framework...

0

Z perspektywy czasu bardziej opłacalne byłoby kontynuowanie nauki C++ czy zmiana języka? Dodam, że chcę wejść w obiektówkę i napisać jakiś większy projekt (jeszcze nie wiem jaki), ale nie wiem jak się za to zabrać.

1

Najpierw przerób sobie solidnie jakąś książkę a najlepiej dokumentacje danego języka. Przykładów nie przepisuj bezmyślnie, tylko przepisuj i dokładaj swoje rzeczy. Na początku postępuj na zasadzie: a co się stanie gdy wywołam funkcję XYZ? A co się stanie gdy zaimplementuje ten interfejs itd. Rozwijaj podane przykłady i staraj się je zrozumieć. Gdy już będziesz na etapie "rozumiem jak ten element działa" no to wymyśl sobie jakieś zadanie. Przykładowo - nauczyłeś się podstaw budowania klas, dziedziczenia, kompozycji i tablic. Wymyślasz sobie prostą aplikacje np kwiaciarnie, która będzie miała Klasę kwiaciarnia a ta miała obiekt np Kasa fiskalna i tablica różnych kwiatów ze swoimi cenami(oczywiście ucz się od razu pisać nazwy zmienny po angielsku). No i kombinuj jakieś dodawanie elementów, obsługa wyjątków(czy np obiekt jest na stanie czy nie?) itd. rozwijaj program konsolowy.

Jak już ogarniesz kolekcje, wątki, możesz poszerzyć aplikację o logowanie, dodawanie do list, map, setów itd. W kilku wątkach operować na różnych operacjach. Następnie możesz zrobić pseudo bazę-danych zapisując do pliku stan aplikacji i wczytywać za każdym razem gdy ktoś się np zaloguje. Potem możesz sobie postawić bazę danych i po-operować na bazie używając JDBC.
Najlepiej zaczynaj od prostych przykładów z życia wziętych i rób coraz trudniejsze aplikacje oczywiście rozbudowując logikę coraz bardziej. Staraj się rozwijać stare aplikacje zamiast robić 200 aplikacji po 10 linii kodu robiących tylko jedną rzecz. Programowania nauczysz się, gdy będziesz próbował scalać kilka elementów w jedną całość. Dlatego najpierw ogarnij jak działają poszczególne elementy, a dopiero potem staraj się łączyć te elementy w jedną całość(i to jest właśnie prawdziwa nauka programowania)

Rok takiej nauki, solidne zrozumienie jak coś działa i możesz zaczynać naukę frameworków a potem dojdzie ci jeszcze nauka frontu, JS, i architektury webowej.

1

Ja bym kontynuował naukę C++17 lub C++20 za jakiś czas, dorzucił do tego QT5 i masz w tym prace.

2

To jak bedziesz wiedzial jaki projekt to wtedy dobierz jezyk. Gra, obliczenia, cos blisko sprzetu, przetwarzanie obrazow itp. -> C++
Baza + Crudy + Rest -> JVM

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