Programuje 2 lata a nie umiem napisc snake

0

Witam otoz taki mam dylemat programuje od 2 lat backend i frontend w pracy radze sobie dobrze nikt nigdy nie narzekal ale jak probowalem napsiac....SNAKE to nie umiem .... :/
Ogolnie w programowaniu webowymm sobie radze ale nie mam algorytmicznego myslenia np kiedys probowalem MobileDevelopmentu i za cholere mi to nie szlo .
Chcialbym wiedziec co o tym myslicie

8

Chcialbym wiedziec co o tym myslicie ja mogę z tym żyć, twoi pracodawcy również, jak tobie przeszkadza to ściągnij kilka przykładów i zobacz jak są zrobione i spróbuj na tej podstawie zrobić samemu

0

Masz takie samo życzeniowe myślenie jak ja. Tyle, że ja na przykład potrafię wpaść w kilkudniową depresję pod tytułem: "g**no ze mnie, a nie programista. Stać mnie tylko na wyklepania CRUDA w gotowych frameworkach....".

Ale chyba rada jest jedna: uczyć się na potęgę i jeszcze raz uczyć. Jak masz ileś tak już latek, to mózg już nie będzie zbyt plastyczny, ale dasz radę go jeszcze wytrenować.
Ja na przykład pamiętam, że za cholerę nie mogłem sam napisać LinkedListy, ale się nie dałem. Krok po kroku dalej w głąb no i teraz dawne problemy wydają się śmieszne :)

Jak czegoś chcesz, to nie daj się i pracuj, żeby to osiągnąć.

0

Jak sie czegos nie robi na codzień, to moz a miec problemy, żeby tak z marszu wystartowac. Jeśli zalezy ci na zdobyciu takich umiejętności, to nie zaczynaj od snake'a, tylko sobie w wolnej chwili zacznij przerabiać tematyke algorytmów.

0

No jak to co? zadanka z algorytmiki i matematyki do końca wakacji :D

0

"jestem trollem" lub "nie jestem jedyną ofiarą hypu"? Jak to drugie to w sumie ciekawy przypadek :D kiedyś rozmawiano o 29A czy Blue pill, a dzisiaj radzi sie JS-kid czy trolom.
Najłatwiej nauczyć się coś robić... robiąc :> przypomnij sobie jak i ile schodzi na naukę chodzenia, to czas kaleczenia snaka wyda się śmieszny (no chyba że w asm xD swoją drogą ^^ czemu nie).
Dzień po dniu i będzie lepiej.

2

Ja też bym nie napisał smake bo nie lubie GUI strasznie. Nie uważam się przez to za gorszego..

0

do snaka nie trzeba żadnych algorytmów... tylko trzeba ogarnąć tematykę ruchu, podpiąć zdarzenia (ruch węża) pod przyciski, parę pętli i zdarzeń warunkowych... fajnie jest to zrobione np. tu: https://www.coursera.org/learn/interactive-python-1 to znaczy tematyka ruchu... :)

0

A ja sie uwazam przez to za gorszego :)

3

Ale masz problemy, ja programuję zawodowo > 8 lat a dopiero tutaj na forum mnie uświadomili że nie nadaję się na juniora w Javie. I co ja miałem zrobić w takiej sytuacji? Zostałem trollem :(

2

Lubie cie. Nie wydaje mi się żeby klepanie backendu wymagało aż takiej znajomości algorytmów itd. Przez ostatnie 2 lata też klepałem programy i backend, nie wykorzystałem nawet raz jakiegoś skomplikowanego algorytmu(no może 2-3 razy, ale to bardziej moje rozwiązania były).

2

Porównywanie web developera do game developera jest jak prównywanie polonisty do matematyka. Niby to i to nauczyciel, ale jednak uczą czegoś innego.

Tak że nie oczekuj od siebie, że z marszu napiszesz nawet prostą grę.

Tworzenie stron uczy głównie operacji na danych tekstowych, jak je zachowywać, prezentować, czy konwertować. W grach to za mało. Trzeba dużo operować na liczbach.

W najprostszej implementacji snake'a można przyjąć, że poruszamy się po macierzy 2d. Trzeba napisać szereg funkcji, które będą modyfikować wartości tej macierzy. Poruszanie się węża, pojawienie się owocu w odpowiednim miejscu, narysowanie na ekranie reprezentacji graficznej tej macierzy itd.

6

Nie ma w tym nic dziwnego, że nie potrafisz, w dzisiejszym świecie mocków, kontenerów, mikroserwisów i tak dalej nie ma zbyt wiele miejsca na problemy podobne do tych na które natknąłbyś pisząc snake czy inną gre. Nie umiesz napisać snake'a ale umiesz za to zrobić co innego. Przecież termin programista jest szeroki jak ocean. To, że w robocie piszę kod biznesowy w Javie, nie znaczy że umiałbym też pisać sterowniki do kart graficznych w siedzibie nVidii. A jednym i drugim zajmuje się programista.

0

Dokładnie. A napisanie dobrze aplikacji webowej to tez nie lada wyzwanie, mam wrażenie że sa lekko demonizowane - oczywiście często są operacje typowo CRUDowe, ale jednak jest dużo logiki biznesowej która trzeba odpowiednio napisać. Naucz się lub popraw umiejętnośc pisania czytelnego rozszerzalnego kodu (spełniający SOLID, w szczególności Open Closed i SRP bo te zasady sa mocno poniewierane) i to będzie się liczyć, a jak patrze na kod aplikacji to ludzie własnie z tym mają problem przede wszystkim.
A jak chcesz rozwijać swoje umiejętności i pisac coś bardziej złożonego technicznie dołącz do fajnego projektu open-source :)

3

Może tylko Ci się tylko wydaje, że nie umiesz napisać gry Snake. Próbowałeś nad tym usiąść, skupić się i to zrobić? Snake nie jest trudny do napisania, był pierwszym trochę poważniejszym niż Hello World programem napisanym przeze mnie w Pascalu w liceum. Do tego nie potrzeba algorytmicznego myślenia. Ja chyba jeszcze wtedy nie wiedziałem, co to jest rekurencja, sortowanie itp. Potrzebna była pętla z delayem, odczyt naciskanych klawiszy i przestawienie ostatniego elementu w odpowiednie miejsce przy pierwszym elemencie, a gdy wejdzie się w "jedzenie", to zostaje ono dołożone tam, gdzie chwilę wcześniej był ostatni element. Do tego obsługa wejścia w krawędzie planszy.

Może masz problem z wiarą we własne możliwości? Nie wierzę, że gdybyś usiadł nad tym na poważnie, to byś tego nie zrobił. Może Cię to przeraża, bo zakodowałeś sobie w głowie, że to jest coś bardzo skomplikowanego.

1

Burmistrz w 90% mogę się z Tobą zgodzić faktycznie brak mi wiary we własne umiejętności i przez to mam jakaś blokadę przez która wiele rzeczy nie mogę zrobić

PS dziękuje wszystkim na odpowiedzi :)

0

Możesz wykorzystać obecne umiejętności bo dzisiaj przeglądarka jest całkiem fajną platformą do pisania prostych gierek, mega łatwo jest robić GUI i są fajne języki. Zrób canvas, podepnij zdarzenia onKeyPress, zrób główną pętlę opartą o requestAnimationFrame i jazda :) Zacznij od poruszania pojedynczym kwadracikiem po ekranie w zależności od wciśniętego klawisza.

2

Zainspirowało mnie to do zaczęcia tworzenia kolejnego dużego blog wpisu. Ale kilka dni materiały pozbieram + niestety zaraz będę miał tydzień na plaży z jvm, więc łatwo nię będzie.
Krótko, jak uczyłem się programować to takiego snake robiło się całkiem ładnie w 3 - 4 dniu nauki. Z muzyką.

0

Ja też pogramuje i nadal nie napisałem gry bo nie interesuje mnie tematyka i w sumie nie wiem jak z marszu napisać takiego snejka. Niby znam trochę JavaScript ale bardziej pod proste operacji z lub bez jQuery.

0

Jak uczyłem się programować to naturalne było dla mnie napisanie jakiejś gry. Moja scieżka: Hangman, Snake, Tetris, Szachy (tu już bylo wyzwanie), GameOfLife (tu było wyzwanie związane z wydajnością).
Dodam że do dzisiaj jestem ślusarzo-spawaczo-monterem konstrukcji stalowych :D

0

Tu masz proste wprowadzenie: jak ogarniesz to co tam jest to wystarczy ze sie skupisz na samej logice gry.

Jak po obejrzeniu nie bedziesz w stanie napisac -> zaczalbym sie zastanawiac nad kariera w IT.

2
Spine napisał(a):

Porównywanie web developera do game developera jest jak prównywanie polonisty do matematyka. Niby to i to nauczyciel, ale jednak uczą czegoś innego.

Ale polonista wie ile jest 2*2, jak i matematyk potrafi bez błędu napisać np. "róża". W miarę ogarnięty programista powinien potrafić napisać Snake'a. Do tego nie trzeba mieć w CV pracy nad grą AAA

0

Weź kartkę w kratkę i narysuj węża.
A potem pomyśl w jaki sposób tego węża przeniesiesz do komputera.
(nie żartuję, po prostu gra w węża jest bazowana na kwadracikach/kafelkach (tile-based), więc najlepiej po prostu wyobrazić sobie kafelki i przemyśleć całą rzecz "na sucho" zanim się usiądzie do kodu. W jakiego rodzaju strukturach danych zapiszesz dane gry, jak zrobisz ruch węża, w jaki sposób uaktualnisz stan gry itp.).

I rób prototypy, kombinuj, jest czas na myślenie, ale jest też czas na spontaniczne hakowanie rozwiązania albo sprawdzanie szczegółów technicznych typu "jak wyświetlić animację diva o 2 pikseli), trzeba zachować równowagę między projektowaniem a implementacją.

2
mechanix napisał(a):
Spine napisał(a):

Porównywanie web developera do game developera jest jak prównywanie polonisty do matematyka. Niby to i to nauczyciel, ale jednak uczą czegoś innego.

Ale polonista wie ile jest 2*2, jak i matematyk potrafi bez błędu napisać np. "róża". W miarę ogarnięty programista powinien potrafić napisać Snake'a. Do tego nie trzeba mieć w CV pracy nad grą AAA

Też tak uważam. Kiedy uczyłem się programować, już tak na poważnie, to za punkt honoru obrałem sobie napisać Snake'a, a zaraz później Tetris'a. Nie pisałem tego graficznie, bo wtedy jeszcze nie umiałem; wszystko szło na konsoli. Pamiętam także, że na początku masakrowałem chyba wszystkie znane, dobre praktyki programowania ale miałem ogromną satysfakcję kiedy zadziałało. ;) Naturalnie algorytm ruchu takiego węża, czy obracania kloców w Tetrisie trzeba jakiś wymyślić, no bo jak inaczej miałoby to działać?

Jestem zdania, że proste gry, na konsolę tekstową, programista raczej powinien umieć napisać. Na początku rzeczywiście ich "złożoność" może zniechęcić ale na tym etapie nauki to całkowicie normalne. Natomiast dla programisty, który siedzi już trochę w zawodzie takie coś nie powinno być wyzwaniem.

0
Szalony Kret napisał(a):

Witam otoz taki mam dylemat programuje od 2 lat backend i frontend w pracy radze sobie dobrze nikt nigdy nie narzekal ale jak probowalem napsiac....SNAKE to nie umiem .... :/
Ogolnie w programowaniu webowymm sobie radze ale nie mam algorytmicznego myslenia np kiedys probowalem MobileDevelopmentu i za cholere mi to nie szlo .
Chcialbym wiedziec co o tym myslicie

Chłopie, to się ciesz, że robotę masz. Ja mam Phd, co prawda nie z informatyki, napisałem apkę na androida, kilka prostych gierek webowych typu "Kółko i krzyżyk", "Simon", nie mówiąc o wcześniejszych "historycznych" aplikacjach w asm-ie, Pascalu, C, a gdy na stare lata postanowiłem się przebranżowić na IT to pracy jakoś znaleźć nie mogę. W dzisiejszych czasach nie można umieć za mało, ale też niedobrze za dużo. Może akurat w swojej pracy umiesz dokładnie tyle ile trzeba ;-)

0

cs - nie masz wrazenia, ze doktorat moze dzialac troche "odpychajaco" jesli startujesz na juniora czy inne entry jobs? Wybacz ciekawosc, ale wiele razy spotkalem sie z opinia, ze skonczone studia trzeciego stopnia zamykaja wiele drzwi.

6
grzesiek51114 napisał(a):

Też tak uważam. Kiedy uczyłem się programować, już tak na poważnie, to za punkt honoru obrałem sobie napisać Snake'a, a zaraz później Tetris'a. Nie pisałem tego graficznie, bo wtedy jeszcze nie umiałem; wszystko szło na konsoli. Pamiętam także, że na początku masakrowałem chyba wszystkie znane, dobre praktyki programowania ale miałem ogromną satysfakcję kiedy zadziałało.

No właśnie. Jeśli natomiast chcemy zrobić tego węża zgodnie ze wszystkimi dobrymi praktykami. W javie i springu oczywiście (czy innym akurat popularnym frameworku), na tomcacie, do tego z reactjs po stronie klienta. I jeszcze musimy wykorzystać **wszystkie **znane wzorce projektowe (koniecznie MVC) , i interfejsy, Koniecznie! na wypadek gdyby ktoś chciał zaimplementoweć Węża jako żmiję, albo misia koalę.
To może się nie udać... i utkniemy gdzieś w AbstractSnakeControllerManagerFactoryBuilderBeanImpl.

0
Smutny Mleczarz napisał(a):

cs - nie masz wrazenia, ze doktorat moze dzialac troche "odpychajaco" jesli startujesz na juniora czy inne entry jobs? Wybacz ciekawosc, ale wiele razy spotkalem sie z opinia, ze skonczone studia trzeciego stopnia zamykaja wiele drzwi.

No właśnie te "zamykające drzwi" odczuwam na własnej skórze. A na juniora nie startowałem. Żeby było ciekawiej dla polskiego środowiska "naukowego" doktorat dzisiaj niewiele znaczy, a ludzie spoza niego postrzegają doktorat jako zadzieranie nosa.

2
cs napisał(a):
Smutny Mleczarz napisał(a):

cs - nie masz wrazenia, ze doktorat moze dzialac troche "odpychajaco" jesli startujesz na juniora czy inne entry jobs? Wybacz ciekawosc, ale wiele razy spotkalem sie z opinia, ze skonczone studia trzeciego stopnia zamykaja wiele drzwi.

No właśnie te "zamykające drzwi" odczuwam na własnej skórze. A na juniora nie startowałem. Żeby było ciekawiej dla polskiego środowiska "naukowego" doktorat dzisiaj niewiele znaczy, a ludzie spoza niego postrzegają doktorat jako zadzieranie nosa.

Robisz tak:

  • otwierasz swoje CV
  • myszOM zaznaczasz ten fragment gdzie masz doktorat
  • naciskasz na klaw. "Delete"
  • dajesz "zapisz"

problem solved

0

Próbuje to sobie wyobrazić i nie wiem jak można nie potrafić napisać gry snake... potrafiąc programować.

grzesiek51114 napisał(a):

Naturalnie algorytm ruchu takiego węża, czy obracania kloców w Tetrisie trzeba jakiś wymyślić

title

Chłopie, wąż porusza się w game loop o jedno pole w kierunku w którym akurat jest zwrócony, a obracanie klocków w tetris to raptem dwie pętle for. Do tego nie trzeba pisać żadnych algorytmów.

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