Witam.
Więc od bardzo dłuższego czasu eksperymentowałem z programowaniem a jako iż dopiero zaczynałem (Mowa o latach), często miałem problemy z opanowaniem jakiegokolwiek języka programowania, co oczywiście jest naturalne w przypadku programowania. Często się zniechęcałem i zatracałem się późnymi godzinami w tych liniach kodu. Na szczęście udało mi się jakiś rok temu przełamać i od tamtej pory uczę się głównie Pascala, C++'a i Javę. Teraz czas nadszedł na prawdziwe programy! Aplikacje okienkowe. Prawdę mówiąc podstawy mam już za sobą ale teraz mam w głowię większe plany. Pełnoprawne programy graficzne służące czemuś sensownemu. Próbowałem już c++ Builder'a, Delphi i Lazarus'a ale nie potrafię się zdecydować i dokonać wyboru. Pragnę rozpocząć prawdziwą przygodę z programowaniem grafiki i pisać prawdziwe oprogramowania np.Symulatory graficzne lub ewentualnie Gry Komputerowe. Macie jakieś pomysły?
"Programowanie grafiki komputerowej" prawdę mówiąc bardziej skojarzyło mi się z jakimiś sieciami neuronowymi, OpenCV
i innymi takimi ;)
Często się zniechęcałem i zatracałem się późnymi godzinami w tych liniach kodu
Błędem było siedzenie późnymi godzinami w kodzie.
2~3h nauki dziennie stanowczo wystarczą, inaczej - tym bardziej na początku - zaczyna się zniechęcanie do kodu, a nie o to przecież chodzi.
od tamtej pory uczę się głównie Pascala, C++'a i Javę
Nie ma czegoś takiego jak "uczę się głównie x języków", wybierz jeden język i to niego się naucz.
Gramatyki, jego biblioteki standardowej, jakiegoś frameworka i dopiero wtedy pomyśl nad przejściem do innego.
Chyba że już na początku stwierdzisz to nie dla mnie
, wtedy to odmienna sprawa.
Teraz czas nadszedł na prawdziwe programy! (...) Pełnoprawne programy graficzne służące czemuś sensownemu.
Oho, po czym to wnioskujesz? :P
Wzorce projektowe przerobiłeś?
Wiesz, co to zasada podstawienia Liskov?
Nie mam na celu zniechęceniu Cię, ale najpierw należy się czegoś porządnie nauczyć, popisać milion różnych malutkich aplikacji, a dopiero potem myśleć o "prawdziwych programach" :)
Próbowałem już c++ Builder'a, Delphi i Lazarus'a ale nie potrafię się zdecydować i dokonać wyboru.
W obecnych czasach to praktycznie z deszczu pod rynnę.
Być może zainteresuje Cię Python?
Macie jakieś pomysły?
Nauczyć się porządnie jakiegoś języka, napisać setki malutkich nikomu praktycznie nieprzydatnych aplikacji, i dopiero potem brać się "na poważnie" za pisanie czegoś większego, abyś nie skończył z ręką w nocniku, płaczem i zgrzytaniem zębów bo znowu nie wyszło
.
Spokojnie, każdy z nas na początku chciał pisać Need for Speedy, jednak trzeba mierzyć siły na zamiary ;)
a ja tam nigdy nie mogłem napisać setki malutkich programików. Dla mnie to było bez sensu i jest takie do tej pory. Od raz wszedłem w programy z interfejsem graficznym od razu pisałem większe programy, rozwijałem przerabiałem przepisywałem i tak na okrągło, bo wtedy mnie to wkręcało i zachęcało to dalszego dłubania. Pierwszego programu napisałem na przestrzeni roku ze 30 wersji :p
Na szczęście udało mi się jakiś rok temu przełamać i od tamtej pory uczę się głównie Pascala, C++'a i Javę. Teraz czas nadszedł na prawdziwe programy! Aplikacje okienkowe. Prawdę mówiąc podstawy mam już za sobą ale teraz mam w głowię większe plany. Pełnoprawne programy graficzne służące czemuś sensownemu. Próbowałem już c++ Builder'a, Delphi i Lazarus'a ale nie potrafię się zdecydować i dokonać wyboru. Pragnę rozpocząć prawdziwą przygodę z programowaniem grafiki i pisać prawdziwe oprogramowania np.Symulatory graficzne lub ewentualnie Gry Komputerowe. Macie jakieś pomysły?
Przestań się uczyć programowania. Przestań cokolwiek wybierać. Przestań nierealistycznie marzyć o "przygodzie z programowaniem grafiki" (ta, wielka przygoda polegająca na tworzeniem buforu wierzchołków i mnożeniu macierzy... lol). Przestań mieć kompleksy ("prawdziwe programy"? To wcześniej pisałeś nieprawdziwe?). Przestań łapać kilka srok za ogon ("od tamtej pory uczę się głównie Pascala, C++'a i Javę"), przestań snuć w głowie "większe plany").
Jeśli to wszystko zrobisz.
To zaczniesz...
...prawdziwe programowanie.
Czyli po prostu pracę u podstaw. Nie ględzenie "co by było gdyby" a branie się solidnie do pracy. Chcesz pisać programy? To piszesz. W razie czego może parę tutoriali będzie potrzebnych. Może będzie potrzeba trochę obniżyć poprzeczkę i zamiast robić coś wielkiego, zrobić coś mniejszego na początek, albo zamiast robić np. w czystym OpenGL (bo piszesz, że chcesz "programować grafikę"), użyć gotowej biblioteki/frameworka. Może będzie potrzeba z czegoś zrezygnować i zamiast uczyć się jednocześnie Pascala, C++ i Javy wybrać jeden język a resztę odrzucić (i nie, to nie jest żadna życiowa "decyzja" w stylu "ślub" czy "wybór studiów". Zawsze przecież możesz się później przekwalifikować znowu).
TL;DR: za dużo teorii, marzeń, nierealnych oczekiwań, chwytania kilku srok za ogon, a za mało pracy u podstaw. Za dużo uczenia, za mało robienia.
Jeśli chcesz szybko zobaczyć efekty swojej pracy i chcesz pisać aplikacje graficzne, to idź od razu w Unity 3D ;) Może nie daje to tyle satysfakcji, co pisanie własnego "silnika", ale na pewno szybciej w tym stworzysz stabilną aplikację.
Ma całkiem sprawny system GUI, więc bajeranckie programy okienkowe też w tym napiszesz i co ważniejsze, od razu odpalisz je na swoim telefonie ;)
W ogole to czego trzeba sie uczyc w tej dziedzinie?
Widze to troche tak:
C na poczatek wypadaloby znac
C# jesli unity
C++ do wszystkiego innego, np unreal
Opengl
Metal, objective c do ios
Java jesli gry na androida
Ogolnie gruby temat sie wydaje ;)
Po co ci C ? - wydaje mi się że jest zbyt niskopoziomowy do pisania gier/programów graficznych. O pomocnicze biblioteki też pewnie nie jest łatwo.
C# w unity jest prosty jak budowa cepa, wiele rzeczy jest podobnych jak w innych językach obiektowych, musisz tylko często zaglądać do oficjalnej dokumentacji/tutoriali unity. Bierzesz uczysz się tego co aktualnie potrzebujesz.
Programowanei silników (openGL , DirectX) to wyższa szkoła jazdy, i możesz się łatwo zniechęcić. Najpierw radziłbym ci programować w gotowych silnikach, a potem jak zobaczysz jak to działa ewentualnie możesz. Gotowe silniki pozwolą ci łatwiej zrozumieć idee ich działania.
ios i android - co do tego to akurat nie mam zdania. Ale raczej wybierz to co cię najbardziej pociąga
"Gruby" - nie musisz się wszystkiego uczyć, najpierw weź to co ci się wydaje najbardziej pociągające, zrób program/gre cokolwiek, oceń czy dalej ci się podoba czy nie, jeśli nie to zmień, jeśli tak to rozwijaj. Potem ewentualnie możesz doszkalać się w innych technologiach.
Wydaje mi sie, ze na poziomie akademickim i jakis algorytmow powinienem znac C. By lepiej rozumiec dzialanie. A jesli kiedys nastapi IT armaggedon to odrodzi sie z jezyka C :p
Ja jestem samoukiem i w branze wbilem sie dzieki javie.
Obecnie zastanawiam sie czy nie pobawic sie w czyms zgola innym.
I po krotkim namysle postawilbym na chwilowa nauke C a pozniej c# i unity.
jeśli chcesz sie bawić w C to kup se arduino lub coś podobnego i z nim się baw bo dopiero tam czujesz co może ten język, gdy musisz optymalizować kod bo za dużo ci zjada pamięci :)
Hmm a raspberry pi nie daloby sie wykorzystac? Bo kiedys dostalem i sie kurzy ;)
Biały Mleczarz napisał(a):
Hmm a raspberry pi nie daloby sie wykorzystac? Bo kiedys dostalem i sie kurzy ;)
Nie bawiłem się z tym nigdy ale pewnie da rade chociaż tam ramu jest pewnie więcej niż te 2kB które dostaniesz w standardowym arduino :)
Na raspbery najczęściej słyszałem, że w Pythonie robią ;)
Hmm a raspberry pi nie daloby sie wykorzystac? Bo kiedys dostalem i sie kurzy ;)
Nie bawiłem się z tym nigdy ale pewnie da rade chociaż tam ramu jest pewnie więcej niż te 2kB które dostaniesz w standardowym arduino
RPi w najsłabszej wersji ma 256 MB RAM, a bardziej sensowne 512 MB - 1 GB, to bardziej komputer (nawet jeżeli słaby) niż mikrokontroler.