Jednym z pytań, które często dostaje jest: „od czego zacząć naukę programowania?”.

W tym wpisie spróbuję odpowiedzieć na to pytanie. Będzie to bardziej wskazówka niż droga, której trzeba się ściśle trzymać (ten temat rozwinę w oddzielnym wpisie wkrótce, ale jak coś – śmiało pytajcie).

Po postu zacząć. To najważniejszy punkt.

Dużo osób wiecznie przygotowuje się do startu. Zbiera materiały albo fundusze na jakiś kurs.

O ile jeśli zbierze te fundusze i wybierze się na dobry kurs – wyjdzie to dla niego na plus. Ale używanie braku kasy jako wymówki – to właśnie tylko i wyłącznie wymówka. W sieci jest dostępnych naprawdę bardzo wiele materiałów. Trzeba tylko je zacząć czytać, a nie tylko kolekcjonować.

Skoro już o materiałach mowa – tu też trzeba mocno uważać. W sieci jest dużo informacji, ale nie wszystkie są poprawne.

To jest właśnie najcięższe na początku. Jak odróżnić czy to, co ktoś pisze jest słuszne?

Ja stosowałabym taki filtr:

  • popularność danej treści (kanału na Youtube, bloga, Fanpage’a),
  • to, czy autor odpowiada na komentarze czy zbywa czytelników – może to niestety świadczyć, że tylko publikuje treści, a jeśli pojawia się problem – nie wie, co z tym fantem zrobić,
  • popularność danej odpowiedzi, np. na stack overflow (które swoją drogą polecam w przypadku szukania jakichkolwiek odpowiedzi, porad, rozwiązań).

Z czasem będziemy w stanie coraz więcej odfiltrować sami.

Co jakiś czas postaram się przedstawić materiały warte uwagi. Czy to tutaj czy na kanałach Social Media powiązanych z blogiem albo w newsletterze (także zachęcam do zapisu).

Ale, żeby nie było również jestem tylko człowiekiem. Nie bierzcie wszystkiego, co napiszę za pewne. Jeśli macie wątpliwości – zapytajcie. Jeśli wiecie, że się mylę – zwróćcie mi uwagę 😉

Ze swojej strony postaram się jak najbardziej weryfikować przedstawiane treści.

Obrać kierunek…

Ten punkt może być bardziej problemowy. Języków programowania jest od groma i jeszcze więcej. Najpopularniejsze przedstawiłam w jednym z kolejnych artykułów. Ale już teraz uczulam, że patrzenie tylko pod kątem popularności może się dla Ciebie źle skończyć.

Sama dość długo programowałam w C/C++. Nie przeszkadzało mi to, jednak odkąd zajęłam się Web’em praca stała się dla mnie jeszcze większą przyjemnością 🙂

Ciekawy artykuł w tym temacie znajdziecie na StartCoding. Jest z nim powiązana dość ciekawa infografika, która swojego czasu pojawiła się na grupie, którą prowadzę (dziękuję!).

nauka-programowania

Jest w niej naprawdę sporo racji 🙂 Także możesz ją wykorzystać jako podpowiedź. Zaznaczony poziom trudności rzeczywiście przekłada się na rzeczywistość.

Ale uwaga! Jeśli zainteresuje Cię np. Java, C/C++ to osobiście nie uważam, że siadanie do niej jako pierwszej bez żadnego wcześniejszego przygotowania jest dobrym pomysłem! Naukę programowania w tym kierunku zaczęłabym od Pythona.

Dlaczego więc Python? Bo rzeczywiście jest językiem, na którym możesz nauczyć się podstaw programowania. Więcej: już wkrótce zastąpi Pascala w szkołach średnich! O czymś to świadczy 🙂

Czy Python to zawsze dobry początek? Tak. Choć jeśli z kolei myślisz z kolei o Webie – moim zdaniem nie musisz od niego zaczynać, choć warto go znać (!).

Od czego zacząć w temacie Frontu pisałam już w artykule „Frontend Developer – jak zacząć? Języki i technologie na start” na moim drugim blogu. Niedługo postaram się rozwinąć ten wątek bardziej szczegółowo tutaj 🙂

… ale jednocześnie nie obawiać się zmian

Obranie kierunku to jedno. W praktyce z różnych powodów ten kierunek może się zmienić. Uparte siedzenie w technologii, która Cię nie kręci może się źle skończyć.

Droga programisty nie jest prosta. Jest pełna wzniesień, pagórków i dołów 😛 Technologia, którą kochasz może zostać porzucona bądź z dnia na dzień odmieniona do tego stopnia, że samo patrzenie na nią będzie Cię przyprawiać o ból głowy. Nie możesz iść w zaparte i siedzieć w czymś co Cię nie interesuje. Trzeba być przygotowanym na zmiany. I na pewno nie potępiać na starcie wszystkich innych kierunków.

 

Więcej?

 

Pytania?

A może chcesz dodać coś od siebie do tej listy?

PODZIEL SIĘ
Poprzedni artykułPierwszy wpis
Następny artykułProgramowanie – moja historia
Programistka z zawodu (od 2011), wykształcenia (od 2009) i pasji (od 2003/4 roku :P). Aktualnie: Front-end, Back-end, Full Stack. Głównie: JavaScript & Angular. Wcześniej: C++ i Mobile (nie tylko zawodowo). Kocha programować i pomagać. Blog jest połączeniem tych pasji.
  • Mateusz Chrustny

    Obranie kierunku rozwoju może stanowić spory problem na samym początku ale po nauczeniu jednego języka lub dwóch innego można się nauczyć następnych w kilka dni. Co innego z frameworkami, bibliotekami etc. tutaj trzeba już doświadczenia, niekiedy wieloletniego.

    W przypadku platform mobilnych nie ma dużego problemu, ponieważ są to obszary bardzo hermetyczne gdzie mamy Jave, Swifta, Objective-C i C++. Można jeszcze wejść niszę i programować na Xamarinie lub PhoneGap’ie ale tutaj chyba jest więcej problemów niż frajdy z tworzenia.

    Webowe technologie to dla mnie dziki zachód, ciągle tam coś się zmienia i każda technologia wydaję się być niepewna w dłuższej perspektywie.

    Co do dodatkowych języków które warto znać dla siebie i ułatwiania sobie życia to na pewno jest:

    VBA – tutaj może wywołam śmiech u niektórych ale moim zdaniem język ten przenosi arkusze kalkulacyjne na inny poziom, przede wszystkim możemy zaoszczędzić wiele czasu przy cyklicznych obliczeniach i tworzeniu raportów

    Python/Groovy – prosty język do pisania skryptów np. crawlerów, generatorów, konwersji, prostego api (i nie tylko)

    SQL – mimo, że coraz częściej stosuje się obiektowe bazy danych to relacyjna bazy danych są powszechnie używane i raczej prędko nie zostaną wyparte.

    JavaScript – w odróżnieniu od poprzednich, nie jestem jego fanem i niezbyt go umiem. Ale… podobno warto go umieć w szczególności, że dzięki NodeJS możemy go wykorzystać w szerszym zakresie.

    A tutaj coś na temat:
    5 Programming Languages Everyone Should Know:

    https://www.youtube.com/watch?v=LR8fQiskYII

    • Wow… dzięki @mateuszchrustny:disqus. Tak, będę jeszcze rozwijać ten temat. Z tego, co widzę jeden z największych problemów: „Jak to ugryźć?” 😛

      A mnie właśnie wciągnął Web. Choć naprawdę nie sądziłam, że jeszcze do tego wrócę. Choć „wrócę” to może źle powiedziane. Bo to całkiem inny Web niż lata temu 😉

      • Mateusz Chrustny

        Web potrafi szybko wciągnąć bo szybko można zobaczyć jakiś efekt wizualny. W mobilnych jest podobnie, że możesz szybko coś prostego i działającego zrobić.

        Jeśli chodzi o rozpoczęcie z programowaniem to chyba większość z nas zaczynała od HTML potem jakiś JS albo PHP? No i sławny Pascal..

        • Tak 😛 Właśnie tego mi brakowało gdy siedziałam w C++. Efektów wizualnych. Choć trzeba przyznać, ze jak zajęłam się Web’em to szybko zaczęło mnie męczyć siedzenie tylko w Froncie i znowu jakby przekierowałam swoją uwagę na Backend 😉 Mogę robić wszystko od góry do dołu (Full Stack), ale prędzej dałabym radę siedzieć na stałe w Backendzie niż Frontendzie.

          Opisałeś krok po kroku moją ścieżkę 😛 Choć JS’a tylko liznęłam w przeszłości 🙂

  • Kurcze 🙂 Chciałabym zacząć … hihi, no właśnie zacząć.. W sumie chyba nie ma takiej jednej drogi, zalecanej – tylko każdy musi trochę podjąć własną decyzję? Tylko kiedy nie mamy pojęcia co wybrać 🙂

    • Rafał Morawiec

      Racja, nie da się powiedzieć „dla Ciebie najlepsze będzie to, to i to”, bo każdy jest inny. Jeśli nie wiesz co wybrać to wybierz cokolwiek i zobacz czy Ci się spodoba/chcesz dalej się tym zajmować. Jeśli nie to wybierasz coś innego do skutku.

      • Dokładnie 🙂 Najważniejsze by „zacząć” 🙂
        Nawet po latach można dojść do wniosku, że znudziło nam się programowanie w danym języku czy technologii albo programowanie w ogóle… I pójść w innym kierunku.
        Choć nie wiem, czy w Webie to możliwe – tak szybko się zmienia i rozwija xD Co najwyżej pewnie te zmiany mogą wkurzać z czasem.

        • Rafał Morawiec

          O tak, mogą wkurzać. I nie tylko zmiany a ilość bibliotek itp itd. Sam się złapałem ostatnio, że chcę się „wszystkiego” nauczyć ale mam małą „blokadę”

          • Debuger

            Morawcik’u jak ktoś próbuje „umieć” wszystko to koniec końców nie umie nic, kiedyś się na tym przejechałem, jeszcze za czasów gdy prowadziliśmy forum AutoIt’a, zacząłem wtedy Jave, C#, Pythona (nie wiem czemu ale mimo jego prostoty i możliwości ten język mi wyjątkowo nie leży) i kilku innych mniej popularnych wynalazków. Koniec końców zdecydowałem się na Javę ze względu na jej multiplatformowość i to, że sporo piszę na Androida. Pomimo kilku appek w Google Play, parunastu projektów pod win i paru lat pisania w tym języku nadal uważam, że do biegłości nawet w tym jednym jeszcze daleka droga.

    • Zdecydowanie nie ma 🙂 Choć są pewne punkty, od których najłatwiej zacząć. Właśnie @mateuszchrustny:disqus powyżej zwrócił uwagę na fajny sposób – zacząć od tego, co może się przydać 🙂 Np. jeśli ktoś często korzysta z Excela – makra naprawdę mogą ułatwić życie. A VBA, którego potrzebujesz w tym celu to już język programowania, którego nauczenie daje Ci pewne podstawy.
      Python – z jego wykorzystaniem można zautomatyzować pewne rzeczy. Jest nawet książka o automatyzacji „nudnych” rzeczy z Pythonem: https://automatetheboringstuff.com/
      Albo HTML/CSS – u mnie tak się zaczęło 🙂 Poprawki na blogach, które prowadziłam lata temu.
      A jak już połkniesz bakcyla reszta pozostaje kwestią czasu 😛
      Ważne by się nie porwać z motyką na słońce – to może zniechęcić.

      • To może ten html/css – poprawki na mojego bloga. Będę mogła od razu poćwiczyć. 😀

  • Żaneta ciężko mi teraz coś konkretnego wybrać, ale chciałabym zacząć. Do czego? Do tego, by lepiej poruszać się po blogu, by móc zrobić sama jakieś podstawowe rzeczy. Czyli tutaj mamy HTML. Czy jednak polecasz na start coś innego? Jakieś ćwiczenia? Zadania? Czy wyzwanie przez Ciebie zaproponowane będzie odpowiednie? Dzięki bardzo za odpowiedź :))

    • Rafał Morawiec

      Do bloga zdecydowanie HTML i CSS 🙂

      • Dzięki Rafał. Chodziło mi o konkretne nakierowanie i kroki. Poczekam na dalszą odpowiedź 🙂 pozdrawiam.

        • Tak, @morawcik:disqus ma rację, HTML i CSS. Możesz od tego zacząć 🙂
          Jeśli chodzi o wyzwanie – tak, ale zadanie 1. i 2. Zwłaszcza zadanie 2. : http://www.nettecode.com/naucz-sie-programowac-zadanie-2-html5-css/ To wystarczy pod kątem podstawowych poprawek na blogu – wygląd, itd. Da Ci też takie ogólne pojęcie o co w tym chodzi 🙂

          • Żaneta, @morawcik:disqus już teraz widzę, że trochę źle sformułowałam moje pytanie. Eh.. tak to jest, jak się odpowiada późno i w zmęczeniu. Tak – HTML , CSS. Chodziło mi bardziej o to, jakie zrobić te pierwsze kroki, bo z tym już mam problem – czy znaleźć stronę z językiem HTML czy korzystać z jakiegoś programu , gdzie będę mogła uczyć się w praktyce. Prosty HTML stosowałam też u siebie na blogu, w końcu musiałam coś tam wstawić :)) W takim razie przejdę do zadania nr 2. Właśnie pod tym kątem mi chodzi – by znać język HTML na tyle, by móc zrobić jakieś podstawowe rzeczy na blogu – to na początek. Może coś źle ujęłam, ale to dlatego, że dopiero chcę się czegoś nauczyć 🙂 Wiem, że dla osób, które są w temacie sformułowania, zwroty są oczywiste, ale dla mnie nie, bo nie zajmuję się tym.

          • Rafał Morawiec

            Jeśli nie straszny Ci angielski to polecam interaktywny kurs na https://www.codecademy.com/learn/web Inne kursy też jak najbardziej. Zadania na blogu – wykonywać 🙂 Jeśli jesteś na grupie to polecam próbować rozwiązywać problemy innych i porównywać swoje działania z odpowiedziami. No i praktyka. Dużo praktyki 🙂

          • Dziękuję Ci Rafał, taka odpowiedź jest znacznie lepsza 🙂 No właśnie z tym angielskim tak różnie, stąd liczę na coś w wersji polskiej. Tak, wiem, wiem, że angielski jest wręcz wymagany w takich technicznych sprawach , zdaję sobie z tego sprawę. Pewnie – mogę sobie z nim poradzić, tylko zajmuje to znacznie więcej czasu, a w obecnej sytuacji nie mogę sobie pozwolić na to, by poświęcać czas na na tłumaczenia. No właśnie na blogu nie za dużo mam do wykonania na chwilę obecną 🙂 A czy istnieje jakaś platforma, program (nie wiem jak to określić), gdzie mogłabym tworzyć stronę w HTML, coś jak konto tylko do tego przeznaczone? To by ułatwiło sprawę 🙂 Na grupę jestem za cienka, ale dziękuję 🙂

          • Rafał Morawiec

            Nie wiem czy dobrze zrozumiałem – zobacz http://codepen.io/pen/ Co do kursów po polsku to niestety nie mogę nic polecić, bo jedynie kiedyś korzystałem z http://www.kurshtml.edu.pl/html/html5.html ale warto poszukać. Musisz @Nettee:disqus pogonić to może w najbliższym czasie doda jakieś nowe zadanie/zadania 😀

          • @morawcik:disqus, najbliższe już czeka na publikację w sobotę 😛 Ale to już nie będzie dotyczyło @magdalenabek:disqus, przynajmniej narazie 😉 Bierzemy się za JavaScript 😉

          • Rafał Morawiec

            Oby tym razem znalazło się więcej odważnych 😀

          • Rafał Morawiec

            Niektórzy będą musieli uzbroić się w cierpliwość.

          • Zakres tych zadań dla początkujących może być całkiem spory. 3 tygodnie na nauczenie się HTML i CSS od zera + wykonanie zadania – to może być jednak wyzwanie 😉 Także na razie nie myślę o zwiększaniu częstotliwości 😛 Ale zakładam, że każdy w dowolnej chwili, nawet za pół roku może się podjąć wyzwania i wtedy robić je szybciej, jeśli chce 😉

          • Rafał Morawiec

            Jeśli sami mają się uczyć a zadania jako dodatek to wydaje się ok

          • @morawcik:disqus dziękuję za wszystkie informacje, a także za podesłanie kursu – z chęcią się zapoznam. Póki co zajrzę do wyzwań i spróbuję je zrobić. Dziękuję.

          • @magdalenabek:disqus, jeśli chodzi o Codepen – to właśnie zadanie 1 polega na zapoznaniu z tym narzędziem. Świetna sprawa. Przydaje się zwłaszcza gdy chcesz się podzielić z kimś kodem, bo coś „nie działa”. Czyli na starcie po prostu genialne.
            Zestawienie narzędzi o jakie pytasz znajdziesz np. tutaj: http://www.nettecode.com/ide-vs-edytory-krotki-przeglad/ 🙂

            I zajrzyj do zadania drugiego: http://www.nettecode.com/naucz-sie-programowac-zadanie-2-html5-css/ – jest tam również proponowany kurs po polsku. Myślę, że może być niezły na start 🙂

          • Dziękuję, postaram się zrobić wyzwanie numer jeden i zapoznam się z artykułem. Jeszcze nie zdążyłam przeczytać wszystkiego na stronie, zaczęłam od pierwszych artykułów. Dziękuję. Zobaczę, czy w ogóle dam radę 🙂

          • Powodzenia! A w razie problemów śmiało dawaj znać 😉

          • Dziękuję Żaneta. Tak, wiem , że mogę liczyć na pomoc 🙂 Jeszcze nie miałam kiedy usiąść – trochę drobnych zmian na blogu, ale chce działać w temacie. Mocne postanowienie.

  • Leonessa

    Co myślicie o szkoleniach typu bootcamp? Np. Kodilla zbiera teraz uczestników na 12-tyg. kurs online. Trochę to kosztuje, ale czy naprawdę warto? Czy podstawy, które oferują można przyswoić we własnym zakresie poprzez szkolenia, do których linki można znależć na tej stronie, a dopiero praktyka powoduje wejście na wyższy stopień wtajemniczenia?

    • Rafał Morawiec

      Podstawy (i nie tylko) zdecydowanie można przyswoić we własnym zakresie. Co do szkoleń niestety się nie wypowiem, bo nie brałem udziału.

    • Pytaniem nie jest czy można 🙂 Można wszystko. Na pewno nie oferują niczego, czego nie możesz dowiedzieć się z innych źródeł.
      Zaletą jak dla mnie jest to, że wybierają pewną wiedzę i pomagają Ci ją przyswoić (jak zakładam, bo sama nigdy niestety nie miałam do czynienia z Bootcampem). Zamiast przeszukiwać internet na własną rękę, przerabiać różne kursy, masz mieć teoretycznie podane najważniejsze informacje + wsparcie. To jest wygodne. Jednak to nie jest tak, że za darmo nie zdobędziesz takiej wiedzy. Ona jest. Wszędzie. I to za darmo 😉

      Powiedziałabym tak: warto próbować samemu, uczyć się. Ale jeśli się okaże, że nauka samego HTML5 i CSS trwa u Ciebie zbyt długo albo ciągle blokują Cię jakieś problemy – wtedy lepiej zainwestować w takie rozwiązanie niż się poddać 😉
      Inna sprawa, że tak jak mówisz, dostajesz pewne podstawy. Skondensowaną wiedzę, może nawet godziny praktyk. Ale multum nauki jeszcze przed Tobą. Większa część pracy programisty to ciągłe poszukiwanie rozwiązań. Także to nie jest tak, że Cię nauczą i teraz wszystko będzie proste 😛 Prostsze, ale nadal będziesz przeszukiwać czeluście internetu w poszukiwaniu rozwiązań kolejnych problemów 😉 Tak czy inaczej Cię to nie minie.