Z jakich źródeł uczyć się języków i od czego zacząć?

0

Witam!
Mam 13 lat, więc jestem młody, ale stwierdziłem, że jeżeli nauczę się podstawowych zasad programowania w przyszłości, ale nadal w młodym wieku będę w stanie osiągać ,,jakiekolwiek" sukcesy.

I tu jest właśnie pytanie, jaki język jest językiem przyszłości, tym, na który rośnie zapotrzebowanie. Chcę nauczyć się czegoś co przyda mi się w branży ogólnie mówiąc programisty. Wiele czytałem pytań i wypowiedzi początkujących jak i specjalistów i z tego co wywnioskowałem najlepszym wyborem będzie nauka chociażby podstaw C++, ponieważ duża część języków opiera się właśnie na nim. Czego uczyć się patrząc w przyszłość osoby, która ma chęci do ,,pracy" jako programista programów czy też prostych może i bardziej zaawansowanych gier (proszę tylko bez komentary typu: " o kolejne dziecko, które myśli, że będzie pracować w studiach takich jak Bethesda czy też Rockstar Games jako twórca jednych z najbardziej rozpoznawalnych gier świata")?

Aktualnie zacząłem "lizać" podstawy C++ od pana Mirosława Zelenta:

Według mnie dobrze ten człowiek tłumaczy, ale brakuje mi samodzielności słuchacza w tym kursie, ponieważ jedyne co mogę robić, aby nie kopiowac tego co on robi to jest to zapisywanie na kartce poleceń, a potem uczenie się tego i ewentualne tworzenie jakiś prostych programów na podstawie notatek.I tu pojawia się drugie pytanie, a mianowicie z jakich źródeł uczyć się języków niezbędnych do programowania programów komputerowych czy też prostych gier. Czy książka będzie odpowiednim materiałem do przerobienia w celu nauki ? Spotkałem wiele wypowiedzi na temat tego, że kursy video nie pokazują wszystkiego, ale podstawy podstaw i ciężko mówić tu o prawdziwej nauce, ponieważ jest to tylko wytłumaczenie działania danego języka, a nie jego większości funkcji. Może lepszą decyzją będzie uczęszczanie na kursy(mowa o spotkaniu z osobą w "realu" lub przez internet), gdzie będziemy spotykać się z osobą/osobami, które będą moim "mentorem".

Prosiłbym o logiczne o konkretne odpowiedzi biorące pod uwagę każdą treść, którą zamieściłem wyżej. Oczekuję też pomocy, ponieważ to jest dla mnie ważne, chcę się rozwijać i nie marnować mojego zapału.
Co do wszystkich informacji, które podałem to tylko moja opinia i jeżeli na dzień dzisiejszy jest inaczej niż myślę, mile widziane byłoby uargumentowana poprawka.

1

heh chwalebna koncepcja młody człowieku, normalnie zelenta odradzamy, ale jesteś młody chłopok to spokojnie możesz się pobawić tymi kursami :)
ewentualnie możesz poszukać stron gdzie masz ćwiczenia z wpisywaniem rzeczywistego kodu, ale konkretna nauka to dopiero po ang. (co nie znaczy że powyższe jest bezwartościowe)
aha no i pamiętaj o imprezach, dziewczynach i zabawie, w końcu nie samym kodem człowiek żyje :D

4

Po pierwsze to ucz się programowania a nie C++. Czyli poczytaj o algorytmach, strukturach danych, OOP, FP, wzorcach projektowych. Zrób jakąś symulację z zakresu fizyki, spróbuj złamać szyfr Vigenère'a, policz jakich słów nadużywał autor Pana Tadeusza.

Po drugie kursy Pana M. Zelenta są najgorsze merytorycznie z tych co widziałem (widziałem dwa odcinki).
Kursy nagrane "po hindusowemu" (taki dziwny angielski) bywają ciekawsze merytorycznie.

Po trzecie, oprócz nauki polecam też programowanie. Tzn. nie tylko czytanie książek i oglądanie kursów, ale też pisanie programów - najlepiej takich które rozwiązują rzeczywiste problemy.
Programy które są oderwane od rzeczywistości (np. sortowanie listy dwukierunkowej) z czasem stają się bardzo nudne.

0
vpiotr napisał(a):

Po pierwsze to ucz się programowania a nie C++. Czyli poczytaj o algorytmach, strukturach danych, OOP, FP, wzorcach projektowych. Zrób jakąś symulację z zakresu fizyki, spróbuj złamać szyfr Vigenère'a, policz jakich słów nadużywał autor Pana Tadeusza.

Po drugie kursy Pana M. Zelenta są najgorsze merytorycznie z tych co widziałem (widziałem dwa odcinki).
Kursy nagrane "po hindusowemu" (taki dziwny angielski) bywają ciekawsze merytorycznie.

Po trzecie, oprócz nauki polecam też programowanie. Tzn. nie tylko czytanie książek i oglądanie kursów, ale też pisanie programów - najlepiej takich które rozwiązują rzeczywiste problemy.
Programy które są oderwane od rzeczywistości (np. sortowanie listy dwukierunkowej) z czasem stają się bardzo nudne.

Co do punktu 3.
Napisałem kilka programów takich jak kalkulator czy proste programy do prostych obliczeń ustalonych rzeczy czy treści.

Co do punktu 1.
Czy mógłbyś rozwinąć myśl na czym się różni nauka programowania od nauki języka, z jakich źródeł można się uczyć programowania. Czy może programowaniem jest praktyka, a językiem teoria ?

0
fullfun napisał(a):

Co do punktu 1.
Czy mógłbyś rozwinąć myśl na czym się różni nauka programowania od nauki języka, z jakich źródeł można się uczyć programowania. Czy może programowaniem jest praktyka, a językiem teoria ?

Nauka języka to przerobienie "Język C++. Kompendium wiedzy" (Bjarne Stroustrup). 1300 stron od deski do deski. Przeczytasz i zrozumiesz to możesz powiedzieć że znasz język (teoretycznie).
Tyle że w ten sposób nie poznasz wielu technik i pojęć związanych z programowaniem.

Kilka pojęć związanych z C++, których zwykle nie uczą w książkach o podstawach wypisałem tutaj: http://bit.ly/2kRqTVx

Ale to i tak mało - kiedy uczysz się programowania - rozwiązujesz jakieś problemy a nie wkuwasz formułki czy kolejne funkcje z biblioteki standardowej.
Stąd warto pisać programy na początku w różnych językach żeby móc stwierdzić który język Ci pasuje.
Poza tym jeśli nauczysz się dobrze teorii programowania, to poznanie kolejnego języka będzie dla Ciebie łatwiejsze, bo będziesz znał uniwersalne zasady.

Jeśli nie wiesz czego się uczyć to spróbuj porozwiązywać zadania na SPOJ lub HackerRank. Na tym drugim masz różne dziedziny, sama dziedzina jest jakąś podpowiedzią jak zadanie rozwiązać, jest tam też forum na którym ludzie dyskutują o zadaniach.

0
vpiotr napisał(a):
fullfun napisał(a):

Co do punktu 1.
Czy mógłbyś rozwinąć myśl na czym się różni nauka programowania od nauki języka, z jakich źródeł można się uczyć programowania. Czy może programowaniem jest praktyka, a językiem teoria ?

Nauka języka to przerobienie "Język C++. Kompendium wiedzy" (Bjarne Stroustrup). 1300 stron od deski do deski. Przeczytasz i zrozumiesz to możesz powiedzieć że znasz język (teoretycznie).
Tyle że w ten sposób nie poznasz wielu technik i pojęć związanych z programowaniem.

Kilka pojęć związanych z C++, których zwykle nie uczą w książkach o podstawach wypisałem tutaj: http://bit.ly/2kRqTVx

Ale to i tak mało - kiedy uczysz się programowania - rozwiązujesz jakieś problemy a nie wkuwasz formułki czy kolejne funkcje z biblioteki standardowej.
Stąd warto pisać programy na początku w różnych językach żeby móc stwierdzić który język Ci pasuje.
Poza tym jeśli nauczysz się dobrze teorii programowania, to poznanie kolejnego języka będzie dla Ciebie łatwiejsze, bo będziesz znał uniwersalne zasady.

Jeśli nie wiesz czego się uczyć to spróbuj porozwiązywać zadania na SPOJ lub HackerRank. Na tym drugim masz różne dziedziny,
sama dziedzina jest jakąś podpowiedzią jak zadanie rozwiązać, jest tam też forum na którym ludzie dyskutują o zadaniach.

Wywnioskowałem, ze według Cibie, zaczynanie od C++ nie jest dobrym pomysłem dla osoby, która zaczyna przygodę z programowaniem ?

Chciałbym znać też opinie innych osób, czego mam się zacząć uczyć, czy C++ jest dobrym pomysłem, jeżeli nie, to co pozwoli mi pisać podstawowe gry tekstowe/2d(jak na początek) ?

0

ja dla mnie w tym wieku to pobaw się wszystkim po trochu, frontem, backendem, java, python, czy nawet gierkami w androidzie, w końcu nikt ciebie nie goni, do pracy nie idziesz :)

0

Ja też się uczę z profesjonalnych kursów pana Mirosława Zelenta o C++ i PHP 5. Polecam najlepsze kursy na youtube, żadnemu Polakowi się nie chciało lepszych zrobić, tylko narzekają że mało merytoryczne, ale samemu coś od siebie stworzyć to po co.

0

Naucz się programować. Materiałów po polsku za wiele nie ma, ale taka natura branży, że nikomu się nie opłaca robić kursów po polsku. Jak ogarniasz angielski to przerób https://mitpress.mit.edu/sicp/ a nie pożałujesz (po każdym kursie kawa gratis).

1
vpiotr napisał(a):

Po pierwsze to ucz się programowania a nie C++. Czyli poczytaj o algorytmach, strukturach danych, OOP, FP, wzorcach projektowych. Zrób jakąś symulację z zakresu fizyki, spróbuj złamać szyfr Vigenère'a, policz jakich słów nadużywał autor Pana Tadeusza.

Po drugie kursy Pana M. Zelenta są najgorsze merytorycznie z tych co widziałem (widziałem dwa odcinki).
Kursy nagrane "po hindusowemu" (taki dziwny angielski) bywają ciekawsze merytorycznie.

Po trzecie, oprócz nauki polecam też programowanie. Tzn. nie tylko czytanie książek i oglądanie kursów, ale też pisanie programów - najlepiej takich które rozwiązują rzeczywiste problemy.
Programy które są oderwane od rzeczywistości (np. sortowanie listy dwukierunkowej) z czasem stają się bardzo nudne.

Polecanie teorii na początek (dla 13 latka) to świetny sposób żeby się rozmyślił i zajął piciem piwa pod klatką. Teoria jest ok (jest niezbędna), ale dla newbie raczej jako uzupełnienie robienia prostych projektów. Więc zasadniczo się zgadzam, ale odwróciłbym ważność punktów 1 i 3 ;)

0

Naucz się z tego i będziesz miał solidne podstawy:
http://xion.org.pl/productions/texts/coding/megatutorial/
http://kurs-c-plus-plus.cba.pl/
http://cpp-programowanie.cba.pl/
http://cpp0x.pl/kursy/Kurs-C++/1
Potem możesz brać się za standardy C++11, C++14, C++17 i jakiś framework powiedzmy QT w wersji 5.9.

0
Biały Polityk napisał(a):

Naucz się z tego i będziesz miał solidne podstawy:
http://xion.org.pl/productions/texts/coding/megatutorial/
http://kurs-c-plus-plus.cba.pl/
http://cpp-programowanie.cba.pl/
http://cpp0x.pl/kursy/Kurs-C++/1
Potem możesz brać się za standardy C++11, C++14, C++17 i jakiś framework powiedzmy QT w wersji 5.9.

rozumiem, ze jeżeli jestem osobą, która łatwo chłonie wiedzę oraz szybko sie nie poddaje to C++ na początek jako pierwszy język nie jest problemem?

0

Tylko trzeba sobie odpowiedzieć na jedno zasadnicze pytanie. Po co zaczynać od C++ jak można od np. Pythona?

0
anonimowy napisał(a):

Tylko trzeba sobie odpowiedzieć na jedno zasadnicze pytanie. Po co zaczynać od C++ jak można od np. Pythona?

Ponieważ jak powiedział kolega wyżej, wyżej python jest za łatwy i podczas jego nauki za bardzo się ,,rozpieszcze" Czy jest jednogłośna opinia na temat tego od czego zacząć naukę programowania ?

0

Nie zaczynaj od pythona, bo to zły wybór.

Składania jest łatwiejsza od innych języków, ale przy nauce algorytmów uczysz się algorytmu, więc język nie ma znaczenia tutaj.
Interperter pythona jest zbyt dużym narzędziem, proste obliczenia, analiza danych.
Bo po co robić program jak chcesz tylko coś odszyfrować, albo obliczyć, sprawdzić swoje przemyślenia, ewentualnie zautomatyzować jakąś czynność.

Python ma liby do wszystkiego, a jak czegoś braknie to w pythonie/c/c++ można doklepać.

Będziesz chciał obsługiwać jakiś format, to i tak będziesz korzystał z bibliotek w każdym języku czy to c/c++/python/java.
A jak nie będziesz korzystał to i tak tak to samo będziesz robił co w każdym języku.
Czyli otworzysz plik, pobierzesz nagłówki, sprawdzisz czy się zgadzają z oczekiwanym przez kod, pobierzesz zawartość z miejsca wskazanego przez nagłówek, i będziesz miał dane.
Jaką tam to zrobisz funkcją z jakiego języku nie ma to znaczenia, bo i tak są na najniższym poziomie takie same natywnie systemowe api.

Męcz się w c/c++ tak jak większość kiedyś zaczynała.

0
Zakręcony Wąż napisał(a):

Nie zaczynaj od pythona, bo to zły wybór.

Składania jest łatwiejsza od innych języków, ale przy nauce algorytmów uczysz się algorytmu, więc język nie ma znaczenia tutaj.
Interperter pythona jest zbyt dużym narzędziem, proste obliczenia, analiza danych.
Bo po co robić program jak chcesz tylko coś odszyfrować, albo obliczyć, sprawdzić swoje przemyślenia, ewentualnie zautomatyzować jakąś czynność.

Python ma liby do wszystkiego, a jak czegoś braknie to w pythonie/c/c++ można doklepać.

Będziesz chciał obsługiwać jakiś format, to i tak będziesz korzystał z bibliotek w każdym języku czy to c/c++/python/java.
A jak nie będziesz korzystał to i tak tak to samo będziesz robił co w każdym języku.
Czyli otworzysz plik, pobierzesz nagłówki, sprawdzisz czy się zgadzają z oczekiwanym przez kod, pobierzesz zawartość z miejsca wskazanego przez nagłówek, i będziesz miał dane.
Jaką tam to zrobisz funkcją z jakiego języku nie ma to znaczenia, bo i tak są na najniższym poziomie takie same natywnie systemowe api.

Męcz się w c/c++ tak jak większość kiedyś zaczynała.

Dziękuje za logiczną odpowiedz, a ja dodam tylko tyle, że jak na razie C++ nie sprawia mi problemów i uczy się go przyjemnie (chociaż czasami jest nielogicznie) Mam nadzieję, że to dobra decyzja, aby osiągnąć to co chcę osiągnąć, czyli nauka programowani prostych gier przynajmniej 2D.

0

Miałem podobne podejście ja Ty, dłubałem na początku w c++ bo poznałem go w szkole i wydawał się strawny. Do momentu instalacji Visual Studio i próby tworzenia aplikacji okienkowych . Wtedy zrobiło się topornie.
Spróbowałem C# + WPF. Coż to była za ulga po męczarniach z c++ :D
WPF pozwoli ci szybko tworzyc proste gry.

0
kzkzg napisał(a):

Miałem podobne podejście ja Ty, dłubałem na początku w c++ bo poznałem go w szkole i wydawał się strawny. Do momentu instalacji Visual Studio i próby tworzenia aplikacji okienkowych . Wtedy zrobiło się topornie.
Spróbowałem C# + WPF. Coż to była za ulga po męczarniach z c++ :D

WPF pozwoli ci szybko tworzyc proste gry.

Tak czy siak, zdecydowałem, że zostaję przy C++, jeżeli będzie już naprawdę ciężko ( teraz jest łatwo i przyjemnie) to sobie odpuszczę i przejdę na jakiś C# lub jave, a po kilku miesiącach/roku może dwóch powrócę do tego nieszczęsnego C++, ponieważ wiadomo mi, że jest to podstawa w programowaniu i właśnie ten język ma najszersze zastosowania + jest jednym z bardziej popularnych i częściej używanych języków, więc znajomość C++ ułatwi mi poszukiwania ewentualnej pracy.
Jak na razie pisze i uczy mi się tego języka płynnie ;D

0
Zakręcony Wąż napisał(a):

przy nauce algorytmów uczysz się algorytmu, więc język nie ma znaczenia tutaj.

No więc, jeśli chcemy się nauczyć algorytmów, to wybierzmy język, który pozwala na skupienie się na algorytmach, a nie operacjach niskopoziomowych, manipulowaniu pamięcią oraz pisaniu kodu nie zawierającego UB.

Normalny człowiek jak chce dotrzeć z punktu A do B, to wsiada w pociąg, a nie buduje hutę stali, żeby produkować szyny.

0

Czy ja wiem czy C++ ma najszersze zastosowania? Z tego co mi wiadomo, to najprawdopodobniej Java jest jednym z najbardziej popularnych języków. A najprawdopodobniej chęć w pisaniu w C++ Ci przejdzie po jakimś czasie. Ja bym jednak polecił jave.
Jeśli chodzi o kursy od p. Zelenta, to powiem tak, tłumaczy on bardzo dobrze (dzięki jego tłumaczeniom z C-obiektowego ogarnąłem o co chodzi w obiektówce), ale jeśli chodzi o styl pisania kodu to nie są to najlepsze kursy.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.