Od Juniora do Seniora: Odpowiedzi na pytania społeczności #5
Wracamy z akcją „Od Juniora do Seniora„, w której Juniorzy zadają pytania doświadczonym kolegom. Przez ostatnie tygodnie zbieraliśmy pytania i szukaliśmy ekspertów, których poprosiliśmy o komentarze mające rozwikłać wszelkie wątpliwości początkujących. W tej odsłonie, juniorzy pytali m.in. o to, czy warto uczyć się tylko najpopularniejszych języków, ale też o to, jak dobrze testować aplikacje mobilne napisane na Androida.
To już piąta odsłona naszego cyklu, który wzbudził Wasze zainteresowanie. W poprzednich częściach, juniorzy zadawali m.in. takie pytania:
1. Co sądzicie o tym, aby aplikacje były napisane tylko na JavaScripcie? Jak często można się spotkać z takimi projektami w firmach? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
2. Co obowiązkowo musi wiedzieć junior front-end developer? Na czym skupić się na początku nauki? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
3. Jak to jest, że na Juniora często wymagane jest dwuletnie doświadczenie w danej technologii? Więc jeśli ktoś nie pracował jeszcze w tej technologii, nie ma szans na nic poza stażem? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
4. Mnie przeraża aktualnie, jak w ofertach Juniorskich na front-end znajduję bardzo często wymaganie np. biegła znajomość PHP? Pytanie, czy ja aplikuję na Full Stacka, czy na Front-End? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
5. Czy celowanie w machine learning ma sens, jeśli z matmą zatrzymałem się na poziomie dobrze zdanej matury rozszerzonej, ale nie miałem jej na studiach? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
6. Na jakim poziomie znajomości JavaScript(ES5, ES6) można zacząć myśleć o nauce pierwszego frameworka (React/Vue/Jquery?)? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
7. Czy jacyś doświadczeni programiści mogą mi coś powiedzieć na temat jQuery? Jest sens uczyć się go, czy może spojrzeć na jakieś inne biblioteki? Odpowiedzi Seniorów na to pytanie znajdziecie tutaj.
Teraz zobaczcie, o co juniorzy pytali w tej edycji, a co jeszcze ciekawsze: zobaczcie, jakie rady dali im starsi koledzy.
Spis treści
Pytanie #1
Szymon Polejowski: Czy warto uczyć się tylko najpopularniejszych języków? Mam na oku C#, ale z tego co widzę najpopularniejszym językiem jest Java. Czy lepiej się przerzucić? Czy są jakieś zalety uczenia się mniej popularnych języków? I czy znając tylko mniej popularne trudnej jest na rynku pracy?
Odpowiada: Jakub Burski, Senior IT Recruiter w IT Kontrakt
Szymonie, co prawda nie jestem programistą, tylko rekruterem, ale mogę Ci powiedzieć jak sprawa wygląda z perspektywy rynku. Otóż w Polsce zapotrzebowanie na programistów jest ogromne i póki co, cały czas rośnie. Oczywistym jest, że specjaliści najpopularniejszych języków, czy nawet szerzej, technologii IT, są częściej poszukiwani, ale widzę, że zapotrzebowanie na technologie “niszowe” także jest spore. Najpopularniejsza Java i wzrastająca popularność JS-a wskazuje dość jasno jakie języki zawsze warto znać, nawet gdy zdecydujesz się na specjalizację w czymś innym. Pozwoli Ci to na znalezienie pracy, nawet gdy z jakiegoś powodu nie znajdziesz dla siebie projektu w technologii niszowej.
Specjalizując się w niszowej/mniej popularnej technologii, według mnie i klientów, z którymi dotychczas pracowałem, na start zarobisz relatywnie tyle, co dev znający Javę/JS-a, ale z czasem i doświadczeniem, szczególnie na poziomie architekta, lub ogólniej SME, zarobki, odpowiedzialność, prestiż, renoma, zapotrzebowanie oraz Twoja moc stawiania warunków współpracy staną się zdecydowanie wyższe. Oczywiście znajdzie się mnóstwo przykładów, które obalą moje słowa, ale poszukując speców znających (nie tylko języki, ale technologie IT ogólniej) AEM-a, Magento, QlikView, CyberArk czy Sailpoint widzę, że warto specjalizować się w jednej czy dwóch niszowych technologiach, ale znać znacznie więcej, także tych popularnych.
Pytanie #2
Mateusz Kozłowski: Jak rekruterzy patrzą na osobę kandydującą na stanowisko juniora we front-endzie, która prowadzi własne kanały typu blog/kanał na YT? Chętniej przyjmuje się taką osobę?
Odpowiada: Justyna Jarosz, HR Operations Executive w Codibly
Jako rekruter mogę odpowiedzieć, że oczywiście to zależy…, bo zależy w jakim temacie prowadzony jest blog/kanał YT. Jeżeli jest to tematyka front-endowa i za pośrednictwem tych kanałów dzielisz się swoją wiedzą/lub udostępniasz portfolio, to jest to tylko na plus w procesie rekrutacji. Zatem zwiększasz swoje szanse na zaproszenie do rekrutacji i pokazanie swoich umiejętności. Natomiast rekruterzy w pierwszej kolejności sprawdzają doświadczenie komercyjne, bo umiejętności to jedno, a praca projektowa to drugie.
Pytanie #3
Krzysiek Snopko: Jak dobrze testować aplikacje na Androidzie? Czy jest jakieś narzędzie, które ułatwi mi testowanie? Chodzi mi o to, bym nie musiał przejść do odpowiedniej aktywności za każdym razem, by zobaczyć co zmieniłem?
Odpowiada: Andrzej Zabost, Android Developer w Bright Inventions
Nie jestem do końca pewien, czego dotyczy pytanie. Z jednej strony może chodzić o pisanie testów automatycznych mających na celu weryfikację poprawności działania aplikacji oraz wykrywanie regresji. Z drugiej strony ostatnie zdanie dotyczy zobaczenia zmian, czyli własnoręcznego przekonania się, jak one w rzeczywistości wyglądają.
Jeśli chodzi o testy automatyczne, to można tutaj zastosować szereg narzędzi i praktyk umożliwiający testowanie pojedynczych klas w kodzie i widoków, m.in.:
- JUnit (framework do testów),
- Mockowanie obiektów (przydatna biblioteka: Mockito),
- Robolectric (umożliwia lokalne wykonanie niektórych testów wymagających instrumentacji, np. testowanie widoków),
- Espresso (testy instrumentowane),
Polecam lekturę tych rozdziałów z dokumentacji:
- https://developer.android.com/studio/test/
- https://developer.android.com/training/testing/fundamentals
Jeśli natomiast chodzi o sprawdzenie działania widoku bez potrzeby przechodzenia do aktywności, to zależy od Twoich potrzeb oraz zależności widoku. W celu lepszego zrozumienia tego problemu, warto zastanowić się, w jaki sposób wyobrażasz sobie uruchomienie i przetestowanie widoku z pominięciem innych aspektów aplikacji, np. pobrania po drodze danych przez sieć z jakiegoś serwisu. Być może trzeba takie dane w jakiś sposób przekazać do aktywności lub je tam tymczasowo zahardkodować.
Niektóre widoki pisane z użyciem XML w Android Studio można podejrzeć w panelu Preview z wykorzystaniem testowych danych. Służy do tego przestrzeń nazw “tools”, np. w przypadku TextView można zastosować atrybut “tools:text”, aby wyświetlić w podglądzie konkretny napis:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns_android="http://schemas.android.com/apk/res/android" xmlns_tools="http://schemas.android.com/tools" android_layout_width="match_parent" android_layout_height="match_parent" android_orientation="vertical"> <TextView tools_text="testowy napis" android_layout_width="wrap_content" android_layout_height="wrap_content" />
Inny sposób to uruchamianie wybranej aktywności z konsoli:
$ adb shell am start-activity <application_ID>/<kwalifikowana_nazwa_klasy_aktywności>
np.:
$ adb shell am start-activity com.azabost.app.debug/com.azabost.app.login.EmailLoginActivity
Aby to było możliwe, należy w AndroidManifest.xml dodać do wybranej aktywności (tymczasowo lub za pomocą mechanizmu “manifest placeholders”: przykład) atrybut android_exported=”true”. Warto pamiętać, że application ID może być różne w zależności od zbudowanego wariantu aplikacji.
Ostatni sposób to tymczasowe ustawienie danej aktywności jako główna w AndroidManifest.xml, aby skrócić sobie do niej nawigację.
Pytanie #4
Marcin Wróblewski: Dlaczego jest teraz tyle ofert dla PHP developerów? Szukają każdego: juniorów, seniorów, zdalnie, na miejscu — bez różnicy. W takim przypadku warto uczyć się jakiegoś Symphony czy innego Laravela?
Odpowiada: Maciej Płocki, Senior Software Developer w KISS digital
Pomimo wielu żartów z PHP, technologia ta jest obecnie bardzo dojrzała i pozwala na szybkie tworzenie oprogramowania, poprzez bazowanie na nowoczesnych frameworkach i masie gotowych bibliotek, co coraz częściej sprowadza się do budowania z gotowych klocków. Symfony i Laravel to chyba najpopularniejsze obecnie frameworki, nadające się do pisania zarówno małych, jak i wielkich aplikacji. Jeśli więc jesteś zainteresowany pracą jako programista PHP — na pewno warto się ich uczyć. Szczególnie, że na programistów znających te właśnie technologie jest obecnie duże zapotrzebowanie, jak zresztą sam zauważyłeś.
Pytanie #5
Anna Kolisz: Jak zwiększyć swoje szanse podczas rekrutacji, jeżeli się nie ma doświadczenia komercyjnego? Mam wrażenie, że jak tego punktu nie ma w CV, to nawet nikt nie zagląda na mojego githuba.
Odpowiada: Aleksandra Bralczyk, IT Rekruter w Netcompany
Anno, kiedy nie masz doświadczenia komercyjnego, z perspektywy rekrutera IT ważne są także projekty, w których brałaś czynny udział na studiach. Warto szczerze napisać jakich technologii wówczas używałaś, czego się nauczyłaś. Pamiętaj jednak, że umieszczenie technologii w CV może zainspirować do zadawania związanych z nią pytań podczas rozmowy rekrutacyjnej, dlatego warto robić to w zgodzie ze sobą.
Ponadto, w dowolnym miejscu swojej CVki warto też zaznaczyć, który kierunek rozwoju najbardziej Cię interesuje i co robisz w tej chwili, aby to osiągnąć (kursy, prelekcje, w których brałaś udział itp.). Bardzo ważna jest aktywność w środowisku, które oferuje nieskończone możliwości!
Odnosząc się jeszcze do samego GitHuba: pamiętaj, aby dokładnie go zrewidować. Czy jesteś dumna z jego zawartości? Czy rzeczy, które tam są pokazują w pełni Twoje możliwości i wiedzę? Może warto w wolnym czasie napisać coś bardziej skomplikowanego?
Jako IT Rekruter często podsyłam developerom, z którymi współpracuję, linki do kont juniorskich na GitHubie. Zawartość wielu takich kont wymaga poprawek pod kątem czystości kodu, czy małych błędów. Warto więc zawsze dokładnie sprawdzić swoje repo przed udostępnieniem. Może wydać się to prosta rada, ale GitHub jest bardzo ważnym narzędziem rekrutacji szczególnie w momencie, kiedy nie mamy jeszcze doświadczenia komercyjnego. Sprawmy, aby był naszą najlepszą wizytówką.
Cykl „Od Juniora do Seniora” (poprzednie części znajdziecie tutaj: 1, 2, 3 i 4) tworzymy razem z Wami, dlatego czekamy na kolejne pytania, które możemy zadać seniorom. Zamieście je w komentarzach albo wyślijcie na adres piotr@justjoin.it, a najciekawsze trafią do szóstej części cyklu.