Чи є перевага програмісту C читати K&R? [зачинено]


10

Це питання мене переслідує, тому що я зараз читаю статті Керніган і Річі: Мова програмування на C (K&R), але я зустрічаю багато, і я маю на увазі МНОГО програмістів на С, які ніколи її не читали.

Отже, моє запитання: чи є перевага читати K&R? Чи повинна бути необхідність?


K&R написали хлопці, які винайшли мову С; тривалий час це була єдина книга, доступна на С
Стівен А. Лоу

Ні. Книга K&R - не єдина книга, що коли-небудь написана. Залежно від того, як ви навчаєтесь, інша книга цілком може вам підійти.
user16764

1
@ StevenA.Lowe: Зауважте, що, створивши та розробивши мову, не обов'язково давати вам найкращі дані для написання. Наприклад, Гослінг, зокрема, сказав, що не вважає себе експертом Java. І я не впевнений, що мені дуже подобаються твори Струструпа в цілому на C ++. Очевидно, вони знають, про що вони говорять у технічних частинах мови, але використовувати його в повній мірі, визначаючи стиль та роблячи його частиною життєздатної екосистеми - це зовсім інша річ. (хоча я думаю, що K&R зробили це напрочуд добре)
haylem

@ user16764: "ні" до "повинно бути необхідністю?", я сподіваюся, не "чи є перевага читання K&R?"
haylem

@haylem: звичайно. Книга K&R, на щастя, є досить хорошою, але я не бачу очевидної переваги в тому, щоб прочитати її замість або доповнення до інших ресурсів C
Стівен А. Лоу

Відповіді:


15

Корисна так, необхідна ні. K&R - це не визначення мови С. Це просто один із багатьох вступних текстів. Я вважаю це особливо чітким і стислим, але інші читачі можуть віддавати перевагу іншим текстам. Просто прочитавши, це ні в якому разі не відділяє вас від інших програмістів.


тож ти мені кажеш, що чи я читаю це не має значення?
Farouk Jouti

7
Читання K&R та виконання вправ - це чудовий спосіб засвоїти вступний C. Однак, існує багато інших книг та ресурсів для вивчення C, а обравши K&R для однієї з інших книг, саме по собі не демонструє вашої компетентності програміста. .
Чарльз Е. Грант

7
Звичайно, ви завжди могли навчитися важко .
Роберт Харві

4
Компанія K&R зняла страх навчитися цього для мене. Це майже так, ніби вони сиділи поруч зі мною і пояснювали речі в домашній, дружній чаті. У цьому значення "білої книги". (І я дізнався це в 1985 році)
Роб,

@Rob: Так, це дуже привітна книга, і вона дуже доступна. Я вважаю це одним із своїх найбільших переваг, а також дуже чіткими прикладами / вправами.
haylem

8

Я погодився б із Чарльзом Е. Грантом: це не обов'язково, але це варто прочитати, і ось чому я вважаю так:

Погані речі

  • Він датований і, таким чином, може бути заплутаним.
  • Якщо ви вже добре знаєте С, то багато чого не навчитесь.
  • Якщо ви не шанувальник стилю коду K&R, очі можуть горіти.

Третя точка незначна, а дві перші точки відносно безболісні, принаймні ви знаєте, читання це не зашкодить.

Хороші речі

  • Це гарне введення для початківців програмістів, як для C, так і для програмування взагалі.
  • Це приємне читання (як у: воно читається легко і добре пишеться).
  • Йдеться не лише про технічну цінність, а й про історичну цінність. Якщо ви прагнете бути експертом, добре знати, як розвивалася мова, тому добре поглянути на книгу, яка була не так довго після її генезису, і на одну з найвідоміших книг цієї мови. C змінився. Якщо ви не знаєте старі біти, це може бути не корисним, якщо вам не доведеться їх використовувати, але це може дуже допомогти, якщо ви зіткнетесь зі старшим кодом або якщо вам цікаво, чому деякі речі були зроблені так чи інакше.
  • Знову ж таки, про історію. Читання "Хакерів" від Стівена Леві або "Продавці блискавки" від Hitzlick не вчить мене нічого технічного значення, але це анекдотично. Якимось чином я вважаю, що K&R має велике значення і в цьому плані.

Це не марна трата часу, тому я б сказав, взяти копію в місцевій бібліотеці та залишити її на своєму столі. Підберіть його в якийсь момент, і ви можете бути здивовані, що в просторі-часі континууму був невеликий отвір, коли ви знову піднімаєте голову.


2
+1: Я погоджуюсь з "Якщо ви вже добре знаєте C, ви багато чого не навчитесь".
mattnz

1
@mattnz: Так. (Це, як кажуть, боюсь, що це не характерно для C та зокрема для цієї книги. Ми схильні думати, що ми знаємо речі краще, ніж насправді.)
haylem

6

Так, K & R є необхідним.

Ви повинні читати це так само, як і Ви повинні читати Гамлета та "Властелина кілець" так само, як ви повинні бачити Касабланку та "Віднесені вітром" та "Зоряними війнами".

Це приголомшлива маленька книжка. Це змінило програмування, і воно перетворило технічну писемність, і для покоління представляло вершину стилю.

Що ви отримуєте, не читаючи його? Шість годин? Дванадцять? Двадцять? Якщо ви серйозно ставитеся до програмування, ви витрачаєте тисячі і тисячі годин на перенесення коду. якщо ти не можеш потрудитися читати, що ще не можеш потурбуватися?

Цілком можливо, що K&R не повинна бути вашою першою книгою C І нині С не має бути вашою першою мовою. Не важливо спочатку прочитати K&R, але ви повинні прочитати його.

А чому б ти цього не хотів? Це весело.


1
На мою думку це погана аналогія. Я думаю, що люди повинні читати ці книги, але все-таки є незліченна кількість книг і фільмів, які варто побачити, і побачити чи не побачити їх переважна більшість не буде сильним показником нічого. Крім того, це досить специфічно для культури, якщо ви думаєте, що всі повинні їх читати. Ви також помилково припускаєте, що час, не читаючи K&R, витрачений даремно. Ви не знаєте, як графік роботи ОП, адже ви знаєте, можливо, він або вона планували використовувати цей час для 57 інших незамінних книг, які ви НЕ згадували.
haylem

1
Крім того, і хоча я вчасно порадив деяким людям починати з інших мов, ніж З, я є прихильником того, що це слід вчити рано і добре навчати. В основному єдине, з чим я щиро погоджуюся у вашій відповіді: "Це надзвичайна маленька книжка. Це змінило програмування, і перетворило технічну писемність, і для покоління вона представляла вершину стилю". (хоча я навіть не впевнений в останній частині, яка мені також здавалася грубо узагальненою)
haylem

1
Підсумовуючи свої міркування, кожен повинен прочитати «Елементи Алгебри» Ейлера або «Брахмасфусасіддханта». Зрештою, вони змінили своє поле як за змістом, так і за своєю формою і були в якийсь момент вершиною стилю, ймовірно, для ще кількох поколінь. Безумовно, їх не читати - це велика трата часу.
haylem

Настав 2019 рік, і я не читав K&R і не переглядав і не читав нічого у вашому списку. Я серйозно.
Ронні

4

Так.

Це не так добре, якщо ви хочете знати, як писати програми, використовуючи поточні версії C, але ...

Це дуже чітко пояснює, чому мова виглядає так, як це робиться, і наміри, що стоїть за основними дизайнерськими рішеннями.

Якщо вас коли-небудь попросять документувати що-небудь "Мова програмування на С" - це абсолютний приклад того, як це зробити. Добре організований, чіткий, лаконічний і читабельний. Його написано на звичайній англійській мові з мінімумом жаргону та нульовими мовними словами.


2

Я не впевнений, що ви дізнаєтесь щось інше з K&R, ніж з інших книг C, але я схильний вважати, що ви можете навчитися людям зовсім небагато, побачивши, які книги вони вважають за краще читати з цієї теми.

  • K&R - це добре написана і стисла книга, але трохи кліше як рекомендація.
  • Мій особистий фаворит був Harbison & Steele , так само добре написаний як K&R, але значно детальніше.
  • Якщо хтось віддає перевагу книзі з серії «… для манекенів», я б підозрював їх прихильність до їхнього ремесла не тому, що ці книги такі погані, а тому, що вони не надто глибоко вникають у деталі.
  • Якщо хтось клянеться книгами, написаними Гербертом Шильдтом, у них є бажання розібратися в деталях, але я запідозрив би їхнє судження у вибраних ними книгах.

Взагалі, я не думаю, що час, витрачений на читання якісної технічної книги (а K&R, безумовно, одна, і не дуже довга), ніколи не витрачався даремно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.