Praca programisty a studia.

0

Siema, mam takie pytania.
Od dawna chciałem być programistą. Wybrałem chyba najbardziej oczywistą drogę do tej kariery czyli studia. Po nieźle napisanej maturze dostałem się na dzienną informatykę na Mini w PW. Jak na razie jest całkiem nieźle, fajni ludzie, ciekawe zajęcia i nie aż tak straszna matma. Jednak nie jestem pewien, że te studia to najlepszy wybór. Samej informatyki na razie mało, dominuje matma, i tak będzie jeszcze trochę czasu. Potem te proporcje się odwracają, ale ta informatyka i tak jest tam bardzo "szeroka", czyli uczyć się trzeba wielu dziedzin po trochu. Nie wiem czy mam rację, ale wydaje mi się, że na rynku pracy poszukuje się bardziej specjalistów w jednej technologii, niż "ludzi od wszystkiego". Można w ogóle zostać dobrze opłacanym programistą bez studiów? Czego wymaga się w pracy od takiego, powiedzmy programisty aplikacji deskopowych w C#?
Jak na razie specjalizuje się właśnie w tym języku, i ogólnie w .NET, choć oczywiście znam też dosyć dobrze c++, php czy javascript. Ile trzeba umieć, żeby zdobyć jakąś pierwszą pracę, nawet za pół darmo.
I jeszcze jedno pytanie: Znacie jakieś publikację czy strony, gdzie można dowiedzieć się jak tworzyć "ładny" kod aplikacji. Nie chodzi mi o spację po każdym nawiasie czy eleganckie używanie wcięć, ale ogólne ustawienie klas, interfejsów itd. Ogarniam dosyć dobrze składnie c#, użycie delegatów czy klas abstrakcyjnych ale nie jestem pewien jak odpowiednio tego użyć, żeby kod był jasny i przejrzysty.
Dzięki za wszystkie odpowiedzi.

0

Nie chcę umniejszać wagi studiów, ponieważ są one istotne, ale wbrew powszechnej opinii niewielki mają wpływ na przyszłą karierę. Wielu technologii na żadnej uczelni w Polsce nie uczą, a są one wymagane w pracy.

Nie wiem czy mam rację, ale wydaje mi się, że na rynku pracy poszukuje się bardziej specjalistów w jednej technologii, niż "ludzi od wszystkiego".

Trochę w tym racji, ale tylko trochę. Najważniejsza jest elastyczność, tzn. mówisz że specjalizujesz się w platformie .Net. Załóźmy jednak, że firma, w której pracujesz podejmuje się wykonania zlecenia w technologii Java. Co wtedy robisz?

Jak na razie specjalizuje się właśnie w tym języku, i ogólnie w .NET,

  • z tym też należy uważać, ponieważ nikt nie lubi jak ktoś przecenia własne umiejętności.

Ile trzeba umieć, żeby zdobyć jakąś pierwszą pracę, nawet za pół darmo.

  • tego nikt Ci nie powie, ponieważ nie ma żadnych wyznaczników. Można podjąć się pracy i jednocześnie uczyć się technologii pracując (ciężkie, ale wykonalne).

Znacie jakieś publikację czy strony, gdzie można dowiedzieć się jak tworzyć "ładny" kod aplikacji.

  • github i oglądanie źródeł różnych bibliotek, programów. Nie nauczysz się jednak pisać dobrze przez samo oglądanie. Trzeba samemu mnóstwo błędów porobić pisząc lub modyfikując kod, ponieważ to najlepsza droga do zdobycia doświadczenia.

Czego wymaga się w pracy od takiego, powiedzmy programisty aplikacji deskopowych w C#?

  • bardzo dobrej znajomości biblioteki .Net (przynajmniej tej części, która jest wykorzystywana w programach desktopowych). Podstawą jest również system kontroli wersji (np. git). Często w pracy dostajesz kod napisany przez inną osobę i musisz się dość szybko orientować co i jak jest napisane (nie jest to proste, ponieważ każdy myśli inaczej i co się z tym wiąże rozwiązuje pewne problemy w sposób, który np. Tobie może wydawać się bardzo dziwny, wymaga to również dużego obycia z kodem). Tak na koniec: praca sama do Ciebie nie przyjdzie. Więc szukaj ofert pracy w internecie (np. oferia). Wysyłaj CV do firm. Każdy kiedyś zaczynał i miał puste porfolio, pracodawcy mają tego świadomość i w końcu znajdzie się ktoś kto Ci zaproponuję pracę /współpracę /wykonanie zlecenia.
0
bartez1000 napisał(a):

Można w ogóle zostać dobrze opłacanym programistą bez studiów?

Oczywiście. Zostanie programistą to przede wszystkim praca własna. Informatyka to nie jest programowanie komercyjne.

Czego wymaga się w pracy od takiego, powiedzmy programisty aplikacji deskopowych w C#?

Wykonywania zadań otrzymanych od przełożonych.

I jeszcze jedno pytanie: Znacie jakieś publikację czy strony, gdzie można dowiedzieć się jak tworzyć "ładny" kod aplikacji. Nie chodzi mi o spację po każdym nawiasie czy eleganckie używanie wcięć, ale ogólne ustawienie klas, interfejsów itd. Ogarniam dosyć dobrze składnie c#, użycie delegatów czy klas abstrakcyjnych ale nie jestem pewien jak odpowiednio tego użyć, żeby kod był jasny i przejrzysty.

Poszukaj w Google o: SOLID, DRY, KISS, YAGNI, wzorcach projektowych i wzorcach architektonicznych.

niezalogowany napisał(a):

Załóźmy jednak, że firma, w której pracujesz podejmuje się wykonania zlecenia w technologii Java. Co wtedy robisz?

Nic, bo go to nie obchodzi. On nie pracuje w zespole programistów Javy w tej firmie.

1
somekind napisał(a):

I jeszcze jedno pytanie: Znacie jakieś publikację czy strony, gdzie można dowiedzieć się jak tworzyć "ładny" kod aplikacji. Nie chodzi mi o spację po każdym nawiasie czy eleganckie używanie wcięć, ale ogólne ustawienie klas, interfejsów itd. Ogarniam dosyć dobrze składnie c#, użycie delegatów czy klas abstrakcyjnych ale nie jestem pewien jak odpowiednio tego użyć, żeby kod był jasny i przejrzysty.

Poszukaj w Google o: SOLID, DRY, KISS, YAGNI, wzorcach projektowych i wzorcach architektonicznych.

Ja bym do tego dorzucił jeszcze książkę: "Clean Code", w przypadku wzorców projektowych hasło: GoF (Gang of Four) oraz popularny ostatnio DDD (Domain Driven Design). Warto też przejrzeć "code conventions" języka, w którym aktualnie piszesz.

0

Emacs i somekind. Widzę, że zaciekle atakujecie to stwierdzenie o elastyczności, a to najlepsza droga do czegoś co zwie się wypaleniem zawodowym albo przynajmniej niechęcią do nauki nowych technologii :P (zwykle osoba, której to dotyczy nie zdaje sobie z tego sprawy i mocno się takich zarzutów wypiera, podobnie jak z nałogiem). Trzeba też wziąć pod uwagę, że oprócz korporacji i średnich firm, istnieją też firmy małe, gdzie po prostu trzeba czasami wykonać mentalny obrót "o 180 stopni". Unikanie nauki już na początku kariery (bo za mało czasu, bo za dużo materiału itd. itp.) też nie wróży dobrze na przyszłość. Zresztą ja nie widzę niczego złego w równoległej nauce javy i c# jak i ich bibliotek i frameworków (sam tak zrobiłem i dzięki temu mogę praktycznie bez zastanowienia i przestoju pracować dzisiaj w Javie, a jutro w C#).

0

niezalogowany ale ja się z Tobą zgadzam ;) - pewna elastyczność jest wpisana w zawód programisty i również starałbym się dostosować do sytuacji jaka mnie zastała ( np wykonanie systemu w javie, c# czy czymkolwiek innym ) tylko wiem że przynajmniej ja nie jestem w stanie opanować w stopniu na prawdę bardzo dobrym wszystkich tych technologi - języków, ogromu bibliotek do każdego z nich. Bez problemu napisałbym taki system ( z dokumentacją ) tylko wiem że zajęłoby mi to dużo więcej czasu niż osobie która na co dzień programuje np w javie i jest to jej/jego główna technologia która wykorzystuje.

0

Zgadzam się z niezalogowanym. Nie można być alfą i omegą, ale warto zaznajomić się z nowymi technologiami i językami chociażby po to, żeby poszerzyć swoje horyzonty, nie wypalić się zawodowo i móc w razie czego bezboleśnie przerzucić się na inny język lub platformę. Czasami nawet w trochę większych firmach (większych, niż małe firemki, ale mniejszych, niż korpo) można zostać przerzuconym do nowego projektu, w nowej technologii lub języku. Nie przeżyłem tego na własnej skórze, ale znam osoby z takimi doświadczeniami, więc wiem, jak jest. ;-) Wiadomo, że najlepiej będziemy znali język, z którym aktualnie pracujemy, ale znając inne technologie będziemy mogli szerzej spojrzeć na tworzenie oprogramowania, a programiści innych języków nie będą nam mogli wcisnąć kitu na temat swoich środowisk.

1
niezalogowany napisał(a):

Emacs i somekind. Widzę, że zaciekle atakujecie to stwierdzenie o elastyczności

Jeśli firma bierze się za projekty w technologii, w której nie ma doświadczonej kadry, to nie jest elastyczność tylko dziadostwo.

, a to najlepsza droga do czegoś co zwie się wypaleniem zawodowym albo przynajmniej niechęcią do nauki nowych technologii :P

W ramach samego .NET jest tyle technologii, frameworków i typów tworzonych aplikacji, że jedna osoba nie jest w stanie tego wszystkiego ogarnąć przez całe życie. Z Javą jest pewno tak samo, albo nawet jeszcze bardziej.

Trzeba też wziąć pod uwagę, że oprócz korporacji i średnich firm, istnieją też firmy małe, gdzie po prostu trzeba czasami wykonać mentalny obrót "o 180 stopni".

No, jeśli ktoś chce pracować w Garaż Software Zdzichu Malinowski, to może tak wirować nawet z częstotliwością kilku herców.

Mi nie chodzi o to, żeby się nie uczyć wielu technologii i języków. Po prostu to nie jest konieczne do bycia dobrze zarabiającym i niewypalonym profesjonalistą. A przerzucanie pracowników wbrew ich woli z dnia na dzień między językami, źle o firmie świadczy.

0

Fakt, ta moja wypowiedź była niefortunna. Ja nie miałem na myśli niewolniczej pracy na zasadzie: po co mamy zatrudniać kogoś innego jak Ty się możesz nauczyć (a to że szybciej osiwiejesz od tego to nie nasza sprawa). Miałem na myśli np. próby nauki nieznanych nam technologii nie z przymusu, a ze świadomości, że to może (i prawie na pewno) zaprocentuje. Trochę jak z kuchnią azjatycką, wiele osób mówi: "co oni tam za świństwa jedzą", a kto wie.. może po spróbowaniu okazałoby się, że nasze podniebienie jest w siódmym niebie.

0

Dziękuję bardzo za odpowiedzi! Mam jeszcze takie pytanie: Czy bez studiów w przyszłości nie trafię na taką "barierę nie do pokonania", i brak tego papierka sprawi, że potencjalny pracodawca będzie wolał programistę z może mniejszym doświadczeniem, ale z wyższym wykształceniem? Wiem, że po pewnym czasie raczej dam radę programować wystarczająco dobrze aby wystartować do pracy jako jakiś junior programmer, i zdobywać doświadczenie, ale czy do dalszej kariery samo doświadczenie i umiejętności wystarczą?

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