Jak powinna poprawnie wyglądać nauka języka?

Jak powinna poprawnie wyglądać nauka języka?
SO
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:7
0

No tak jak w tytule tematu, jak człowiek powinien się uczyć jakiegoś języka programowania, aby to miało sens? Przerabiałem trochę rzeczy i uważam, że różne kursy w moim przypadku nie mają sensu, bo jest tego w takim kursie za mało i nie jest dany temat w pełni wyczerpany, to znaczy, że jak ktoś mi tu opowiada w kursie o metodach na tablicach, to poda jakieś dwie metody, które potrzebuje, bo tak sobie w kursie założył, ale pozostałych metod jest 20 i więcej, a nawet nie był w stanie napisać gdzie mogę znaleźć dokładną, sprawdzoną informację na ten temat - być może dlatego, aby zakupić kolejną część kursu. Przerabiałem parę kursów i niestety, ale DLA MNIE są bez sensu, zwłaszcza nie takie, gdzie miałem okazję uczestniczyć, na kilkadziesiąt godzin, niby setki materiałów, a za przeproszeniem g**no tam jest. Myślałem nad książkami, ale jak to z książkami bywa, mogą nie być aktualne, więc nauka z programowania z książki, która została wydana w 2015 może nie mieć sensu, to nie jest medycyna.

Teraz po prostu robię tak, że otwieram sobie dokumentację takich metod używanych w tablicach JS, i sprawdzam po kolei jak działa każda metoda, robię notatki do każdej przetestowanej metody, czyli do czego służy, ile parametrów może przyjmować i jakie one są - oczywiście tak na logikę, nie opisuję strony A4 tylko w paru zdaniach. Czasami coś połączę, wykorzystam w funkcji taką metodę i tak dalej, dalej w skrócie opisane jak to teraz robię. Do tego dochodzi typowo teoria, abym potrafił wskazać różnicę np o metodzie shift oraz unshit, na czym polega operacja redukcji, itd. Co mogę jeszcze zmienić, aby było lepiej?

Jest jakiś sposób, aby robić własne notatki przy pomocy wsparcia kodu? Bo teraz piszę sobie w Dokumentach Google i wklejam kod, który nie wygląda za dobrze, potrzebowałbym jakiegoś Markdown, jest coś dobrego na Windowsa, w ostateczności na Linuxa? Może być płatne, musi mieć możliwość zapisu do PDF, itp.

sugar_hiccup
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:176
1

Wymyślić projekt i pisać, pisać, pisać, pisać. Najpierw zagląda się do dokumentacji, a po jakimś czasie baaardzo dużo rzeczy wchodzi w "pamięć mięśniową". Osobiście nie widzę żadnego sensu w robieniu sobie notatek innych niż jakieś cheat-sheety rodzaju listy przekierowań strumieni w bashu, bo nie sposób tego spamiętać. No ale to są moje prywatne odczucia, każdy się uczy inaczej.

Jest jakiś sposób, aby robić własne notatki przy pomocy wsparcia kodu? (...) potrzebowałbym jakiegoś Markdown (...) musi mieć możliwość zapisu do PDF, itp.

Brzmi jak dobry pomysł na taki ćwiczebny projekt. Jest dość rozbudowany, żeby użyć wielu ficzerów danego języka.


My to na arm napiszemy wszystko i zrobimy co chcemy tyle że 90% kodu to biblioteki z netu albo robota kompilatora Zdajesz sobie sprawę że tak na prawdę wyższy poziom języka może świadczyć jedynie o tym jak niskim poziomem wiedzy może dysponować bałwan,który nazwie się w rezultacie programistą i napisze działający program wciskając zleceniodawcy że tam to akurat musi być 100MHz ARM z 1M pamięci bo tak na prawdę jego pusta łepetyna nie potrafi zrealizować czegoś na innym słabszym mikrokontrolerze
.__.
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
1

Podstaw programowania uczysz się na bieżąco, pisząc kod i szukając rozwiązań w internecie, a nie zapisując sobie wszystkie metody klas, które środowisko zazwyczaj podpowiada wraz z parametrami i instrukcjami do czego one służą :D Jeżeli chcesz być w tym dobry, to nie ucz się wszystkiego na pamięć, bo nie starczy Ci życia na start w branży, tylko naucz się wyszukiwać informacje i z nich korzystać. Kod z komentarzami powinien być Twoją dokumentacją.

SO
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:7
0

Jeśli nie znam konkretnych metod, to jak mam dobrze napisać kod? Przykładowo znalezienie największej liczby z podanych mogę łatwo ogarnąć za pomocą Math.max, ale kiedyś dawno temu nie wiedziałem o takich rzeczy i robiłem to za pomocą if co wyglądało tragicznie, dlatego o to mi chodzi, aby przejrzeć dokumentację, sprawdzić różne dostępne w języku metody, zobaczyć na przykładzie jak ona działa, wychwycić różnice między między nią a przeciwną itd. A przy sprawdzaniu takiej już metody napisanie linijki komentarza co robi nie uważam za stracony czas.

sugar_hiccup
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:176
2
SzyszekOgromny napisał(a):

Jeśli nie znam konkretnych metod, to jak mam dobrze napisać kod?

Za pierwszym piszesz tragiczny kod, bo znasz tylko ify. Za drugim razem piszesz lepszy (z nowo poznanymi właściwościami języka, strukturami danych, etc.), za trzecim razem jeszcze lepszy (z użyciem stosownych wzorców projektowych/architektoniczych), a naprawdę dobry to nie będzie nigdy. Tak wygląda nauka programowania i tego raczej nie przeskoczysz. No ale jak ci pomaga robienie notatek, to jak najbardziej rób. Byle nie pochłaniały za dużo czasu, który mógłbyś poświęcić na praktykę, bo ćwiczenie się w sztuce programowania to proces czasochłonny.

Robienie notatek traci w pewnym momencie sens, bo w efekcie przepiszesz dokumentację na nowo. A ona już tam jest, często sprzężona z IDE. I co więcej, zmienia się w czasie. Więc myślę, że nauka na bieżąco poprzez zwyczajne pisanie kodu jest jedyną sensowną drogą.

Zresztą same metody, klasy, składnia, API danej technologii to jest jeden z mniejszych problemów w nauce, bo to zawsze siedzi gdzieś na stacku, w dokumentacji, w IDE, w man page'ach. Tutaj chodzi o nabycie po pierwsze specyficznego sposobu myślenia, a po drugie umiejętności szybkiego i efektywnego przyswajania wiedzy w locie, a to, podkreślam jeszcze raz, nabywa się poprzez trening na placu boju, w praniu.


My to na arm napiszemy wszystko i zrobimy co chcemy tyle że 90% kodu to biblioteki z netu albo robota kompilatora Zdajesz sobie sprawę że tak na prawdę wyższy poziom języka może świadczyć jedynie o tym jak niskim poziomem wiedzy może dysponować bałwan,który nazwie się w rezultacie programistą i napisze działający program wciskając zleceniodawcy że tam to akurat musi być 100MHz ARM z 1M pamięci bo tak na prawdę jego pusta łepetyna nie potrafi zrealizować czegoś na innym słabszym mikrokontrolerze
edytowany 6x, ostatnio: sugar_hiccup
FA
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:12
0

Teraz po prostu robię tak, że otwieram sobie dokumentację takich metod używanych w tablicach JS, i sprawdzam po kolei jak działa każda metoda, robię notatki do każdej przetestowanej metody, czyli do czego służy, ile parametrów może przyjmować i jakie one są - oczywiście tak na logikę, nie opisuję strony A4 tylko w paru zdaniach. Czasami coś połączę, wykorzystam w funkcji taką metodę i tak dalej, dalej w skrócie opisane jak to teraz robię.

Jeśli nie masz jakieś dziwnej pracy typu help desk, to co robisz to masochizm, i strata czasu.

więc nauka z programowania z książki, która została wydana w 2015 może nie mieć sensu

Jeśli uczysz się z książki typu "Podstawy programowania", a nie "Framework js marzec 2019", to nauka z książek ma jak najbardziej sens. W książkach z reguły zawarta jest wiedza uniwersalna i nie zależna mocno od frameworka i czy nawet jezyka.

A przy sprawdzaniu takiej już metody napisanie linijki komentarza co robi nie uważam za stracony czas.

I tak i nie, bo musisz umieć pisać takie rzeczy jak max, min, z palca i na zawołanie. W każdym nie trywialnym projekcie prędzej niż później dojdziesz do momentu w którym bedzie pisał dokładnie takie metydy, z jednym dodatkowym if'em w środku, czy sprawdzeniem nulla.

edytowany 2x, ostatnio: _famingAccount
littleboy66
littleboy66
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:25
0

Do programowania komercyjnego w Polsce wystarczy Ci podstawowa znajomości składni języka, obiektowości oraz dobra znajomość angielskiego. Większość się googluje na stackoverflow i najwyżej przerabia pod siebie. Jeżeli mi nie wierzysz, to jako dowód czas popatrzeć ile bootcampowiczów w 3/6 miesiący się potrafiło poprzebranżawiać ostatnimi czasy i poznajdywać pracę. Nie wiem jak w innych krajach.

edytowany 12x, ostatnio: littleboy66
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8404
1

No tak jak w tytule tematu, jak człowiek powinien się uczyć jakiegoś języka programowania, aby to miało sens?

Pisząc praktyczne projekty. Im wcześniej przestaniesz się "uczyć języka programowania X", a zacznieć "programować w języku X" tym lepiej.

Przerabiałem parę kursów i niestety, ale DLA MNIE są bez sensu, zwłaszcza nie takie, gdzie miałem okazję uczestniczyć, na kilkadziesiąt godzin, niby setki materiałów, a za przeproszeniem g**no tam jest. Myślałem nad książkami, ale jak to z książkami bywa, mogą nie być aktualne, więc nauka z programowania z książki, która została wydana w 2015 może nie mieć sensu, to nie jest medycyna.

Kiedyś było lepiej, bo było mniej materiałów (ale znowu: jak się coś znalazło to zwykle miało to ręce i nogi, bo nie było tyle pozerstwa. Teraz każdy, kto programuje co najmniej pół roku, tworzy własny tutorial czy kurs programowania. I są to często rzeczy słabej jakości).

Niestety internet się rozwija i z roku na rok coraz gorzej będzie (coraz większy śmietnik informacyjny i coraz więcej pozerstwa). Więc jeśli chcesz programować, to nie możesz marudzić, tylko zaakceptować ten fakt, że programowanie to grzebanie w gównie i kluczową umiejętnością zaczyna być umiejętność wyszukiwania wartościowych informacji w tonie gówna i umiejętność krytycznego myślenia, żeby odróżnić g**no od wody pitnej (ew. można zamienić g**no w wodę pitną, niczym Bill Gates - w zasadzie nie sam Bill Gates, bo miał od tego ludzi, wiadomo). Więc też czasem z czegoś słabego można wyciągnąć jakąś pożyteczną naukę.

Myślałem nad książkami, ale jak to z książkami bywa, mogą nie być aktualne, więc nauka z programowania z książki, która została wydana w 2015 może nie mieć sensu, to nie jest medycyna.

Książki są też dostępne w postaci cyfrowej i uaktualniane.

Teraz po prostu robię tak, że otwieram sobie dokumentację takich metod używanych w tablicach JS, i sprawdzam po kolei jak działa każda metoda, robię notatki do każdej przetestowanej metody, czyli do czego służy, ile parametrów może przyjmować i jakie one są -

Ale to nie ma sensu. Po prostu naucz się używać tablic w JS, rób projekty, w których będziesz z nich korzystał (tam gdzie potrzeba), to ci się utrwali. A jak czegoś zapomnisz, to sprawdzisz sobie na MDN.


edytowany 6x, ostatnio: LukeJL
littleboy66
littleboy66
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:25
0
LukeJL napisał(a):

No tak jak w tytule tematu, jak człowiek powinien się uczyć jakiegoś języka programowania, aby to miało sens?

Kiedyś było lepiej, bo było mniej materiałów (ale znowu: jak się coś znalazło to zwykle miało to ręce i nogi, bo nie było tyle pozerstwa. Teraz każdy, kto programuje co najmniej pół roku, tworzy własny tutorial czy kurs programowania. I są to często rzeczy słabej jakości).

Trochę Januszostwem mi zaleciało xD W sensie "kiedyś to było lepiej". Właśnie teraz są najlepsze czasy bo wszystko masz na wyciągnięcie ręki. Może i są rzeczy słabej jakości, ale są też i dobrej. Jest np. masa kursów robionych przez uniwersytety, a nawet same firmy typu oracle, pivotal. Poza tym każdy ma prawo robić tutoriale, kwestia tego czy chcesz to oglądać czy nie. Zawsze tak było, nie tylko w branży IT.

edytowany 1x, ostatnio: littleboy66
FA
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 lat
  • Postów:12
0

Kiedyś było lepiej, bo było mniej materiałów (ale znowu: jak się coś znalazło to zwykle miało to ręce i nogi, bo nie było tyle pozerstwa. Teraz każdy, kto programuje co najmniej pół roku, tworzy własny tutorial czy kurs programowania. I są to często rzeczy słabej jakości).

Niestety internet się rozwija i z roku na rok coraz gorzej będzie (coraz większy śmietnik informacyjny i coraz więcej pozerstwa).

Dlatego jeszcze raz polecę książki, może nie mają pięknej cukierkowej formy, za to informacje są sprawdzone, zredagowane i wartościowe. A postać sama w sobie zmusza do skupienia i ruszenia głową.

Trochę Januszostwem mi zaleciało xD W sensie "kiedyś to było lepiej". Właśnie teraz są najlepsze czasy bo wszystko masz na wyciągnięcie ręki. Może i są rzeczy słabej jakości, ale są też i dobrej.

A to wymaga wkładania wysiłku w celu przesiania, informacji. Wada, dwa wiele tematów zwłaszcza niszowych jest robionych. Znajdź np. w internecie NIE MA ani jednego przykładu w formie artykuły bloga lub filmu, poprawnego uzycia wzorca MVVC w WPF'ie. Żadnego, wszystkie są po łepkach. I zrobione bez jednej warstwy.

edytowany 1x, ostatnio: _famingAccount
FA
To jest jakaś nie udolna próba pokazania praktycznej metody, "Przypadku gdy spierdoliłeś sam nie wiesz co, za komentuj wszystkie zmiany, tak by się kompilowało. A potem szukaj błędu bi-sekcją". Pomysł dobry i, bo osoby na poziomie zero 1) nie lubią usuwać swoich z trudem napisanych 20 linii, 2) za to lubią bić się IDE i jak przestaje współpracować piszą z palca na chama, tworząc 50 innych errorów. Widać że ten ktoś uczy studenciaków lub licbazie bo face-to-face to działa, za to w książce wygląda średnio.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)