Pierwsze kroki w programowaniu

0

Witam

Jestem początkujący w programowaniu- najpierw odbiłem się od grubej książki do C, potem bootcamp z frontendu (ale już wiem, że nie chce tego robić, CCSa nie lubię delikatnie mówiąc, drażni mnie precyzyjne ustawianie "co do pixela" itp. Jakiś czas temu zacząłem kurs online z Pythona, wybrałem go jako "język polecany na start bo łatwy". Niestety niezbyt dobrze radzę sobie z motywacją, jak siądę do kodu raz na kilka dni to jest dobrze.
Traktuję go tak naprawdę jako powiedzmy "obniżenie progu wejścia" do branży ponieważ chciałbym w przyszłości pracować jako programista. Wyobrażałem sobie, że na start "zaczepię się" w jakiejś firmie jako junior nad programami ale to tylko na jakiś czas bo prawda jest taka, że mnie to się marzy GameDev, uwielbiam gry i chciałbym je tworzyć. W związku z tym nie jestem pewien czy dobrze robię wybierając Pythona jako furtkę do wejścia z założeniem w przyszłości (bliższej bądź dalszej) przesiadki na inny język oraz robienie gier a programy traktując tylko jako narzędzie do zdobycia doświadczenia.

A teraz pora na pytania:

  1. Czy uważacie, że wybranie Pythona jako "język przejściowy" może być dobrym rozwiązaniem dla początkującego? A może raczej powinienem pominąć opcje przejściowe i od początku skupić się na tym co naprawdę chce docelowo robić, czyli gry?
  2. Czy lepszą drogą jest zacząć od wbicia sobie do głowy podstaw poprzez dziesiątki/setki godzin kursów czy rozpoczynać własny projekt? (temat pewnie nie raz już omawiany ale nie jestem pewny co w moim konkretnym przypadku będzie lepszym wyborem)
  3. Czy macie jakieś sposoby na utrzymać motywację na odpowiednim poziomie (pytanie szczególnie do osób które nie pracują zawodowo z kodem ale jeszcze po swojej harówce znajdują siłę, żeby programować/uczyć się)

Być może błędnie jest u mnie założenie, że kodu chce uczyć się dla pracy a nie dla siebie. Może powinienem po prostu zabrać się za robienie gier na własną rękę nie patrząc czy znajdę pracę i kiedy, a gdy już mi się uda stworzyć coś w miarę sensownego to wtedy wyjść do ludzi i wtedy zacząć myśleć o pracy?

Ciekaw jestem jak dużo ludzi ma bądź miało podobny problem z niezdecydowaniem/złym podejściem na starcie. Chętnie poczytam Wasze opicie i być może nawet znajdą się podobne historie.

2
Ading napisał(a):
  1. Czy uważacie, że wybranie Pythona jako "język przejściowy" może być dobrym rozwiązaniem dla początkującego? A może raczej powinienem pominąć opcje przejściowe i od początku skupić się na tym co naprawdę chce docelowo robić, czyli gry?

"Chcę kroić chleb. Czy powinienem najpierw nauczyć się jak go kroić nożem, czy od razu skorzystać z krajalnicy?"
Krojenie nożem może kiedyś się przyda, jak krajalnica się zepsuje, albo prądu zabraknie. Ale wygodniej zawsze krajalnicą.

  1. Czy lepszą drogą jest zacząć od wbicia sobie do głowy podstaw poprzez dziesiątki/setki godzin kursów czy rozpoczynać własny projekt? (temat pewnie nie raz już omawiany ale nie jestem pewny co w moim konkretnym przypadku będzie lepszym wyborem)

Jeśli chcesz robić projekty, to zacznij je robić. Wiedzę, której Ci brakuje, posiądziesz podczas tworzenia projektu. Jeśli jesteś zielony w temacie i potrzebujesz wprowadzenia, to kurs/tutorial pomoże. Ale jak już załapiesz o co chodzi, to googlujesz tylko to czego nie wiesz jak zrobić. Ewentualnie drążysz głębiej jeśli Ci nie wystarczy, że coś działa i chciałbyś to zrobić lepiej/optymalnie.

Być może błędnie jest u mnie założenie, że kodu chce uczyć się dla pracy a nie dla siebie. Może powinienem po prostu zabrać się za robienie gier na własną rękę nie patrząc czy znajdę pracę i kiedy, a gdy już mi się uda stworzyć coś w miarę sensownego to wtedy wyjść do ludzi i wtedy zacząć myśleć o pracy?

Jeśli chcesz się uczyć kodować dla pracy, a nie dla siebie, to GameDev jest kiepskim wyborem.

a) Niższe zarobki. Chyba, że jesteś prezesem i wydasz dobrą grę.
b) Gry to bardzo skomplikowany twór. Zanim zaczniesz robić to w stopniu zadowalającym potencjalnego pracodawcę, to trochę lat minie. Szybciej się można się nauczyć jednak klepać strony internetowe i łatwiej je podzielić na małe odrębne części. Każda osobna strona to mały podprogram. Gra musi robić znacznie więcej rzeczy w jednym miejscu.
c) Z tego co piszesz, to słabo z Twoją motywacją. Bo nawet bez wiedzy o tworzeniu gier, nie masz chociaż własnych pomysłów, które chciałbyś zrealizować sam od siebie... A jeśli je masz, to działaj z własnym projektem! W pewnym czasie wielu pracodawców miało w wymaganiach napisane, że kandydat powinien mieć przynajmniej jedną grę w Google Play do pokazania.

3

A ja proponuję byś zaczął własnie od tego CSS'a i nauczył się ustawiać div'y co do piksela. Bo widać, że jeszcze nie znasz podstaw a już byś chciał rakiety budować. Znajomość takiego elementarza jak CSS + HTML przyda się na każdym etapie nauki jak i poważnej naukowej ścieżki zawodowej chociażby tylko po to by umieć wypluć sensownie wyglądający raport z danymi z programu, który napiszesz jak już nauczysz się programować. Chęć ominięcia takich podstaw brzmi taj jakbyś uważał, że będziesz robił super gry i programy, w których ściany niekoniecznie będą się składały co do pixela a obliczenia walutowe niekoniecznie wyliczały co do grosza. Przecież takie drobiazgi są niegodne uwagi Twojego umysłu :-)

0

Jak najłatwiej znienawidzić to, co się lubi: zrobić z tego swoją pracę. To, że lubisz dobrze zjeść nie znaczy, że będziesz dobrze prowadził restaurację.

  1. Python to dobry wybór na początek.
  2. Jakoś podstawy musisz wbić do głowy, Jedni wolą kursy inni projekt. Sam musisz zdecydować. Jak rozumie pierwszej ścieżki próbowałeś i nie wyszło, to spróbuj drugą.
  3. Odetnij źródło dochodu, jakie masz teraz i będziesz miał taką motywację, jakiej potrzebujesz. Chyba innej nie ma w tym zawodzie.
0

Tak jak zostało napisane tu już wyżej, musisz się zmotywować i zacząć coś pisać. Te wszystkie kursy są fajne żeby je posłuchać do poduszki, ale praktycznej wiedzy w ten sposób nie nabierzesz tylko słuchając. Co więcej teoretyczna wiedza też szybko ucieka jeśli tylko ogląda się kursy i czyta książki/artykuły. Trzeba pisać/programować i to najlepiej dużo.

Co do języka to jak chcesz programować w języku X (i wiesz że jest w nim praca) to na początek powinieneś uczyć się właśnie języka X. Po roku lub trzech można zacząć uczyć się innego języka żeby mieć szerszy horyzont

2

Pisz kod. Serio. Nie dywaguj nad tym który język lepszy, bo to bez znaczenia na początek. Musisz się nauczyć programować - mysleć w odpowiedni sposób. Język to szczegół. Wielu z nas zaczynało pewnie od C albo Pascala a dzis programuje w zupełnie innych technologiach. Wiele osób pewnie też zawodowo na co dzień pisze przynajmniej w 2 róznych językach. Zamiast tracić czas na jałowe dywagacje, mógłbyś naklepać więcej kodu i byłby z tego jakiś pożytek.

1
Shalom napisał(a):

Wielu z nas zaczynało pewnie od C albo Pascala.

Przykładowo ja:

  • Na studiach miałem Pascala, C, C++, Javę i Pythona
  • Zawodowo pisałem w Java (głównie), Scala, Kotlin i czasem mnie zmusili do Groovy, Python i JavaScript. Raz nawet Lua się trafiła
  • Jako student hobbistycznie pisałem w Perlu i TCLu dopóki nie obrzydły mi dynamicznie typowane języki programowania
  • Teraz hobbistycznie piszę w Scali (do niedawna) i w Haskellu (zacząłem w tym roku)
  • Oprócz tego do snu czytam o Rust i Clojure (Lispy to jedyne dynamicznie typowane języki programowania jakie aktualnie toleruje)

Większość języków jest podobna (tak samo nudna), tylko Lisp/Scheme/Clojure, Haskell/PureScript i Rust czymś się wyróżniają. Przynajmniej z tych które przeglądałem

1

Czy macie jakieś sposoby na utrzymać motywację na odpowiednim poziomie (pytanie szczególnie do osób które nie pracują zawodowo z kodem ale jeszcze po swojej harówce znajdują siłę, żeby programować/uczyć się)

Jeśli nie jesteś pasjonatem to sobie daruj. Szkoda Twojego czasu i nerwów. Uwierz mi, naprawdę coś o tym wiem.

0

Jeśli to jest wątek w stylu być czy mieć to w przypadku IT odpowiedź i tak nie ma znaczenia.

Chcesz robić gry? No to rób, nie wiem w czym widzisz problem. Chcesz robić większą kasę to też rób, co więcej oba podejścia można łatwo połączyć.

1

Czy macie jakieś sposoby na utrzymać motywację na odpowiednim poziomie

Dzielisz projekt na małe zadania. I pilnujesz, żebyś regularnie (np. codziennie albo kilka dni w tygodniu) coś robił w kierunku realizacji. Łatwiej jest usiąść np. na godzinę dziennie (albo na zrobienie jednej małej rzeczy dziennie), niż zebrać się na 7 godzin ciurkiem raz w tygodniu (albo na zrobienie iluś rzeczy naraz).

Wtedy nawet jak masz niską motywację, to można zrobić z poczucia obowiązku, jak i inne codzienne rzeczy.

robienie gier

Nie myślałeś o Unity albo Unreal Engine? Może byłoby łatwiej zacząć, jak masz gotowy silnik (chociaż to też nie jest takie hop siup, bo jednak to złożone narzędzia).

Czy uważacie, że wybranie Pythona jako "język przejściowy" może być dobrym rozwiązaniem dla początkującego? A może raczej powinienem pominąć opcje przejściowe i od początku skupić się na tym co naprawdę chce docelowo robić, czyli gry?

Co ci wygodnie. W Pythonie też możesz pisać gry (inna sprawa, że rzadko się go używa na serio do gier, z tego co wiem. No ale sama znajomość Pythona nie zaszkodzi w edukacji programistycznej. Jak jeden język poznasz, to kolejne łatwiej wejdą). Bylebyś widział sens pisania, a nie robił tego na siłę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1