Nauka programowania na własną rękę, od czego zacząć?


#21

Okej, może nie wyraziłem się jasno. Przez “zmienne, pętle etc” rozumiałem “podstawowe koncepty współczesnego programowania”. No wiesz - coś co jest uniwersalne w każdym języku. Czyli: pętle, zmienne, warunkowce, funkcje, przekazywanie referencji, rekurencje, kolekcje danych (tablice, listy…) i w końcu obiektowość. To oczywiście nie wszystko, ale i tak nie da się tego pojąć w tydzień, no chyba że się jest kolejnym Dijkstrą albo Dennisem Ritchie.
Dopiero potem warto bawić się w języki niskopoziomowe :slight_smile: Właśnie to jest powód, dla którego w prawie każdej książce o programowaniu w C/C++ przy rozdziale ze wskaźnikami jest zalecenie, aby ten rozdział pominąć.


#22

Wiesz, to o czym mówisz, to jest trochę inne podejście do nauki programowania i tutaj dalej nie ma się co kłócić, bo będzie baba swoje, a chłop swoje i nic z tego nie wyniknie.

Ale tak z drugiej strony, od kiedy C++ jest językiem niskopoziomowym? xD


#23

Od momentu w którym stał się w pełni kompatybilny z KAŻDĄ biblioteką C. Tj, od początku swojego istnienia xd


#24

@damoch bez przesady…
Na tej samej zasadzie można powiedzieć, że C# jest niskopoziomowy, bo używasz unsafe i masz wskaźniki…

Fakt, że C++ jest w zasadzie tak jakby tylko nakładką na C dorzucającą obiektowość, dynamiczną obsługę pamięci etc., ale to właśnie sprawia, że ten język jest już poziom abstrakcji wyżej…


#25

Ale czy w C# możesz wykonać system call? Albo wstawić kod assemblerowy inline?
A z resztą, sam powiedziałeś:

Co jest w sumie najlepszą definicją C++ jaką w życiu widziałem :smiley:
Zresztą zrobiliśmy mocny offtop od tego co wstawiła OPka, proponuję założyć na to oddzielny wątek xd


#26

@damoch tylko jak często używa się inline’a asemblerowego…

Prawda jest taka, że w większości i tak programujesz obiektowo w C++ (mówię tu o poważnym programowaniu),
a te wstawki to suma sumarum rzadkość. Z resztą, nie bez powodu w programowaniu mikrokontrolerów używa się C, a nie C++ (ofc. C++ czasami też, (ciekawostka, jest seria mikrokontrolerów STMa, które normalnie można programować w C# xD) właśnie z tego powodu, że kod w C jest, mimo wszystko, wydajniejszy.

Oczywiście, w porównaniu do języków platformy .NET, Prologa, Javy etc. C++ jest językiem dosyć niskiego poziomu, ale NIE jest językiem niskopoziomowym tak jak np. C, gdzie poniżej poziomu C już się, normalnie programując, nie schodzi…


#27

Jestem na 98% pewny, że są to sytuacje w których chcesz zrobić coś niskopoziomowego ( :

IMO obiektowość != wysokopoziomowość. C++ jest językiem bardzo elastycznym - co w zależności od warunków jest jego najlepszą, albo najgorszą cechą (raczej to drugie).


#28

Tak, tylko ciągle mechanizmy abstrakcji obecne w C++ czynią z niego język wyższego poziomu :wink:


#29

Dobra, tak czy owak nie zmienia to faktu, że C++ jest kiepskim językiem dla początkującego i jest zbyt elastyczny na dłuższą metę :stuck_out_tongue:


#30

Zabawny jesteś ale dzięki za informacje xD


#32

Polecam kurs C++ Mirosława Zelenta : https://www.youtube.com/watch?v=Kc98tH59A_U
C++ jest jednym z głównych języków w gamedevie ,np. CryEngine, Unreal Engine 4 .


#33

Też polecam Mirosława Zelenta :smiley:

Kolejność

  1. Logo
  2. Pascal
  3. Nauka algorytmów z tablicami, pętlami itd.
  4. C/C++

Chyba że interesują Cie webowe jezyki ale wtedy wiadomo ze kolejnosc jest mniej wiecej HTML, CSS, JS, PHP, SQL
Skoro dzieci mogą sie nauczyć http://dumnyrodzic.pl/artykul/programowanie-jezyk-sukcesu to i Ty dasz radę, powodzenia :slight_smile:


#34

Liceum Kreacji Gier Wideo, a dla starszych wyższe studia w Warszawskiej Szkole Filmowej - Kreacja Gier Wideo.


#36

Bardzo zależy mi na nauce Javy, ale widzę, że każdy poleca rozpocząć od czegoś innego :wink: Trochę szkoda mi czasu i energii na studia, skończyłam coś innego, ale niestety będę musiała się przekwalifikować. Myślałam o kursach Javascript od podstaw, o których czytałam na stronie sdacademy.pl. Nieco kosztują, więc chciałabym mieć pewność, że mają sens :slight_smile: Dlatego też chętnie poczytam Wasze opinie na temat kursów tego typu. Podoba mi się nastawienie na praktyczną naukę, a także to, że kursy nieco trwają i dostaje się po nich certyfikat.


#37

Wiesz, to jest tak. Jak chcesz nauczyć się programować, to teoretycznie możesz zacząć od czegokolwiek, tylko musisz mieć pewne względy na uwadze, różne języki nauczą Cię czego innego, niektóre więcej, niektóre mniej, ale zawsze za jakiś koszt. Np. C# i Java nie nauczą Cię zarządzania pamięcią, tak jak C++, ale za to szybciej będziesz w stanie stworzyć “coś sensownego”.


#38

Ja bym dodal cos moze kontrowersyjnego ale wydaje mi sie, ze godnego uwagi, chodzi o to aby jesli nie jest sie pewnym od czego zaczac, to zaczac od javascript i html/css. Jesli chcesz pisac gry to w JS obecnie mozna pisac gry zarowno przy pomocy frameworkow jak i troche trudniej bez nich. Wspomniana kontrowrsja polega na wydajnosci tych gier a konkretnie wydajnosci javascripta - ja uwazam, ze obecnie nie jest to juz taki problem jak kiedys, js w przegladarkach jest coraz szybszy, a otwartosc i dostepnosc kodu jest chyba najszersza z obecnych technologii. Gre napisana w javascript mozna odpalic w kazdej obecnej przegladarce, ponadto mozna odpalic ja dzieki cordovie jako aplikacje na wszelkich znanych platformach (android, ios, win). Gry w js mozna pisac zarowno w oparciu o element canvas (2d i 3d - webGL) jak i “kalsycznie” w opraciu o DOM i CSS3. Atutem dodatkowym jest to, ze poznajac te technologi zdobywa sie umiejetnosci na ktore jest obecnie wielki popyt na ranku nie tylko w grach ale i wszelkich innych aplikacjach www, stronach itd.


#39

C++ To nie jest dobry pomysł na początek na początek trzeba ludziom polecić coś prostego, gdzie jest bardzo niski poziom wejścia, a C++ taki nie jest. C++ Jest cięzkim językiem, o ile ma prostą skladnię ale nie C++ ale ANSI C, to nie napiszesz w nim szybko czegokolwiek, a jeśli się zablokujesz w nauce bo wyrzuci wyjącek naruszenia ochrony pamięci albo będzie wyciek z którym osoba sobie nie poradzi to "zarządzanie pamięcią, obsługa plików na nic się zda). Poza tym spróbuj wytłumaczyć komuś czym jest adresowanie adresowanie pośrednie itp, czym różni się gwiazdka jako operator wyłuskania od podwójnego wyłuskania, od przesuniecia wskaznika albo od mnożenia i nakaż komuś tego używać komuś dla kogo C++ to pierwszy język programowania.

Python jest dobrym językiem na początek, uczy dobrych nawyków, pozwala szybko wydawać kod. Dobrym pomyslem jest też PHP/Javascript/MySQL można łatwo dostać prace po 2/3 mieisącach nauki staż potem po 2/3 miesiącach praca i po pół roku jesteśmy się w stanie rozwijać.


#40

Odezwij się na Priv podrzuce kilka ciekawych tutoriali i powiem jak w miarę łątwo zacząć przygodę i prace w programowaniu webowym.


#41

Zależy od osoby i od sytuacji. Jeśli jesteś wytrwały i masz kogoś, kto by chciał z Tobą siedzieć co jakiś czas przy piwku i Cpp to jak najbardziej. Poza tym, akysz Python. To nie jest dobry język na początek, tak jak każdy skryptowy. Jak już to C#/Java to wspaniały wybór :smiley:


#42

Z doświadczenia wiem, że samemu zabrać się za naukę programowania nie jest łatwo, serio. Przy pierwszej lepszej trudności rezygnowałem i to tak leżało kilka miesięcy. Ale może jak ktoś ma bardziej wnikliwy charakter, byłoby inaczej. Mnie dużo dał kurs Java Script z SD Academy w Gdańsku, tam w sumie mogę powiedzieć, że się nauczyłem najwięcej. No i dużo tez w pracy się uczę.