Zgodnie z zapowiedzią odpowiadamy na kolejne Wasze pytania :) Zachęcamy do lektury i zadawania kolejnych pytań w komentarzu / poprzez maila!
Zebraliśmy Wasze pytania z Facebooka, maili i komentarzy pod wpisami, postaramy się odpowiedzieć na wszystkie! Poprzednią serię Q&A przeczytasz tutaj.
Co polecacie, żeby skutecznie ‘wylogować się’ z jednej branży (wymagającej myślenia nie do końca inżynierskiego’) do drugiej?
Karolina: Dopóki pracowałam jako tłumaczka, miałam problem z “elastycznością” myślenia w ciągu dnia, tzn. wyłączeniu intuicji i rozmytych granic poprawności, a włączeniu myślenia analitycznego, “inżynierskiego” i zakuwania metod :) Co polecacie, żeby skutecznie wylogować się z jednej branży do drugiej?
Moje typy:
- trochę lekkich ćwiczeń (więcej niż rower, ale mniej niż crossfit :D)
- gierka 2048 (uwaga, uzależnia)
- zaczęcie nauki od obejrzenia tutorialu (ew. udanego skryptu) z poprzedniego dnia, a potem nauka nowości
Ania: Pytanie ważne i myślę, że jednak swobodnie można rozszerzyć je o to, jak skutecznie przełączyć się pomiędzy dwoma projektami w pracy.
Myslę, że kluczowe jest po prostu: przełączenie się — nie da się/ lub jest to bardzo ciężkie pracować nad dwoma innymi rzeczami jednocześnie. Zazwyczaj znacznie lepiej sprawdza się jasny podział takiej pracy i oddzielenie jej przerwą na przełączenie.
Do sposobów poleconych przez Karolinę możemy dodać:
- spacer
- kawa (taka samotnie spędzona lub na gadaniu o pierdołach)
- zmiana otoczenia (np. jedną rzeczą zajmuje się w kuchni, drugą przy biurku i są to takie stałe miejsca do robienia tych określonych rzeczy, do jednej słucham muzyki do drugiej nie itp.)
- planowanie co w ramach poszczególnych rzeczy ma się robić — łatwiej zająć się czymś konkretnym niż po prostu “pracować”
Angielski dla programistów (bardzo przyszłych). Moja przerwa w używaniu języka była tak długa, że czuję się sfrustrowana swoją niewiedzą:/ Co poradzisz w tej kwestii?
Ania: Angielski jest niezbędny do swobodnej pracy w IT — po prostu to język branży, język w jakim tworzy się dokumentacje, a także kod. Warto więc powtórzyć podstawy, bez nich sporo będzie Cię omijać, poleganie tylko na polskich źródłach w nauce po prostu może być trudne, a czekanie na wydanie przetłumaczonych (często bardzo słabo) programistycznych książek, żmudne.
Na szczęście — dokumentacja czy książki o IT nie są pisane niewiadomojak wydumanym językiem z czasów Szekspira, a raczej plain english, więc nie ma co się stresować, że język musi być na bardzo wysokim poziomie. Po podszkoleniu podstaw warto po prostu uzupełnić swój słowik o słówka ściśle związane z programowaniem, ale śmiało można to już robić podczas nauki samego programowania — tłumacząć sobie nieznane słówka z materiałów po angielsku. Jeśli nie czujesz się mocno z językiem obcym, poszukaj sobie kursu/książki do programowania w języku polskim i niech to będzie Twoje głowne źródło wiedzy — którą będziesz uzupełniać o teksty w języku obcym — to powinno zwiększyć komfort nauki.
Z ciekawostek, ostatnio trafiliśmy na kurs języka angielskiego dla informatyków. Zainteresowanych odsyłamy do tych kilku opublikowanych już lekcji.
Od czego najlepiej zacząć naukę programowania?
Kuba: Przede wszystkim od jej zaplanowania i wyznaczenia sobie celów (więcej o tym we wpisie podlinkowanym w pierwszym pytaniu). Inaczej będzie wyglądała nauka, jeśli chcesz się przebranżowić, a inaczej jeśli planujesz traktować programowanie jako pasję. Odpowiedz sobie przede wszystkim na poniższe pytania:
- Dlaczego uczę się programować? Co chce osiągnąć w określonym czasie?
- Ile mam na to czasu — zarówno takiego kalendarzowego, jak i po prostu czasu wolnego w tygodniu, kiedy możesz się skupić na nauce?
- Czy znam kogoś, kto mi pomoże — czy znasz programistę, który może pomóc Ci w nauce?
W zależności od odpowiedzi, może być kilka dróg do wyboru:
- samodzielna nauka z książek i opanowanie języka ‘w całości’ — ta droga jest właściwa jeśli nie masz się od kogo uczyć lub programowanie traktujesz jako hobby albo zamierzasz pracować w odległej przyszłości i masz sporo wolnego czasu na codzień — wybór języka programowania jest w tej ścieżce mniejszym problemem, znając dogłębnie jeden język nauczenie się innego jest trywialne. Warto zacząć od książek takich jak np. Thinking in Java czy Symfonia C++, a następnie poszukać online kursów czy książek dotyczących struktur danych i algorytmów
- samodzielna nauka z kursów i tutoriali o wąskim zakresie (np. kurs na naszym blogu) — ta ścieżka jest dla Ciebie jeśli planujesz się przebranżowić w perspektywie miesięcy / do 2 lat lub masz niewiele wolnego czasu na naukę — ideą naszego kursu jest zapoznanie Cię z minimalną wiedzą potrzebną do rozpoczęcia pracy w branży IT w sposób praktyczny. Musisz się liczyć z tym, że po rozpoczęciu pracy będziesz musiała uzupełnić swoją wiedzę, m.in. na temat struktur danych czy mniej ‘popularnych’ technologii i elementów języka. Język programowania ma tutaj duże znaczenie — w popularnych językach nie tylko łatwiej znaleźć pomoc czy materiały, ale łatwiej także o znalezienie pierwszej pracy. Java, C# czy PHP (jeśli interesuje Cię bardziej frontendowa strona programowania) to języki, którym warto się przyjrzeć bliżej
- nauka z pomocą znajomego/członka rodziny/mentora — jeżeli ktoś zgodzi się pomóc Ci w nauce programowania, warto skorzystać z jego doświadczenia — nie tylko pomoże Ci ‘okroić’ zakres materiału pod kątem tego, czego używa się na codzień, ale będzie mógł także pomóc i pokazać rozwiązanie kiedy utkniesz — pozwoli to uniknąć frustracji. Taka osoba może też pomóc znaleźć Ci pierwszą pracę dzięki kontaktom i znajomością, które ma w branży
Więcej wskazówek związanych z rozpoczęciem nauki programowania znajdziesz poniżej:
Jakiejkolwiek ścieżki byś nie wybrała, upewnij się, że chcesz to robić i masz w sobie siłę i zacięcie, aby to dokończyć — podczas nauki wiele razy poczujesz frustrację i bezsilność, sama praca — choć niezwykle ciekawa i pełna wyzwań — ma także elementy nieciekawe i frustrujące (w końcu każdy zawód takie posiada). Przeczytaj wywiady w cyklu Kulisy branży i zastanów się, czy taka praca Ci odpowiada. Jeśli tak — trzymamy kciuki!
Czy studia są potrzebne do pracy jako programista?
Kuba: Bardzo uproszczona odpowiedź brzmi nie, studia nie są potrzebne, aby pracować jako programista.
Studia informatyczne nie dadzą Ci wiedzy praktycznej — nauczą Cię masy teorii, z której większość nie będziesz potrzebować na codzień, a część okaże się wręcz nieprawdziwa w konfrontacji z rzeczywistością.
Z drugiej strony studia są dla pierwszego pracodawcy właściwie jedynym sposobem zweryfikowania wiedzy kandydata — wielu pracodawców nie zaprosi Cię na rozmowę jeśli nie będziesz posiadała ukończonych studiów lub doświadczenia. Oczywiście nie jest to niemożliwe — ale po prostu trudniejsze. Doświadczenie można zdobyć tworząc własną aplikację i publikując ją w sieci lub pracując na zlecenia w portalach takich jak freelance.com czy elance.com — jest to jednak proces długotrwały i (dla osób początkujących) raczej niedochodowy (aby ‘wygrać’ zlecenie nie mając udokumentowanego doświadczenia, musisz zaoferować odpowiednio niskie stawki).
Studia mogą dać także jeszcze jedną rzecz — kontakty i możliwości. Wiele firm współpracuje z uczelniami, a udzielając się w organizacjach studenckich możesz poznać masę ciekawych ludzi, co w przyszłości może ułatwić Ci znalezienie pracy. Nie są to jednak rzeczy powiązane ściśle z kierunkiem nauki…
Jeśli planujesz karierę jako programista i stoisz przed wyborem czy iść na studia czy nie, nasza rada to jak najbardziej iść! Z tym, że niekoniecznie na informatykę, a na kierunek który Cię interesuje, sprawia przyjemność i nie będzie angażował Cię na 100% (tak, abyś mogła uczyć się programowania samodzielnie i zdobywać doświadczenie). 5 lat to wystarczająco długo, aby nauczyć się programować, stworzyć kilka aplikacji, współpracować z kilkoma firmami czy odbyć kilka staży — także studiując inny kierunek niż informatyka. Ale pamiętaj, że to tylko nasza sugestia i może nie być adekwatna do Twojej sytuacji — musisz sama rozważyć wszystkie ‘za’ i ‘przeciw’.
Chciałabym pracować w IT, ale nie wiem czy programowanie jest moją pasją?
Kuba: Prosta odpowiedź to: nie dowiesz się, dopóki nie spróbujesz ;) A na poważnie — podstawy programowania np. w Pythonie można opanować w kilka godzin na różnego rodzaju portalach do nauki online. Jeśli nie jesteś pewna, czy Ci się to spodoba — poświęć jeden weekend, żeby spróbować krok po kroku napisać prostą aplikację z takim kursem (często wymagają jedynie przeglądarki i dostępu do internetu), poczytać wywiady z programistami na temat ich pracy lub spotkać się na kawie ze znajomym programistą! Dzięki temu będziesz wiedziała, czy sprawia Ci to jakąkolwiek przyjemność oraz czy ciekawi i interesuje Cię to.
Pamiętaj też, że IT to nie tylko programowanie — jest wiele innych ścieżek kariery, które być może Ci się spodobają. Jeśli wybierzesz którąś (na blogu znajdziesz także listę i opis kilku popularnych ścieżek kariery w branży IT) — warto ponownie poświęcić weekend na sprawdzenie, czy jest to dla Ciebie. Jeśli po takim ćwiczeniu nadal nie jesteś przekonana — być może IT po prostu nie jest czymś, co sprawia Ci przyjemność. Nauka programowania czy przebranżowienie ogólnie wymaga masę pracy i czasu — dlatego upewnij się, że możesz być zadowolona ze zmiany w przyszłości :)
Jak przygotować się do certyfikatu z programowania?
Kuba: przede wszystkim zastanów się, dlaczego podchodzisz do certyfikatu? Jeśli robisz to dla sprawdzenia własnej wiedzy i uzupełnienia jej po drodze, skup się bardziej na praktyce — zadaniach związanych z każdym z zagadnień, spróbuj samodzielnie odpowiedzieć na pytania i opisać zagadnienia certyfikacyjne (wariacja metody Rubber Duck Programming). Jeśli jednak celem certyfikacji jest potwierdzenie swoich kwalifikacji przed potencjalnym pracodawcą ‘na szybko’ (czego oczywiście nie polecamy, ale czasem sytuacja może tego wymagać), lepiej skupić się na próbnych egzaminach i oficjalnych książkach pod dany certyfikat. W każdej z tych opcji warto zwrócić uwagę na:
- przykładowe egzaminy — pytania z przykładowych egzaminów często dość dobrze oddają ‘charakter’ zadań na oficjalnym egzaminie i w wielu przypadkach się powtarzają z rzeczywistym testem (oczywiście użyte słowa czy konstrukcja zdania są różne, ale pytają o tą samą wiedzę); przed faktycznym egzaminym warto sprawdzić się w 2–3 testach (takich, których jeszcze nie widziałaś na oczy wcześniej!) w ramach weryfikacji swojej wiedzy
- książki — niemal do każdego egzaminu (a już na pewno do tych z Javy) można znaleźć oficjalne książki, które omawiają zagadnienia krok po kroku; nie są one idealne do nauki programowania/technologii, ale są świetne do powtórzenia sobie i sprawdzenia, czego nie znamy. Miej na uwadze, że te książki najczęściej zawierają wszystko — w zależności od poziomu egzaminu, ilość informacji, które musisz się nauczyć, żeby zaliczyć z porządnym wynikiem to 40–70% całości
- fora i społeczności — w internecie znajdziesz wiele miejsc, gdzie ludzie dzielą się doświadczeniami z egzaminów, dyskutują nad pytaniami (gdy mają wątpliwości, dlaczego dana odpowiedź była poprawna) — przykładem jest np. javaranch, która posiada dedykowane fora dla różnych egzaminów (np. OCJP)
- oficjalne ‘reference guide’ — to kolejne cenne źródło informacji niekoniecznie użytecznych na codzień, ale kluczowych w przypadku podchodzenia do egzaminu — tego typu dokumenty często opisują wszystkie aspekty danego zaganienia, skrajne przypadki, zastosowanie itp — poza książką do danego certyfikatu jest to wręcz obowiązkowa lektura ;)
Czy na blogu pojawią się technologie inne niż Java?
Ania: I tak, i nie :) Java to nasz główny obszar działalności na blogu ponieważ oboje programujemy w tym języku na codzień, czyli ja mam w nim już 2 lata doświadczenia, a Kuba 9. A że chcemy, by nasze teksty były merytoryczne, praktyczne i poparte doświadczeniem i faktyczną wiedzą — Java jest technologią numer jeden na blogu. Z drugiej strony, w naszej pracy spotykamy się z innymi językami, w których od czasu do czasu robimy jakieś drobnostki np. : Ruby, Angular, JS, stąd być może opublikujemy kilka wpisów na temat innych technologii czy języków, jednak bardziej jako dodatek, czy praktyczne zastosowanie dla programisty Javy niżli pełny kurs programowania w zupełnie innym języku.