Wpis z mikrobloga

Z uwagi na masę pytań w #naukaprogrmowania i #programowanie nakreślę tu wiadomość którą potem
bot miał by dodawać do każdego pytania "OD CZEGO ZACZĄĆ?!".
Wiem że ten wpis będzie pełen błędów więc zachęcam do zgłaszania ich i dyskusji w komentarzach.

Po pierwsze trzeba odpowiedzieć sobie na pytanie dlaczego chce uczyć się programowania.
1. Bo zarabia się 15k
-- nie myślałeś o kursie spawacza czy czegoś takiego?
2. Bo mnie to interesuje / chce być hakerem.
-- Tu polecam rzucić okiem na dużą listę konceptów, napisać coś w dużej ilości różnych języków i technologi
poczytanie o psychologi też nie jest złym pomysłem.

Skoro już wiesz dlaczego teraz czas na odpowiedź na pytanie:
CO CHCESZ PROGRAMOWAĆ? które to zadaje każdemu kto pyta od czego zacząć.
Niezalanie od Twojej odpowiedzi będziesz potrzebować kilku rzeczy:
1. Edytor tekstu, tu pewnie skorzystasz z tego co jest w IDE, albo vima XD
2. interpretera/kompilatora, tu jest tego masa od NASM i gcc przez /bin/bash i python aż do przeglądarki
3. Odpluskwiacza (debugera), czyli aplikacji pomagającej Ci szukać błędów w kodzie.
4. Środowiska uruchomieniowego, komputer z określonym systemem, smartfon, przeglądarka,arduino....
5. Gita by trzymać kod jak biali ludzie i móc się nim chwalić

ok to skoro odpowiedziałeś to jedziemy:
-Strony WWW
tu pytam się czy chcesz pisać to co widzimy (frontend) czy to co mieli (backend)

-Strony WWW.frontend
HTML do opisania struktury dokumentu.
CSS do opasania wyglądu dokumentu.
JavaScript do opisania zachowania strony.
na pierwsze 5-10 minut polecam zobaczyć jak to zachowuje się "nago" by znać trochę co się tam u
licha dzieje. A potem jak najszybciej przejść do frameworków (takie opakowania na język trochę)

-Strony WWW.backend
PHP stare to, brzydkie to, ale proste to i ma masę frameworków które powodują że można temu wybaczyć
Python (Diango) Nowoczesny, ładny,dość prosty
JavaScript (NodeJS) Nigdy w tym nie pisałem ale to jakaś asynchroniczna zupa
Java IMO ciężkie na początek ale korpo to lubi.
SQL potrzebne jeśli stosujemy bazę tego typu.

-Chce rozumieć jak działa komputer i hakować
C brzydkie to, stare to, upierdliwe to. Ale pisze się strasznie nisko (niżej tylko assemlber)
i jest używany do pisania systemów operacyjnych. Znaczy teraz pewno się z niego wycofujemy nie mniej
masa kodu linuxa nadal jest w C. Dzięki pisaniu strasznie nisko i dobremu kompilatorowi można produkować
naprawdę wydajny kod.
Assembler Gdzie diabeł nie może tam babę poślę. Ale IMO jedyny sens znajomości assemlbera pod procesor
na który powstał kompilator C jest czytanie kodu już skompilowanego.
C++ Młodszy brat C który robi taką rewolucje że warto uczyć się go nie od "początku" czyli jako C z klasami
a od razu rzucić się w wir C++11 i nowszych standardów.

-Chce przetwarzać dane

-Chce ruszyć materię (jakieś mikrokontrolery)
C w dialekcie dla danego procesora.
ale warto rzucić okiem na to co PLC daje nam

-Chce zautomatyzować sobie pracę
Linux:
Python,C# (nie mylić z C i C++), Bash,Perl,PowerShell, VisualBasic
Windows:
Python,C# (nie mylić z C i C++), Bash,Perl,PowerShell, VisualBasic

NIE #!$%@? NIE MAM WENY ALE CHĘCI MIAŁEM DOBRE MOŻECIE TO DOKOŃCZYĆ?
  • 10
à propos "-Strony WWW.frontend" (ostatnie zdania) to mając w głowie teraz głównie JS to moim zdaniem lepiej sobie ogarnąć troch dłużej czysty język, a dopiero po sporym ogarnięciu przejść do frameworku(przez sam okres nauki), bo jak się zacznie od nich to właściwie nie będzie się wiedzieć, co się dzieje w środku komend i funkcji napisanych przez osobę, która pisała te komendy albo dla siebie, albo do rzeczy ogólnych. Zaanimujesz sobie element, ale
@wytrzzeszcz: Brakuje mi zaakcentowania Machine Learningu i AI, kilku bardzej specjalistycznych dziedzin jak np.: algorytmika albo hft, bankowość.

No i JSa nie doceniłeś ( ͡° ʖ̯ ͡°)
Pomijając jego cyrki i fakt że dziennie powstaje po kilka frameworków, to js jako język (albo platforma) jest zarąbisty.

Do IoT niedługo Java wejdzie, więc pewnie C pójdzie w odstawkę i zostanie tylko w niektórych miejscach.

No i okazuje się,
@wytrzzeszcz: Odrobinę.
Debugger wstrzymuje Ci wątek i czeka aż go puścisz dalej.
Przy loggerach puszczasz appkę, robisz wywołanie i patrzysz na output konsoli. Czytasz stacktrace cały i wiesz co, gdzie i dlaczego tam się dzieje.
Czasami może się zdarzyć sytuacja że masz gdzieś race condition i stopując jeden wątek debuggerem "naprawiasz" buga przez co jest ciężki do wyłapania. Ale concurrency to ogólnie ciężki temat, a do debuggowania zwłaszcza.

Do tego przy