Skocz do zawartości

Jakbym chciał zostać programistą


Recommended Posts

Jakbym chciał zostać programistą (trochę liznąłem tematu i jakoś on powraca, ale nigdy go nie przycisnąłem) to co polecacie pod względem przyszłego zarobku?

Widzę, że teraz jest boom na javę, ogłoszenia się sypią, tyle, że oprócz javy prawie zawsze są dodatkowe wymagania: np 

"Znajomość przynajmniej kilku spośród następujących technologii: 

J2EE/JEE, EJB3, Spring, JSP, Servlets, Applets, JavaScript, XSLT"


Co podwyższa poprzeczkę. Natomiast w ogłoszeniach dotyczących php wymagania są już często mniejsze, oprócz php jeszcze występuje np. mysql.

Dodatkowo jeden programista co długo siedzi w temacie mówił mi, że nieważne jaki język się pozna i łatwo się później przerzucić.

Dochodzi też sprawa czasu. Jeden programista (od C++) powiedział, że 2 lata programowania to minimum, żeby poznać język. Ten wspomniany wyżej wyskoczył z czasem 4 miesięcy.

Ostatnią kwestią jest sprawa wykształcenia kierunkowego. W ogłoszeniach do korpo często wymagają oni technicznego wykształcenia. W innych wystarczy tylko doświadczenie. Jeszcze gdzie indziej liczy się sprawnie zrealizowane zamówienie.

Jeśli ktoś ma jakąś wiedzę na powyższe tematy i chciałby się podzielić to niech pisze. Z góry dzięki.

Link to post
Share on other sites

Jeśli chodzi o programistów to pracodawcy bardzo często nie interesuje Twoje wykształcenie.

Na początek najlepiej uczyć się samemu jakiegokolwiek języka programowania może być ta java i próbować się dostać do korpo na staż żeby nauczyli Cię programowania.

 

Co do czasu to zależy od wielu rzeczy, w tym od Twoich predyspozycji, czy się nadajesz do tego

Link to post
Share on other sites

Mój (przydługi i niezmienny) punkt widzenia:
 

Dodatkowo jeden programista co długo siedzi w temacie mówił mi, że nieważne jaki język się pozna i łatwo się później przerzucić.

Legendarne "Jeśli znasz jeden język, to drugiego łatwo się nauczyć". Nie, nie i jeszcze raz nie. Chyba, że piszesz program zaliczeniowy na studia bez użycia jakichkolwiek zaawansowanych technik. Czasy Turbo Pascala bezpowrotnie minęły. W ogóle nie rozumiem, jak zawodowy programista może gadać takie banialuki. Chyba nie widział świata poza swoim jednym projektem. Teraz różne mechanizmy inaczej działają w różnych językach, albo w ogóle ich nie mają. Przykłady z rękawa:

  • Java ma catched exceptions, a C# nie ma.
  • Java 8 wspiera programowanie funkcyjne (lambdy), a Java 7 nie. C# i C++ też je mają.
  • Substring i Intern w starej (6 albo 5, nie pamiętam) Javie robią wycieki pamięci, a w nowej już nie.
  • Java nie ma przeciążania operatorów, a C++ ma.
  • C# ma multiple dynamic dispatch, a w Javie trzeba to robić wzorcem projektowym wizytator.
  • C++ ma destrukory, Java nie ma.
  • Double lock pattern singleton nie jest Javie thread-safe, a w C# jest.
  • Autoboxing.

Jest tego dużo i spotyka się takie niuanse właśnie miesiącami pracując z danym językiem. Podobne w językach to są IF i FOR, które uczy się w liceum albo lepszym gimnazjum. W praktyce różnice są znaczne i są to często skomplikowane tematy. Lata praktyki, jeśli docelowo mówimy faktycznie o osobie mierzącej w architekta oprogramowania, który rozumie, co robi.
 
Powyższe (czyli standard języka) to jest jakieś 30% wiedzy. Reszta to właśnie dodatkowe technologie, popularne frameworki i biblioteki. Każdy język programowania ma specyficzne dla siebie. Jest ich masa i każda firma ma zestaw, których akurat używa w danym projekcie. Niesposób znać akurat wszystkie. 60% z wymienionych w ofercie pracy to moim zdaniem niezły wynik. Zwłaszcza, gdy firma używa czegoś, co nie jest popularne.
 
To, co faktycznie jest z górki przy przesiadce, np. z C# na Javę to to, że dla obu języków 90% ofert dotyczy webówki. Więc ogólna wiedza pozostaje: Co to jest HTTP, czym sie różni POST od GET, JavaScript, JSON, AJAX, różnice w redirect i forward i takie tam. Ale co to jest w porównaniu z całym standardem danego języka i jego frameworków? Tylko fragment wiedzy. Dla mnie największą katastrofą zawodową byłby mus przesiadki.
 

co polecacie pod względem przyszłego zarobku

Jeżeli patrzysz na zarobek - Java albo .Net we Wrocku, Warszawie lub Krakowie. Tona ofert, a 10tys brutto przy umowie o pracę jest w zasięgu ręki po 2-3 latach pracy dla bardziej kumatych osób. 7-8tys to taki standard. Ale widziałem też osoby mające 5lat doświadczenia niemogące przekroczyć 5tys brutto. To oczywiście zależy od firmy i osoby. Na pewno, żeby celować w górne stawki trzeba to lubić, interesować się tym i grzebać coś samemu po godzinach. Średniakom polecałbym korpo i banki. Tam jest łatwiej o wysokie stawki. Poza tym kontrakt niemal zawsze daje więcej "na rękę" niż analogiczna umowa o pracę.

 

Poza tym polecam rejestrację na LinkedIn i wysyłanie CV na oferty przedstawiane przez firmy rekrutujace do IT. One mają często lepsze stawki niż sam wynegocjujesz. Dodatkowo zazwyczaj lepsze oferty mają zagraniczne firmy (angielskie, niemieckie, szwajcarskie, irlandzkie, itp).
 

Widzę, że teraz jest boom na javę, ogłoszenia się sypią, tyle, że oprócz javy prawie zawsze są dodatkowe wymagania

Jeśli chodzi konkretnie o Javę - jest do niej najwięcej frameworków, co jest i zaletą, i wadą. Jest w czym wybierać, ale ciężko jest zacząć i zrozumieć co jest do czego. Powodem takiej sytuacji jest to, że kiedyś Java webowa (tzw J2EE/JavaEE) sama w sobie była mega-niewygodna do pracy. Więc mądrzy ludzie napisali framework Spring, który wywrócił do góry nogami pisanie webówek w Javie i uczynił je wygodnym. W nowej Javie czerpano ze Springa pełnymi garściami i też jest fajna (i podobno bardzo podobna do Springa) w użyciu. Ale tak się już przyjęło ze względu na stare czasy, że nikt gołej Javy nie używa. Więc ogłoszenie JavaEE na 99% oznacza JAVA SE + Spring. Jeżeli widzisz w wymaganiach EJB, to jest to właśnie Java EE.

 

Jeżeli chciałbyś zacząć pracę jako junior dev w Javie, w dużym mieście po studiach kosztuje to właściwie 0 nakładu ze względu na brak rąk do pracy. Wiedza ze studiów: dobry ogar standardu (Java SE) + HTML + XML+ podstawy SQL + jakaś wiedza o 2-3 wybranych wzorcach projektowych i szafa gra. Jeżeli chciałbyś iść do naprawdę fajnej firmy i mieć na start sensowne wynagrodzenie, powinieneś sam umieć napisać od A do Z prostego CRUDa (Creare, Read, Update, Delete). Nie musi to mieć sensu i być przydatne. Byle dzialało tak, jak zamierzone. Na przykład prosty internetowy notatnik/lista zakupów. Jedna tabela w bazie na użytkowników - imię, nazwisko (bez logowania, tylko anonimowi) i druga na notatki - treść i tytuł. Tabelki połączone jeden-do-wielu. Powinna być możliwość tworzenia nowych wpisów, usuwania i edycji. Wybrałbym do tego jakiś popularny zestaw technologii. Dla Javy taki:

  • MySQL jako bazę danych
  • Hibernate do ORM
  • Spring + Spring MVC do webówki.
  • Do widoku JSP (+ew. JSTL) + CSS

I gotowe. Jakbyś tam wepchał jakiś prościutki JavaScript i AJAX to już w ogóle bajka. Każda firma weźmie z pocałowaniem ręki. Ale nawet bez połowy powyższej wiedzy i tak dostaniesz pracę. Firmy używają też systemów do wersjonowania kodu - zazwyczaj SVN albo GIT. W pracy niezbędne, a do zabawy nad własnym projektem - przydatne.
 

Ostatnią kwestią jest sprawa wykształcenia kierunkowego.

Jeśli nie masz doświadczenia, to papier jest główną karta przetargową na juniora. Mając wpisaną jakąś politechnikę/uniwerek na pewno zaproszą na rozmowę. jeśli nie masz papiera, ale masz jakiś swój projekt do pokazania - też zaproszą. Zwłaszcza, jak wrzucisz go na GitHub. Wykształcenie traci znaczenie, gdy szukasz kolejnej pracy i masz już doświadczenie. Mgr natomiast jest potrzebny, gdy w końcu nudzi Ci się programowania i chciałbyś awansować na managera projektu lub podobne stanowisko. Tak czy siak wykształcenie w ofercie pracy na programistę służy jako straszak na osoby niepewne siebie. Tak samo wymagane lata doświadczenia. Mając półtora roku doświadczenia wysyłałem CV na oferty, w których widniało wymagane 4 lata doświadczenia. Bo wiedziałem, że mam potrzebną wiedzę.

  • Popieram 1
Link to post
Share on other sites

Najważniejsze uczyć się od praktyków. U mnie na uczelni prowadzący Jave posiada chyba wszystkie możliwe certyfikaty (od OCEWSD po OCEWCD, OCEWSD), podobnie sprawa wygląda u niego z Pythonem, którego miałem na drugim semestrze. Facet porobił od metra kursów http://istqb.com.pl/ Agile Tester i wiele innych. Poza uczelnią jest zawodowym testerem oprogramowania. Aż dziwne, że nie pracuje w Oraclu. :P Możesz pójść na dobrą politechnikę, ale jeśli Twój wykładowca będzie prowadził zajęcia bez pasji i z przymusu, albo najzwyczajniej w świecie będzie słaby, to nic Ci nie da. Najlepiej samemu zacząć studiować interesujący Cię język. Moim ulubionym (jak widać po nicku) jest Ruby i Java. Jeśli masz bakcyla to dasz radę. ;)

Edytowane przez RubyFun
Link to post
Share on other sites

Zerknij sobie tutaj:

http://praca.money.pl/poradniki/artykul/jak-zostac-programista,51,0,1937203.html

 

Powinieneś skupić się na jednym języku albo na dwóch językach. Nie możńa nauczyć się każdego języka. Nie ma w tym żadnego sensu .Poza tym warto jest programować w tym języku, który Cię interesuje. Pracodawca bedzie sie patrzył przede wszystkim na to umiesz, jakie zrobiłeś projekty a nie na to jaką szkolę ukończyleś.

 

Dyplom może być kartą przetargową jesli nie masz żadnego projektu w portfolio 

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...