Czy programista C ma przewagę, aby przeczytać K&R? [Zamknięte]

10

To pytanie prześladowało mnie, ponieważ czytam teraz Kernighana i Ritchiego: The C Programming Language (K&R), ale często się spotykam i mam na myśli DUŻO programistów C, którzy nigdy go nie czytali.

Moje pytanie brzmi: czy czytanie K&R ma przewagę? Powinno być koniecznością?

Farouk Jouti
źródło
K&R został napisany przez facetów, którzy wymyślili język C. przez długi czas była to jedyna dostępna książka C
Steven A. Lowe,
Nie. Książka K&R nie jest jedyną, jaką kiedykolwiek napisano. W zależności od tego, jak się uczysz, inna książka może ci bardziej odpowiadać.
user16764
1
@ StevenA.Lowe: Pamiętaj, że stworzenie i rozwinięcie języka niekoniecznie daje najlepsze referencje do pisania o nim. Na przykład Gosling powiedział, że nie uważa się za eksperta w Javie. I nie jestem pewien, czy podobają mi się pisma Stroustrupa na temat C ++ w ogóle. Oczywiście wiedzą, o czym mówią w technicznych częściach języka, ale pełne wykorzystanie go, zdefiniowanie stylu i włączenie go do żywotnego ekosystemu to zupełnie inna sprawa. (choć myślę, że K&R zrobił to niesamowicie dobrze)
szlema
@ user16764: „nie” na „powinno być koniecznością?”, mam nadzieję, że nie „czy istnieje korzyść z czytania K&R?”
haylem,
@haylem: oczywiście. książka K&R jest dość dobra, na szczęście, ale nie widzę żadnej oczywistej korzyści z czytania jej zamiast lub oprócz innych zasobów C
Steven A. Lowe

Odpowiedzi:

15

Pomocne tak, konieczne nie. K&R nie jest definicją języka C. To po prostu jeden z wielu tekstów wprowadzających. Uważam, że jest to szczególnie jasne i zwięzłe, ale inni czytelnicy mogą preferować inne teksty. Samo przeczytanie go nie odróżnia cię w żaden sposób od innych programistów.

Charles E. Grant
źródło
więc mówisz mi, że niezależnie od tego, czy ja to czytam, nie robi to różnicy?
Farouk Jouti
7
Czytanie K&R i wykonywanie ćwiczeń to doskonały sposób na naukę wprowadzającego C. Istnieje jednak wiele innych książek i zasobów do nauki języka C, a wybór K&R spośród innych książek sam w sobie nie dowodzi twoich umiejętności programistycznych .
Charles E. Grant,
7
Oczywiście, zawsze możesz nauczyć się na własnej skórze .
Robert Harvey
4
K&R usunął dla mnie strach przed nauką. To prawie tak, jakby siedzieli obok mnie, tłumacząc różne rzeczy podczas domowej, przyjaznej rozmowy. Taka jest wartość „białej księgi”. (I nauczyłem się tego w 1985 r.)
Rob
@Rob: Tak, jest to bardzo przyjazna książka i jest bardzo przystępna. Uważam to za jeden z jego największych atutów, wraz z bardzo jasnymi przykładami / ćwiczeniami.
haylem,
8

Zgadzam się z Charlesem E. Grantem: nie jest to konieczne, ale warto je przeczytać, a oto dlaczego tak myślę:

Złe rzeczy

  • Jest przestarzały i dlatego może być mylący.
  • Jeśli znasz już dobrze C, nie nauczysz się wiele.
  • Jeśli nie jesteś fanem stylu kodu K&R, twoje oczy mogą płonąć.

Trzeci punkt jest nieistotny, a 2 pierwsze punkty są stosunkowo bezbolesne, przynajmniej wiesz, że czytanie go nie zaszkodzi.

Dobre rzeczy

  • To dobre wprowadzenie dla początkujących programistów, zarówno dla języka C, jak i programowania w ogóle.
  • Jest to przyjemna lektura (jak w: czyta się łatwo i jest dobrze napisana).
  • Nie chodzi tylko o wartość techniczną, ale także o wartość historyczną. Jeśli chcesz zostać ekspertem, dobrze jest wiedzieć, jak rozwijał się ten język, więc dobrze jest rzucić okiem na książkę, która pojawiła się niedługo po jej genezie, i jedną z najsłynniejszych książek tego języka. C się zmieniło. Niewiedza starych bitów może nie być przydatna, jeśli nie musisz ich używać, ale może bardzo pomóc, jeśli natrafisz na starszy kod lub zastanawiasz się, dlaczego niektóre rzeczy zostały wykonane w ten czy inny sposób.
  • Znowu chodzi o historię. Czytanie „Hakerów” Stevena Levy'ego lub „Dealerów błyskawicy” Hitzlicka nie uczy mnie niczego o wartości technicznej, ale jest anegdotyczne. W jakiś sposób uważam, że K&R ma również wielką wartość w tym względzie.

To nie strata czasu, więc powiedziałbym, że weź kopię w lokalnej bibliotece i zostaw ją na biurku. Podnieś go w pewnym momencie i możesz być zaskoczony, że w kontinuum czasoprzestrzennym pojawiła się mała dziura, kiedy znów podniosłeś głowę.

Haylem
źródło
2
+1: Zgadzam się z „Jeśli dobrze znasz C, nie nauczysz się wiele.”, Ale wielu (jeśli nie większość) programistów C, którzy czytają to po raz pierwszy, przekonuje się, że nie znało C tak dobrze, jak im się wydawało.
mattnz
1
@mattnz: Tak. (Biorąc to pod uwagę, obawiam się, że nie jest to specyficzne dla C, a szczególnie dla tej książki. Mamy tendencję do myślenia, że ​​wiemy rzeczy lepiej niż w rzeczywistości.)
haylem
6

Tak, K&R jest niezbędny.

Musisz to przeczytać, tak samo jak Hamleta i Władcę Pierścieni, w taki sam sposób, w jaki widziałeś Casablankę i Przeminęło z wiatrem i Gwiezdnymi wojnami.

To wspaniała mała książka. Zmieniło programowanie i przekształciło pismo techniczne i przez pokolenie reprezentowało szczyt stylu.

Co zyskujesz, nie czytając? Sześć godzin? Dwanaście? 20? Jeśli poważnie myślisz o programowaniu, będziesz spędzać tysiące godzin na przesyłaniu kodu. jeśli nie możesz zawracać sobie głowy czytaniem, co jeszcze nie możesz zrobić?

Całkiem możliwe, że K&R nie będzie twoją pierwszą książką C. W dzisiejszych czasach C nie powinien być twoim pierwszym językiem. Przeczytanie K&R nie jest konieczne, ale musisz to przeczytać.

A dlaczego nie chcesz? Jest fajnie

Mark Bernstein
źródło
1
Według mnie to zła analogia. Myślę, że ludzie powinni czytać te książki, ale po raz kolejny istnieje niezliczona ilość książek i filmów, które należy zobaczyć, a widzenie ich lub ich brak ogromna większość nie będzie silnym wskaźnikiem czegokolwiek. Jest to również dość specyficzne dla kultury, jeśli uważasz, że wszyscy muszą je przeczytać. Błędnie zakładasz również, że czas, który nie czyta K&R, jest czasem straconym. Nie wiesz, jak harmonogram OP, z tego co wiesz, może on lub ona planowała wykorzystać ten czas na 57 innych niezastąpionych książek, o których NIE wspominałeś.
haylem,
1
Ponadto, i chociaż czasami doradzałem niektórym ludziom, aby zaczęli posługiwać się innymi językami niż C, jestem zwolennikiem, że należy tego uczyć wcześnie i dobrze uczyć. Zasadniczo jedyną rzeczą, z którą mogę serdecznie się zgodzić w twojej odpowiedzi jest: „To wspaniała mała książka. Zmieniła programowanie i przekształciła pismo techniczne, a dla pokolenia reprezentowała szczyt stylu”. (chociaż nie jestem nawet pewien co do tej drugiej części, która również wydawała mi się rażąco uogólniona)
haylem
1
Kierując się rozumowaniem, każdy powinien przeczytać „Elementy algebry” Eulera lub „Brāhmasphuṭasiddhānta”. W końcu zmienili swoją dziedzinę zarówno ze względu na treść, jak i formę i byli w pewnym momencie szczytem stylu, prawdopodobnie jeszcze przez kilka kolejnych pokoleń. Na pewno ich nie czytanie to wielka strata czasu.
haylem,
Jest rok 2019 i nie czytałem K&R i nie oglądałem ani nie czytałem niczego na twojej liście. Jestem poważny.
Ronnie,
4

Tak.

Nie jest zbyt dobrze, jeśli chcesz wiedzieć, jak pisać programy przy użyciu bieżących wersji C, ale--

Wyjaśnia bardzo wyraźnie, dlaczego język wygląda, i intencje niektórych podstawowych decyzji projektowych.

Jeśli kiedykolwiek zostaniesz poproszony o udokumentowanie czegokolwiek, „The C Programming Language” jest absolutnym przykładem tego, jak to zrobić. Dobrze zorganizowane, jasne, zwięzłe i czytelne. Jest napisany prostym językiem angielskim z minimum żargonem i zerowymi modnymi słowami.

James Anderson
źródło
2

Nie jestem pewien, czy nauczyłbyś się czegoś innego od K&R niż z innych książek C, ale wydaje mi się, że możesz dowiedzieć się sporo o ludziach, widząc, jakie książki wolą czytać na dany temat.

  • K&R to dobrze napisana i zwięzła książka, ale trochę banalna jako rekomendacja.
  • Moim ulubionym był Harbison & Steele , równie dobrze napisany jak K&R, ale znacznie bardziej szczegółowy.
  • Jeśli ktoś woli książkę z serii „… dla manekinów”, podejrzewam ich poświęcenie dla ich rzemiosła, nie dlatego, że te książki są takie złe, ale dlatego, że nie zagłębiają się w szczegóły.
  • Jeśli ktoś przeklina książki Herberta Schildta, ma ochotę wniknąć w szczegóły, ale podejrzewałbym ich osąd w wybranych przez siebie książkach.

Ogólnie rzecz biorąc, nie sądzę, że czas spędzony na czytaniu wysokiej jakości książki technicznej (a K&R jest zdecydowanie jedna i niezbyt długa) nigdy nie jest zmarnowany.

mikrotherion
źródło