Nauka programowania, która książka będzie lepsza?

Nauka programowania, która książka będzie lepsza?
K&R
75%
75% [3]
Prata
25%
25% [1]
KR
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:2
0

Cześć

Chcę się rozwijać w kierunku DevOps, rozpoczynam właśnie studia informatyczne i mam bardzo małą styczność z programowaniem(podstawy Pythona). Do tej pory uczyłem się sieci i Linuxa. Postanowiłem, że będę uczył się programować z użyciem technologii, które będą na studiach. W pierwszym semestrze mam C. Czytałem sporo opinii o dwóch książkach: Prata oraz K&R. Mam mętlik w głowie, bo książki są bardzo różne. Książka Praty jest ze 4x dłuższa. Niekoniecznie chcę tracić czas na lanie wody. K&R jest o wiele starsza, pisana pod starsze standardy. Zależy mi także na zadaniach i projektach. Którą książkę wybrać i dlaczego?

KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:6 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1

K&R to chyba już archeologia?
Na uniwersytetach lubią taką archeologię wiec jeszcze ze sto lat będą ją polecać. Ale ja bym się dwa razy zastanowił jakbym miał brać książkę do nauki programowania starszą ode mnie


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
KR
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad 3 lata
  • Postów:2
0

No dlatego wolę dopytać, ze względu na oszczędność czasu chcę uczyć się akurat tego co będzie na studiach, bo tam i tak jest fajny rozkład technologii, jest C, C++, C#, Java, Python, sporo tego.. Dowiedziałem się, że zajęcia z C polegają na prezentacji pokazującej składnię i kilku zadań więc chciałbym to poprzeć jakąś fajną książką, jak to działa 'under the hood'.

BA
  • Rejestracja:ponad 3 lata
  • Ostatnio:około 2 miesiące
  • Postów:24
0

Pewnie mniej popularna, ale moim zdaniem świetna do nauki C: https://www.amazon.com/Head-First-C-Brain-Friendly-Guide/dp/1449399916

Uczyłem się z niej C i w bardzo przystepny sposób pokazuje inne zagadnienia z zakresu OS np. jak wygląda model pamięci procesu w OS itp.

Head First to cała seria książek do różnych języków programowania.

Co do DevOpsa, to zajrzyj na taką roadmapę: https://roadmap.sh/devops

Polecam również książki od Tanenbauma:
Sieci: https://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958
Systemy: https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X
Architektura komputerów: https://www.amazon.com/Structured-Computer-Organization-Andrew-Tanenbaum/dp/0132916525 - moim zdaniem totalny sztos, najlepsza książka do architektur jaką widziałem! ;)

A tak to musisz cisnąć jak najwięcej z samym kodowaniem projektów w praktyce, rozwiązywaniem zadań:
https://pl.spoj.com/
https://github.com/karan/Projects
oraz inne strony z listami projektów

edytowany 2x, ostatnio: Baldr
ZI
  • Rejestracja:około 10 lat
  • Ostatnio:ponad rok
  • Postów:14
0

K&R jest jedną z najlepszych książek informatycznych ever. Owszem, uczy starożytnego ANSI C, ale to jest zaleta a nie wada. Under the hood jest tak dużo, że za wcześnie dla Ciebie na początek. Jak poznasz C, to możesz poczytać OSTEP (https://pages.cs.wisc.edu/~remzi/OSTEP/), gdzie jest sporo projektów w C. Ale jeśli chcesz iść w DevOps, to niższy poziom może być dla Ciebie mało pociągający, więc pomyśl, czy chcesz w to inwestować czas.

lamerski
  • Rejestracja:ponad 7 lat
  • Ostatnio:prawie 2 lata
1

Head First to totalny chaos dla kogoś, kto dopiero zaczyna. Aby wykorzystać w pełni wiedzę zawartą w tej książce, trzeba sięgnąć do innych technologii. Pamiętam, że było tam Arduino i jakaś archaiczna biblioteka do robienia gier w 2D. Głowy pod topór nie położę, ale świta mi nawet coś o JS... Head First bym sobie podarował.
Ostatnia wersja K&R (czyli druga) była aktualna na albo na rok 1988, albo na 1989. Kosmicznych zmian w języku C od tego czasu nie było. Później wdrażano jeszcze standardy C99, C11 i C18 (który faktycznie jest standardem C11, lecz poprawionym o kilka błędów, bez dodawania nowych funkcjonalności).
K&R będzie dobry dla tych, którzy nie mają czasu na przebijanie się przez tysiącstronicowe tomy (bo kto ma na to czas na studiach?). Jednak z tyłu głowy musisz mieć to, że kiedyś i tak trzeba będzie zaktualizować swoją wiedzę. I to szybciej, niż później, jeśli będziesz pracować w tej technologii. Myślę, że wartościową kontynuacją będzie książka Kamrana Amini "Ekstremalny kod w języku C" (tytuł oryginału: "Extreme C: Taking you to the limit in Concurency, OOP, and the most advanced capabilities of C") i to bynajmniej nie ze względu na wskazówki jak ogarniać obiektówkę w C, lecz wiele cennych informacji o programowaniu niskopoziomowym.
Prata z kolei jest kompleksowy w dosłownym znaczeniu tego słowa. Systematycznie, wręcz łopatologicznie tłumaczy kolejne zagadnienia. Oczywiście mówimy o jego książce o C, a nie o C++, bo ta mu już tak dobrze nie wyszła... Pomimo swej objętości, to nadal książka dla początkujących i tylko dla początkujących. Jeśli masz podstawy Pythona, to raczej nie trzeba Ci tłumaczyć tego czym jest zmienna lub czym jest tablica.
Miałem w rękach wszystkie książki, o których napisałem. K&R + Extreme C mają chyba tyle samo stron co Prata. Dlatego, choć książka Praty to (moim zdaniem) najlepsza książka o C dla początkujących jaką kiedykolwiek widział świat, tym razem jej nie polecę, ze względu na ograniczoną ilość czasu, jaką masz do dyspozycji. Raczej poleciłbym K&R, pomimo delikatnego trącenia myszką. Ogarnięcie paru subtelnych zmian, które wprowadzano aż do standardu C11 zajmie Ci mniej czasu, niż przebicie się przez całego Pratę.


Życie jest zbyt krótkie, by marnować czas na spieszenie się.
nalik
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 2 lata
  • Postów:1039
0

Ja przeczytałem K&R jako drugą książkę do C, jako uzupełenienie. Pierwsza była jakaś z O'Reilly, której już nie pamiętam. Moim zdaniem K&R jako pierwsza książka do programowania nie jest najlepszym wyborem. Dla kogoś, kto uczy się podstaw, może okazać się niewyczerpująca i za mało obrazowa. Jest treściwa, więc doceni ją ktoś, kto ma już podstawy programowania i nie lubi przebijać się przez tysiące przykładów, porównań, anegdot, etc.
Aczkolwiek myślę, że jeżeli uzupełni się K&R wykładami, ćwiczeniami, ewentualnie tutorialami online, to nie widzę problemu używać owej książki nawet jako pierwszą lekturę z programowania.

edytowany 3x, ostatnio: nalik
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)