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


#43

Ja miałem tak, że jak napotykałem problem to siedziałem po kilka dni i próbowałem go rozwiązać i do dzisiaj mam tak, że jak coś nie umiem zrobić to siedzę i siedzę… Tak samo mam z nauką matematyki czy innego przedmiotu który wydaje mi się ciekawy.


#44

@Michal_M Zdecydowanie zgadzam się z @daniel1302.
Ta praca wymaga dużej cierpliwości, samozaparcia i przede wszystkim nie poddawania się tak łatwo. Tylko ciągłe uczenie się na różne sposoby, z tutoriali, na własnych próbach, błędach, eksperymentach. To wg mnie rodzaj takiego hard fun. Bo im problem trudniejszy do rozwikłania, tym większa satysfakcja po jego rozwiązaniu :wink:


#45

Samodzielne rozwiązywanie problemów jest ważne ale należy wiedzieć kiedy ją przerwać i skorzystać z pomocy innych. Podobnie jak @Michal_M lubię zmagać się z problemami matematycznymi samodzielnie :slight_smile:

ldurniat


#46

Cześć. Jak myślicie, czy nie lepiej zakupić jakiś kurs gdzie są jakieś opcje certyfikatu z programowania oprócz darmowej i samodzielnej nauki? umowa kupna sprzedaży samochodu


#47

w większości przypadków pracodawca będzie sprawdzał Twoją wiedzę w praktyce. papierek to tylko ładny dodatek.
portfolio > certyfikat


#48

Pokusił bym się nawet o stwierdzenie, że portfolio >> certyfikaty, szkoły, studia


#49

Ja zaczynam od Pythona. Myślałem o JAvie, unity z C#, ale jednak python


#50

Jak nie znasz programowania to Python sam w sobie jest najlepszy na początek.
Jak chcesz robić gry, to IMHO lepiej jednak zacząć C# z Unity. Przerobisz kilka, kilkanaście tutoriali i będziesz miał dwie pieczenie na jednym ogniu: nauczysz się trochę programować i zrobisz swoje pierwsze gry.

Unity (i Unreal) to standard branży, więc potem łatwiej znaleźć pracę, gdy wykażesz że masz w nim zdobyte doświadczenie.


#51

Hej witam wszystkich.
Postanowiłem się podpiąć pod temat zamiast zaczynać nowy, choć prawdopodobnie wielu nowych informacji nie dostanę XD.
No więc chciałbym usłyszeć jakieś porady od czego zacząć naukę programowania, docelowo gier oczywiście.

Zanim jednak usłyszę odpowiedzi (zarówno te “przeczytaj wcześniejsze komentarze” jak i jakieś konkrety) zaznaczę, że nie zamierzam studiować programowania, czasy studenckie minęły dla mnie już dość dawno temu (nic związanego z komputerami nie studiowałem), pracuję w systemie czterobrygadowym - swiątek piątek i niedziela więc nawet na zaoczne się nie wybiorę. Szczerze mówiąc kiedy trzeba było wybrać studia… nie kiedy trzeba było wybrać szkołę średnią zastanawiałem się nad drogą programisty, ale pomyślałem sobie “cholera teraz jest tego wszędzie potrzebne, ale zanim skończę liceum/technikum+studia to minie najmniej osiem lat, do tego czasu rynek się zapełni i dobrej roboty z tego nie będzie”. Myliłem się, ale nie żałuję i nie zamierzam zmieniać swojej kariery zawodowej - zawsze jednak korciło mnie tworzenie gier, a przez ostatnie parę miesięcy ta presja wręcz narasta. Jasne jeśli wygram kiedyś w totka to nie będę się sam uczyć programowania tylko dam ogłoszenie “nowy developer gier zatrudni ekipę”, ale ten scenariusz ma mniej więcej takie same szanse na realizację jak taki w którym rzucam hasło “ludziska mam zarąbisty pomysł na grę! Zróbcie mi ją” a w odpowiedzi ludzie się biją o prawo jego wykonania… czyli mikroskopijnie przekraczający zero procent. Dlatego właśnie postanowiłem po wielu miesiącach walki z samym sobą (i zastanawianiu się czy nie jestem już na to trochę za stary) jednak nauczyć się podstaw programowania napisać kilka prostych kodów, potem nauczyć się bardziej skomplikowanych rzeczy i puścić w obieg jakąś prostą apkę ot tak, żeby potem szukając wsparcia przy tworzeniu docelowej gry pokazać - “o patrzcie takie rzeczy potrafię” a przy dobrych wiatrach za dwa-trzy lata zacząć pracę nad pierwszą wersją swojej gry. Możliwe że już z kimś współpracując XD.
Będzie to dla mnie raczej trudne bo obecnie programowanie jest dla mnie tym czym dla większości obywateli fizyka kwantowa - znaczy się kojarzę nazwę ale niech mnie demon żywcem zeżre jeśli wiem na czym to polega XD.

Zatem dla wszystkich którzy przetrwali ten długawy opis uszczególniam pytanie:
Czy lepiej zacząć od podręcznika czy videotutoriali (i jeśli tak to jakich - biegle znam angielski, więc nie muszą być polskojęzyczne tytuły)
Czy jest jakaś różnica między programowaniem gier przeglądarkowych, sieciowych (z instalatorem) i na smarfony? chciałbym docelowo stworzyć grę na przeglądarkowo-smartfonową
Czy mój prywatny deadline rozpoczęcia prac (do trzech lat) jest wykonalny jeśli na naukę programowania będę wstanie poświęcić zaledwie godzinę do dwóch dziennie?


#52

Olej videotutki, kup sobie książkę.
Zanim zaczniesz pisać gry przelądarkowe, czyli jak rozumiem jakieś multiplayer, to popełnij coś z single player, i to nawet nie jedną. Dopóki sam nie jesteś w stanie odpowiedzieć sobie na takie pytanie to nawet nie masz co się za taka grę brać.
Twój prywatny deadline - godzina dziennie to 30 godzin w miesiącu a to mógł bym porównać do 5-6 wieczorów wypełnionych nauką. A takich wieczorów będziesz potrzebował na prawdę sporo. Dodatkowo nie mam pojęcia czy ty masz w ogóle jakiekolwiek predyspozycje, bo jeden będzie potrzebował pół roku takiej intensywnej nauki co wieczór a inny nawet po kilku latach nie będzie programowania czuł - tak, bo oprócz zrozumienia to trzeba jeszcze poczuć.

Reasumując - spróbować możesz, ale nie nastawiaj się na zrobienie gry. Po prostu się ucz, ćwicz. Opanuj podstawy, zacznij tworzyć jakieś proste programiki, ściągaj i próbuj zrozumieć różne open sourcowe projekty. Ile ci z tym zejdzie to nie wiem.


#53

Hmm dzięki. Sam nie wiem czy mam predyspozycje, gdzieś czytałem że logiczne myślenie i zdolność analizy przyczynowo-skutkowej jest cechą pożądaną u programisty. Te cechy posiadam z pewnością (musiałem się ich wyczuć na studiach).
Piszesz kup sobie książkę… nie zapytam o jakiś konkretny tytuł, ale może chociaż dobrego autora?


#54

Daaaawno temu polecił bym ci Symfonię C++ J. Grębosza. Co się czyta teraz to nie wiem bo ja od dawna jestem na etapie czytania dokumentacji i od czasu do czasu jakiś bardzo technicznych blogów.

Język na początek to też bym w sumie polecił C++. Jak go nie opanujesz i nie zrozumiesz to nigdy tak na prawdę nie zrozumiesz dobrze innych rzeczy. Ja jeszcze dodatkowo wychodzę z założenia, że nikt nie ma prawa (np w Javie lub w C#) zrobić new List<T>() dopóki nie ogarnie czym jest lista, jak wewnętrznie działa i samemu takiej listy nie zaimplementuje, np w C :wink:


#55

Jeśli chodzi o predyspozycje, to wg mnie kluczową jest **umiejętność rozwiązywania (nie tworzenia ;p) problemów. Jeśli sprawia Ci satysfakcję rozwalanie łamigłówek itp. to programowanie może Ci się spodobać.

Videotutorial a książka? Zdecydowanie najszybszym podejściem do nauki programowania jest zacząć programować. A jeszcze lepiej, gdy nie jest to sztuka dla sztuki tylko programowanie posłuży wyższemu celowi w postaci stworzenej gry. Zacznij przepisywać kod innych, eksperymentować z nim. Więc na początek polecam wideotutoriale. Książki świetnie nadają się do pogłębiania nauki, więc zostaw na potem. Zapoznaj się też z koncepcją just in time learning.


#56

Dobrze powiedziane! Sprawdza się Inżynieria wsteczna na przykładzie ClickTEAM fusion czy Gamemaker rozbieranie jakiegoś projekt. Wydaje mi się że tuturiale wideo są wprost jednym z najlepszych źródełek do nauki. Samo czytanie książki beż nauki przez powtarzania praktyki nie ma sensu.


#57

Tak naprawdę nigdy się nie dowiesz czy jesteś odpowiadnią osobą do czegoś dopóki nie spróbujesz. Kwestia technologii to sprawa drugorzędna, ale ja polecałbym zacząć od czegoś co jest dosyć uniwersalne i ma zastosowanie w wielu miejsca, np. bazy danych. Zacznij w czymś pisać i zobacz czy sprawdzi Ci to radość. Jeśli chcesz nauczyć się baz danych to tutaj znajdziesz materiały od zupełnych podstaw, tzn. żeby zacząć nie potrzebujesz żadnej wiedzy.


#58

Ja bym zaczęła od tego, że programowanie trzeba pokochać, żeby to miało ręce i nogi. Nie po to, bo na onecie piszą, że “informatycy” zarabiają najwięcej, to nie zadziała. Żadne studia nie nauczą programowania, a na większości dalej jest przekazywana wiedza rodem z lat 90. Na to trzeba zajawić, chcieć zrobić coś nowego, coś trudnego. Ja kompletnie nie jestem umysłem ścisłym, a pracuję jako programistka od już chyba 10 lat. Jak ktoś wcześniej napisał, to trochę jak rozwiązywanie łamigłówek :slight_smile: Ale właśnie ta chęć podziubania czegoś codziennie, nawet przez kilka lat + umiejętność pracy bez zarobku przez jakiś czas. No i potem można trzaskać grube hajsy :smiley:


#59

Co to za wykopki? xD

Daj łopatę, pomogę :smiley: Moje trzy grosze dla młodszych pokoleń:

  • odradzam kupno książek informatycznych, traktujących o implementacji i narzędziach (czymś co się zmienia). Np jak chcesz się uczyć korzystania z biblioteki/frameworka/toolkitu/silnika- nie kupuj książki. To strata pieniędzy. Zasoby dostępne w sieci są najlepsze i zawsze są nowe. Jak książki to tylko o czymś niezmiennym- algorytmy, struktury danych, wzorce projektowe, paradygmaty/ideologie. Co do nauki języka programowania to kwestia sporna. Każdy język ma jakąś swoję biblię, która ładnie wygląda na półce. Ale da się bez tego obejść. Najlepszym źródłem wiedzy zawsze jest najnowsza wersja dokumentacji od twórców.
  • Studia na politechnice, nie nauczyły mnie za dużo. Studia nie uczą, tylko wskazują drogę. Większość ludzi tego potrzebuje. Sam w domu sobie coś dłubałem niezwiązanego ze studiami i zawsze byłem do przodu. Odradzam zwracanie uwagi na oceny na studiach. Nic nie dają. Ale…
  • Nauka samemu w domowym zaciszu sprawi, że pominiesz bardzo wiele teorii, która jest ważna gdy stajesz w przyszłości przed bardziej wymagającymi problemami. Dlaczego? Bo nie wiesz, że to coś co powinno się wiedzieć. Bo skąd? Polecam pracę z doświadczonymi ludźmi, w dobrej firmie, w której można się czegoś nauczyć. Ja jak zaczynałem pracę, w ciągu miesiąca nauczyłem się więcej niż przez parę lat studiów.
  • Jak się uczy “programować”, to trzeba mieć dużo chęci, systematyczności, czasu i zdolności rozwiązywania problemów (inteligencji). To zdecydowanie nie jest dla każdego. Trzeba to lubić.
  • Zaczynasz przygodę z programowaniem i piszesz swoją pierwszą grę? Nie RPG. Nie MMO. Może Pong? Mario? Arkanoid? :stuck_out_tongue: Po co się zdemotywować na starcie.
  • Wybierasz sobie technologię, w której się chcesz uczyć? Weź to co jest aktualnie silnym trendem na rynku i nie przytłacza w nauce. Najlepiej żeby było dodatkowo wielozadaniowe. Na teraz opłaca się znać któryś z następujących prostszych w nauce: Java, JS, C#, Python. I zawsze się coś po tym złapie. Najłatwiej zostać front-endowcem w HTML+JS+Angular. Sama natura front-endu nie wymaga od programisty wielkiego zaplecza teoretycznego. Za jakiś czas to się zmieni. Programowanie jest jak moda. Np teraz świat idzie w stronę reaktywności i języków funkcyjnych (ale np odradzam zaczynać przygodę od tego tematu)
  • Bonus z doświadczeń znajomego: zapoznaj się z rynkiem zanim zaczniesz się uczyć. Różnica pomiędzy liczbą ofert pracy w Javie, a w C to przepaść.