#02 Q&A – pytacie, a my odpowiadamy

By 24 lipca 2016ITlogy

Zgod­nie z zapowiedz­ią odpowiadamy na kole­jne Wasze pyta­nia :) Zachę­camy do lek­tu­ry i zadawa­nia kole­jnych pytań w komen­tarzu / poprzez maila!

Zebral­iśmy Wasze pyta­nia z Face­booka, maili i komen­tarzy pod wpisa­mi, postaramy się odpowiedzieć na wszys­tkie! Poprzed­nią ser­ię Q&A przeczy­tasz tutaj.

Jak się uczyć żeby się nauczyć? Co polecacie dla początkujących?

Ania: Napisal­iśmy o tym ser­ię trzech tek­stów:

O wyz­nacza­niu celów

Planowanie pra­cy

Jak wspier­ać siebie w nauce?

Najważniesze, to jas­no określić po co Ci pro­gramowanie — dzię­ki temu znacznie lep­iej będziesz mogła dopa­sować to czego się uczyć, a także w jakim tem­pie.

Co polecacie, żeby skutecznie ‘wylogować się’ z jednej branży (wymagającej myślenia nie do końca inżynierskiego’) do drugiej?

Karoli­na: Dopó­ki pra­cow­ałam jako tłu­macz­ka, miałam prob­lem z “elasty­cznoś­cią” myśle­nia w ciągu dnia, tzn. wyłącze­niu intu­icji i rozmy­tych granic poprawnoś­ci, a włącze­niu myśle­nia anal­i­ty­cznego, “inżynier­skiego” i zakuwa­nia metod :) Co pole­ca­cie, żeby skutecznie wyl­o­gować się z jed­nej branży do drugiej?

Moje typy:

  •  trochę lek­kich ćwiczeń (więcej niż row­er, ale mniej niż cross­fit :D)
  • gier­ka 2048 (uwa­ga, uza­leż­nia)
  • zaczę­cie nau­ki od obe­jrzenia tuto­ri­alu (ew. udanego skryp­tu) z poprzed­niego dnia, a potem nau­ka nowoś­ci

Ania: Pytanie ważne i myślę, że jed­nak swo­bod­nie moż­na rozsz­erzyć je o to, jak skutecznie przełączyć się pomiędzy dwoma pro­jek­ta­mi w pra­cy.

Mys­lę, że kluc­zowe jest po pros­tu: przełącze­nie się — nie da się/ lub jest to bard­zo ciężkie pra­cow­ać nad dwoma inny­mi rzecza­mi jed­nocześnie. Zazwyczaj znacznie lep­iej sprawdza się jas­ny podzi­ał takiej pra­cy i odd­zie­le­nie jej prz­er­wą na przełącze­nie.

Do sposobów pole­conych przez Karolinę może­my dodać:

  • spac­er
  • kawa (taka samot­nie spęd­zona lub na gada­niu o pier­dołach)
  • zmi­ana otoczenia (np. jed­ną rzeczą zaj­mu­je się w kuch­ni, drugą przy biurku i są to takie stałe miejs­ca do robi­enia tych określonych rzeczy, do jed­nej słucham muzy­ki do drugiej nie itp.)
  • planowanie co w ramach poszczegól­nych rzeczy ma się robić — łatwiej zająć się czymś konkret­nym niż po pros­tu “pra­cow­ać”

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: Ang­iel­s­ki jest niezbęd­ny do swo­bod­nej pra­cy w IT — po pros­tu to język branży, język w jakim tworzy się doku­men­tac­je, a także kod. Warto więc powtórzyć pod­stawy, bez nich sporo będzie Cię omi­jać, pole­ganie tylko na pol­s­kich źródłach w nauce po pros­tu może być trudne, a czekanie na wydanie przetłu­mac­zonych (częs­to bard­zo słabo) pro­gramisty­cznych książek, żmudne.

Na szczęś­cie — doku­men­tac­ja czy książ­ki o IT nie są pisane niewiado­mo­jak wydu­manym językiem z cza­sów Szek­spi­ra, a raczej plain eng­lish, więc nie ma co się stre­sować, że język musi być na bard­zo wysokim poziomie. Po pod­szkole­niu pod­staw warto po pros­tu uzu­pełnić swój słowik o słówka ściśle związane z pro­gramowaniem, ale śmi­ało moż­na to już robić pod­czas nau­ki samego pro­gramowa­nia — tłu­macząć sobie niez­nane słówka z mate­ri­ałów po ang­iel­sku. Jeśli nie czu­jesz się moc­no z językiem obcym, poszukaj sobie kursu/książki do pro­gramowa­nia w języku pol­skim i niech to będzie Two­je głowne źródło wiedzy — którą będziesz uzu­peł­ni­ać o tek­sty w języku obcym — to powin­no zwięk­szyć kom­fort nau­ki.

Z cieka­wostek, ostat­nio trafil­iśmy na kurs języ­ka ang­iel­skiego dla infor­matyków. Zain­tere­sowanych odsyłamy do tych kilku opub­likowanych już lekcji.

Od czego najlepiej zacząć naukę programowania?

Kuba: Przede wszys­tkim od jej zaplanowa­nia i wyz­naczenia sobie celów (więcej o tym we wpisie podlinkowanym w pier­wszym pyta­niu). Inaczej będzie wyglą­dała nau­ka, jeśli chcesz się prze­branżow­ić, a inaczej jeśli planu­jesz trak­tować pro­gramowanie jako pasję. Odpowiedz sobie przede wszys­tkim na poniższe pyta­nia:

  • Dlaczego uczę się pro­gramować? Co chce osiągnąć w określonym cza­sie?
  • Ile mam na to cza­su — zarówno takiego kalen­dar­zowego, jak i po pros­tu cza­su wol­nego w tygod­niu, kiedy możesz się skupić na nauce?
  • Czy znam kogoś, kto mi pomoże — czy znasz pro­gramistę, który może pomóc Ci w nauce?

W zależnoś­ci od odpowiedzi, może być kil­ka dróg do wyboru:

  • samodziel­na nau­ka z książek i opanowanie języ­ka ‘w całoś­ci’ — ta dro­ga jest właś­ci­wa jeśli nie masz się od kogo uczyć lub pro­gramowanie trak­tu­jesz jako hob­by albo zamierza­sz pra­cow­ać w odległej przyszłoś­ci i masz sporo wol­nego cza­su na codzień — wybór języ­ka pro­gramowa­nia jest w tej ścieżce mniejszym prob­le­mem, zna­jąc dogłęb­nie jeden język naucze­nie się innego jest try­wialne. Warto zacząć od książek takich jak np. Think­ing in Java czy Sym­fo­nia C++, a następ­nie poszukać online kursów czy książek doty­czą­cych struk­tur danych i algo­ryt­mów
  • samodziel­na nau­ka z kursów i tuto­ri­ali o wąskim zakre­sie (np. kurs na naszym blogu) — ta ścież­ka jest dla Ciebie jeśli planu­jesz się prze­branżow­ić w per­spek­ty­wie miesię­cy / do 2 lat lub masz niewiele wol­nego cza­su na naukę — ideą naszego kur­su jest zapoz­nanie Cię z min­i­mal­ną wiedzą potrzeb­ną do rozpoczę­cia pra­cy w branży IT w sposób prak­ty­czny. Musisz się liczyć z tym, że po rozpoczę­ciu pra­cy będziesz musi­ała uzu­pełnić swo­ją wiedzę, m.in. na tem­at struk­tur danych czy mniej ‘pop­u­larnych’ tech­nologii i ele­men­tów języ­ka. Język pro­gramowa­nia ma tutaj duże znacze­nie — w pop­u­larnych językach nie tylko łatwiej znaleźć pomoc czy mate­ri­ały, ale łatwiej także o znalezie­nie pier­wszej pra­cy. Java, C# czy PHP (jeśli intere­su­je Cię bardziej fron­tendowa strona pro­gramowa­nia) to języ­ki, którym warto się przyjrzeć bliżej
  • nau­ka z pomocą znajomego/członka rodziny/mentora — jeżeli ktoś zgodzi się pomóc Ci w nauce pro­gramowa­nia, warto sko­rzys­tać z jego doświad­czenia — nie tylko pomoże Ci ‘okroić’ zakres mate­ri­ału pod kątem tego, czego uży­wa się na codzień, ale będzie mógł także pomóc i pokazać rozwiązanie kiedy utkniesz — poz­woli to uniknąć frus­tracji. Taka oso­ba może też pomóc znaleźć Ci pier­wszą pracę dzię­ki kon­tak­tom i zna­jo­moś­cią, które ma w branży

Więcej wskazówek związanych z rozpoczę­ciem nau­ki pro­gramowa­nia zna­jdziesz poniżej:

FAQ – chcę zacząć pro­gramować

Jakiejkol­wiek ścież­ki byś nie wybrała, upewnij się, że chcesz to robić i masz w sobie siłę i zacię­cie, aby to dokończyć — pod­czas nau­ki wiele razy poczu­jesz frus­trację i bezsil­ność, sama pra­ca — choć niezwyk­le ciekawa i peł­na wyzwań — ma także ele­men­ty nieciekawe i frus­tru­jące (w końcu każdy zawód takie posi­a­da). Przeczy­taj wywiady w cyk­lu Kulisy branży i zas­tanów się, czy taka pra­ca Ci odpowia­da. Jeśli tak — trzy­mamy kciu­ki!

Czy studia są potrzebne do pracy jako programista?

Kuba: Bard­zo uproszc­zona odpowiedź brz­mi nie, stu­dia nie są potrzeb­ne, aby pra­cow­ać jako pro­gramista.

Stu­dia infor­maty­czne nie dadzą Ci wiedzy prak­ty­cznej — nauczą Cię masy teorii, z której więk­szość nie będziesz potrze­bować na codzień, a część okaże się wręcz nieprawdzi­wa w kon­frontacji z rzeczy­wis­toś­cią.

Z drugiej strony stu­dia są dla pier­wszego pra­co­daw­cy właś­ci­wie jedynym sposobem zwery­fikowa­nia wiedzy kandy­da­ta — wielu pra­co­daw­ców nie zaprosi Cię na roz­mowę jeśli nie będziesz posi­adała ukońc­zonych studiów lub doświad­czenia. Oczy­wiś­cie nie jest to niemożli­we — ale po pros­tu trud­niejsze. Doświad­cze­nie moż­na zdobyć tworząc włas­ną aplikację i pub­liku­jąc ją w sieci lub pracu­jąc na zlece­nia w por­ta­lach takich jak freelance.com czy elance.com — jest to jed­nak pro­ces dłu­gotr­wały i (dla osób początku­ją­cych) raczej niedo­chodowy (aby ‘wygrać’ zlece­nie nie mając udoku­men­towanego doświad­czenia, musisz zaofer­ować odpowied­nio niskie staw­ki).

Stu­dia mogą dać także jeszcze jed­ną rzecz — kon­tak­ty i możli­woś­ci. Wiele firm współpracu­je z uczel­ni­a­mi, a udziela­jąc się w orga­ni­za­c­jach stu­denc­kich możesz poz­nać masę ciekawych ludzi, co w przyszłoś­ci może ułatwić Ci znalezie­nie pra­cy. Nie są to jed­nak rzeczy pow­iązane ściśle z kierunk­iem nau­ki…

Jeśli planu­jesz kari­erę jako pro­gramista i stoisz przed wyborem czy iść na stu­dia czy nie, nasza rada to jak najbardziej iść! Z tym, że niekoniecznie na infor­matykę, a na kierunek który Cię intere­su­je, spraw­ia przy­jem­ność i nie będzie angażował Cię na 100% (tak, abyś mogła uczyć się pro­gramowa­nia samodziel­nie i zdoby­wać doświad­cze­nie). 5 lat to wystar­cza­ją­co dłu­go, aby nauczyć się pro­gramować, stworzyć kil­ka aplikacji, współpra­cow­ać z kilko­ma fir­ma­mi czy odbyć kil­ka staży — także studi­u­jąc inny kierunek niż infor­maty­ka. Ale pamię­taj, że to tylko nasza sug­es­tia i może nie być adek­wat­na do Two­jej sytu­acji — musisz sama rozważyć wszys­tkie ‘za’ i ‘prze­ciw’.

Chciałabym pracować w IT, ale nie wiem czy programowanie jest moją pasją?

Kuba: Pros­ta odpowiedź to: nie dowiesz się, dopó­ki nie spróbu­jesz ;) A na poważnie — pod­stawy pro­gramowa­nia np. w Pythonie moż­na opanować w kil­ka godzin na różnego rodza­ju por­ta­lach do nau­ki online. Jeśli nie jesteś pew­na, czy Ci się to spodo­ba — poświęć jeden week­end, żeby spróbować krok po kroku napisać prostą aplikację z takim kursem (częs­to wyma­ga­ją jedynie przeglą­dar­ki i dostępu do inter­ne­tu), poczy­tać wywiady z pro­gramis­ta­mi na tem­at ich pra­cy lub spotkać się na kaw­ie ze zna­jomym pro­gramistą! Dzię­ki temu będziesz wiedzi­ała, czy spraw­ia Ci to jakąkol­wiek przy­jem­ność oraz czy ciekawi i intere­su­je Cię to.

Pamię­taj też, że IT to nie tylko pro­gramowanie — jest wiele innych ścieżek kari­ery, które być może Ci się spodoba­ją. Jeśli wybierzesz którąś (na blogu zna­jdziesz także listę i opis kilku pop­u­larnych ścieżek kari­ery w branży IT) — warto ponown­ie poświę­cić week­end na sprawdze­nie, czy jest to dla Ciebie. Jeśli po takim ćwicze­niu nadal nie jesteś przeko­nana — być może IT po pros­tu nie jest czymś, co spraw­ia Ci przy­jem­ność. Nau­ka pro­gramowa­nia czy prze­branżowie­nie ogól­nie wyma­ga masę pra­cy i cza­su — dlat­ego upewnij się, że możesz być zad­owolona ze zmi­any w przyszłoś­ci :)

Jak przygotować się do certyfikatu z programowania?

Kuba: przede wszys­tkim zas­tanów się, dlaczego pod­chodzisz do cer­ty­fikatu? Jeśli robisz to dla sprawdzenia włas­nej wiedzy i uzu­pełnienia jej po drodze, skup się bardziej na prak­tyce — zada­ni­ach związanych z każdym z zagad­nień, spróbuj samodziel­nie odpowiedzieć na pyta­nia i opisać zagad­nienia cer­ty­fika­cyjne (wari­ac­ja metody Rub­ber Duck Pro­gram­ming). Jeśli jed­nak celem cer­ty­fikacji jest potwierdze­nie swoich kwal­i­fikacji przed potenc­jal­nym pra­co­daw­cą ‘na szy­bko’ (czego oczy­wiś­cie nie pole­camy, ale cza­sem sytu­ac­ja może tego wyma­gać), lep­iej skupić się na prób­nych egza­m­i­nach i ofic­jal­nych książkach pod dany cer­ty­fikat. W każdej z tych opcji warto zwró­cić uwagę na:

  • przykład­owe egza­miny — pyta­nia z przykład­owych egza­m­inów częs­to dość dobrze odd­a­ją ‘charak­ter’ zadań na ofic­jal­nym egza­minie i w wielu przy­pad­kach się pow­tarza­ją z rzeczy­wistym testem (oczy­wiś­cie użyte słowa czy kon­strukc­ja zda­nia są różne, ale pyta­ją o tą samą wiedzę); przed fak­ty­cznym egza­minym warto sprawdz­ić się w 2–3 tes­tach (takich, których jeszcze nie widzi­ałaś na oczy wcześniej!) w ramach wery­fikacji swo­jej wiedzy
  • książ­ki — niemal do każdego egza­minu (a już na pewno do tych z Javy) moż­na znaleźć ofic­jalne książ­ki, które omaw­ia­ją zagad­nienia krok po kroku; nie są one ide­alne do nau­ki programowania/technologii, ale są świetne do powtórzenia sobie i sprawdzenia, czego nie znamy. Miej na uwadze, że te książ­ki najczęś­ciej zaw­ier­a­ją wszys­tko — w zależnoś­ci od poziomu egza­minu, ilość infor­ma­cji, które musisz się nauczyć, żeby zal­iczyć z porząd­nym wynikiem to 40–70% całoś­ci
  • fora i społecznoś­ci — w internecie zna­jdziesz wiele miejsc, gdzie ludzie dzielą się doświad­czeni­a­mi z egza­m­inów, dysku­tu­ją nad pyta­ni­a­mi (gdy mają wąt­pli­woś­ci, dlaczego dana odpowiedź była popraw­na) — przykła­dem jest np. javaranch, która posi­a­da dedykowane fora dla różnych egza­m­inów (np. OCJP)
  • ofic­jalne ‘ref­er­ence guide’ — to kole­jne cenne źródło infor­ma­cji niekoniecznie użytecznych na codzień, ale kluc­zowych w przy­pad­ku pod­chodzenia do egza­minu — tego typu doku­men­ty częs­to opisu­ją wszys­tkie aspek­ty danego zaganienia, skra­jne przy­pad­ki, zas­tosowanie itp — poza książką do danego cer­ty­fikatu jest to wręcz obow­iązkowa lek­tu­ra ;)

Czy na blogu pojawią się technologie inne niż Java?

Ania: I tak, i nie :) Java to nasz główny obszar dzi­ałal­noś­ci na blogu ponieważ obo­je pro­gra­mu­je­my w tym języku na codzień, czyli ja mam w nim już 2 lata doświad­czenia, a Kuba 9. A że chce­my, by nasze tek­sty były mery­to­ryczne, prak­ty­czne i poparte doświad­cze­niem  i fak­ty­czną wiedzą — Java jest tech­nologią numer jeden na blogu.  Z drugiej strony, w naszej pra­cy spo­tykamy się z inny­mi języka­mi, w których od cza­su do cza­su robimy jakieś drob­nos­t­ki np. : Ruby, Angu­lar, JS, stąd być może opub­liku­je­my kil­ka wpisów na tem­at innych tech­nologii czy języków, jed­nak bardziej jako dodatek, czy prak­ty­czne zas­tosowanie dla pro­gramisty Javy niżli pełny kurs pro­gramowa­nia w zupełnie innym języku.

Chcemy więcej!

Z przy­jem­noś­cią odpowiemy na Wasze pyta­nia — jeśli masz jakieś wąt­pli­woś­ci związane z blo­giem, nauką pro­gramowa­nia czy prze­branżowie­niem się — napisz w komen­tarzu lub na FB, postaramy się odpowiedzieć!

  •  
  •  
  •  
  •  
  •  
  • agraf­ka

    Ja mam 2 pyta­nia :)
    — jakie blo­gi na co dzień czyta­cie i moglibyś­cie pole­cić? Szukam jakichś ciekawych i rzetel­nych (Wy macie doświad­cze­nie, więc w prze­ci­wieńst­wie do mnie może­cie to zwery­fikować) blogów o IT, takich do nau­ki i w ramach inspiracji.
    — jak przy­go­tować się do kur­su na testera? Jakie tech­nolo­gie, Waszym zdaniem, warto znać? Sele­ni­um, JIRA i SQL? Coś innego?

    Poz­draw­iam!

    • agraf­ka

      cer­ty­fikatu testera*