Programowanie - warto?

Witam, ostatnio spodobało mi się programowanie w C++ (Póki co jedynie na informatyce w szkole, 2 technikum informatyczne) i pomyślałem czy nie warto by spróbować zająć się póki co nieco bardziej i zobaczyć czy coś z tego by mi wyszło (chyba najlepiej sobie radze z klasy) i mam kilka pytań co do tego zawodu:

1. Czy za kilka lat (czyt. 2 albo za 2+ studia) nie będzie już za dużo programistów i znalezienie pracy będzie trudne?

2. Czy warto już teraz zaczynać uczyć się na własną rękę czy lepiej poczekać na rozwój sytuacji?

3. O zdecydowałbym się na programowanie, jakie programy i w jakiej kolejności powinienem się uczyć?

4. Czy są jakieś dobre książki w formie elektronicznej do uczenia się?

1) Powiem tak, warto.

Dlaczego?

Bo przez najbliższe lata praca dla programistów będzie i to coraz więcej. Teraz żyjemy w takich czasach, że to komputer zastępuje człowka w wielu zadań, a nie na odwrót i ktoś musi oprogramowanie "pisać".

2) Kolejna sprawa nie myl programisty z kimś kto skończył informatykę i miał na niej zajęcia z informatyki. Jeżeli chcesz później pracować jako programista, to tak powinieneś już teraz siedzieć na tym i się uczyć. W przypadku programowania najlepszą nauką jest praktyka.

I jeszcze jedna dobra rada ode mnie. Możesz zostać dobrym programista bez kończenia studiów, ba najwięksi guru (nie ten z portalu :D) szli na studia, ale ich nie kończyli tylko zabierali się do roboty. Wszystko zależy od tego ile czasu poświęcisz na naukę im więcej tym lepsze będą twoje wyniki(kwalifikacje) i tym łatwiej będzie ci znaleźć dobrą pracę, a im wcześniej zaczniesz pisać proste i potem bardziej rozbudowane programy, tym lepsze portfolio będziesz potem mógł zaprezentować swoim przyszłym pracodawcą.

3) Programy? Masz na myśli języki? Bo pisać można nawet w Notatniku, a sam do jakiś małych pierdółek używam Notepad++ , a do bardziej rozbudowanych Eclipse.

Jeżeli języki, to już zależy w czym chcesz siedzieć, ale C++, C, Java (kolejność losowa) to teraz jedne z najpopularniejszych. Możesz przerobić podstawowe kursy ze wszystkich z nich, a potem wybrać, który ci najbardziej leży. Tutaj też jedna uwaga ode mnie. Jak już jeden ogarniesz bardzo dobrze, to i nauka kolejnego będzie dużo łatwiejsza.

4) Tyle tego w google, że szkoda wypisywać (wiem, podły jestem).

Ostatnia uwaga. Programowanie, to nie jest coś czego nauczysz się w dzień, tydzień, miesiąc. Jak chcesz być w tym dobrym musisz poświęcić naprawdę dużo czasu i nauka praktycznie nigdy się nie kończy.

Koniec.

1. Znalezienie pracy jako programista nie będzie trudne, bowiem firmy cały czas się rozrastają.

2. Jeśli się nie uczysz z pasji dla siebie itd to nie osiągniesz zbyt wiele.

3. Nie uczysz się programów, a sposobu myślenia, paradygmatów.

4. Książek jest dużo, bardzo dużo. Ale na samych książkach nie pociągniesz. Musisz regularnie pisać coś, żeby wyrobić się.

Aplikacje mobilne i webowe są teraz w modzie i już nie szukają staromodnych programistów. Większość rzeczy robi się w internecie. Mało roboty jest "nie-webowej". Jak chcesz się uczyć na serio to zrób podstawy i jak będziesz je ogarniać weź się za programowanie obiektowe.

1. Dzięki za info, czyli warto się uczyć :D

2. W programowaniu podoba mi się to, że wszystko jest logiczne i jedne wynika z drugiego. Sam fakt, że tworze coś i widzę że działa mnie po prostu cieszy. Czy to "pasja" jeszcze nie jestem w stanie stwierdzić, za mało się uczyłem.

3. Rozumiem, że mogę zostać przy C++, póki co. @hazeko w jakim sensie paradygmaty?

4. Nie chodzi mi o książkę która zawiera jedynie same informacje, ale także różnorakie zadania, bo z samej teorii za wiele się nie nauczę.

5.

Aplikacje mobilne i webowe są teraz w modzie i już nie szukają staromodnych programistów. Większość rzeczy robi się w internecie. Mało roboty jest "nie-webowej". Jak chcesz się uczyć na serio to zrób podstawy i jak będziesz je ogarniać weź się za programowanie obiektowe.

Mógłbyś mi bardziej to opisać? Jestem póki co ziemniakiem i zbytnio nie wiem o czym piszesz

Paradygmaty to takie jakby podejścia do programowania. C++ jest językiem strukturalno-obiektowym. To co miałeś/masz w szkole jest programowaniem strukturalnym/proceduralnym czyli taką jakby listą kroków jak w schematach blokowych. Ale jest dużo innych np. deklaratywne takie jak SQL (bazy danych), obiektowe czy funkcyjne.

Poczytaj sobie choćby na wikipedii o tym.

Warto jest zapoznać się z różnymi językami, aby mieć szersze spojrzenie na to. Polecam zapoznać się także z wzorcami projektowymi, ale to już dużo później jak już będziesz się czuć pewnie. Osobiście mnie w szkole nie nauczyli nic, więc nie myśl, że u ciebie będzie inaczej. Prawdopodobnie skończycie na struktach, może liźniecie funkcje jakieś proste. Rzecz w tym by samemu robić coś.

Co do aplikacji mobilnych to wiesz raczej co to jest, prawdopodobnie używasz ich na codzien na swojej komórce z Androidem, jeśli go posiadasz. A webowe to aplikacje takie jak np. porównywarka cen, sklepy internetowe, pogodynki, prasa elektroniczna itd. W uproszczeniu strony internetowe, które mają bardziej rozbudowane funkcje. Większość stron już takich jest.

I jeszcze jedna dobra rada ode mnie.  Możesz zostać dobrym programista bez kończenia studiów, ba najwięksi guru (nie ten z portalu ) szli na studia, ale ich nie kończyli tylko zabierali się do roboty. Wszystko zależy od tego ile czasu poświęcisz na naukę im więcej tym lepsze będą twoje wyniki(kwalifikacje) i tym łatwiej będzie ci znaleźć dobrą pracę, a im wcześniej zaczniesz pisać proste i potem bardziej rozbudowane programy, tym lepsze portfolio będziesz potem mógł zaprezentować swoim przyszłym pracodawcą. 

To akurat bzdura. Bez kończenia studiów najłatwiej zostać klepaczem kodu bez perspektyw, na których to właśnie polują firmy werbujące studentów bez tytułów :). Nie wiem o jakich to guru mówisz, ale osobiście ciężko mi znaleźć takie osoby, które na prawdę wniosły coś istotnego, a nie miałyby przynajmniej jednego tytułu, a znam wielu, którzy mają więcej niż jeden. To oczywiste, że najłatwiej zdobyć doświadczenie pracując, ale jeżeli chcesz być na prawdę dobry, a programowanie to dla Ciebie nie tylko sposób na zarobek, ale też pasja, to studia Ci w tym pomogą (ale tylko pomogą, nakierują - reszta zależy od Ciebie). Oczywiście, możesz zostać wymiataczem bez studiów, ale będzie Ci nieporównywalnie trudniej bez kontaktu ze środowiskiem naukowym, na własną rękę.

Nawet jeżeli stwierdzisz, że w sumie to wolisz pracować, a nie robić tytuły, to paradoksalnie i tak polecam Ci studia informatyczne, właśnie ze względu na tych headhunterów uczelnianych. Z własnego doświadczenia wiem, że teraz bez problemu można dostać ofertę pracy (albo krótkiego płatnego stażu z praktycznie zapewnionym późniejszym etatem) już na pierwszym roku, co więcej pracodawcy sami Cię znajdą, przedstawią Ci swoje firmy i ułatwią wybór.

Czyli studia czy bez i tak się uda znaleźć prace, ale i tak lepiej iść na nie. W takim razie niedługo się wezmę za zgłębianie C++ i zobaczę jak to będzie iść.

Ostatnie pytanie, czy na początek same tutoriale z yt mi wystarczą by coś ogarnąć?

Myślę, że yt i ogólnie kursy wideo to dobry sposób na start. Długie i szczegółowe rozdziały książek/ebooków mogą Cię zniechęcić, a tak widzisz często od razu efekt końcowy, jesteś w stanie szybko spróbować wielu różnych języków i zdecydować w jakim kierunku chcesz się dalej rozwijać. Minusem tej opcji jest jednak to, że często robiąc coś krok po kroku na końcu stwierdzisz, że nie wiesz w sumie co dalej, dobrze wtedy spróbować zaimplementować podobny program w zmodyfikowanej wersji i szukać w internecie informacji o tym jak to osiągnąć.

Gdybyś kierował się w stronę webdevu to popularne są strony z interaktywnymi kursami online takie jak FreeCodeCamp czy Codecademy. Gdybyś wolał jednak klasycznie trochę tekstu do poczytania, to tutaj znajdziesz całkiem pokaźny zbiór darmowych książek dla różnych języków. Jeżeli korzystasz z reddita, to polecam śledzić suba /r/learnprogramming/.

Ogólnie do matury masz jeszcze trochę czasu więc popróbuj różnych języków i zastanów się czy faktycznie Cię to kręci.

http://carlcheo.com/startcoding sprawdź sobie tego linka

Nie wiem czy C++ jest dobry na start. Dużo linijek z punktu programistycznego zbędnych, które musisz pisać, lepiej zacząć od samego C, który przyda sie wszędzie, od robotyki po game dev. Ewentualnie python lub ruby, które są językami łatwymi, python ma gigantyczne wsparcie ze strony google (yt został w nim napisany) a ruby to praktycznie tylko framework ror. A jeżeli chcesz iść w C++ to odpuść sobie polskie tutoriale, ostatnio przeglądając jedno forum dla programistów zauważyłem dziwne zjawisko, ja je nazywam kultem zelenta, którego poradniki są beznadziejne, lepiej omijaj kanał tego pana.

, ja je nazywam kultem zelenta, którego poradniki są beznadziejne, lepiej omijaj kanał tego pana.

Ja pomyślałem nad oglądaniem tego youtubera, jedyny problem jest taki, że nie wiem jak dużo może mnie nauczyć (w jakim momencie skończy), (Filmik podałem losowo, byleby pokazać kolesia. Całkiem fajnie tłumaczy)

http://carlcheo.com/startcoding sprawdź sobie tego linka

Z tego co się doczytałem, najłatwiej byłoby mi zacząć od Pythona, ale mi osobiście najbardziej pasowałby jednak C++

Co do C++, rozumiem że może być trudny do opanowania, ale jednak podobno po opanowaniu go, nauczenie się innych języków to nie problem

Zelent nie przestrzega żadnych zasad. Jeżeli skończysz jego kurs będzie Ci ciężko odnaleźć się w innych projektach. Mirek zna podstawy ale nic ponad to. Do tego zadaj sobie pytanie, gdyby był takim dobrym coderem to pracowałby jako nauczyciel? Coś tu nie gra ;)

Rozumiem, w takim razie lepiej korzystać jedynie ze stron które podał @peXu, czy może znasz jakieś dobre kanały yt/strony?

Jak Ci nie szkoda kasy to polecam Codeschool. Dużo lepsza platforma do nauki, z rzetelnymi wykładami, potem ćwiczeniami. Dostęp do całej usługi kosztuje koło 30$? Nie pamiętam, jednak mimo wszystko warto.

Sprawa wygląda tak, że wszystko masz w Internecie na wyciągnięcie ręki. Najlepszym rozwiązaniem będzie gdy sobie wymyślisz jakiś cel, jakaś gra, czy chat. W taki sposób będziesz uczył się najefektywniej. Co do kursów to ciężko znaleźć aktualne, większość jest raczej nieaktualna. A co do materiałów to polecam wszystko od pana Stroustrupa, to ten człowiek stworzył ten diabelski język :)

https://www.codecademy.com ja się tutaj zacząłem ostatnio uczyć(javascript, dzisiaj sobie zacznę c++)

@Hesoy Gdzie dokładniej jest C++, czy może trzeba ten kurs zakupić?

@Hesoy Gdzie dokładniej jest C++, czy może trzeba ten kurs zakupić?

rzeczywiście nie zwróciłem uwagi, ale teraz tak patrząc również go tu nie widzę ;_; cóż możliwe, że jest dostępny płatnie..

na https://www.freecodecamp.com/ też nie widzę C++... Chyba nigdzie nie znajdę żadnego kursu dla tego :D i z tego powodu postanowiłem przerobić kurs na https://www.codecademy.com z Pythonem, przynajmniej (podobno) piszę, że kurs jest dosyć szybki, więc mam nadzieje że ogarnięcie długo tego mi zajmie. Potem postaram się znaleźć coś z C++

PS. Jedynie szkoda, że nie ma dobrych kursów po polsku, ale przynajmniej jako tako doszlifuje ang.

https://www.quora.com/What-is-a-website-like-Codecademy-for-C++

Ogólnie to quora chyba najlepsze miejsce do szukania odpowiedzi na wszelakie programistyczne pytania ;)