Królowa nauk

Czy potrzebujesz znać wyższą matematykę, żeby myśleć o zostaniu programistą? Moim zdaniem nie. Moim zdaniem prawdopodobnie nigdy nie będziesz musiał zaimplementować algorytmu do rozwiązywania równań różniczkowych czy całkowania. Ale matematyka to nie tylko rachunki. Na lekcjach matematyki poznawaliśmy sposoby przeprowadzania dowodów, rozwiązywania złożonych abstrakcyjnych problemów, operacji na zbiorach i matematycznej logiki, a to… może Ci się przydać.

Whiteboard test

Niektóre bardzo duże firmy podczas rekrutacji oczekują od kandydatów rozwiązywania zadań na tablicy lub przez strony internetowe typu hackerrank albo codility. Chociaż sam nigdy nie uczestniczyłem w takim teście, zauważyłem bardzo ciekawą rzecz odnośnie tych testów.

Nie chciałbym oceniać czy to dobrze czy źle, czy te testy sprawdzają umiejętności kandydata czy nie, to osobny temat. Chciałbym natomiast zwrócić uwagę na pewną różnicę w podejściach osób po studiach kierunkowych oraz samouków bez formalnego wykształcenia.

Spotkałem się z opiniami osób bardzo znanych w naszej społeczności, że takie testy nie sprawdzają wiedzy programistów i proponowali oni alternatywę w postaci rozwiązywania zadań, o podobnej złożoności do tych wykonywanych w pracy.

Moim zdaniem podejście osób, które samodzielnie uczyły się programowania jest nieco inne. Wchodzimy na rynek akceptując jego zasady, jeśli trzeba się czegoś nauczyć to się tego uczymy. Firma wymaga znajomości algorytmów? Ok, nauczę się. My poniekąd akceptujemy zastany stan i jeśli trzeba się przygotować z algorytmów to my się przygotujemy, bo podejmując decyzję o zmianie pracy albo branży akceptowaliśmy panujące tutaj zasady, które istniały długo przed naszym przyjściem. Nie wykazujemy tendencji do zmiany realiów, a raczej przyjmujemy i staramy się dopasować do zastanych warunków.

Sprinter kontra maratończyk

Wybierając sobie zawód trzeba myśleć w perspektywie długoterminowej. Mając średnie umiejętności miękkie i przeciętny potencjał techniczny prawdopodobnie będziesz musiał popracować ładnych kilka lat (może nawet 20-30) zanim coś odłożysz albo zainwestujesz na tyle dużo, że będziesz mógł odejść z pracy. Wszystko zależy od tego jak jesteś ukształtowany pod względem umiejętności inwestowania i zarządzania swoimi pieniędzmi. Zmiana pracy czy branży to nie może być chwilowy kaprys, bo prawdopodobnie czeka Cię wiele lat pracy bo w pracy… trzeba przecież pracować.

Długi dystans

Jako programiści-samoucy bardzo często posiadamy bardzo duże zaległości w teoretycznej wiedzy ze studiów. Im dłuższy będzie nasz bieg, tym bardziej te zaległości będą nam dokuczały. Nawet bardzo małe odchylenie od planowanego kursu na początku biegu może doprowadzić do ogromnych różnic na długim dystansie. W internecie można znaleźć wiele reklam parotygodniowych kursów na których obiecuje się ludziom, że zdobędą tej samej jakości wiedzę co ich koledzy przez kilka lat studiów. Nie zdobędą. Ale czy to powód, żeby siedzieć z założonymi rękami?

To co najcenniejsze jest za darmo?

W dzisiejszym wpisie chciałbym zachęcić Cię do nauki programowania jako rozwiązywania problemów i dobierania do tego odpowiednich narzędzi z kursów dostępnych za darmo w internecie. Są to kursy dwóch zagranicznych uczelni – Harvard oraz MIT.

This is CS50.

Kurs podstaw informatyki z uniwersytetu Harvarda, moim zdaniem absolutny must see. Jeśli nie wiesz o co chodzi z zapisem binarnym, co to jest algorytm i jak działa komputer po prostu musisz to zobaczyć. Cały kurs jest przedstawiony w bardzo przystępnej formie, jest dobrze zrealizowany i godny polecenia. Warto dodać, że ten kurs podjął także sam Mark Zuckerberg :).

A former child prodigy

W jednym z moich poprzednich wpisów proponowałem zacząć naukę od pythona. Oto do czego przyda Ci się znajomość tego języka – Wprowadzenie do Algorytmów. Chciałbym zachęcić Cię do nauki z kursu dostępnego na stronie MIT – https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/

Jest to kurs składający się z wykładów, ćwiczeń i kolokwiów, podobnie jak na naszych uczelniach :). Na stronie MIT znajdziesz materiały wideo z wykładów i ćwiczeń, które serdecznie polecam, bo moim zdaniem wyniesie to Twoją świadomość pracy z kodem na zupełnie inny poziom. Rozwiązuj problem sety, ćwicz też dodatkowe zadania (proponuję wyżej wymienionego hackerranka). Jeśli jesteś początkującym, to rzetelne przerobienie tego kursu zmieni Twój punkt widzenia na temat kodu, to jest zupełnie inny poziom. Polecam przerobienie też innych kursów z MIT, które Cię zainteresują, wszystkie są dostępne na stronie MIT OCW.

Ultymatywny cel

Moim zdaniem warto żebyś pamiętał, że jesteś dopiero na początku swojej przygody i warto poświęcić trochę czasu, aby solidnie odrobić lekcje. Przed nami bardzo długa droga, droga pełna wyzwań i niespodzianek. Powinniśmy nauczyć się czerpać z niej jak najwięcej przyjemności i szczęśliwi dążyć do wymarzonego celu.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s