Od czego zacząć naukę programowania? Podział na 5 modułów

Od czego zacząć naukę programowania? Podział na 5 modułów

Skoro czytasz tego bloga to zakładam, że o programowaniu wiesz niewiele, a co za tym idzie, bardzo trudno jest Ci odnaleźć się w gąszczu informacji znalezionych w internecie. Zakładam również, że nie jesteś absolwentem informatyki, więc twoja wiedza teoretyczna jest niewielka. Próbujesz uczyć się na własną rękę, ale niezliczona ilość technologii, stron www, książek technicznych i komentarzy na przeróżnych grupach dyskusyjnych zamiast pomagać, sprawia, że jesteś jeszcze bardziej zagubiony? W trzecim wpisie na blogu „Jak Zostać Programistą?” podzielę naukę programowania od podstaw na 5 modułów. Wszystko po to, abyś mógł uporządkować sobie w głowie ten bałagan! Przyjrzymy się konkretnym ogłoszeniom i określimy umiejętności, których znajomość zwiększy twoją atrakcyjność na rynku pracy. Moje stanowisko będę starał się poprzeć rzeczywistymi ofertami pracy znalezionymi w internecie. Moglibyśmy patrzeć na wybór technologii i narzędzi z różnych perspektyw, ale skupimy się na pragmatyzmie, tak aby twoja inwestycja w edukację nie poszła na marne. Zaczynamy!

Moduły

Jak już wspomniałem, podzieliłem cały materiał na 5 modułów. Dlaczego? Moim celem jest przybliżenie Cię do pracy w branży IT. Uważam, że znajomość jednego języka programowania takiego jak Java, C++, czy PHP to trochę za mało (w tym wypadku jest to tylko jeden z modułów). Jako zwolennik podejścia całościowego zalecałbym zrozumienie, chociażby w stopniu podstawowym, każdego z wymienionych modułów. Zrozumienie jednego z modułów może wpłynąć pozytywnie na lepsze rozumienie innego z nich. Co więcej, z taką wiedzą, będziesz w stanie stworzyć aplikację internetową od podstaw. Uwzględnienie wszystkich z poniższych modułów w CV, a także pochwalenie się swoją własną aplikacją internetową może mieć kluczowy wpływ na decyzję rekrutera weryfikującego CV kandydatów.

Co ze studiami?

Zanim przejdę do 5 modułów chciałbym napisać parę słów o studiach. Studia informatyczne, podobnie do większości innych kierunków, trwają 5 lat. Można je studiować zarówno na politechnice, jak i uniwersytecie. Uwierz mi, ten czas to w większości strata czasu! Oto niektóre z przedmiotów, których uczono mnie podczas studiów inżynierskich i magisterskich:

  • Matematyka dyskretna
  • Wstęp do analizy matematycznej
  • Matematyka I, II i III
  • Fizyka I, II i III
  • Podstawy elektroniki i miernictwa
  • Metody probabilistyczne i statystyka
  • Metody numeryczne

Paradoksalnie, przedmioty najmniej użyteczne w przyszłej pracy programisty były najtrudniejsze do zaliczenia. Jeżeli martwiłeś się, że brak dyplomu uczelni wyższej będzie problemem to bardzo się myliłeś. Na swojej drodze spotkałem bardzo dobrych programistów po kierunkach humanistycznych, a także takich, którzy nie posiadali dyplomu uczelni wyższej.

Dalszy plan na wpisy

Poniższe moduły chciałbym wykorzystać jako drogowskaz i kategorie, w które pogrupowane będą kolejne wpisy. Dzisiejszy wpis to tylko przedsmak przed serią kolejnych wpisów, które będą bardzo praktyczne i edukacyjne. Jest kilka podstawowych zagadnień z podstaw informatyki, których znajomość z pewnością nie zaszkodzi. Nie musisz być ekspertem, więc jeśli czegoś nie rozumiesz to się nie przejmuj. Poniższe zagadnienia to podstawy informatyki, ale zakrawają one również o matematykę. Do każdego filmu przesyłam materiały znalezione w internecie. Jeżeli film, który zaproponowałem nie trafia do Ciebie to spróbuj znaleźć inny, aż do momentu, w którym zrozumiesz zagadnienie.

Moduł I – Podstawy informatyki

Po pierwsze, co to jest system dwójkowy i dlaczego komputery używają systemu dwójkowego? Film tłumaczy jeszcze inne systemy i przedstawia sposoby konwersji. Myślę, że warto obejrzeć, ale nie warto uczyć się na pamięć.

Po zrozumieniu systemu dwójkowego o wiele prostsze będzie zrozumienie czym jest bajt i bit. Ta wiedza przyda się później w programowaniu.

Moduł II – Język angielski

Jeżeli nie wiesz od jakiego języka zacząć naukę programowania to możesz skupić się na nauce języka angielskiego. Nie jest on wymagany, ale może bardzo ułatwić pracę. Oto fragment wystąpienia z konferencji programistycznej Confitura, w którym Wojciech Szeliga, programista i przedsiębiorca, dość mocno wypowiada się w tym temacie. Trudno stwierdzić, czy sytuacja osób bez znajomości języka angielskiego wygląda aż tak dramatycznie, ponieważ na mojej drodze spotkałem wiele osób, których znajomość języka angielskiego do najlepszych nie należała.

Moduł III – Relacyjne bazy danych i SQL

Do przechowywania danych służy baza danych. Wszystkie informacje dostarczone przez użytkownika przechowywane są w bazie danych. Dla przykładu, gdy na facebook’u publikujesz nowy wpis, to jest on zapisywany w bazie danych Facebooka. Ten blog również posiada własną bazę danych.

Moduł IV – Podstawy frontend – HTML, CSS i Javascript

Frontend przez wiele osób jest traktowany jako wąska specjalizacja. Ja w swojej pracy jako programista Java bardzo rzadko mam do czynienia z tymi technologiami. Mimo wszystko uważam, że znajomość podstaw może być bardzo pomocna. Tym razem film w języku angielskim.

Moduł V – Język programowania i programowanie obiektowe

Od jakiego języka zacząć programowanie?
To chyba jedno z najczęstszych pytań zadawanych przez początkujących programistów, którzy próbują obrać odpowiedni kierunek. Dlaczego zdecydowałem się umieścić ten moduł na samym końcu? Zrobiłem to ponieważ pierwsze 4 moduły nie ograniczają się do żadnej konkretnej technologii. Wspólny fundament sprawi, że będziesz posiadał wiedzę, która uczyni Cię bardziej elastycznym. Możesz zacząć specjalizować się w Javie, w Pythonie, czy w C++. Wybór należy do Ciebie. Wydaje mi się, że rynek pracy jest obecnie atrakcyjny dla osób ze znajomością każdego z nich. Na koniec warto wspomnieć o programowaniu obiektowym. Programowanie obiektowe znaczy tyle, że w pisząc kod pracujemy na obiektach. Obiekty są odzwierciedleniem rzeczywistych rzeczy, uproszczeniem zrozumiałym dla komputera. Przykładowo, w kodzie sklepu internetowego moglibyśmy stworzyć obiekty: klient, koszyk, zamówienie, produkt, lista zakupów, etc. Temat ten będzie wymagał oddzielnego wpisu.

Podsumowanie

Ilość materiału w tym wpisie może być przytłaczająca, ale nie przejmuj się. Jeżeli opanujesz i wpiszesz do CV wszystkie z powyższych modułów to z czystym sumieniem możesz aplikować na jedną z poniższych ofert pracy znalezioną na portalu pracuj.pl:
Oferta pracy

Bartosz Miller
5 komentarzy
  • KaCzKa
    Odpowiedz
    Posted at 18:59, 18 stycznia 2017

    Najpierw piszesz, że studia są niepotrzebne i krytykujesz przedmioty techniczne, a potem wklejasz Wojtka, który w innym filmie podkreślał, że zdobył kontrakt bodajże z NASA, bo chciało mu się sięgnąć do materiałów z fizyki ze studiów, a human-programmerom albo się nie chciało albo nie mieli do czego.

    Sorry apanaczi, ale jeśli przerasta cię matematyka, metody numeryczne i inne takie podstawy, to co ty chcesz programować? Jak masz talent graficzny, to może będziesz kodować frontend, ale na moje oko biegłość matematyczna czy fizyczna jest bardzo na plus w sylwetce człowieka. Sam jej nie mam i nieraz mi tego brakuje właśnie.

      • TakaRefleksja
        Odpowiedz
        Posted at 21:40, 19 lutego 2017

        Znajomość matematyki, fizyki? Zależy co robisz … bo tak jak wspomniałej, któś kto robi jakieś systemy typu „bussines enterprise”, to może żeczywiście nie potrzebuje ich znajomości, ale co z programistami którzy zajmiją się np. BigData, image processing, gry, machine learning? Niestety (dla innych może stety), ale mam wrażenie że dzisiejsze „programowanie” to jakiś „enterprise bul…it” czego potwierdzniem jest sytuacja gdzie programista języków low-level w których potrzebna jest znajomość czegoś więcej niż co to jest MVC i jak zaimplementować REST jest gorzej opłacany od swego kolegi któy pracuje np. w JAVA’e czy C# .

  • Julka
    Odpowiedz
    Posted at 13:21, 19 lutego 2017

    Jestem początkującą programistką. Nie mam studiów informatycznych, uczę się sama po godzinach (zawodowo zajmuję się testowaniem, ale chciałabym pójść o krok dalej). W którym momencie wg. Ciebie jest sens zacząć myśleć o braniu udziału w jakichś konkursach (zdalnych, stacjonarnych hackfestach)? Czy będę w stanie się odnaleźć w takim miejscu? Bo trochę nie widzę na razie innego sposobu, żeby zacząć wychodzić ze swoim kodem do ludzi ;/

    • Posted at 11:39, 8 marca 2017

      @Julka

      Żeby wziąć udział w konkursie programistycznym, nie musisz potrafić bardzo dobrze programować. W zespołach na hackathonach są osoby o różnych kwalifikacjach i umiejętnościach. Developer, projektant, analityk, projekt manager, tester oraz każda inna osoba, która interesuje się nowymi technologiami, kodowaniem, tworzeniem nowych narzędzi. Twoje doświadczenie na tym etapie będzie dla nich równie cenne. Spróbuj, rozejrzyj się, przejrzyj konkursy, wymagania. Niejednokrotnie we wstępnym etapie liczy się sam pomysł, który wystarczy napisać/rozrysować na kartce papieru 🙂
      Zerknij tu: https://challengerocket.com/pl/jak-to-dziala.html

Post a Comment

Comment
Name
Email
Website