Dalszy rozwój 2-letniego programisty

0

Pracuje jako programista Java (właściwie fullstack) od ponad 2 lat. Mam wrażenie, że od jakiegoś czasu mój rozwój poza pracą się zatrzymał i nie jestem na bieżąco z nowymi technologiami np. NoSQL, rozwiązania BigData, Docker, React'y itp. Chciałbym się w którymś kierunku rozwinąć, jednak dróg jest tyle, że ciężko wybrać.

Nauka kolejnego frameworka webowego takiego jak NodeJS wydaje się być ciekawa, ale bez sensu z perspektywy zawodowej, bo z Javy uciekać na razie nie zamierzam.
Czy nauka jakiegoś NoSQL "na surowo" (nie w projekcie) ma sens?

Nie wiem co jeszcze mogłoby mnie rozwinąć jako programistę, tak bym czuł, że staje się coraz mądrzejszy w tym co robie i żeby to wnosiło wartość do tego co robie na codzień oraz żeby dało mi trochę wszechstronności. No i żebym z perspektywy zawodowej był "więcej wart"

Dzięki za odpowiedzi

1

Poucz sie czegos bardziej funkcyjnego i reactive.

0

Weź sobie jakąś baze/framework (jak nosql, to pewnie w Javie będzie napisany) i naucz się go, potem ogarnij internale/source i postaraj się zrobić jakiś PullRequest.

0

Dziwna cisza.. ktoś coś? :)
Tak mało osób miało podobne dylematy?

1
Wesoły Szewc JavaDev napisał(a):

Dziwna cisza.. ktoś coś? :)
Tak mało osób miało podobne dylematy?

Polecam schodzic niskopoziomowo z serwerami, klientami http.

Zweryfikuj tez na ile dobrze znasz Spring czy JPA bo moze Ci sie wydawac, ze to ogarniasz.

Polecam te cos z DDD i hexagonal architecture.
Mikroserwisy to tez never ending story.

Polecam tez cloud i devops.

8

Oto moje propozycje:

  • Ogarnij solidnie podstawy - np.:
    • Spring Core
    • Concurrency (temat rzeka)
    • Clean Code, Software Craftsmanship, TDD itd. (nie wiem, jak z tym stoisz, bo Ciebie nie znam)
    • Algorytmy i Struktury Danych
    • Java Memory Model
    • Tuning JVM
    • inne...
    • poczytaj książki (wbrew pozorom, dobre pozycje sporo dają)
  • Mikroserwisy:
    • Spring Cloud
    • Vert.x (ten mi się chyba bardziej podoba)
  • Reactive Programming:
    • RxJava (wersja 2)
    • Reactor (część nowego Springa)
  • Serverless & Cloud:
    • AWS
    • Serverless framework
    • inne...
  • NoSQL
    • MongoDB
    • Redis
    • inne...
    • napisz własną bazę NoSQL (bo dlaczego nie?)
  • DevOps
    • Unix/Linux - poruszanie się po systemie, pisanie skryptów, programów systemowych, etc.
    • Docker
    • Docker Compose
    • Kubernetess
    • Traefik
    • mnóstwo innych tooli...
  • Front-end
    • Vue
    • React
    • Angular
  • BlockChain/BitCoin
  • Android
  • development bibliotek w Javie (spróbuj napisać porządnie bibliotekę z testami, CI na Travisie, dużym Code Coverage, statyczną analizą kodu, a potem ją zdeployuj na Maven Central - jak tego nie robiłeś, to sporo się napocisz)
  • nowy język
    • Python (przyda się do skryptów pomocniczych)
    • Bash (zawsze się przyda na Unixach)
    • Kotlin (język na JVM promowany przez Google)
    • dowolny język funkcyjny (poszerzy horyzont)
    • język low-levelowy (też poszerzy horyzont)
  • Big Data (nie znam się na Big Data - sam poszukaj więcej info ;-))
  • AI/Deep Learning
    • TensorFlow
    • inne...
  • napisz parser BrainFucka
  • napisz symulator Maszyny Turinga
  • kup sobie scalaki i zbuduj z nich kalkulator binarny
  • wymyśl jakiś ciekawy i trudny projekt, a potem go zrealizuj
1
wiciu napisał(a):
  • wymyśl jakiś ciekawy i trudny projekt, a potem go zrealizuj

Jakby Ci się chciało, to weź dodaj do JVMa taki ficzer że będzie mi trackował, dokładnie jakie obiekty zostały wypromowane z young'a do old'a i jaka była tego przyczyna(może być jako fork i custom build).

Albo możesz zacząć, od mierzenia czasu jaki spędzany jest na card-table scaning, znajdziesz po sygnaturze

void
CardTableModRefBS::
process_stride(Space* sp,
               MemRegion used,
               jint stride, int n_strides,
               OopsInGenClosure* cl,
               CardTableRS* ct,
               jbyte** lowest_non_clean,
               uintptr_t lowest_non_clean_base_chunk_index,
               size_t    lowest_non_clean_chunk_size)

niech najwyższy ma Cie w opiece ! powodzenia.

#Przydasie.

0

Całkiem nieźle piszesz jak na dwulatka. A buty wiązać umiesz?
No chyba, że o co innego chodziło w tytule, ale w takim razie dalszy rozwój powinien iść w kierunku precyzyjnego wyrażania się w jakimś języku.

0
somekind napisał(a):

Całkiem nieźle piszesz jak na dwulatka. A buty wiązać umiesz?
No chyba, że o co innego chodziło w tytule, ale w takim razie dalszy rozwój powinien iść w kierunku precyzyjnego wyrażania się w jakimś języku.

Np. w SmallTalk?

0

2-letni? Pora na odpieluchowanie i za rok do przedszkola.

0

https://pl.wikipedia.org/wiki/Metafora
Znawcy językowi się znaleźli

Ktoś coś odnośnie tematu?

0

Wiciu dał Ci świetny spis rzeczy którymi możesz się zająć. Ja bym zainteresował się tematami bycia ogólnie lepszym inżynierem, czyli SOLID, testy, architektura np DDD, czy bardzo na czasie Clean Architecture (czyli to samo co część techniczna z DDD ale opakowane w nowe słowa).

0

jakis kurs tanca polecam

0

No i żebym z perspektywy zawodowej był "więcej wart"

Z rankingu HackerRank wynika, że React:
https://research.hackerrank.com/developer-skills/2018/

React has the biggest delta between percentage of developers who know the framework and percentage of employers who look for candidates with this skillset. In other words, there’s a big opportunity for developers to learn React as a marketable skill that companies need today.

Jednak statystyki HackerRank niekoniecznie muszą przenosić się dobrze na nasze realia rynkowe.

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