Java lub ...

Jakiś czas temu przeczytałem post chlebik.wordpress.com do którego chciałem się jakoś odnieść ale nie mogłem się za to zabrać.

Głównie uderzyło mnie podobieństwo mojej obecnej sytuacji, a więc niedawno rozpocząłem pracę także jako młodszy programista PHP(ponownie) tym razem w Interia.pl. Co prawda jest to okres próbny ale w perspektywie jest praca stała, ale do rzeczy...

Kolejny etap szukania pracy i nadal nic z tego, jeśli chodzi o Javę to po serii rozmów kwalifikacyjnych doszedłem do wniosku że gdybym się uczył Javy w czasie studiów(ale tylko Javy) to pewnie dał bym radę mieć to wszystko na bieżąco. Na niektórych rozmowach miałem pytania z samego języka (trzeba mieć w jednym palcu Thinking in Java), albo pytanie z bibliotek/frameworków/technologii jak Spring/Struts/JPA/Hibernate itd. Tutaj trzeba by przeczytać przynajmniej po jednaj książce więc tak około 5 książek. Biorąc średnią długość takiej książki na 500 stron i jakieś 30 stron dziennie średnio jakie mogę przeczytać to daje jakieś100 dni czytania. Teoretycznie to jakieś 3 miesiące, jednak realnie wychodzi to około 1 książki miesięcznie, tak więc 6 książek to pół roku. Nie wiem jak inni ale po pół roku to ja tą pierwszą książkę będę raczej pamiętał dość mgliście - tzn raczej na zasadzie wiem gdzie coś było, albo wiem o co chodzi tylko kwestia to np znaleźć w google i rusza się dalej. Nie mogę powiedzieć żeby rekrutacje na których byłem brały to pod uwagę... albo się wie albo nie. Potrafię zrozumieć takie podejście ale coś takiego jest dla mnie raczej nie do przejścia.
Nie umiem sobie wyobrazić ilości czasu jaką musiał bym poświęcić na to realnie pracując i mając jakiekolwiek życie osobiste. Tym bardziej, że za coś trzeba żyć a jak na razie realną pracę i pieniądze daje mi właśnie PHP.

Przypomniało mi się jak czytałem biografię Ursuli K. Le Guin (polecam każdą z jej książek ;) która gdy zapytano ją dlaczego pisze fantastykę odpowiedziała że początkowo wysłała do wydawnictwa jedną książkę fantasy i drugą ekhm...(nie pamiętam dokładnie ale chyba kryminał), w każdym bądź razie za tą pierwszą jej zapłacili i książka została wydana.

Chciał bym to jakoś podsumować ale mam jedynie w głowie pytania na które sam sobie jeszcze nie udzieliłem odpowiedzi...
Czy nadal poświęcać czas Javie? A jeśli tak to tak naprawdę czym się zająć?
Czy istnieje realna szansa by pracować w Javie? Już chyba przestaję w to wierzyć...
Początkowo postanowiłem nic specjalnie nie zmieniać w swoim życiu, potraktować Javę jako hobby, jednak mój czas jest przecież ograniczony a jest tyle innych języków których mógł bym się pouczyć. Mam tu na myśli głównie Pythona, Ruby, Scalę oraz być może C# ale jakoś wolę rozwiązania nie Microsoft(być może Mono jest jakimś rozwiązaniem ale w czy w praktyce ktokolwiek tego używa? )

Nie można stać w miejscu gdyż wtedy tak naprawdę się cofamy dlatego postanowiłem ostatnio pouczyć się Joomla!, plus z tego taki że można będzie sobie kiedyś zrobić prostą stronkę w oparciu o ten CMS nawet dopisać jakiś komponent czy moduł. Sądzę że może być przydatne.
Z jezyków o jakich pisałem zacząłem się uczyć Pythona, dlaczego? miał po prostu szczęście. Tak naprawdę od czegoś po prostu musiałem zacząć. Na pewno podoba mi się konsola oraz testy w dokumentacji(kurs jest dostępny w Software Development Journal) oraz na stronie pl.wikibooks.org.
Za Rubym przemawiał Rails i to wszystko, albo aż wszystko. Miałem kilka doświadczeń z CakePHP i jestem w stanie sobie wyobrazić jak szybko można pisać aplikacje w RoR. Wydaje mi się że o podobną produktywność chodzi twórcom Spring Roo, co prawda nie pisałem w tym nic większego poza helloworld jednak bardzo przyjemnie przeszedłem przez 3 tutoriale i muszę przyznać że bardzo ułatwia pisanie zarówno w Javie jak i w Eclipse(pomijając problemy w wersji deweloperskiej z zależnościami). Moim zdaniem jest to projekt godzien uwagi i jeśli będę nadal miał czas i chęci dla świata Javy to będzie to najprawdopodobniej Roo.

Jeśli chodzi o Pythona to można w nim pisać aplikacje okienkowe i wydaje mi się że Python powinien się raczej sprawdzać w roli języka do pisania GUI, sam nie wiem może powinienem wrócić do C/C++ po prostu. Generalnie dam sobie i Pythonowi szansę na 'dogadanie się'. Pożyjemy zobaczymy, zresztą i tak największy priorytet ma dla mnie PHP na chwilę obecną, zbyt długo traktowałem ten język po macoszemu.

Spróbuję podsumować:

  1. PHP: a obecnie Joomla! Po prostu priorytet. Zresztą to podstawa jeśli chodzi o www.
  2. Python: Spróbuję i przekonam się na ile mi ten język odpowiada. Może GUI i skrypty?
  3. Java: tak jako hobby ale z małym priorytetem, jeśli już to może Swing albo Roo.


Moim zdaniem jeśli chodzi o tworzenie stron www to najlepszy jest PHP... najlepszy, no może mam z nim po prostu najwięcej doświadczenia, jednak pozwala (mi) pisać strony szybciej niż Java, (Pythona jeszcze nie próbowałem w realnych zastosowaniach więc nie wiem).

Dobra dość tego narzekania, mamy piękny dzień za oknem a w perspektywie kilku godzin przeprowadzka na Nową Hutę... cieszy mnie większa przestrzeń życiowa i tylko 10-15 minutowy spacerek by dojść do pracy albo z niej wrócić :)

Comments

  1. http://www.blackbeltfactory.com/
    Porozwiązuj sobie tutaj testy i będzie lepiej ;-)
    Poza tym na Javie się lepiej zarabia podobno, więc warto się szkolić.

    Dobrą drogą jest też Ruby i Python, ciągle mało ludzi od tego jest na rynku. No i też szybciej można się nauczyć, bo nie ma do nich tysiąca frameworków które trzeba obowiązkowo znać.

    Powodzenia ;)

    ReplyDelete
  2. Dzięki za komentarz :)
    Priorytetem na pewno w tej chwili jest i musi być PHP, w końcu z tego żyję ;) Jednak jeśli chodzi o Javę, Pythona, Ruby to wydaje mi się że maksymalnie dwojgiem z nich mogę się realnie zająć. Java - chyba już z samego rozpędu będę się jej nadal uczył, choćby dlatego że szkoda mi czasu jaki już jej poświęciłem. Jeszcze za mało poznałem Pythona ale na razie jakoś średnio mi się spodobał(ból przestawiania się na myślenie funkcyjne?), zastanawiam się więc nad Rubym, choćby po to by porównać go z Pythonem.
    Co do Javy jeszcze to dzięki za linka :)

    ReplyDelete

Post a Comment

Comments:

Popular posts from this blog

How to simulate slow connection (developer proxy in Node.js)

How to use NPM packages from private repositories on bitbucket