Skąd czerpać wiedzę o programowaniu?

Paweł Dedio Programowanie 2018-09-15

Witam wszystkich w kolejnym odcinku mojej serii. Dzisiaj chciałbym Wam pokazać z jakich źródeł najlepiej korzystać, jeśli chcecie zacząć programować. Wbrew pozorom nie jest to takie proste – korzystając ze złych źródeł łatwo można się zniechęcić do programowania.

Czy muszę znać język angielski?

Muszę zacząć od bardzo istotnej kwestii. Krótka odpowiedź to: tak. Natomiast muszę to rozwinąć, o ile w początkowych fazach nie musisz znać angielskiego, ponieważ większość technologii ma jakieś opracowania po polsku. O tyle później już musisz posiłkować się oficjalną dokumentacją lub Stack Overflow (coś w rodzaju forum dla programistów), gdzie wszystko jest napisane w języku angielskim. Gdy zaczynałem to mój angielski nie był jakiś bardzo dobry. Gdy byłem zmuszony korzystać ze źródeł po angielsku, to musiałem posiłkować się tłumaczem google. Z czasem mój angielski stawał się coraz lepszy, dzięki temu, że korzystałem wyłącznie ze źródeł po angielsku. Nie musisz się obawiać, jeśli obecnie znasz angielski jedynie na podstawowym poziomie, ale im lepiej go znasz, tym lepiej dla Ciebie.

Co powiesz na Bootcamp?

O szkołach programowania pisałem już w poprzednim odcinku: Jak zacząć programować?. Mówiąc krótko, nie jest to dobry pomysł. Takie szkoły nastawione są głównie na obsłużeniu jak największej liczby kursantów w jak najkrótszym czasie. Im wcale nie zależy, żebyś potem znalazł pracę. Wyjątkiem są szkółki programowania otwierane przy firmach programistycznych. Tutaj podejście jest trochę inne – firma szkoli swoich przyszłych pracowników. Takie szkoły przeważnie są bezpłatne – dodatkowo będąc w niej masz pewność, że osobom prowadzącym szkolenie będzie zależało na nauczeniu Cię tego, co najważniejsze. Oczywiście firma nie gwarantuje każdemu zatrudnienia – przeważnie ofertę pracy dostaje kilku najlepszych uczniów, więc warto pokazywać swoje zaangażowanie podczas takich szkoleń.

Kursy online

Moim zdaniem kursy online są lepszym pomysłem, niż bootcampy – tylko nie można mieć roszczeniowej postawy. To nie jest tak, że skończysz taki kurs i od razu będziesz zarabiał 15 tysięcy. Samo przepisywanie kodu z ekranu też nie wystarczy – musisz wykazać się swoją inwencją i starać się wszystko zrozumieć, a nie tylko bezmyślnie przepisać. Największą wartością takich kursów jest zwrócenie uwagi na najważniejsze aspekty danej technologii. Po ukończeniu jednego z nich nie będziesz ekspertem, ale będziesz wiedział w jakim kierunku dalej się rozwijać. Wszystko zależy tylko od Ciebie, musisz traktować kurs jako zwykłe źródło wiedzy, a nie coś co w magiczny sposób nauczy Cię programować. Równolegle do robienia takiego kursu powinieneś też pisać coś na własną rękę, tak aby nabytą wiedzę wykorzystywać w praktyce.

Książki

Według mnie jest to najbardziej wartościowe źródło wiedzy. Z książki możesz uczyć się swoim tempem, nikt Ci niczego nie narzuca, możesz zawsze wrócić do jakiegoś tematu, jeśli czegoś nie zrozumiałeś. Dodatkowo książki przeważnie wychodzą dużo taniej, niż kursy online czy bootcampy. Niestety książki mają swoje wady – szczególnie te przełożone na język polski. Najlepiej przedstawić to na przykładzie Androida. Jakieś 2/3 książek, które są obecnie dostępne jest przestarzałych. Dzieje się tak dlatego, że zanim książka zostanie wydana, potem przetłumaczona na język polski i znowu wydana schodzi sporo czasu. Przez ten okres dużo rzeczy może się  zmienić – na przykład może wyjść nowa wersja Androida. Na szczęście podstawy pozostają takie same – problem zaczyna się, gdy chciałbyś się uczyć rzeczy bardziej zaawansowanych. Wtedy polecam korzystać z jakiś „świeższych” źródeł.

No dobrze, ale pewnie zapytacie jakie książki polecam, więc już odpowiadam. Ja dobrze wspominam serię „Rusz głową!” („Head First!”). W tej serii jest dostępna zarówno książka do Javy, jak i dedykowana do Androida. Te książki są napisane bardzo prostym językiem i wszystko jest bardzo dokładnie wytłumaczone, czasami nawet za bardzo dokładnie i ma się wrażenie jakby książka była kierowana do pięciolatków.

Oficjalna dokumentacja

Oficjalna dokumentacja jest najbardziej aktualnym i najpewniejszym źródłem, ponieważ pochodzi od samego twórcy danego języka lub frameworka. Jednak uważam, że uczenie się z oficjalnej dokumentacji może być na początku bardzo trudne. Żeby z niej korzystać musisz mieć jakieś pojęcie o danej technologii, żeby w ogóle wiedzieć czego szukać. Dodatkowo większość dokumentacji dostępna jest jedynie w języku angielskim, co również może stanowić pewne utrudnienie. Dokumentacja świetnie się sprawdza, gdy chcesz sprawdzić coś konkretnego – na przykład w jaki sposób używać danej klasy. W przyszłości na pewno będziesz z niej sporo korzystał.

Media społecznościowe

Jak dla mnie jest to jedno z ciekawszych źródeł. Warto obserwować na Twitterze jakieś rozpoznawalne osoby z branży, bardzo często wrzucają interesujące materiały. Jeśli chodzi o Androida, to szczególnie polecam profile Jake Wharton, Nicolas Roard oraz oficjalny Android Developers. Oczywiście Twitter to nie wszystko. Najwięcej dzieje się na Medium – jest to portal społecznościowy, w którym każdy może pisać artykuły na dowolny temat. Wszystkie najważniejsze osobistości mają tam konta i od czasu do czasu dodają jakieś artykuły. Jest też świetna społeczność i praktycznie codziennie trafi się jakiś bardzo wartościowy materiał. Od siebie polecam szczególnie trzy tagi na Medium: #androiddev #mobile-app-development #android-app-development

Nasze forum

Uważam, że jest to świetne miejsce, aby zacząć przygodę z programowaniem. Zresztą, sam jestem tego przykładem, bo uzyskałem tam sporo pomocy. W dziale poświęconym programowaniu znajdziemy mnóstwo poradników, zaczynając od tych kierowanych do początkujących programistów, kończąc na tych przeznaczonych dla bardziej zaawansowanych. Na początek polecam świetny temat Jak zacząć programować na androida. Jest tam sporo linków i objaśnień najważniejszych terminów. Warto wspomnieć, że od niedawna dział dotyczący programowania zyskał drugie życie i aktualnie jest tam dedykowana osoba, która pomaga rozwiązywać wszelakie problemy związane z programowanie. Także jeśli będziecie mieć jakiś problem podczas programowania, to nie krępujcie się i szukajcie pomocy na forum.

Niestety to już koniec na dziś. Na szczęście już niebawem kolejny odcinek! Opiszę w nim różne typy zatrudnienia programistów wraz z wadami i zaletami. Do zobaczenia!

Zapraszam również na największe w Polsce forum dla programistów Android. Jeśli macie pytania odnośnie kariery jako programista – zapraszam do działu Kariera programowanie. Zachęcam również do przejrzenia działu Praca oraz zlecenia dla programistów – być może to właśnie tam znajdziesz swoją pierwszą pracę 😉

Poprzednie odcinki:

  1. Typowy dzień pracy programisty
  2. Wady pracy programisty
  3. Zalety pracy programisty
  4. [FAQ] Wszystko, co powinieneś wiedzieć jeśli interesuje Cię praca programisty
  5. Co mnie zdziwiło w programowaniu?
  6. Motywacje – w jaki sposób nie stracić zapału do programowania?
  7. Jaką firmę wybrać na początku kariery programisty?
  8. Jak wygląda rozmowa o pracę na stanowisko programisty?
  9. Jak zacząć programować?


  • cherrz

    Hej Paweł, fajnie się czyta Twoje artykuły. Zaszczepiłeś we mnie pewną dawkę motywacji za co dziękuję. Można Cię gdzieś znaleźć na fejsie? Głównie chodzi mi o kontakt do Ciebie, możliwość zadania kilku pytań na które w wolnej chwili będziesz miał czas odpowiedzieć, bo zdaje sobie sprawę, że nie jest to Twój obowiązek. Najważniejsze zadam tutaj: czy nadal warto się uczyć front-endu w takim samym stopniu jak kilka lat temu? Naczytałem się trochę o tym, że teraz większość juniorów to front-end i ciężko się przebić/wyróżnić, co lekko wznieciło moje obawy. Wiem, że kasa trochę mniejsza w porównaniu z back-endem, ale jeśli chodzi o samą pracę, siłę przebicia to jak to jest?

    • Paweł Dedio

      Nie powiem ci jak wygląda sytuacja juniora front end na rynku bo nie mam z tym doswiadczenia. Jednak sam front end jako dziedzina nadal będzie się niesamowicie rozwijać, bo teraz każdy musi mieć stronę internetową. Co do facebooka to mam konto i śmiało możesz pisać, nie chcę tutaj rzucać linkami (niepotrzebne pozycjonowanie w google) ale sporo osób już do mnie tam pisało więc raczej nie trudno mnie znaleźć 😉

  • Michał Derej

    Książki z serii „Rusz głową” zupełnie mi się nie podobały, mam wrażenie, że ich autor miał mnie za idiotę. Mi bardzo przyjemnie nauka szła z „Java w 21 dni”, a to połączyłem z oficjalnym kursem Google’a, który znaleźć można na Udacity. Polecam.

    • Paweł Dedio

      Właśnie jest to specyficzna seria, mnie też czasami denerwowała, ale próbowałem nauki z kilku różnych polskich źródeł i „Rusz głową” najlepiej tłumaczyła większość problemów.

      • Cubao

        Hej, a możecie polecić jakąś pozycję na temat samego systemu Android (nie programowania)? Nie mam pojęcia o programowaniu, tylko chciałbym dowiedzieć się co tam siedzi w smartfonie, i jak to działa.

        • Paweł Dedio

          W takim razie jesteś na dobrej stronie 😉 Już za kilka odcinków będę opisywał jak pod spodem działa system Android. Niestety nie spotkałem się z książką, która by wyjaśniała takie zagadnienia bez poruszania tematu programowania.

      • Cubao

        Hej, a możecie polecić jakąś pozycję na temat samego systemu Android (nie programowania)? Nie mam pojęcia o programowaniu, tylko chciałbym dowiedzieć się co tam siedzi w smartfonie, i jak to działa.