[Pytanie] JEE - kilka pytań pod kątem pracy zawodowej

0

Witam wszystkich!

Od pewnego czasu zaglądam na forum 4programmers, czytam, czytam, czytam i szukam tego i owego ;) Mam jednak kilka pytań do osób zawodowo zajmujących się programowaniem w javie. Na wstępie chcę zaznaczyć, że studiowałem filozofię a nie informatykę, chciałbym jednak związać swoją przyszłość z pracą jako programista java. Przestudiowałem Head First Java i Thinking in Java Eckela, więc jako takie podstawy już mam. Moje pytania dotyczą kierunku dalszej nauki:

  1. Jakie umiejętności oprócz zasad TDD, znajomości diagramów UML, wzorców projektowych i zasad OOP powinienem sobie przyswoić? Pytam tu o typowo teoretyczne zagadnienia, z którymi z podanych wyżej względów nie miałem do czynienia.

  2. Na jakie technologie powinienem zwrócić szczególną uwagę? Uczenie się kolejnych frameworków nie ma chyba większego sensu, zważywszy na to, że każdy pracodawca wymaga czegoś innego. Mówiąc kolokwialnie - co koniecznie powinienem znać "na wejściu", aplikując do pracy jako programista?

  3. W najbliższym czasie chcę zapoznać się z zagadnieniami JEE - servletami, JSP i EJB, pobieżnie z SQLem, następnie już z najpopularniejszymi frameworkami - Hibernate, Springiem i Strutsem. Pytanie może wydawać się głupie, ale - w jakiej kolejności najlepiej się za to zabrać?

  4. Czy warto zrobić certyfikat SCJP? Pytam o jego wartość u potencjalnego pracodawcy, nie o to czego się przy tej okazji nauczę.

Przepraszam za nieco przydługi post i z góry dziękuję za pomoc ;-)

0

postaram się Ci odpowiedzieć z punktu widzenia jedno osobowego zespołu programistycznego który zajmuje się tworzeniem programów jako bonusy przydające się do obsługi innych świadczeń informatycznych ;-P ;-P ;-P ;-P

Badrac napisał(a)

Witam wszystkich!

  1. Jakie umiejętności oprócz zasad TDD, znajomości diagramów UML, wzorców projektowych i zasad OOP powinienem sobie przyswoić? Pytam tu o typowo teoretyczne zagadnienia, z którymi z podanych wyżej względów nie miałem do czynienia.

po pierwsze logicznego(technicznego) myślenia i umiejętność wyszukiwania informacji(stąd nazwa informatyk [green] ) oraz przede wszystkim średnio zaawansowana znajomość angielskiego i już tłumaczę dlaczego. wyszukiwanie informacji przydaje się głównie przy przeszukiwaniu dokumentacji aby znaleźć tego czego potrzebujesz również rzadko się zdarza aby nie znaleźć tutoriali lub przykładów w necie które by nie poruszały choćby w stopniu naprowadzającym od czego zacząć rozwiązywać problem czyli pisanie programu [rotfl] . ponad to 97% tych tekstów + cała dokumentacja jest po angielsku stąd wzmianka o tym języku gdyż teksty te z regóły nie są pisane prostymi słowami. a logiczne myślenie pozwala przerabiać te przykłady, kombinować z metodami z dokumentacji,obserwować i wyciągać wnioski.
aha i jeszcze bym zapomniał a to chyba najważniejsze to koniecznie zapoznać się z rodzajami wyjątków by szybciej lokalizować błedy. IOException to coś nie tak z input/output itp.

  1. Na jakie technologie powinienem zwrócić szczególną uwagę? Uczenie się kolejnych frameworków nie ma chyba większego sensu, zważywszy na to, że każdy pracodawca wymaga czegoś innego. Mówiąc kolokwialnie - co koniecznie powinienem znać "na wejściu", aplikując do pracy jako programista?

każdy pracodawca chciał by żebyś znał wszystkie technologie miał 20 lat i 10 lat doświadczenia zawodowego a tak się niestety nie da. na początek warto żebyś po prostu nie tyle znał co się orientował do czego pi razy drzwi się wykorzystuje dane technologie byś nie tracił czasu na szukanie gdzie masz szukać. java jest językiem z bogatą dokumentacją i na ogół jej dodatkowe "plug-in'y" też takie są. co do frameworków to obecnie na rynku rządzą niepodzielnie netbeans(mój faworyt) i eclipse. oba są darmowe nawet do komercyjnego użytku oba mają wady i zalety. pracodawcy na ogół nie robią problemów i można sobie wybrać któryś z nich. wyróżniają się głównie graficznym tworzeniem GUI oraz różnymi innymi bajerami typu generowanie javadoc czy podpowiedzi do kodu. jednym słowem na wejście powinieneś mieć umiejętności opisane do pkt.1 oraz ogólne pojęcie informatyczne czyli liznąć trochę sql, zagadnień sieciowych oraz umieć się poruszać po internecie :> [!!!]

  1. W najbliższym czasie chcę zapoznać się z zagadnieniami JEE - servletami, JSP i EJB, pobieżnie z SQLem, następnie już z najpopularniejszymi frameworkami - Hibernate, Springiem i Strutsem. Pytanie może wydawać się głupie, ale - w jakiej kolejności najlepiej się za to zabrać?

w takiej w jakiej życzy sobie pracodawca [diabel] jeżeli nie chcesz się zapoznawać z nimi dla własnej satysfakcji to poczekaj aż będzie ci to potrzebne. natomiast jeśli chcesz to robić aby zgłębić lepiej temat to radzę z własnego doświadczenia najpierw zacząć od składników bezpośrednio związanych z javą jak rmi itp a następnie oddalać się od niej aż dojdziesz do połączeń kodu java z innymi językami programowania.

  1. Czy warto zrobić certyfikat SCJP? Pytam o jego wartość u potencjalnego pracodawcy, nie o to czego się przy tej okazji nauczę.

powiem szczerze że jeżeli chodzi o informatyka po szkole wyższej to raczej nie ma sensu natomiast w twoim przypadku przydał by się jakiś papier potwierdzający umiejętności natomiast nie jest powiedziane że musi być to SCJP.

Przepraszam za nieco przydługi post i z góry dziękuję za pomoc ;-)

mój jest dłuższy [browar] mam nadzieje że troszkę przybliżyłem temat

0

Netbeans i eclipse to frameworki? Raczej nie. To sa IDE.

0
ucilala napisał(a)

Netbeans i eclipse to frameworki? Raczej nie. To sa IDE.

według definicji frameworka

Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej aplikacji. Z reguły na framework składają się programy wspomagające, biblioteki kodu źródłowego i inne podobne narzędzia.

mozna przyjac ze netbeans i eclipse to frameworki które zawierają równierz IDE ale kłócić się nie będę ponieważ jest to tek rozległe pojęcie że tak na prawdę każdy może to interpretować po swojemu [browar]

0

Dzięki za odpowiedź. Chodziło mi oczywiście o normalne frameworki, nie IDE ;) Sam korzystam z eclipse'a, jakoś przywykłem i już. Angielski mam biegły, zresztą książki o javie po polsku są "lekko" przestarzałe z tego co zauważyłem, więc czytam tylko angielskie.

Czekam na dalsze rady starszych kolegów po fachu ;-)

0

Najlepiej naucyc sie myslec jak programista, frameworki sa do opanowania w krotkim czasie zazwyczaj, nowe jezyki programowania tez.
Co do frameworkow to niby kazdy pracodawca chce czego innego, ale jest lista faworytow: Hibernate, Spring, kilka frameworkow webowych (duzo Struts1/2, Wicketa widuje, GWT czasami, ...).
Co do kolejnosci JEE - servlety najlatwiejsze, pozniej JSP* mozesz pyknac, na koniec ciezary jak EJB3. JPA wchodzi w sklad specyfikacji EJb3, JPA2 bedzie zdaje sie odrebna specyfikacja, wart to poznac bo coraz czesciej odchodzi sie od natywnego hibernate do jpa (pewna abstrakcja nad hibernate / toplink).

  • Co do JSP to mam bardzo mieszane uczucia, wiekszosc frameworkow ma jakies swoje wlasne szablony i nie uzywaja wcale JSP. Zaryzykowalbym bardzo pobiezne poznanie i olanie szczegolow. Ale moze to dlatego ze ja jestem raczej od backendu a nie od widoku.
0
pikseloza napisał(a)

wart to poznac bo coraz czesciej odchodzi sie od natywnego hibernate do jpa (pewna abstrakcja nad hibernate / toplink).

Ja mam akurat wręcz przeciwne odczucia przechodze od JPA do Hibernate/OpenJPA ponieważ czyste JPA jest strasznie ubogie

0

Zgadza sie, JPA jest ubogie. Ale nadchodzi JPA2.
Mam takie pytanie - piszesz ze odchodzisz od JPA do Hibernate - pracujesz gdzies czy odchodzisz w domu, we wlasnych projektach? To jest dosc istotna sprawa. (Nie insynuuje nic, pytam powaznie, chetnie sie dowiem).
JPA ma ta przewage ze to jest standard, wiec jak napisze sie aplikacje tylko uzywajac JPA to mozna (w wiekszosci przypadkow) zmienic providera / server aplikacji i bedzie dzialac (ale nie musi, providerzy tez roznia sie dzialaniem w obrebie jednego standardu, JPA jest dosc niedoprecyzowana w pewnych miejscach, jak np locking - Hibernate robi select for update, a Toplink Essentials uzywa optimisting locking i atrybutow wersji, co zmienia czasami calkowicie logike).
Ja w ostatnich 2 firmach pisalem projekty wlasnie tylko w JPA, hibernate jako provider, aktualnie na glassfishu wiec uzywamy toplinka, czekamy na JPA2.
Warte uwagi jest tez EclipseLink.
Pozdrawiam.

0

Witam,
o odejsciu od JPA do Hibernate/OpenJPA wiem z doświadczenia zawodowego. Oczywiscie wszyscy na początku zakładamy aby korzystać z JPA żeby póżniej bez bezproblemów przenoscić aplikacje miedzy różnymi serwerami jednak jak sam stwierdziłeś nie jest to takie piekne... poza tym do Hibernate jest wiecej materiałów. Posiada wiecej funkcji np. Criteria API, Cache 2 poziomu

A tak w ogóle to jeszcze mi się nie zdarzyło abyśmy musieli odchodzić od hibernate bo miał wszystko to co potrzeba(lub moje prawie 2 letnie doświadczenie jest zbyt małe)

Pozdrawiam

0

Ja mam prawie 3-letnie, wiec niewiele wiecej niz Ty ;-) Co do tego ze sam hibernate starczy to wiadomo, ma to co JPA i o wiele wiecej, nie wszyscy jednak sa gotowi na to aby zrzygnowac ze standardow. Osobiscie tez wolalbym uzywac hibernate lub ostatno elipse link mi sie podoba.
Criteria API bedzie w JPA2 miedzy innymi, i to bedzie type-safe criteria api (w hibernacie jest to na podstawie stringow - wpisujesz nazwy propertisow w stringach) - polecam przyjrzec sie:
http://relation.to/Bloggers/LindaBlogsTheTypesafeQueryAPIForJPA20 i http://relation.to/Bloggers/Java6CompilerPluginsAndTypesafeCriteriaQueries, blog ktory prowadzi miedzy innymi Gavin King, Emmanuel Bernard i inni mastahowie Hibernate.
Co powiesz na JSP? Uzywacie tego? Ja nie widzialem stronki JSP od dosc dawna.
Pozdrawiam.

0

Dzięki za linki ponieważ wiedziałem ze w JPA 2.0 wejdzie Criteria API ale nie wiedziałem że w takiej postaci...
Jeśli chodzi o JSP to wszystkie nasze projekty webowe sa w JSP oczywiscie przy użyciu Frameworków Struts czy JSF (np. https://raport.stat.gov.pl/gus.ps/login/login.pa) ale warstwą prezentacji jest JSP budowany z naszych tagów.
Poza tym widziałem również https://www.kb24.pl/LoginServlet(ale tego nie pisałem)

Pozdrawiam

0

Jeżeli chodzi Ci o programistów z 10 letnim Javowym stażem to oni tu raczej nie zaglądają :)
Jeżeli interesuje cię informatyka to ja polecam studia informatyczne ( albo nawet ich początkowy fragment
2,3 lata ). Książki książkami, ale jak możesz programować w czym kolwiek jeżeli nie masz podstaw. Tzn może inaczej
możesz, ale mimo starań raczej nigdy nie dojdziesz do najwyższego poziomu z braku podstaw.
Takie jest moje zdanie.

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