Есть ли срок годности для хорошо известных, но старых книг по программированию? [закрыто]

51

После прочтения вопроса о книгах, которые должен прочитать каждый программист , мне интересно, следует ли считать следующее устаревшим:

Все эти книги кажутся очень старыми. Разве нет разницы между современными компьютерами и тем, что было актуально, когда были написаны эти книги?

Например, мой 61-летний учитель очень хорошо объясняет вещи, но забывает принять во внимание все, что было сделано между тем, когда он начал преподавать 25 лет назад и сейчас.

Разве это не так для этих книг? Разве не существует более современных книг, которые учат принципам и технологиям, которые ближе к современной практике? Или вы считаете их полезными и актуальными даже сегодня?

Olivier Pons
источник
9
Стоило бы подумать, почему все перечисленные названия были впервые опубликованы не менее 12 лет назад, но все еще ценны сегодня. Четыре из пяти были обновлены с момента их первого издания, но среднее время между выпусками составляет 10,4 года.
Калеб
83
Фундаментальные принципы программирования не меняются только потому, что появился новый язык или структура "аромата недели".
Роберт Харви
26
Ожидать, что выпускник по информатике будет создавать сложную программную систему, все равно, что ожидать, что выпускник по гражданскому строительству спроектирует подвесной мост, этого просто не должно быть. Школа не научит вас всему, что вам нужно знать в долгосрочной перспективе, она должна научить вас тому, как научиться быть великим инженером-программистом, и этим старым книгам есть, что сказать сейчас, как и десятилетия назад - все кончено 16 лет со дня выхода 20-летнего издания The Mythical Man-Month, и сегодня оно столь же актуально, как и оригинал в 1975 году.
Марк Бут
10
эти книги вне времени; но программист, который ограничивал бы себя только этими книгами и игнорировал бы более новые вещи, был бы действительно устаревшим
комнат
4
Вы как бы задаете вопрос: если книги хорошие, то они не устарели.
Quant_Dev

Ответы:

92

Эти книги о принципах развития. Эти принципы по своей природе не зависят от языка, а для некоторых даже не зависят от парадигмы (ООП, функциональное программирование, императивные языки).

Они объясняют теорию и хорошие пути развития, потому что, в конце концов, программное обеспечение всегда сводится к получению данных, их обработке, а затем выводу обратно. Facebook, Twitter, 3D, пакетный учет, управление железнодорожным движением, запуск ракет и т. Д.

Книги о языке, например "How to learn XXXXX in YY days", где XXXXX - это язык, а YY - это число, которое со временем (а иногда даже очень быстро) устареет, потому что по своей природе они о вещах, которые либо развиваются, либо заменяются и становятся устареть.

Code Complete , от удивительного Стива Макконнелла, возможно, книга, которая заставила меня понять это. И Прагматичный Программист полностью изменил мое видение разработки программного обеспечения. Читая такие книги, вы понимаете, что 95% проблем, с которыми вы сталкиваетесь каждый день, уже решены, и что 95% из нас все еще изобретают велосипед.

Так называемое «облако» - это не будущее разработки программного обеспечения, это способ использования разработанного программного обеспечения.

Не попадайтесь в ловушку модных словечек с обманом и чушью, сосредоточьтесь на том, как вы можете улучшить свои навыки мастера программного обеспечения.

Сосредоточьтесь на изучении того, что другие блестящие духи изобрели и изучили перед нами, потому что это единственный способ стать опытным разработчиком.

Clement Herreman
источник
6
Хорошие художники копируют, великие художники крадут
хафичук
16
... настоящие артисты корабля. :-)
любезно
9
И все же, независимо от того, сколько раз мы говорим это, люди все еще верят, что им просто нужен javascript за 12 дней.
Спенсер Рэтбун
2
Хорошие художники копируют, великие художники копируют И сохраняют код чистым! (У меня было так много головных болей в школе, когда я работал с другими детьми, которые напутали в проекте, потому что они копировали все и всех ...)
HTDutchy
@SpencerRathbun, кроме того (IMHO), Javascript гораздо более отруби, чем другие языки, такие как PHP. Тем не менее, существует один миллиард "Learn Javascript in 15 seconds"и только половина миллиарда"Learn PHP on 17 secsonds"
Клемент Херреман
80

Все эти книги кажутся очень, очень, очень старыми ».

Психология, компьютерное программирование (1971 г.). В миллион раз больше программистов, чем в 1970 г., психология того, как они создают программы и какие ошибки они совершают и как их избежать, важна как никогда.

Программные инструменты (1976). Поскольку Интернет представляет собой набор фреймворков, утилит, сценариев и плагинов, идеи программных инструментов никогда не были столь актуальны.

РЕДАКТИРОВАТЬ: Для решения общего вопроса - актуальны ли старые книги по программированию?

Общие принципы разработки программного обеспечения не сильно изменились, появились новые технологии OO, TDD и т. Д. Но, как правило, пользователи и проблемы не изменились - и думать о том, как разделить проблему, теперь так же, как и она. всегда был.

Эти старые книги были в основном написаны экспертами в этой области. Многие современные книги по программированию нацелены на то, чтобы спешить на пороге 2000 страниц за последним модным словом, пока оно еще актуально.

Книги о языках и технологиях, которые больше не используются, вероятно, не актуальны - в списке нет руководства по сборке Vax. Но «С» по-прежнему очень часто используется, а «Язык программирования С» - это не только лучшая книга по «С», но и образец того, как написать краткое руководство и ссылку на ваш язык.

Есть ли новые алгоритмы? Да. Но все старые алгоритмы по-прежнему актуальны, и большинство новых находятся в непонятных областях, которые вы вряд ли встретите. Никто не придумал лучшего сорта или БПФ в последнее время. Хотя другие люди пытались объяснить их лучше, нет никаких причин, по которым книги «Алгоритмы» этого года лучше, чем CLRS.

пс. Ваш крутой новый iWhatsit работает на BSD, разработанном в 1977 году. Теперь вы, ребята, сходите с моей лужайки!

Мартин Беккет
источник
28

Все эти книги кажутся очень, очень, очень старыми. Не думаете ли вы, что есть разница между сегодняшним днем ​​и тем, когда были написаны эти книги?

ИМХО, неудивительно, что очень хорошие книги остаются популярными на протяжении десятилетий - это показывает, насколько они хороши. Но я думаю, что могу сказать вам кое-что по каждому из перечисленных вами кандидатов:

Code complete: 2nd edition = may, 2004

На самом деле первое издание «Code complete» было выпущено в 1993 году, так что это действительно «классика». Речь идет о базовом стиле кодирования с использованием примеров, которые применимы практически ко всем языкам программирования семейства C, которые в настоящее время содержат самые популярные языки (C / C ++ / Java / C # / Objective-C / D / ...). Так что да, эта книга актуальна.

Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)

Ну, на самом деле я не читал эту книгу (мой учебник по алгоритмам был из «Седжвика»), но изучение алгоритмов и построение алгоритмов действительно не зависит от языка. Конечно, это умение недооценивается в последние годы, так как в настоящее время вы найдете много базовых алгоритмов в стандартных библиотеках, но ИМХО каждый профессиональный программист должен иметь некоторые базовые знания в этой области.

The Pragmatic Programmer

Это очень хорошая книга о программировании как мастерстве. Не зависит от языка и очень, очень современно, поскольку программирование выполняется программистами как ручное задание с использованием текстовых редакторов, IDE, контроля версий и т. Д.

Structure and Interpretation of Computer Programs: = September 1, 1996

Это мой личный фаворит, хотя (или, возможно, потому что) книга использует Scheme, чтобы научить вас различать различные парадигмы программирования. Я не знаю ни одной другой книги, в которой так много внимания уделяется созданию абстракций. А построение абстракций - это ключевая способность, которая делает разницу между посредственным программистом и лучшим программистом - который не изменился за последние десятилетия, так что на самом деле эта книга вечна. Кроме того, функциональные языки и языковые элементы в последнее время стали более популярными, поэтому ИМХО идеи, представленные в этой книге, получили ренессанс.

The C Programming Language

Что ж, эта книга может быть не такой вечной, как остальные четыре. Но так как C - это что-то вроде «матери» всех тех популярных языков, которые я перечислил выше, было бы неплохо прочитать эту книгу - я не думаю, что есть некоторые современные книги на «C», которые действительно лучше. И если вам нужно заниматься программированием обслуживания кода C ++, написанного кем-то, кто знает C лучше, чем C ++, то эта книга обязательна.

Наконец, вы просили книги, в которых больше учитывается «текущая реальность», не будучи слишком специфичными для технологии. Так что же такое «текущая реальность» и что изменилось в «нетехнологической» части? Вот некоторые моменты последнего десятилетия, не говоря уже о том, что этот список полон или имеет правильные приоритеты.

  1. Существует больше унаследованного кода (особенно более унаследованного кода не только в Fortran и Cobol, но также в C ++ и Java).
  2. Модульное тестирование и TDD стали более любимыми.
  3. Доступно гораздо больше открытого исходного кода.
  4. ОО получил все больше и больше критиков

(Я не перечисляю здесь ничего о веб-разработке или разработке приложений, потому что я думаю, что эта технология специфична).

Существуют хорошие книги по темам 1 и 2, особенно «Чистый код» , выпущенный в 2008 году, и «Эффективная работа с унаследованным кодом» из 2004 года. Возможно, это некоторые из «новых» книг, которые вы ищете?

Док Браун
источник
5
Язык программирования C является вневременным. Такая перегнанная книга встречается редко. Я перечитал это для ... Я не знаю, я потерял счет (я прочитал это впервые, когда мне было 13 лет), и я все еще ценю это. Скорее, я ценю это намного больше сейчас.
Франческо
3
Я добавлю # 5 в ваш список: параллельные вычисления. Не совсем новая идея, но в настоящее время она реализуется в беспрецедентных масштабах, что вызывает некоторые новые проблемы. Но все это по-прежнему строится на тех же основах, что и старые вещи, и у меня возникает ощущение, что ОП все еще не совсем понимает эти основы.
Майк Баранчак
2
@ Майк: я согласен, параллельное вычисление привлекает все больше внимания в последнее десятилетие, я пропустил это, когда написал свой ответ.
Док Браун
2
@Doc Brown Ваши взгляды на вневременность литературы из-за того, что вы посетили 1885, 1955, 1985 и 2015 годы в течение нескольких дней со своей точки зрения?
Каламане
13

Из тех, что вы упомянули «Код завершен», «Прагматичный программист» и «SICP» были в моем списке рекомендованных к прочтению для всех новых разработчиков, которые начинают здесь в моей компании и хотят подняться на более высокий уровень.

Они не устаревают в долгосрочной перспективе, потому что фундаментальная наука в области компьютерных наук не изменилась.

Йорис Тиммерманс
источник
10

Я не читал все эти книги, но у меня есть собственный Code Complete и Pragmatic Programmer. Эти книги далеко не устарели. У них может быть пара абзацев, которые немного ржавые, но большая часть контента по-прежнему актуальна сегодня.

Прогресс в области компьютерных наук и программирования является эволюционным процессом. Новые абстракции вводятся поверх старых, но эти новые вещи не обязательно делают старое устаревшим.

Аналогия ... Если вы учитесь на травматолога или хирурга, который специализируется на трансплантации сердца, вам все равно нужно знать, как работает человеческое тело, клеточная химия, системы органов, как открыть грудную клетку и как быстро остановить кровотечение, если это произойдет, и т. д. Только потому, что они изобрели эндоскопическое оборудование и менее инвазивные методы, это не означает, что вы соскочили с крючка для изучения основ. Это только означает, что вы должны узнать больше.

оборота c_maker
источник
да, анатомия Грея (настоящая книга, а не телешоу) была написана в 1918 году, и студенты-медики до сих пор ее используют.
HLGEM
7

«Облако» не является фактором. «Облако» на самом деле намного старше, чем большинство перечисленных вами книг. большинство из этих книг посвящены основным принципам, они редко меняются на частые. Фреймворки и библиотеки постоянно меняются, но то, как вы должны структурировать свой код, мало что меняет. Точно так же указатель все еще является указателем, он не начинает делать разные вещи только потому, что. Единственная книга, относящаяся к конкретному языку, которую вы перечислили, касается C, и в этом случае эта старая книга гораздо полезнее, чем что-либо новое, потому что она, вероятно, была написана ближе к периоду времени, когда был разработан любой код C, с которым вы будете работать.

Ryathal
источник
6

Список, который вы цитировали, нет, они не устарели. Книга устарела только тогда, когда предмет изменился настолько, что они бесполезны. Природа программирования и язык Си оба мало изменились с момента публикации

Том Сквайрс
источник
6

Одна из вещей, которую вам нужно осознать, - это то, что существуют основополагающие принципы, которые по существу не зависят от времени, и реализации, которые имеют тенденцию приходить и уходить.

Основополагающие принципы - это, по сути, вся скучная теория, на которую компьютерные науки тратят много времени, и она продолжает действовать, даже если мир вокруг нее меняется. Это в отличие от таких вещей , как «Как использовать Win32s под Windows 3.11» , который является очень старым и устаревшим.

Чтобы поставить вещи в перспективе - каноническому тексту по геометрии две тысячи лет. Большинству преподавателей математики до уровня колледжа не менее 300 лет. Единственная причина, по которой книги CS не старше, это то, что поле все еще новое.

user1249
источник
Утверждение Евклида 1 книги 1 не может быть доказано из предоставленных определений, аксиом и постулатов. Это не хороший выбор, чтобы учиться в наши дни, и после тысячелетий можно считать устаревшим.
Дэвид Торнли
1
@DavidThornley, если Euclids Elements не является каноническим текстом по геометрии, что это?
6

Некоторые книги вне времени, потому что они обсуждают идеи, которые так важны для практики разработки программного обеспечения, что они всегда будут применяться.

Возьмем, к примеру, « Мифический человеко-месяц» , когда я читал эту книгу, я постоянно забывал, что она была написана в 1975 году. Когда он встречает случайные упоминания о IBM System 360, он всегда раздражает меня, потому что это единственный контент, который датируется книга. Все остальное применимо здесь и сейчас. Я до сих пор храню свой экземпляр « Шаблонов архитектуры корпоративных приложений» Мартина Фаулера, которому сейчас 9 лет, но он снова вне времени и применим к той работе, которую я делаю сегодня.

Моя любимая книга на данный момент - это Java-моделирование цвета с помощью UML Питера Коада (1999), хотя я являюсь разработчиком на C # и отказываюсь от UML, потому что методы и концепции делают меня лучшим программистом.

Нам было бы полезно поучиться у разработчиков первого поколения, потому что они пошли на шаг, по которому мы идем прямо сейчас, и их с трудом заработанная мудрость может помочь нам быстро начать то, что мы делаем / изучаем сегодня.

Майкл Браун
источник
МММ - мне нравится часть о команде, постоянно исправляющей ошибки, но количество ошибок оставалось постоянным :)
JoelFan
5

Основные принципы программного обеспечения не изменились за последние 20 лет. Стек, дерево и связанный список по-прежнему работают так же, как и тогда. «XOR» по-прежнему означает то же самое. Байт по-прежнему имеет 8 бит.

Вы всерьез предполагаете, что «мультиплатформенная разработка» - это новая идея? Как вы думаете, почему С был изобретен?

«Облако» - модное маркетинговое слово. Раньше это означало что-то особенное, но это было унижено из-за чрезмерного использования. В настоящее время, когда у вас есть что-то, что связывается с удаленным сервером по сети, маркетологи наклеивают на него ярлык «облако». Так что на самом деле нет смысла говорить об этом, потому что это бессмысленное слово.

Я не знаю вашего 61-летнего профессора, поэтому я не могу поручиться за него. Вы, с другой стороны, явно не так умны, как вы думаете. Послушайте профессора, возможно, вы чему-нибудь научитесь.


«Ты не можешь быть старым, если не будешь дураком. Множество молодых мудрецов, они мертвы как ублюдки». - Ричард Прайор

Майк Баранчак
источник
2
«С другой стороны, вы явно не так умны, как вы думаете». Если бы я думал, что я такой умный, я бы никогда не задал такой вопрос.
Оливье Понс
4

Вот еще несколько очень старых и устаревших книг:

  • Искусство компьютерного программирования, вып. 1-3 Д. Кнута. Они были опубликованы между 1968 и 1981 годами! Мы больше не используем вакуумные трубки, люди! Все в этих книгах хромое. Где обсуждение Python и Ruby?

  • Компьютеры и неразрешимость: руководство по теории NP-полноты М. Р. Гэри и Д. С. Джонсона, 1979. Супер хромая! Все эти проблемы уже решены, наверное.

Если за последние три года книга не была написана с акцентом на Python, читать ее не стоит.

stackoverflowuser2010
источник
Справедливости ради есть, по крайней мере, случай, когда использование TAoCP ассемблера для своего псевдокода означает, что книги о современных алгоритмах, использующие псевдокод ближе к более современным языкам, более полезны для 90% из нас, которые не пишут для встроенных системы.
Питер Тейлор
-1: каждую неделю или две я вижу, как кто-то просит алгоритм для обработки того или иного, что Кнут описал невероятно подробно. Просто для удовольствия: назовите один алгоритм сортировки, который новее, чем в 1981 году. Хотите ответить на параллельную сортировку? У Кнута есть страницы о параллельной сортировке данных. Возможно, вы правы насчет книг по Python, но есть огромная разница между книгами «Аромат недели» и книгами по инженерным ремеслам.
Сарнольд
5
Видимо, некоторые детекторы сарказма сломаны ...
DaveE
1
<Сарказм> «Комментарий» </ Sarcasm>
NWS
1
Я думаю, что этот ответ сделал бы его еще лучше, если бы он включал упоминание об искусстве компьютерного программирования, том 4А, который был опубликован в 2011 году, и том 5, запланированный на 2020 год!
Марк Бут
3

Эти книги не устарели, эти книги - классика.

Цитирую Капланский , « провести некоторое время каждый день узнавать что - то новое , что не пересекается с проблемой , на которой вы сейчас работаете (помните , что дизъюнктность может быть временным), и читать мастеров . »

Francesco
источник
3

Я знаю, что вы имеете в виду, когда у нас есть достижения (на ум приходит LINQ), которые меняют читаемость и использование кода, но просто потому, что эти книги старые, не означает, что они не предлагают отличных уроков для читателя.

Хотя языки программирования, которые они используют, возможно, утратили популярность, теория языков программирования до сих пор звучит правдоподобно. В большинстве из этих книг очень хорошо освещены основы, а основы не сильно изменились.

Лук-рыцарь
источник
2
Используемые ими языки программирования в основном «C» - они, возможно, вышли из моды, но значительно расширились.
Мартин Беккет
3
Вы должны прочитать SICP, это может открыть ваши глаза относительно того, откуда исходит LINQ :)
Joris Timmermans
1

Индустрия информатики еще очень молода. Книги, написанные 30 лет назад, я считаю ценными и необходимыми для полного понимания. Абстрактные понятия иногда перевариваются.

SoftwareCarpenter
источник
1

Некоторые второстепенные детали устарели во всех этих книгах, но 99% все еще велики.

Алгоритмы книг будут стареть медленно. Алгоритмы математические, и математика быстро не меняется. Конечно, еще есть исследования новых алгоритмов, которые превосходят в определенных обстоятельствах (например, алгоритм Фюрера (2007) Schonhage-Strassen для умножения длинных чисел на 40000+), но для введения вам необходимо изучить основы (разделяй и властвуй) / Динамическое программирование / Линейное программирование / и т. Д.), Чтобы вы могли научиться разумно думать об алгоритмах.

Изучение стандарта C от K & R по-прежнему является лучшим источником; хотя я не уверен, доверю ли я их разделам о том, как настроить вашу среду.

SICP - это замечательная книга, которая обучает основам современного CS через обучение языку lisp, который является замечательным языком. Тем не менее, в наши дни, пожалуй, не самый полезный язык; хотя другие будут утверждать, что lisp является их секретным оружием, и что изучение языков, таких как java или python, сначала делает очень плохих программистов, которым никогда не нужно учиться реализовывать сортировку или связанные списки, массивы или нотацию big-O, и в итоге они делают очень неэффективные вещи.

Некоторые из Code Complete или Pragmatic Programmer менее актуальны, особенно если вы программируете на более новых языках (например, python / ruby ​​/ C ++ 11), поскольку они часто сосредоточены на том, как что-то делать в C, или предлагают рекомендуемые решения с использованием лучших доступные в то время инструменты (например, CVS / RCS для контроля версий, а не современный инструмент, такой как git / bzr / hg / svn). Но все же хорошо думать о том, как контроль версий является обязательным, и как он должен быть беспроблемным и самодокументируемым, а также рассуждать о том, почему он абсолютно необходим.

Или рекомендации PP относительно IDE для базового редактора Unix + инструментов Unix - не говоря уже о том, что вы не должны учиться использовать find / awk / locate / grep / sed, но хорошая IDE часто может сэкономить много времени. Например, emacs может делать подсветку синтаксиса или простое завершение кода; но, скажем, хорошая IDE скажет давать подсказки с объявлениями функций, когда вы их вводите, или анализировать код и отмечать неиспользуемые переменные, облегчать свертывание разделов кода и т. д.

доктор джимбоб
источник
1

Разве нет разницы между современными компьютерами и тем, что было актуально, когда были написаны эти книги? Как вы думаете, это меняет то, что мы должны учиться? Разве мы не должны принимать во внимание события последних 20 лет?

Да, да и да.

Это не делает эти книги устаревшими. «Современные вычисления» - это невероятно широкий термин. Тем не менее, он включает в себя программирование на C, поэтому «Язык программирования C» все еще является актуальной книгой. Он включает в себя алгоритмы, поэтому «Введение в алгоритмы» все еще является актуальной книгой. Так далее и тому подобное.

Должен ли нынешний акцент на мультиплатформенную разработку мультиплатформенную разработку (см. PhoneGap) изменить то, что мы изучаем сегодня?

Большинство приложений в App Store (в качестве примера используется самая популярная мобильная платформа) написаны на Objective C, языке начала 80-х, который является надмножеством C. Поэтому, опять же, C по-прежнему актуален.

Как вы думаете, «облако» - это причуда или будущее?

Это наш подарок.

Когда студенты заканчивают университет, они должны быть настоящими разработчиками и иметь возможность работать немедленно

Но что это значит?

В школе слишком много языков, API-интерфейсов, платформ, платформ, инструментов, стратегий сотрудничества и т. Д., Чтобы подготовить вас к конкретной работе. Школа может только заложить основу, давая вам базовую рабочую модель работы машины, об алгоритмах, структурах данных, построении кода, стратегиях декомпозиции, некоторых инструментах и ​​т. Д.

«Настоящий разработчик» - это не тот, кто знает все, а тот, кто обладает способностью к такой работе, у кого есть фундамент в теории и на практике, и кто знает, как учиться , потому что ваше образование никогда не заканчивается.

грязи
источник
1
+1 за комментарий «как учиться» - это то, для чего нужен колледж, а не заочное обучение.
DaveE
1

Итак, я собираюсь предложить ответ, который является гораздо более теоретическим. Я согласен со всеми вами, ребята, которые ответили на вполне очевидные, на мой взгляд, эти книги - основа того, что мы, программисты, делаем, и все эти новые фреймворки построены на одной и той же старой линии столбов.

Вот мои два цента - не совсем мои, я узнал об этом от святого Аквинского и от Аристотеля до него.

An abstraction is useless to someone who doesn't understand the particulars.

Механика компьютера не изменилась со времен фон Неймана. Точно так же детали, которые вам нужно выучить, чтобы стать великим программистом, будут такими же, пока модель фон Неймана не устареет. Сборка, это язык компьютеров ... учите его, никаких оправданий.

C является родным языком для Windows и Unix. Узнайте это или найдите новую сделку. Если вы один из тех парней, которые пошли прямо на JAVA или C #, вы можете быть хорошим программистом, но вы были бы намного лучшим программистом, если бы вы изучали C-- period.

Алгоритмы и структуры данных являются основой компьютерных программ, изучают их.

Все остальное - абстракция этих самых основных дисциплин. Абстракции прекрасны при правильном использовании - серьезно, я использую C # для 75% всех моих проектов. Тем не менее, они делают вас глупыми, если вы не нашли время, чтобы понять, как они работают и как функционировать без них. Вы потратите бесконечное время на создание программного обеспечения, которое бы подходило к квадратному отверстию, известному пословицам, когда есть гораздо лучшие подходы и будут ошибки, которых можно было бы избежать. Разработка программного обеспечения - это ремесло, которое нужно освоить, и в конце концов инструменты редко меняются. Вот почему эти книги так важны.

Все эти программисты только на JAVA и C #, бьюсь об заклад, большинство из них даже никогда не видели эпизод Star Trek!

Джонатан Хенсон
источник
1

Я услышал высказывание наставника:

«Хороший совет приходит с причиной, почему вы знаете, когда он больше не хороший совет». Таким образом, в терминах книги, книга, которая объясняет, почему делать X над Y, сообщит вам, когда этот совет больше не действителен. Книга "всегда делай это, просто делай это", как некоторые из ускоренных курсов на языке X, не так хороша.

Я видел книгу под названием «Изучай Unix за 24 часа», ну, книга толщиной около 8 см, я сомневаюсь, что многие люди даже могли прочитать каждую страницу за 24 часа :)

Помните, что то, что сегодня в моде, может быть осмеяно завтра. Все следующее когда-то считалось мейнстримом (модно вчера), но теперь нет:

  • Перейти к
  • Однократный однократный выход
  • Венгерская нотация
  • Водопад подход

И есть несколько вещей, которые когда-то были полностью анафемой, но теперь принимаются:

  • Рекурсия как инструмент для решения проблем (радикальный в первые бейсикские дни)
  • Выделение памяти во время выполнения с помощью malloc / new
  • Использование C ++ STL
  • Мусорные языки для систем реального времени

Знайте, почему, и вы будете знать, когда старые предположения были заменены новой реальностью, и то же самое следует совету.

скоро
источник