Senior (Java) Developer - co powinien umieć?

0

Co powinien umieć senior developer bardziej ukierunkowany na Jave i web?

senior - mowa o stanie wiedzy, nie nazwa stanowiska.

0

To jakie nogi powinny mi wyrosnąć? :P

0

bump

0

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.

0

Doswiadczenie, odpowiedzialnosc, wiedza?

2

Min. 4 lata doświadczenia w zawodzie

0

Ale ogolnie jako programista czy np. Jako java developer?

1
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.

0

@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 ;]

0

Tylko właśnie co powinien taki prawdziwy senior umieć, żeby nie świecic tylko tytułem?

2

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:

  • 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
0

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.

1
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.

0
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.

0

@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 ;)

1

co myslicie o takim competency matrix?
http://sijinjoseph.com/programmer-competency-matrix/

0
Mały Młot napisał(a):

co myslicie o takim competency matrix?
http://sijinjoseph.com/programmer-competency-matrix/

level 3 ubermensch

0

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?

1

oczywiscie sporo trafnych rzeczy w tym matrixie, ale znajdzie sie tez pare bzdur:

  • algorytmy level 3 to po po prostu zaliczenie przedmiotow 'algorytmy i struktury danych'/'architektura komputerow'
  • inzynieria - ze ktos gita sprobowal to mistrzostwo, level 3... ;)
  • programowanie - File has license header, summary, well commented level 3... taa, wlasnie tak kodza najlepsi, duzo komentuja
  • skryptowanie level 3 - Has written and published reusable code
  • doswiadczenie - Concurrent (Erlang, Oz) and Logic (Prolog) no tak, bo masa firm uzywa prologa
  • ksiazki level 1 - mastering regular expresssions, level 3 - little schemer :)
0

@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.

0

@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 :)

0

lol. nie da się wejść teraz na tę tablicę:
fa875516fc.png
pewnie ruch z 4programmers był tak duży, że spowodował DoSa.

0

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

0

Ale ze co, algorytmy sa tylko by meczyc studentow?

0
Biały Mleczarz napisał(a):

Ale ze co, algorytmy sa tylko by meczyc studentow?

@katelx ?

0

nie, podsmiewuje sie tylko ze level 3 to cos co wymaga sie od studentow na 1-2 roku :)
zdaniem autora najwyzszy level wtajemniczenia to:

  • takie zagadnienia jak GC, sterta, stos, kompilacja, interpretacja to imo w praktyce pojecia ktorych znajomosci powinno sie wymagac od swiezakow przed przyjeciem na staz...
  • drzewa i sterty to jedne z podstawowych struktur danych, wiedza typowa do zaliczenia przedmiotu, natomiast w praktyce implementacja rb tree czy skip listy (bez podanej specyfikacji) dla swietnego, doswiadczoneg f2b developera przecietnego erp/crm to zadanie czesto niewykonalne, natomiast dla pro-algo-maniaka to bzdura ponizej godnosci... :)
  • to samo z dp, grafami czy metodami numerycznymi, litosci...
0

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.

0

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):

  • potrafi przewidywać i dopasowywać się do tego jak software używany przez ludzi będzie się starzał i wyzwanie związane z utrzymaniem, rozwojem (nowe wymagania), migracje, modyfikacja istniejących wymagań i architektury
  • widział projekty failujące jak i odnoszące sukcesy i rozumie co zrobić, aby ograniczyć przyczyny failu w przyszłości na podstawie doświadczeń swoich i innych
  • cykle życia produktu są istotniejsze niż lata doświadczenia (ktoś kto tylko rozwijał ma raczej szanse na zostanie seniorem, jeśli nie utrzymywał systemów, które pisał: miał mniejszą szansę uczyć się na swoich błędach)
  • ma szersze spojrzenie na technologie niż tylko przez najczęściej używane technologie: dostrzega wzorce, które na dobrą sprawę nie zmieniają się od lat
  • z dystansem patrzy na nowinki techniczne: dostrzeganie tych samych wzorców, ale również nowych możliwości, jak coś zrobić lepiej
  • szybko uczy się podstaw nowych frameworków i technologii na podstawie tego co już zna, jednak osiągnął w jakiejś dziedzinie poziom ekspercki (zakładam, że poznanie dobrze technologii może zająć np. 4 lata)
  • ma świadomość czego nie wie (w przeciwieństwie do juniora)
  • oczywiście ktoś kto może być seniorem na jednym stanowisku może być juniorem na innym
  • potrafi poprowadzić szkolenie: uczyć mniej doświadczonych
  • tak naprawdę tytuły nic nie wnoszą, ale jakoś pensje trzeba różnicować
1

Jak ktoś zadaje takie pytanie, to wg mnie nie jest gotowy by być "seniorem"

2

I nie musi. Ważne żeby chciał iść w właściwym kierunku.

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