Mit kell tudni juniour java programmerként?
2015-01-25T13:21:20+01:00
2015-01-27T20:37:39+01:00
2022-07-22T12:51:41+02:00
  • ui.: Jah a konklúzió kimaradt, de a JEE6-ról elég szerteágazó és precíz leírás létezik, csak az a lényeg, hogy a hivatalos referenciához tartozó tutorial-t érdemes szerintem csinálni...

    - The Java EE 6 Tutorial
    Mutasd a teljes hozzászólást!
  • Köszönöm a kimerítő választ. Egy szót sem értettem abból, amit írtál. Az még érdekelne, hogy amikor felvettek juniorként, előtte miből tanultad meg ezeket a dolgokat? Főiskolán ilyenekkel még rövidítés szintjén sem találkoztam.

    Az egyetemen nálunk volt néhány tárgy, ahol kifejezetten iparban használt technológiákat tanítottak:
    - Elosztott Alkalmazásokból két féléven Volt jcip-szerű tananyag és EJB, JPA, JMS, stb. (minden ami erősen backend és lehetőleg részleteibe menve - pl. dynamic proxy kézzel stb.)
    - Volt valami kötelező tárgy, ahol az egyik csoportban mindig valami JEE-t csináltak, de senki se szerette - ott JSF és hasonlók is lettek volna és szerintem egyébként normál esetben a kezdőket közelebb engedik ezekhez a szerver-oldali web, vagy frontend dolgokhoz amúgy is - ez nekem kimaradt.(*)
    - A sima BSc-s java-ban meg volt RMI, reflection, annotációzás, classloader-ezés is, meg ott is részletekbe mentünk, de JSE téren csak. Szerintem fontos volt ez is (ennél a tárgynál még nem sok szálazás volt)

    Nekem (talán a (*) hiánya miatt) volt emellett is egy hiányérzetem, hogy "nem tudom egy iparban lévő fejlesztésnél, mi hogyan áll teljesen össze" így MSc után elmentem még a java-master oktatásra is, ahol csak technológiai dolgokat tanítottak. A lényege az volt, hogy nekem ingyenes és cégekkel állnak kapcsolatban, amelyek közül az egyiknél egy évet alá kell írnom egy kis lojalitásképp, így cserébe ők fizetnek a mastereseknek az oktatásomért. Elvileg ilyen értéknövelt fejvadászat. Ott napi nyolc órában gyakorlatban mutogatták, a lényeges technológiákat és ez teljesen jól kompenzálta a mélyebb tudásom, amit egyetemről szedtem össze. Például itt az EJB-knél nem arról volt szó, hogy hogyan tudnád egy dynamix proxy-val te magad megírni az appserver amit helyetted csinál és "mellesleg" megmutatják hogyan működik, hanem sokat mutogatják hogyan működik, de "mellesleg" néha szólnak arról is, hogy mi van alatta. Ez egyáltalán nem lenézés egyik-féle képzésnek sem, nekem mind a kettő egyformán hasznos volt, sőt szerintem fontosabb volt az egyetemi, mert lényegében az emel ki a kollégáim közül, ha éppen valamiben kiemelkedek éppen. Mondjuk nekem lehet hogy azért különösen hasznos az egyetemi JEE anyag, mert mi nem használunk app-szervert, viszont nagyon sok ponton úgy próbáltam intézni a konkurrenciát, ahogy egy JEE konténer csinálná és így legalább patternek szerint tudtunk fejleszteni... JSF-t, mock-olást és unit tesztelést is csak itt tanultam ezen a képzésen, de az könnyű - nem mellesleg a dynamic proxy-s órák miatt el tudod képzelni hogy csinálnál egy mockito framework-szerűt amúgy is magad stb...

    De mint mondom... szerintem az ritka dolog, hogy használunk egy halom dolgot, de app-szerver nincs alattunk, hanem csak egy lightweight OSGi framework, amiben mi dobáljuk össze a jar-okat, ami éppen kell. Valószínűnek tartom, hogy kevesebb elméleti alappal és ugyanazzal, amit a master-en leadtak, tök jó szakember legyen valaki, aztán on-demand majd megnézegeti ami kell.

    Egyébként én azért mentem el erre az oktatásra, mert tudtam, hogy magamtól nem érdekelne eléggé ahhoz, hogy otthon magamtól szórakozzak vele. Itthon tényleg azóta sem nagyon foglalkozok ilyesmivel (mármint standard JEE-vel, mert az OSGi megtetszett, de az más), viszont a meló benn tart a közegben és munkaként élvezem ezt a dolgot. Ez nem tudom furán hangzik-e, de hobbiként én nem annyira foglalkoznél JEE technológiákkal mert hobbinak nem tetszik, de munkának tetszik és nekem ezt a hidat kellett valahogy felépítenem magamban, hogy mégis legyen egy kiindulási alapom hozzá
    Mutasd a teljes hozzászólást!
  • Mikor en juniorkent jelentkeztem eloszor es fel is vettek (kb 10 eve), a kovetkezoket tudtam:
    - java mint nyelv (es ez a konnyebbik resze)
    - jsp/servlet alapok
    - soap
    - webes protokolok
    - xml kezeles
    - tomcat
    - alapveto patternek
    Ezeket mondjuk hogy alaposan tudtam (jol el tudtam adni). Mindenesetre akkor azt lattam, hogy azt veszik fel juniorkent, aki:
    - erti, es tenyleg erti az alapokat
    - erdeklodo: kepzi magat, kerdez stb
    - akiben lat a felvetelizteto lehetoseget: nagyon ritka, hogy ugy mesz el egy ceghez, hogy minden ott hasznalt technologiat ismersz, ezert inkabb sokszor nezik, hogy kepes leszel-e megtanulni azt...

    Szoval en azt javaslom, par alap dolgot tudj, de azt alaposan. Aztan utana mar majd menni fog...
    Mutasd a teljes hozzászólást!
  • Az, amit egy főiskolán megtanulsz, kevés, ebben a szakmában nagyon fontos, hogy magad tájékozódj, tanulj meg új dolgokat. Kezdheted azzal, hogy utánanézel azoknak a dolgoknak, amiket senki felsorolt, hogy kezdésnek jó lesz. A net tele van doksikkal, tutorialokkal, van honnan tanulnod.

    Szerk.:
    Én speciel tanultam ezek közül valamit egy bizonyos tárgyból, asszem web alapú rendszerek fejlesztése vagy valami ilyesmi volt. Volt ott JBoss, JSP, JPA/Hibernate, ANT, EJB, stb., bár mindenből csak egy kis ízelítőt kaptunk, meg egy beadandót kellett csinálni. De 95%-a a jelenlegi ismereteimnek nem onnan van, hanem autodidakta módon tanultam (igaz elnézve, amit senki leírt, az én tudásom szűkebb, és más).
    Mutasd a teljes hozzászólást!
  • Köszönöm a kimerítő választ. Egy szót sem értettem abból, amit írtál. Az még érdekelne, hogy amikor felvettek juniorként, előtte miből tanultad meg ezeket a dolgokat? Főiskolán ilyenekkel még rövidítés szintjén sem találkoztam.
    Mutasd a teljes hozzászólást!
  • Mit kell tudni? Hát azokat az enterprise technológiákat, amelyek nélkül a java magában mit sem ér: tehát az ökoszisztémát kell ismerni, nem a nyelvet!

    Kezdésnek mondjuk - főleg minden ami JavaEE:
    - JSF2 (web front és backend különválhat)
    + Vannak helyek, ahol kell JSP-t is tudni még...
    - EJB3, CDI, clusterezés, Tomcat/JBoss/Glassfish
    - JPA / Hibernate
    + A fentiek mellett/helyett esetleg Spring (szerintem már nem olyan menő, de IRTÓ sok cucc ebben van)
    + Struts, GWT stb. is tud alternatíva lenni

    +++ Ami nagyon fontos még, hogy valamilyen web-service, XML, JaxB és ehhez hasonló technológiák is legyenek a tarsolyodban. Sokszor kell valamilyen MQ, vagy JMS is, mert a különféle komponensek vagy RMI-vel, vagy JMS-el, vagy web service-ekkel mindig kapcsolódnak ezeken a területeken.

    +++ Kell tudni svn-t, jó ha gitet is és esetleg mást is használni rendesen.
    +++ Jó ha 1.) tudsz csapatban dolgozni 2.) úgy tudsz csapatban dolgozni, hogy valami értelmes és modern szervezési módszer követtek (mondjuk SCRUM, KANBAN)
    +++ Nyilván jó tudni a design patterneket, az UML-t, a tervezési elveket és ezt biztos sokan leírják, de összességében egy erős rendszerszemlélettel rendelkezni! A rendszerszemlélet hiánya nagyon könnyen elrontja az ember munkáját!!! Ismerek kifejezetten jó programozókat, akik katasztrofálisan karbantartható kódot írtak és irtó sokba került órabérben szerintem helyrekalapálni - ne légy ilyen!!!!!!

    +++ Jó tudni mi az ANT, MAVEN és vagy modernebb társaik...
    +++ Junit, Mockito és egyéb automatizált tesztelési és mock módszerek se ártanak...
    +++ Normális logolási framework

    Na ennyit arról, hogy mit ajánlok kezdetnek, egyébként konkrétan én a következőket használtam az elmúlt egy évben java fejlesztőként (bár szerintem ez nagyon nem-standard):
    - OSGi (Equinox + Felix service component runtime mellett DS + minden létező ágaboga)
    - Swing (beans binding + JFormDesigner)
    - Nagyjából a Java concurrency in practice elolvasását megkövetelő szálkezelési problémák helyes kezelése (memory modell érvelés, hogy pragmatikus megoldásaink legyenek + kiéheztetés, deadlock és hasonlók is teljesen valóságos problémák és sok minden aszinkron meg elosztott / clusterezett)
    - Velocity template-ek
    - JAXB
    - JMS
    - JPA + EclipseLink speciális dolgai
    - Oracle tárolt eljárások (session változók és automatikus futtatás is, plusz triggert generáló tárolt eljárás - elég sok rész ebben van és bár volt DBA külön erre, de mindig gyorsabb ha csak akkor vártunk rá, mikor tényleg nagyon ő kell/kellett)
    - AspectJ az Eqionox aspects/equinox weaving és AJDT segítségével (ez OSGi alatt különösen vicces és a napokban ezzel foglalkozok)
    - iText pdf api
    - JSoup (teljesen lehetetlen formátumú HTML-ek parzolgatása és transzformálása)
    - Microsoft EWS Java API
    - Ozeki SMS API
    - GFI faxmaker
    - ANT
    - Git (szerver felállítás, svn-git-git repository szinkronizáció kialakítás, ajánlások a használatra, napi használat - egyébként hihetetlen miket tud a git!!!!)
    - SVN (szerver felállítás, git-ről átállás adatmigrációval, napi használat)
    - Kdiff3 precíz használata - azóta hogy git->svn visszaálltunk és pár dolgot sajnos újra manuálisan szinkronizálunk.......
    - Jasper reports
    - JSF2 (PAX-WEB alatt)
    - Jenkins beállítás, build és más közepesen bonyolult linux scriptek írása
    - Projekt-eszközök telepítése, karbantartása és ajánlása + esetleg belefejleszteni / hozzáfejleszteni
    - Hibásan, de konzekvensen követett patternek kijavítása / refaktorálása (a nagy mennyiség miatt ehhez jól jött, hogy tudok középszinten vim-et használni!) + ehhez hasonló amikor kódot generálsz, esetleg adatot generálsz.
    - ActiveMQ egy kicsit sajátos JMS-alapú rétegben
    - Class loading problémák megoldása (több class loader, 3rd party code integrációja mely nem számít a classloading-környezetre amiben van stb.)
    - Optimalizáció (bár ez még valamelyest előttünk áll)
    - Architekturális kérdések + valamelyest szervezési problémák (bár ezekben opcionálisan veszek részt)
    - Különféle egyéb DEVOPS-osabb feladat is volt (linux szerveren ilyen-olyan VPN-ek, X+ablakkezelő, stb.
    - Logback + slf4j
    - Emellett saját API-k (én is csináltam 1-2 ilyet, de van egy pár amit használunk)
    - SoapUI (bár ebből valamelyest kimaradtam)

    Na de igazából szerintem valahol abbahagyom a lista írását. Ha a fentieket (nem az én tevékenységi körömet, hanem amit felette írtam) királyul tudod, akkor el fogsz tudni helyezkedni, egyébként meg látható módon nem árt, ha van problémamegoldó képességed és az új megismerésére való törekvés is.

    A cég más projektjeiben is azt látom így messziről, hogy elég sok különféle dolgot használunk és sok a különféle technológia, de mondjuk ennyire talán nem szerteágazóan sok.

    Elsősorban kell egy cég, ahová felvesznek dolgozni, utána majd gondolkozhatsz azon, hogy nevezheted-e magad junior java programmernek vagy sem. Az elhelyezkedéshez meg elsősorban ismeretség és/vagy vakszerencse kell. A képesség és képzettség majd ahhoz kell, hogy meg is maradj azon a helyen.

    Ezzel nem értek egyet. Ha tényleg pöpecül tudod az EE-t (és esetleg még azt is kapizsgálod, hogyan épül fel belülről 1-1 technológia), akkor biztos lesz munkád ezen a piacon, csak kicsit nyögdécselős belevetni magad ténylegesen. Egyébként nálunk konkrétan fejpénzt adnak akár senior, akár junior fejlesztőt hoz valaki, szóval még díjazzák is a "protekcionizmust" - csak legyen elég jó az illető (sőt, leginkább így keresünk embert, ha nem diákot). A fejpénz véleményem szerint elég sok egyébként és gondolkoztam is, hogy pár régi proghus arcot meg is kellene esetleg kérdenem mit csinálnak, mert pl. egy sarkiroka-val, vagy nadamhu-val biztos poén együtt dolgozni, de voltak itt jó arcok régről (csak gondolom mindenki dolgozik aki számít )

    senki

    ui.: Egyébként már nem tartom magam junior-nak és szerintem nem is olyan a tevékenységi köröm, de tavalyelőtt ősz óta amikor úgy vettek fel, tényleg ezekkel találkoztam. Megjegyzem (külön Sting-nek ), hogy ez vastagkliens-központú fejlesztés és alapvetően a java-n belül épp nem web - csak mert olvastam egy cikkben itt, hogy a webbel ellentétben ehhez nem kell sok technológiát ismerni

    ui2.: A legtöbb álláshírdetésben tényleg kint szokott lenni mihez kellene érteni és van közös metszet általában. Innentől kezdve nem olyan nehéz kilogikázni mi kell mindenképp.
    Mutasd a teljes hozzászólást!
  • A Java junior álláshirdetésekben többnyire feltüntetik az elvárásokat is. Nézd meg azokat, s ott a válasz kérdésedre.
    Mutasd a teljes hozzászólást!
  • Azért hozzátettem, hogy megmaradni valahol nem ugyanaz, mint bekerülni... (Például adott esetben három oklevél és négy diploma sem garantálja, hogy az illető képes és hajlandó beilleszkedni a helyi szokásokba.)
    Mutasd a teljes hozzászólást!
  • "Magyarország, én így szeretlek" :D

    Kb kimerítetted a lényeget, de még egy angol "középfok" sem árt.
    A tudás másodlagos itthon sajnos.
    Mutasd a teljes hozzászólást!
  • A wordpress egy vicc, aki rendesen OOP-ben programozz php-ben annak kínszenvedés a WP, így ne ez legyen mérvadó szerintem.
    Mutasd a teljes hozzászólást!
  • Elsősorban kell egy cég, ahová felvesznek dolgozni, utána majd gondolkozhatsz azon, hogy nevezheted-e magad junior java programmernek vagy sem.

    Az elhelyezkedéshez meg elsősorban ismeretség és/vagy vakszerencse kell. A képesség és képzettség majd ahhoz kell, hogy meg is maradj azon a helyen.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Szeretnék programozóként dolgozni. PHP-vel sokszor kerültem kapcsolatba a Wordpress-es weboldalaim miatt és anno adatbázis kezelést is tanultam, így alap lekérdezések nem jelentenek problémát. Azonban tanultam a főiskolán 2 félévig JAVA-t is, így felmerült bennem az ötlet, hogy ne PHP fejlesztő legyen, hanem JAVA fejlesztő.

    Amikor PHP fejlesztőt kerestem a cégünkhöz, láttam, hogy minden webprogramozó PHP programozónak nevezi magát, még is alig találtam valakit, akire csak egy alap Wordpress-t rá lehetett volna bízni.

    Néztem a Lynda.com JAVA Essentials videósorozatát és teljesen érthető, nincs gondom az OOP-vel, értem ezt a megközelítést, stb. Így szerintem jobban megérné JAVA-t tanulni, mint PHP.

    Az lenne a kérdésem, mi az, amivel már el lehetne helyezkedni junior JAVA programozóként? Mit kell tudni? A főiskolán az OOP alapokon, JAVA alapokon kívül kivételkezelést tanultunk, illetve grafikus felületeket készítettünk, melyek valamilyen eseményre egy adott feladatot hajtottak végre.

    Köszönöm a segítséget!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd