Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Co (z Javy) jest potrzebne do pracy w korpo



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Java
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Luke



Dołączył: 17 Cze 2007
Posty: 1893
Skąd: Szczecin

PostWysłany: Wto Kwi 12, 2016 9:07 am  OP    Temat postu: Co (z Javy) jest potrzebne do pracy w korpo Odpowiedz z cytatem Pisownia

Tak się zastanawiam, co musiałbym wiedzieć, żeby dostać się do korpo na stanowisko programisty Javy (jeszcze lepiej - nie juniora).

Do Javy nigdy mnie nie ciągnęło, kojarzy mi się z wielkimi systemami a dla małych wydaje się przerostem formy nad treścią. Niemniej jednak pamiętam, że Pythona zacząłem używać na co dzień po praktykach, na których go wykorzystywałem. Więc może podobnie byłoby z JVM - podróże (zmiany) kształcą.

Przechodząc w końcu do meritum - co powinienem poznać, żeby móc na dobrych warunkach zostać programistą Javy? (Proszę o w miarę ogólną odpowiedź. Wiem, że jest zatrzęsienie frameworków i serwerów aplikacyjnych. Ale przecież realnie żaden programista nie zna tych wszystkich rozwiązań.)

Nie traktuję tego jako długofalowego planu, ale fajnie byłoby wystartować na dobrych warunkach.
Wcześniej się tym nie przejmowałem i aktualnie warunki nie do końca mnie zadowalają, a perspektywę podwyżki i awansu mam za pół roku.

Temat zszedł trochę na kompetencje "miękkie" - jak się rozwijać - w tej materii też chętnie posłucham bardziej doświadczonych programistów (również bardziej ogólnie - mam nadzieję, że administracja będzie wyrozumiała :).

Aktualnie mam doświadczenie z C, choć raczej C++, Pythonem, PHP, JavaScriptem.

_________________
Moje projekty | Tani hosting
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Wto Kwi 12, 2016 9:22 am      Temat postu: Odpowiedz z cytatem Pisownia

Do pracy w korpo zasadniczo nie trzeba umieć nic poza podstawami języka. W szczególności jeżeli chodzi o Javę - większość Javowców z którymi pracowałem nie wie jak działa GC, nie wie, jak tworzyć generyki, nie wie, że można zaimplementować interfejs in-place, generalnie, nie wie jak działają typy opakowujące (wie najwyżej, że nie mieszamy typów opakowanych i surowych, bo inaczej coś może się spieprzyć). Generalnie podstawy składni - zmienne, instrukcje sterujące, interfejsy, klasy, dziedziczenie, rodzaje dostępów (i to tak na prawdę wystarczy czaić różnicę między public/protected/private), obsługa wyjątków (i to tak na prawdę w podstawowym zakresie - jak nie wiesz co robi finally nie powinno to być problemem).

Generalnie w korpo wymagania do Javy są bardzo niskie (chociaż może ja pracowałem w złych corpo?). Znacznie ciężej w małych firmach gdzie pracodawca cię raczej przemagluje niż niepotrzebnie wyda na Ciebie pieniądze.

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Luke



Dołączył: 17 Cze 2007
Posty: 1893
Skąd: Szczecin

PostWysłany: Wto Kwi 12, 2016 9:53 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

W takim razie wychodzi na to, że spełniam wymagania, mimo tego, że praktycznie nie pisałem w Javie. :P
W takim razie - jak się zaprezentować?

_________________
Moje projekty | Tani hosting
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Wto Kwi 12, 2016 11:07 am      Temat postu: Odpowiedz z cytatem Pisownia

Napisać CV, iść na rozmowę, być pewnym siebie. Programowanie to w minimalnym stopniu znajomość języka, na każdej rozmowie dostaje się proste pytania ogólne - jakieś podchwytliwe pętle, jakiś podstawowy algorytm typu silnia czy fibbonaci - trzeba być na to gotowym. Do tego nie speszyć się - jeśli chcą taki algo w Javie, to trzeba go napisać w Javie zwracając uwagę na to, żeby było opakowane w klasę etc (mogą chcieć przy okazji sprawdzić, czy umiesz płynnie w tym języku myśleć). No i podstawowa sprawa - praca z Javą to najczęściej praca z jakąś technologią. Jak to jest programowanie na Androida, trzeba ogarniać API androida. Jak to jest programowanie Webowe, trzeba znać Grooviego. Ale to już nie jest znajomość języka, tylko konkretnej technologii (biblioteki, czy zestawu bibliotek). Java "biznesowa" jako tako się uszczupla na korzyść C#, ale jeśli nie masz jasno napisane z jaką technologią będzie praca, mogą oczekiwać że się domyślisz, że chodzi o klepanie GUI - fajnie wtedy znać podstawy Swinga, ale bez przesady bo i tak będziesz wyklikiwał takie GUI w edytorze.

Rozmowy kwalifikacyjne to taki dodatkowy skill jaki trzeba wykształcić - przychodzi z doświadczeniem. Można Być świetnym programistą C++ i kiepsko znać Javę, ale nie dostać pracy po pierwszych 5 rozmowach w C++, za to dostać na szóstej rozmowie - Javowej, tylko dla tego, że doświadczenie 5-ciu pierwszych rozmów nauczyło Cię właśnie jak dobrze wypadać na rozmowach. I w grę wchodzi tu wszystko: ubiór (i wcale receptą nie jest, a przynajmniej nie zawsze, ubrać się w najlepszego garniaka), gra gestów, mimika, ton głosu, pewność siebie, wiedza oczywiście też - ale ta ostatnia czasami najmniej, bo nie da się jej dobrze zweryfikować dobrze wiedzy nawet na 2-3h rozmowie (a z reguły trwają maks godzinę). Wiedzę weryfikuje często okres próbny.

Ostatnio byłem na rozmowie kwalifikacyjnej na stanowisko programisty C++. 90% czasu nawijałem o wszelkich językach tylko nie C++. Dla czego? Bo rekruterowi spodobało się, że mam coś od powiedzenia na temat różnych technologii i badał moją opinię na temat tego jak będzie się rozwijał rynek i to, czy jest to opinia faktycznie moja czy wyuczona. Pracę dostałem. O języku w którym będę pracował powiedziałem tylko tyle, że go znam co wynika z CV (4 lata pracy w danym języku okazało się wszystkim co na ten temat chciano wiedzieć).

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
lethern



Dołączył: 09 Paź 2007
Posty: 1106

PostWysłany: Wto Kwi 12, 2016 11:08 am      Temat postu: Odpowiedz z cytatem Pisownia

Jeżeli ludzie w korpo używają wielu zaawansowanych rzeczy z języka i wymagają tego też od innych, to wtedy może faktycznie potrzebujesz poznać Javę lepiej, ale wątpię - obstawiałbym że nacisk powinien być na technologie
Oczywiście nikt nie wymaga od Ciebie znajomości wszystkiego, ale im mniejsza wiedza na wstępie, tym mniej i wolniej robisz, więcej szukasz i pytasz, potrzebujesz nauki - jest oczywiste jak to wpływa na wydajność i pozycję w firmie. Zrozumiałe też jest, że niektóre firmy szukają ekspertów, niektóre cały zakres od początkujących do ekspertów

Na pewno warto mieć ogolne pojęcie o "wszystkim", tj. podstawach, czyli jak działają bazy, jak działa widok, jak działa obiektowość, narzędzia (system kontroli wersji), czy umiesz pisać ładny i sensowny kod - to podnosi wartość Twojego kodu i zysku jaki ma zespół z Twojego udziału (a gdy ktoś słaby trafia do zespołu, wiadomo, gorszy kod, więcej błędów, więcej pytań niż pomocy, popsuje coś w wielowątkowości czy w GITcie czy w bazie, zespół więcej traci niż zyskuje, chyba że ta osoba szybko się uczy ;)
Popularna wiedza pewnie obejmuje coś od bazy (w korpo prawdopodobnie oracle/ms sql) i technologia (hibernate, jpa) - to przykłady, coś wizualnego- jakiś framework, czy to desktop czy web, w przypadku weba znajomość serwera (np tomcat, jboss) + jak się więcej robi frontend, to html/css/js

Jedną ze ścieżek rozwoju (na daleką przyszość) to project manager, a po ludzku, posiadanie ludzi pod sobą, ogarnianie projektu/terminów, zarządzanie pracą zespołu (czy malutkiego czy większego), albo jeszcze wyżej, architekt (to już bliżej wiedzy eksperckiej, albo wkręcenia się ;)

Wracając do samej Javy, możesz sprawdzić tematykę certyfikatów lub nawet kupić książkę która do takiego przygotowuje (jeśli masz ochotę i chcesz się z tym zapoznać, ale jak pisałem, obstawiałbym większą szansę że przydadzą się technologie)

_________________
używasz Dev-Cpp? tools->editor options -> use tab character (włącz), smart tabs (wyłącz)... albo ściągnij np. Visual Studio C++ free.


Ostatnio zmieniony przez lethern dnia Wto Kwi 12, 2016 11:56 am, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Luke



Dołączył: 17 Cze 2007
Posty: 1893
Skąd: Szczecin

PostWysłany: Wto Kwi 12, 2016 11:54 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Hashedone napisał:
4 lata pracy w danym języku okazało się wszystkim co na ten temat chciano wiedzieć

Zastanawia mnie, czemu często wymagania podane są w latach. Czy chodzi o pracę na etat? Czy im więcej lat, tym większe umiejętności i doświadczenie?

lethern napisał:
więcej pytań niż pomocy, (...) zespół więcej traci niż zyskuje, chyba że ta osoba szybko się uczy ;)

Wydaje mi się, że rzeczywiście jestem osobą, która szybko się uczy, jeśli ma ku temu warunki. Tylko co z tego, skoro w CV będzie to wyglądać sztampowo.

_________________
Moje projekty | Tani hosting
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
lethern



Dołączył: 09 Paź 2007
Posty: 1106

PostWysłany: Wto Kwi 12, 2016 12:00 pm      Temat postu: Odpowiedz z cytatem Pisownia

Luke napisał:
Hashedone napisał:
4 lata pracy w danym języku okazało się wszystkim co na ten temat chciano wiedzieć

Zastanawia mnie, czemu często wymagania podane są w latach.

Ile czasu potrzebje człowiek mający 3 miesiące doświadczenia, żeby dojść do poziomu, który ma osoba mająca 2 lata doświadczenia? Tydzień, miesiąc? No właśnie ; ) Bardzo generalizując, taka osoba potrzebuje roku
Oczywiście ktoś z 2 latami doświadczenia w SQLu może być kompletnym laikiem w kwestiach Java, ale pewne umiejętności mu zostaną (dostrzeganie, rozwiązywanie problemów, myślenie analityczne, googlowanie, komunikacja z zespołem, itd.)

odpowiadając na pytanie, widocznie ilość lat doświadczenia mówi dość dużo, może wydaje się to mało szczegółowe, ale na pewno mówi więcej niż napisanie "brałem udział w projekcie / napisałem aplikację" lub "znam język/technologie" (?) - z tego ciążko wyciągnąć, czy ktoś ma obycie na poziomie 200 godzin zabawy czy 2000 profesjonalnej pracy

_________________
używasz Dev-Cpp? tools->editor options -> use tab character (włącz), smart tabs (wyłącz)... albo ściągnij np. Visual Studio C++ free.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Luke



Dołączył: 17 Cze 2007
Posty: 1893
Skąd: Szczecin

PostWysłany: Wto Kwi 12, 2016 12:07 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Czy chodzi Ci o doświadczenie w dowolnym języku czy w tym z ogłoszenia o pracę, bo trochę się pogubiłem. :)
Jeśli chodzi o dowolny podobny język to się zgodzę.

_________________
Moje projekty | Tani hosting
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Wto Kwi 12, 2016 12:10 pm      Temat postu: Odpowiedz z cytatem Pisownia

Luke napisał:
Zastanawia mnie, czemu często wymagania podane są w latach. Czy chodzi o pracę na etat? Czy im więcej lat, tym większe umiejętności i doświadczenie?

Nie wiem, ale
1) W tym przypadku konkretnym nie było wymagań tego typu w ogóle. Po prostu fakt że takie doświadczenie mam wydawał się wystarczającym potwierdzeniem znajomości języka na poziomie przynajmniej takim, że przez te cztery lata nikt mnie nie zwolnił.
2) Miałem niedawno ofertę pracy jako programista Pythona, wymagania: 2 lata doświadczenia w tym języku. Nie mam ani jednego roku w tym języku, ale nie przeszkadzało to pani rekruterce przekonywać mnie, że to moja nowa praca marzeń - bo będę mógł popracować nad fajnym projektem, a skoro twierdzę że pythona znam, a pracowałem przy innych językach 4 lata, to na pewno sobię poradzę.

Moim zdaniem wszelkie tego typu sformułowania to po prostu ramy. Jeśli masz do zaoferowania "coś w zamian", to fakt że akurat nie pracowałeś w komercyjnym projekcie w danej technologii jest raczej mało znaczący. Oczywiście są firmy, które jak się dowiedzą, że nie masz 4 lat doświadczenia w pracy z dźwiękiem to nie i koniec, choćbyś w domu miał zrobiony od pojedynczego tranzystora sprzęt audio, ale to są rzadkie przypadki.

Natomiast "szybko się uczy" w CV to trochę jak "nie wiem co chcę robić, ale google mówi że jak się tak napisze to dadzą pracę". Zamiast takich nudno brzmiących sloganów, napisz, że hobbystycznie napisałeś jakiś projekt w mniej znanym języku (ważne: musisz móc to udowodnić), w zainteresowaniach zamiast "e-sport i piłka nożna" napisz "zagadnienia związane z symulacją fizyki", czy "architektura oprogramowania" (ważne - trzeba umieć na ten temat powiedzieć coś więcej niż to, że prędkość to całka przyspieszenia w dziedzinie czasu, czy singleton to taki wzorzec projektowy). Jak masz techniczne zainteresowania, a Twoja wiedza nie ogranicza się do znajomości C++ sprzed 20 lat i podstaw Javy, to znaczy że być może faktycznie jesteś człowiek renesans - uczysz się szybko i chętnie. Jeśli zaś twierdzisz że umiesz tylko to co modne, to znaczy że nie masz własnych zainteresowań, do tego prawdopodobnie poszerzanie horyzontów Cię męczy - nawet jeśli uczysz się bardzo szybko, to prawdopodobnie niechętnie.

Takie dobre ćwiczenie dla Ciebie. Mówisz, że nie ciągnęło Cię nigdy do Javy. Odpowiedz sobie na pytanie - dla czego? Bo wydaje Ci się za prosta? Jeśli tak, to czemu nie piszesz wszystkiego w kodzie maszynowym? Każdy język ma wady, każdy ma zalety. I akurat Javy nie znoszę i mogę na temat "czemu" odpowiadać długo. Jak pytanie o to pada na rekrutacji to praktycznie zawsze rekruter przerywa mi niedokończoną wypowiedź. Podobnie z resztą mogę opowiadać o technologiach które lubię. A jak nie znam, to chętnie mogę skomentować jak to dla mnie wygląda na tyle na pierwszy rzut oka. To jest bardzo pożądane przez pracodawcę bo pokazuje, że delikwent chce mieć jak najbardziej ugruntowaną opinię przez zdobywanie wiedzy na temat o który się ociera, a nie "tego nie lubię to zostawię, a to wygląda fajnie to sobie będę używał bez zastanowienia się nad wadami rozwiązania". W prywatnych projektach możesz sobie pisać stronę internetową w Assemblerze, albo sterownik w JavaScripcie bo tak jest fajnie. W biznesie wymaga się od developera nie tyle perfekcyjnej znajomości języka co wszechstronności i umiejętności podejmowania decyzji. Programowanie to nie jest pisanie kodu.

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
marcin_an



Dołączył: 26 Maj 2005
Posty: 18822

PostWysłany: Wto Kwi 12, 2016 1:45 pm      Temat postu: Re: Co (z Javy) jest potrzebne do pracy w korpo Odpowiedz z cytatem Pisownia

Luke napisał:
Tak się zastanawiam, co musiałbym wiedzieć, żeby dostać się do korpo na stanowisko programisty Javy (jeszcze lepiej - nie juniora).
Cokolwiek. Firmy szukają przede wszystkim ludzi na poziomie odpowiadającym technikum informatycznemu, nie ludzi obeznanych z tematem.

Luke napisał:
Do Javy nigdy mnie nie ciągnęło, kojarzy mi się z wielkimi systemami a dla małych wydaje się przerostem formy nad treścią. Niemniej jednak pamiętam, że Pythona zacząłem używać na co dzień po praktykach, na których go wykorzystywałem. Więc może podobnie byłoby z JVM - podróże (zmiany) kształcą.
Biorąc pod uwagę, że Java działa na karcie SIM twojego telefonu i, prawdopodobnie, na twojej karcie płatniczej, to raczej złe skojarzenie (specyfikacja JavaCard). Podobnie jak zapewne pół softu na telefonie masz w Javie. JavaSE spokojnie nie przerasta typowego współczesnego frameworka na desktopy, i Python wcale nie jest tutaj lżejszy, jeśli podołączasz biblioteki potrzebne do zrobienia czegoś użytecznego.

Luke napisał:
Zastanawia mnie, czemu często wymagania podane są w latach. Czy chodzi o pracę na etat? Czy im więcej lat, tym większe umiejętności i doświadczenie
Żeby odstraszyć ludzi, którzy nic nie potrafią. Tak naprawdę nikt nie sprawdza tych lat, jeśli jesteś w stanie wykazać, że coś tam robiłeś samodzielnie.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Java Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.31435 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |