Jaką technologię wybrać na start?
Cześć, ostatnio częściej do was piszę. Dzisiaj chcę napisać dla tych, którzy dopiero zaczynają swoją przygodę z programowaniem. Miejsca dla początkujących (fora, grupy na FB), które obserwuję, codziennie pękają w szwach od pytań typu:
- Jaki język wybrać na początek?
- Chcę się nauczyć programowania, co mam zrobić?
- Znam język XYZ, który framework będzie lepszy: ABC czy EFG?
- Której technologii opłaca się uczyć?
Na te i tym podobne pytania postaram się odpowiedzieć w dzisiejszym wpisie. No bo kto, jeśli nie kot? Nie musicie dziękować, tuńczyka możecie zanieść do lodówki.
Słówko o moich doświadczeniach
Wiecie, programuję od kilku dobrych lat, bo zaczęłam się uczyć już w gimnazjum. Najpierw było Logo - usilnie starałam się doprowadzić żółwia tam, gdzie wymagała tego nauczycielka. W międzyczasie gdzieś w odmętach internetu znalazłam coś takiego jak Small Basic. Znalazłam to w jakichś odmętach internetu i pisałam proste aplikacje konsolowe i coś okienkowego też chyba mi się udało. Były to czasy umierania dyskietek, ale pamiętam, że swój pierwszy działający program zapisałam właśnie na takiej. Sprawdzał przez jakie liczby dzieli się liczba podana przez użytkownika.
W liceum uczyłam się podstaw Pascala i PHP - byłam w klasie z rozszerzoną informatyką. Potem przyszedł czas studiów i tam już poznałam C i podstawy C++, moją pierwszą miłość - Pythona, Perla, sporo pisałam w Javie, a na JS trafiłam w trakcie praktyk. Dacie wiarę, że przed nimi stwierdziłam, że nigdy, ale to przenigdy nie będę pisać frontendu i nie tknę JS-a? Jak widać, koty są zmienne, ale to chyba dobrze.
Jaki język na start?
To nie ma absolutnie żadnego znaczenia. Serio. To pytanie bierze się z mylnego przeświadczenia, że uczysz się jednego języka na całe życie. Prawda wygląda jednak trochę inaczej. Technologię powinno się dostosowywać do projektu i konkretnych zastosowań. Tak naprawdę, to każdy język nadaje się do czegoś innego, ale część zastosowań się pokrywa. Jeżeli serio jesteś zielony, jak kocimiętka na wiosnę, to twoim zadaniem jest załapać koncepcje programowania, przy okazji składnię jakiegoś języka, a potem iść dalej. Tak samo sprawa ma się z frameworkami. Wejdziesz do jakiejś firmy, to do konkretnego projektu będziesz musiał ogarnąć taki, jakiego się do niego używa.
Dlaczego tak jest?
Mamy skończoną liczbę koncepcji stojących za programowaniem. I tu obojętnie, czy chodzi o paradygmaty programowania, czy różne podejścia organizacji frameworków. Owszem są one różnie wykorzystywane, ale w pewnym sensie uniwersalne i stojące niejako ponad językami. Jeśli zrozumiesz je, to łatwiej ci będzie z każdym kolejnym językiem. Żeby była jasność w temacie, nie mówię, że wszystkie języki działają dokładnie tak samo. Jeżeli chcesz zostać specjalistą, to warto się zagłębiać w szczegóły (np. JavaScript działa często zupełnie inaczej niż pozostałe języki programowania).
Poprawnym pytaniem nie jest czego się uczyć na początek, tylko JAK się uczyć. Pamiętaj, że sama składnia to dopiero pierwszy krok do sukcesu. Oczywiście, każdy kiedyś po raz pierwszy się musi przekonać, co to jest zmienna. Tak samo jak każdy kiedyś musiał powiedzieć mama, zanim wygłosił przemowę przed tłumem ludzi.
Jak uczyć się programowania?
- Zacznij od podstaw - składnia to serio jest przedszkole programowania.
- Dociekaj różnych spraw. Stawiaj sobie pytanie, nie tylko jak coś się dzieje, ale także dlaczego.
- Ucz się tylko tyle, ile potrzebujesz. Ile razy spotykałam osoby, które chciały poznać podstawy języka, a brały się za książki mające po 1000 stron i pełne szczegółów.
- Zawsze miej cel swojej nauki. Nie ucz się samą sztuką dla sztuki. Pamiętaj, że w twoim mózgu jest ograniczona ilość miejsca na dane, a także, że czas jest twoim najbardziej cennym zasobem - nie trwoń go niepotrzebnie. Sama nauczyłam się Reakta dopiero, gdy stał mi się potrzebny do pracy.
- Miej otwarty umysł i nie przywiązuj się do jednej technologii. Wiadomo, że tak to trochę działa, że lubimy bardziej to, czego uczyliśmy się na początku. Nie próbuj nikomu wmawiać, że twoja technologia jest najlepsiejsza, bo ty w niej programujesz. Bez zbędnego sentymentu możesz przejść do czegoś nowego.
- Pisz projekty - gdy jakaś technologia ci nie odpowiada, to zmień ją na inną. Pamiętaj, że czas spędzony na eksperymentowaniu, nigdy nie jest czasem straconym. Wzbogaca cię to w cenne doświadczenie, które może się przydać i to nawet nie wiesz kiedy.
Jeśli już koniecznie chcesz wskazówki, jaki język wybrać na początek, to skorzystaj z tego jakże potężnego narzędzia, które pomoże wybrać Ci język. (To nie jest tak, że ono losowo wybiera język z listy)
See the Pen Language choose generator by Kornelia (@korneliakobiela) on CodePen.
Tymczasem baw się dobrze, pilnuj swojego kota, bo będzie programował lepiej od ciebie. Miau!