Specjalizacja czy "One-man-army"?

4

Witam.

Piszę tego posta, dlatego że gdzieś w głębi duszy chciałbym w przysłości pracować jako programista. Obecnie mam 17 lat (18 kończę za miesiąc) i od zawsze chciałem pracować w GameDevie. NIestety jak dowiedziałem, się jakie są tam w większości warunku trochę się zniechęciłem. Z tego co czytałem to i, w porównaniu do np. "normalnego" programisty, niska płaca, ogromny stres, gorsze warunki, nadgodziny etc. etc. I teraz stanąłem w miejscu, w którym nie sądziłem, że kiedykolwiek się znajdę. O jakiś 2-3 lat robiłem z siebie niezależnego twórcę gier - programowanie (załóżmy, że głównie C#, jednak liznałem JS i wchodzi mi bez problemu, kiedyś bawiłem się LUA/Pascalem, a także połowicznie ogarnąłem kurs C++ (pierwsza styczność z programowaniem)), obsługa Unity, Blendera (praktycznie każda część procesu - modelowanie, retopo, rzeźbienie, rozkładanie UV, teksturowanie, eksport, kompozycja, renderowanie, animacje, symulacje), grafika koncepcyjna. W 2 kl. technikum przekonałem się do stronek internetowych - także z każdej możliwej strony - i front end, i back end, z tym, że na PHP nie poświeciłem jeszcze większej ilości czasu.

Najgorsze jest to, że nie ma tutaj rzeczy, którą lubię bardziej lub mniej. Programowanie wyciska ze mnie większość energii, ale daje niesamowitą satysfakcję. Grafika 3D sama w sobie mnie relaksuje i mógłbym tak pracować całymi dniami nawet się nie męcząc. To samo z rysowaniem. Stronki praktycznie robią się same jak się za to zabieram. Do tworzenia gier motywuje mnie ciągła myśl, że po 16 latach spędzonych przy grach mam jakieś mniejsze lub większe doświadczenie i jestem w stanie stworzyć coś oryginalnego i przyjemnego w graniu. A to ma SZANSE, że się powiedzie i kiedyś może będę mógł z tego wyżyć.

Dodatkowo, chciałbym zarobić w życiu jakiś sensowny pieniądz - tak więc zostanie grafikiem nie jest mi za bardzo na rękę. Z tego co wiem (może się mylę, poprawcie mnie) to grafik może pomarzyć o takiej wypłacie jak programista. Otworzyć studio gamdevowe / pracować jako freelancer / znaleźć pracę na etat albo pół etatu - cokolwiek - chciałem od zawsze. Zacząć robić coś sensownego, a nie marnować swój czas w szkole. Po technikum najchętniej poszedłbym na studia zaoczne i pracował w ciągu tygodnia. Nie wiem jak to wygląda w praktyce, czy bym wyrobił czy nie, ale miałbym pieniądze, a także powoli dążyłbym do zdobycia tego idiotycznego papierka, dzięki któremu jest się bardziej szanowaną osobą w środowisku pracodawców.

Jak na razie moje portfolio, które mogę komuś zaprezentować to prace graficzne i strony. Programistycznie mam naklepane jakieś ~35 skryptów w moim głównym projekcie (taka tam giereczka na Unity). Nie mogę tego wrzucić na GitHuba (mam rację?), bo same skrypty w folderze nie wiele zrobią, a całej gry nie będę udostępniać, bo ktoś mi ukradnie pliki i sprzeda sobie jako własną grę. Chciałbym to najpierw skończyć i wydać, celowałem w Androida i Steama. Zacząłem kiedyś jakieś 2 projekty na GitHubie, ruszyłem je może 2 razy i w obu przypadkach doszedłem do wniosku, że może lepiej poświęcę mój czas na tą grę. Ruszę to do przodu i zamiast pisać jakieś bezsensowne aplikacje konsolowe, których nigdy nie użyję, będę bliżej gotowego produktu.

Tak jak to już jest z dużymi projektami, im dalej tym dalej do końca. Coraz więcej bugów do naprawienia, później to z optymalizować, a na koniec dodać bardzo dużo zawartości co by gracz się nie znudził. Nie mam pojęcia kiedy ja to skończę, biorąc pod uwagę, że dziennie mam zmarnowane 8h na siedzenie w szkole. Mimo to, że moja szkoła daje ogromny luz (nawet ogarnąłem sobie starego laptopa, żebym mógł sobie pracować na wolnych lekcjach), a do tego nigdy nie miałem problemów z nauką, to jednak po tych ~9h dziennie (licząc z dojazdem + jeszcze jak coś każą się nauczyć w domu) to moje projekty kończą z maksymalnym wkładem 1 do 1,5h dziennie. Im większy projekt się staje tym te 1,5h dziennie to mniej i mniej. Zauważyłem, że największy progres popełniłem na "praktykach" w drugiej klasie. Zamiast zapisywać się do jakiegoś serwisu, w którym nosiłbym butelki z wodą załatwiłem sobie "praktykę" w firmie rodzinnej i przez te 3 tygodnie pracowałem nad moją grą ciurkiem po jakieś 6h dziennie.

Swoją drogą, nie wiem czy praca w serwisie nauczyłaby mnie czegoś nowego nawet jeśli niebyłoby to podawanie tej przysłowiowej wody. Od kiedy pamiętam to ja naprawiałem w firmie komputery, drukarki czy internety. Przy moim PCcie grzebie na porządku dziennym, także nie jest mi to obce. W związku z tym do puli wyborów w moim życiu dorzuciłem jeszcze otwarcie jakiegoś sklepu/serwisu komputerowego. Nie jest to może to o czym marzę, ale jeśli klientów brak to mogę pracować nad moimi projektami/uczyć się czegoś nowego, a jeśli nie brak to nadal mogę robić coś na czym się znam i mam w tym jakieś doświadczenie.

Wracając do wątku głównego - piszę to, żebyście nakierowali mnie w jakąś stronę, ponieważ obecnie utknąłem i zamiast robić choć jedną z tych wyżej wymienionych rzeczy siedzę i marnuję cenny czas w większości na granie w Rainbow6. Z drugiej strony wiem, że większość ludzi w moim wieku nawet nie myśli o tym jak zbudować jakąś własną "markę" czy nauczyć się czegokolwiek poza układem map w CS'ie. No przynajmniej takie wrażenie wywiera na mnie otoczenie, które znam.

Podczas pisania posta nazbierałem spisałem najważniejsze pytania:

  1. Czy skończona, wydana gra jest dobrym elementem do portfolio dla programisty?
  2. Co mogę zacząć robić, aby nabierać doświadczenia w programowaniu? Kiedyś jakiś kolega z projektu oburzył się na mnie, że pisanie skryptów do Unity to nie programowanie. Czy to prawda?
  3. Czy powinienem porzuć wszystko inne na rzecz jednej "specjalizacji"? Mimo, że chciałbym w przyszłości pracować jako programista (lubię to robić + sensowne $$$) to nie chciałbym zostawić reszty.
  4. Czy taki mix umiejętności z każdej dziedziny może mi się kiedyś przydać? Zdaję sobie sprawę, że umiąc każdą rzecz na 50% dla pracodawcy jestem co najwyżej tym 50%, a nie 50% x liczba umięjętności. Jednak w przypadku otwarcia własnego studia lub nawet pracy solo taki zestaw jest cholernie potrzebny. Szczególnie jeśli mam ambicje na zrobienie własnej gry, a nie jakiegoś AssetFlipa.
  5. Możecie mi napisać co sądzicie o mojej stronie internetowej (która w sumie nie jest jeszcze skończona, muszę poprawić zakładkę "About" po angielsku, bo są tam drobne błędy, dodać kilka brakujących podstron etc.). Chodzi mi o to jakie sprawia wrażenie: www.telakowski.pl
  6. Co z tymi studiami? Robić/nie robić? Zaocznie + praca czy dzienne?

Tl;dr: Umiem dużo, ale niczego jeszcze nie wymasterowałem. Nie wiem w którym kierunku teraz pójść. Chciałbym zostać programistą, ale nie wiem jak się za to zabrać.

PS. Podczas pisania tego posta zerwało mi prąd, a tekst zapisał się w jakiś magiczny sposób. Już kocham to forum <3
PS2. Przepraszam za długi post, z którego niewiele wynika, to jest bardziej próba przelania moich nieuporządkowanych myśli na tekst, niż jakiś spójny i ogarnięty tekst. Czekam na wasze odpowiedzi :)

2
  1. Czy skończona, wydana gra jest dobrym elementem do portfolio dla programisty?

Jest. Ja zanim zacząłem prace jako programista bardzo interesowałem się gamedevem i nawet swoje marne wypociny z Unity opublikowałem na Google Play. W zasadzie starałem się głównie na tym oprzeć CV w tamtym czasie (brak udokumentowanego doświadczenia).

  1. Co mogę zacząć robić, aby nabierać doświadczenia w programowaniu? Kiedyś jakiś kolega z projektu oburzył się na mnie, że pisanie skryptów do Unity to nie programowanie. Czy to prawda?

Zależy jak "programujesz". Pisanie skryptów w Unity to nie jest rocket science. Jeżeli chcesz iść w stronę gamedev to praca z Unity nawet na poczet projektu hobby to jakieś doświadczenie. Ja często na rozmowach o prace w korpo słyszałem no ale my tu gier nie robimy..

  1. Co z tymi studiami? Robić/nie robić? Zaocznie + praca czy dzienne?

Ja tam widzę rosnący trend na posiadanie papierka lub chodziać samego studiowania w IT. Zawsze polecam zaoczne + praca. Ja żyje w takim trybie i sobie chwale. Skończysz studia, będziesz seniorem z grubym doświadczeniem i papierkiem.

0

Hej,
jak na 17-18latka, nieżle, jeżeli interesuje Cię grafika to looknij tu: https://www.coursera.org/learn/interactive-computer-graphics Tak naprawdę grafika czasem wiąże się z bardziej skomplikowanym aparatem obliczeniowym. Jeżeli interesują Cię rzeczywiście gry, i dobrze znasz podstawy, to może to będzie dla Ciebie za łatwe, ale można się przyjrzeć (to chyba niestety jest płatne, ale chyba jest 7-dniowy trial free): https://www.coursera.org/specializations/game-development W części czwartej pisze się jakiś projekt, co prawda 2D, ale możesz przetestować swoje możliwości. To tyle, powodzenia :)

0
Szekel napisał(a):
  1. Czy skończona, wydana gra jest dobrym elementem do portfolio dla programisty?

Jest. Ja zanim zacząłem prace jako programista bardzo interesowałem się gamedevem i nawet swoje marne wypociny z Unity opublikowałem na Google Play. W zasadzie starałem się głównie na tym oprzeć CV w tamtym czasie (brak udokumentowanego doświadczenia).

  1. Co mogę zacząć robić, aby nabierać doświadczenia w programowaniu? Kiedyś jakiś kolega z projektu oburzył się na mnie, że pisanie skryptów do Unity to nie programowanie. Czy to prawda?

Zależy jak "programujesz". Pisanie skryptów w Unity to nie jest rocket science. Jeżeli chcesz iść w stronę gamedev to praca z Unity nawet na poczet projektu hobby to jakieś doświadczenie. Ja często na rozmowach o prace w korpo słyszałem no ale my tu gier nie robimy..

  1. Co z tymi studiami? Robić/nie robić? Zaocznie + praca czy dzienne?

Ja tam widzę rosnący trend na posiadanie papierka lub chodziać samego studiowania w IT. Zawsze polecam zaoczne + praca. Ja żyje w takim trybie i sobie chwale. Skończysz studia, będziesz seniorem z grubym doświadczeniem i papierkiem.

Jak po 3 latach bedziesz seniorem i to jeszcze z grubym doswiadczeniem no to... niezle

0

Hoho, już się zaczyna różnica zdań kiedy i kto może być seniorem. To też mnie lekko zniechęca. Gdzie jesteś juniorem, średniozaawansowanym lub seniorem w trybie, gdzie od zawszd pracujesz sam i potrafisz rozwiązać każdy problem po użyciu google wystarczająco długo? Bo ja widzę juniora jako osobę, która zna jakąś tam teorię, ale trzeba ją prowadzić za rękę. Czy z kolei senior to osoba, która klepie milion linijek kodu z głowy i zawsze działa? Jest jakaś skala według, której mogę oszacować poziom mojego skilla? W grafice możesz nazwać się seniorem jak robisz dobre modele według jakiejś tam poprawności (np. dobrze zoptymalizowana siatka itd.). W programowaniu co ustawia cię na skali noob-mistrz? Komentarze? Optymalizacja kodu? Nazwy zmiennych? Czy może to że nie używa internetu, aby rozwiązać problem?

Jeszcze może dołożę jedno przemyślenie: Jeśli ktoś zacznie programować w podstawówce to już w gimnazjum osiągnie poziom seniora? No bo to jest 6 lat doświadczenia. Tak samo jak zacząłby dopiero po studiach w pracy. Jak można udowodnić w pracy, że umiesz „na seniora” a nie „na juniora”?

2

Junior to pracownik samodzielny wlasnie

0
stivens napisał(a):
Szekel napisał(a):
  1. Czy skończona, wydana gra jest dobrym elementem do portfolio dla programisty?

Jest. Ja zanim zacząłem prace jako programista bardzo interesowałem się gamedevem i nawet swoje marne wypociny z Unity opublikowałem na Google Play. W zasadzie starałem się głównie na tym oprzeć CV w tamtym czasie (brak udokumentowanego doświadczenia).

  1. Co mogę zacząć robić, aby nabierać doświadczenia w programowaniu? Kiedyś jakiś kolega z projektu oburzył się na mnie, że pisanie skryptów do Unity to nie programowanie. Czy to prawda?

Zależy jak "programujesz". Pisanie skryptów w Unity to nie jest rocket science. Jeżeli chcesz iść w stronę gamedev to praca z Unity nawet na poczet projektu hobby to jakieś doświadczenie. Ja często na rozmowach o prace w korpo słyszałem no ale my tu gier nie robimy..

  1. Co z tymi studiami? Robić/nie robić? Zaocznie + praca czy dzienne?

Ja tam widzę rosnący trend na posiadanie papierka lub chodziać samego studiowania w IT. Zawsze polecam zaoczne + praca. Ja żyje w takim trybie i sobie chwale. Skończysz studia, będziesz seniorem z grubym doświadczeniem i papierkiem.

Jak po 3 latach bedziesz seniorem i to jeszcze z grubym doswiadczeniem no to... niezle

Studia zaoczne zazwyczaj trwają dłużej niż dzienne. Robienie magistra to dodatkowe 2 lata. Może spojrzałem zbyt ogólnie mówiąc "po studiach". Bardziej chodziło mi o tą dalszą granicę (5/6 lat).

3

Senior to osoba, która jest w stanie sama wykonać każdy projekt w obrębie swojej technologii, specjalizacji (lecz ze względu na czas rzadko to robi), sama się nie uczy, a raczej uczy innych, odpowie na większość pytań i co ważniejsze zna najbardziej optymalne rozwiązania problemów.

1

Ja wybrałem One man army, ale niezbyt jest to praktyczne.
Raczej specjalizacja jest lepsza i życie normalne, uczenie się wszystkiego jest złe, bo wtedy człowiek dowiaduje się że nie wie nic.

Pamięć i tak się zeruje, niby się coś wie, a to tylko takie złudzenie.

1

Full stack to dwóch pracowników w cenie jednego :)

1

Zawsze stawiałem na specjalizację i wciąż stawiam. Uczysz się kilku (2-4) technologii i w nich się doskonalisz, z czego masz 1-2 wiodące.
Oczywiście nie zamykasz się na nowości i inne rzeczy, tylko sobie je oglądasz na bieżąco, bez wchodzenia w mega-szczegóły, bo nie dasz rady specjalizować się w jednym czasie w wielu rzeczach. Kolesie, którzy wpisują w swoim CV 30 technologii nie umieją nic.

Jak trafisz do dużego korpo, czy dużej firmy to nawet nie pozwolą Ci dotykać się i uczyć się wielu rzeczy na raz. Robisz w jednym projekcie podobne rzeczy przez np. 2 lata. Jeśli trafisz. Robienie wszystkiego: Java EE, tutaj trochę CSS-a, skrypt w Perlu, baza danych Oracle, jakiś automat w Linuxie + instalacja Windowsa i naprawianie drukarki to raczej specyfika małych firm, takie januszowanie. Podobno są tacy, co sobie to chwalą.
Cóż, każdy musi gdzieś zacząć...

2

Nie jestem programistą zacznę od tego aby nie psuć ci nic w głowie i nie przedstawiań wyssane z palca wyobrażenia. Ogólnie skoro jesteś taki młody, choć uważam te to o ile ma znaczenie to nie aż tak bardzo jakby się mogło wydawać. Ale wykorzystaj ten czas na poznawanie technologi, szukanie "tej" technologii, pozwól sobie na błędy i na zmiany języków. W wyjątkowych sytuacjach są osoby, które mają >25 lat i mają "tą" specjalizację i zgarniają furę kasy. Tak też między kropką a drugim zdaniem napiszę że to też o niczym więcej nie świadczy.
Zainwestuj w język obcy, jest to taka dziedzina że im dłużej uczyć się go tym więcej rozumiesz i łatwiej o prace. Tym bardziej w programowaniu. Pewnie że twój ang jest naprawdę super, to rób w technologiach. Nie przejmuj się aż tak "tym wyborem" bo po wielu latach okażę się że w samej pracy i tak będziesz robił coś innego niż wtedy kiedy zaczynałeś ale bez tego zapalnika nic by nie było. Liczy się Twój komfort w nauce i sądzę że raczej nikt ci dobrze nie poradzi. Bo tylko ty wiesz co będzie dla ciebie lepsze.

Pozdrawiam wszystkich serdecznie.

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