Co powinien umieć senior developer bardziej ukierunkowany na Jave i web?
senior - mowa o stanie wiedzy, nie nazwa stanowiska.
Co powinien umieć senior developer bardziej ukierunkowany na Jave i web?
senior - mowa o stanie wiedzy, nie nazwa stanowiska.
To jakie nogi powinny mi wyrosnąć? :P
bump
Wg mnie, stanowisko typu "Senior Developer" nie powinno dotyczyć tylko samej wiedzy, ale także doświadczenia i podejścia do pracy oraz gruntownej znajomości podstaw.
Doswiadczenie, odpowiedzialnosc, wiedza?
Min. 4 lata doświadczenia w zawodzie
Ale ogolnie jako programista czy np. Jako java developer?
Pinek napisał(a):
Min. 4 lata doświadczenia w zawodzie
Słyszałem, że w USA można zostać senior developerem, gdy ma się co najmniej 10 lat doświadczenia. W Polsce jest patologiczna sytuacja, w której można zostać seniorem po 2 lub 3 latach i źle to świadczy o firmach, które osobom z tak krótkim stażem nadają takie tytuły. Osoba z czteroletnim doświadczeniem powinna już ogarniać temat, ale nie wiem, czy nazwałbym kogoś takiego prawdziwym seniorem. Poza tym, tutaj nie chodzi o wysiedzenie "dupogodzin" w pracy. Obecnie w Polsce taki tytuł ma dla mnie bardzo małą wartość, bo spotkałem się już z seniorami z prawdziwego zdarzenia, którzy na taki tytuł zasługują, ale spotkałem się też z takimi, którzy na seniorów się nie nadają, a w stopce maila mają taki tytuł. Efekt końcowy jest taki, że sam tytuł nic nie znaczy i trzeba popracować z konkretną osobą, aby stwierdzić, co sobą reprezentuje.
@wiciu bo w polsce jest wyścig zabawnych tytułów. Masz juniora, regulara, seniora, leada, principala i pewnie jeszcze kilka, żeby sie ludzie cieszyli że mogą awansować co roku ;]
Tylko właśnie co powinien taki prawdziwy senior umieć, żeby nie świecic tylko tytułem?
Moim zdaniem senior to powinien być ktoś kto bardzo dobrze zna technologie w której pracujecie a także sporo innych technologii. Tak że jak pójdziesz do niego i powiesz "słuchaj czytałem wczoraj na jakims blogu o takiej bibliotece XYZ i wygląda super" to on ci powie "XYZ? znam, klepałem w tym trochę / używałem koncepcyjnie bardzo podobnej technologii" a potem opowie ci co jest na plus a co na minus ;)
Dodatkowo powinien ogarniać nie tylko samo klepanie kodu ale też wiedziec jak to wszystko działa "pod spodem" - jak to jest zaimplementowane, jak jest uruchamiane itd. Rozumie na przykład jak działaja dostępne algorytmy GC, wie jak, kiedy i po co je tuningować. Wie też co potrafi a czego nie potrafi JIT i jak pisać kod tak żeby JITowi nie przeszkadzać. Wie jak pisany kod przekłada sie na warstwę sprzętu, rozumie co to są punkty synchronizacji, memory barrier itd.
Jeśli masz wątpliwości czy jesteś seniorem to zadaj sobie pytania:
Seniorem się nie czuję i ni jestem, za mało doświadczenia. Jedynie chce wiedzieć gdzie zmierzać ;)
Co do tych 3 pytań. To nowicjusz też może na takie rzeczy odpowiedzieć, że twierdząco albo, że wiele razy, bo może nie było w pobliżu nikogo bardziej doświadczonego :P
"sporo innych technologii" , chętnie usłyszałbym przykłady.
Złoty Lew napisał(a):
[...]
"sporo innych technologii" , chętnie usłyszałbym przykłady.
Np. w pracy programujesz w Javie, a potrafisz programować również w innych językach (nie tylko działających na JVM), na poziomie wyższym, niż "hello world". W pracy programujesz aplikacje serwerowe, a potrafisz też programować aplikacje mobilne i mikro-kontrolery. Znasz różnice pomiędzy różnymi technologiami i wiesz do jakich zastosowań dana technologia nadaje się najlepiej. Możesz też poznać różne paradygmaty programistyczne, które niekoniecznie są wykorzystywane przez Ciebie w codziennej pracy oraz języki programowania z różnych rodzin. Np. potrafisz programować obiektowo, a możesz nauczyć się Haskella, aby poznać programowanie funkcyjne, znasz język, w którym jest statyczne typowanie, a nauczysz się języka, w którym jest dynamiczne typowanie, itd.
Shalom napisał(a):
Jeśli masz wątpliwości czy jesteś seniorem to zadaj sobie pytania:
- ile razy architekt pytał cię o zdanie na temat designu waszego softu albo wyboru jakiejś technologii
- ile razy przyszedł do ciebie ktoś z innego zespołu z jakmiś problemem / pytaniem / prośbą o review
- ile razy dostałeś do wykonania jakis "krytyczny" element systemu
To nie takie proste... Architekt może być kretynem, który "zawsze wie lepiej". Ludzie z innych zespołów też mogą zawsze wiedzieć lepiej, i nie potrzebować konsultancji. W zależności od projektu, wszystkie krytyczne elementy systemu mogą już być napisane, albo może ich wcale nie być.
A mimo to, człowiek może mieć mindset seniorski.
@wiciu Trochę to brzmi jak nie senior a alfa i omega ale ok ;) Ale nikt nie powiedział, że będzie lekko. Dobrze, że jest co robić.
Chociaż wydaje mi się, że web, mobilne i mikrokontrolery to trochę 3 różne wielkie światy i wydaje mi się, że bycie ekspertem w jednym z nich to już jest nieźle ;)
co myslicie o takim competency matrix?
http://sijinjoseph.com/programmer-competency-matrix/
Mały Młot napisał(a):
co myslicie o takim competency matrix?
http://sijinjoseph.com/programmer-competency-matrix/
level 3 ubermensch
Znam to i uważam to za bardzo dobrą tablicę umiejętności. Dzięki niej można zobaczyć ile faktycznie się jeszcze nie wie i jak wielką dziedziną jest programowanie. I jak wiele poddziedzin można się jeszcze nauczyć, jak się komuś nudzi.
Chociaż ta pozycja jest już nieaktualna (a raczej źle napisana od samego początku):
source code version control Level 3
Knowledge of distributed VCS systems. Has tried out Bzr/Mercurial/Darcs/Git
WTF Używanie Gita najwyższym stopniem wtajemniczenia?
oczywiscie sporo trafnych rzeczy w tym matrixie, ale znajdzie sie tez pare bzdur:
File has license header, summary, well commented
level 3... taa, wlasnie tak kodza najlepsi, duzo komentujaHas written and published reusable code
Concurrent (Erlang, Oz) and Logic (Prolog)
no tak, bo masa firm uzywa prologa@LukeJL, @katelx - inna rzecz, że Gita zna może z 10% programistów na świecie, więc jak już się go spróbowało, to jest się w elicie.
@somekind nie znam statystyk jesli chodzi o gita, ale mysle ze jest bardziej powszechny niz pro xp w takich cudach jak oz czy prolog ;) no ok, moze sie czepiam ale takie nierowne te punkty. generalnie to nie lubie takich podsumowan, pachna korpo ewaluacja i rozwojem zawodowym ;)
odpowiadajac na pytanie z tematu - co powinien umiec - to czego wymaga firma do ktorej aplikuje na takie stanowisko :)
lol. nie da się wejść teraz na tę tablicę:
pewnie ruch z 4programmers był tak duży, że spowodował DoSa.
Ta tabelka to jakaś jedna opinia jednego kolesia. Np. weźmy książki - przeczytałem większość z 2. poziomu, a z 3. poziomu nie mam zamiaru zaglądać do żadnej. SICP - to może i jest bardzo intelektualne, ale to przecież kurs dla pierwszego roku studiów. Forth? To jakaś rozrywka dla nerdów z lat 80.? ;P
Ale ze co, algorytmy sa tylko by meczyc studentow?
Biały Mleczarz napisał(a):
Ale ze co, algorytmy sa tylko by meczyc studentow?
@katelx ?
nie, podsmiewuje sie tylko ze level 3 to cos co wymaga sie od studentow na 1-2 roku :)
zdaniem autora najwyzszy level wtajemniczenia to:
katalex umiesz biegac? Wiec jak rozumiem z Boltem mozesz robic rozgrzewki. Znajdz mi swiezaka ktory zna dobrze GC. Badzmy szczerzy spora czesc developerow kojarzy to zagadnienie ale to nie to samo co znajomosc. Zreszta sam o tym sporo czytalem ale nie powiedzialbym o sobie ze jestem specem od tego (coz mam zwykla pamiec, a obecnie jakos szczegolnie nie jest mi to potrzebne). Kojarzenie a znajomosc to jednak nie to samo.
Od czepiam sie dla zasady - tak samo jak Ty ;).
Ogolnie matrix niezly - nie widzialem lepszego - no ale tez takich nie szukalem.
Każda organizacja ma swoje kryteria. Jak dla mnie senior developer to ktoś (opinie pod wpływem wiadomości z neta i własnych obserwacji):
Jak ktoś zadaje takie pytanie, to wg mnie nie jest gotowy by być "seniorem"
I nie musi. Ważne żeby chciał iść w właściwym kierunku.