Java developer - wskazówki co do rozwoju

0

Cześć,
Obecnie od dwóch miesięcy pracuję jako programista Javy w dość małej firmie we Wrocławiu (obecnie jako stażysta).

Ponieważ chciałbym jak najwięcej się nauczyć i być lepszym programistą, to chciałbym prosić was o rady jak się rozwijać. Proszę również o wyrozumiałość - jako programista pracuję od niedawna, ale sądzę, że braki w wykształceniu można nadrobić motywacją i chęcią do pracy.

Moje umiejętności wyglądają obecnie tak:

  • Java (poziom średni? - znam składnię, potrafię swobodnie pisać w tym języku, korzystam z Lomboka, Guavy, nie znam tricków i haczyków oraz nie znam frameworków).

  • Groovy (coraz częściej zdarza mi się z niego korzystać - całkiem fajny język, przydatny do parsowania jsonów, łatwiej się korzysta z mongo, wiele usprawnień w stosunku do Javy, choć wydajność jest trochę niższa)

  • Testowanie (JUnit - głównie korzystam z unit testów i piszę testy integracyjne, używam mocków, możliwe że są tam jeszcze jakieś bardziej skomplikowane rzeczy, ale nie wiem nic na ich temat).

  • Bazy danych (korzystam z MongoDB - idzie mi całkiem nieźle, piszę w pracy często zapytania do mongo oraz jestem w trakcie kursu "M101J: MongoDB for Java Developers")

  • Wzorce projektowe (tutaj leżę zupełnie, nie znam ich zupełnie, ale zabieram się za ich naukę - znajomy polecił mi książkę Head First Design Patterns).

  • Algorytmika i matematyka (chociaż nie jest to związane z Javą to pomyślałem, że warto o tym wspomnieć - myślę ze algorytmicznie jestem dość dobry - kiedyś dość sporo bawiłem się w olimpiadę matematyczną i informatyczną)

  • Angielski (też nie związane z programowaniem, ale obecnie chodzę na kurs i uczę się go na bieżąco - mój poziom to ~B2).

Wiem, że trochę tego sporo, ale dziękuję za wszystkie wskazówki i odpowiedzi - zarówno negatywne jak i pozytywne.

1

A co z Twoim rapem?

PS pomyśl o IoC

0

Dzięki za odpowiedzi. Czekam na więcej.

Co do pytań :
Rapuje dosyć dobrze, choć czasami wkurza to kolegów z pracy.

Zapomniałem wspomnieć o tym, że korzystam też z gita oraz przeczytałem większość książki clean code.

0

Effective Java obowiązkowo, jedna z lepszych ksiażek o Javie. Programujesz jakieś backendy, a nie mobilki, tak? Bo nie napisałeś. Tak jak radziła @karolinaa IoC musisz ogarnąć, najlepiej w wydaniu Springa, bo najwięcej fajnych tutoriali i książek. Naucz się jakiegoś frameworka webowego - w czym tam piszecie w pracy?

0

Tak, backend.

W pracy używamy wielu rzeczy. Wymienię tylko nazwami i losowo : spring, hbase, mongo, cassandra, groovy, scala, java, angular. W różnych częściach korzystamy z czego innego.

0

Dziękuję za odpowiedzi. Macie jeszcze jakieś pomysły?

Szczególnie czy ktoś z tych osób (guru tego forum) mógłby dorzucić swoje trzy grosze?
@somekind @Koziołek @Krolik @niezdecydowany @karolinaa @msm @winerfresh @stryku @Patryk27 @katelx @WhiteLightning @datdata @spartanPAGE @Wizzie @Azarien @Satirev @MarekR22 @Afish @panryz @Wibowit @azalut

0

Przepraszam, zapomniałem o @Shalom.
Zachęcam też wszystkie niewymienione osoby do odpowiedzi.

1

z tym 'guru' to pojechales troche rysiu :D
z samej javy to ciezko mi polecic cos wiecej niz zostalo juz w tym watku wspomniane. nie znam zbytnio frameworkow, co do dotyczacych javy wtf'ow jest fajna ksiazka 'java puzzlers' http://www.amazon.com/Java-Puzzlers-Traps-Pitfalls-Corner/dp/032133678X, dla sredniozaawansowanych ciekawa pozycja bedzie http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

z innych dzialek ktore bez watpienia bardzo ci sie przydadza:

  • relacyjne bazy danych oraz sql + przynajmniej ogolna wiedza o mozliwosciach jezykow proceduralnych jak pl/sql czy t-sql (bo z tym sie spotkasz predzej czy pozniej, de facto standard w wiekszosci organizacji)
  • jezyk c (bardzo pomaga zrozumiec co sie dzieje pod spodem)
  • jak dziala unix, tcp/ip (ciezko mi sobie wyobrazic dobrego javowca ktory ma o tym blade pojecie)
  • jakis jezyk skryptowy na dobry poziom (oprocz grooviego warto znac pythona i/lub perla, sa duzo powszechniejsze)
  • znajomosc git'a pozwalajaca na swobodna prace z nim
  • bieglosc w ide - intelliJ, nawet nie trac czasu na eclipse
0

A tak się podepnę pod temat. W sumie nie mam zbyt dużego doświadczenia, kilka miesięcy komercyjnie i sporo uczę się w samej pracy spraw bieżących.

Trochę zastanawiam się czego mógłbym się pouczyć 'just 4 fun', prywatnie. Korci mnie pobawienie się Scalą. Jak myślicie dobry/zły pomysł? Jakieś przeciwskazania? ;)

0

nie znam scali za dobrze, za to w groovym stosunkowo czesto cos pisze i musze przyznac ze mila odmiana tak czasem odpoczac od javowej skladni

0

z groovym tylko mialem cos wspolnego w przypadku gradle i chwile bawilem sie spockiem, ale tez zastanawialem sie czy nie poszerzyc wiedzy w tym kierunku.
Myślę, że po prostu usiądę w jakis weekend, poczytam o ficzerach scali, porobie hellowordy i jakies tutoriale i zobacze czy mi sie spodoba ;)

1

@H1ghlander

-> Scala:
#http://docs.scala-lang.org/tutorials/?_ga=1.129674892.126527232.1440869235
#http://eed3si9n.com/learning-scalaz/
#https://github.com/scalaz/scalaz przykłady, testy i kod.
#https://github.com/fpinscala/fpinscala/tree/master/exercises/src/main/scala/fpinscala

-> Haskell
#http://www.seas.upenn.edu/~cis194/
#http://www.scs.stanford.edu/14sp-cs240h/
#https://github.com/NICTA/course

Powinno wystarczyć.

0

Z tymi weekendami i nauka to nie przesadzaj, daj sobie przynajmniej jeden dzień na odpoczynek najlepiej bez kompa.

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