Чи є термін придатності для добре розцінених, але старих книг про програмування? [зачинено]


51

Прочитавши питання про книги, який повинен прочитати кожен програміст , мені цікаво, чи слід вважати таке застарілим:

Усі ці книги здаються дуже старими. Хіба немає різниці між сучасними обчисленнями і тим, що було актуальним, коли ці книги були написані?

Наприклад, моя 61-річна вчителька дуже добре пояснює речі, але забуває враховувати все, що було зроблено між тим, коли він почав викладати 25 років тому і зараз.

Невже це не так для цих книг? Невже немає сучасних книг, які навчають принципів та технологій, ближчих до сучасної практики? Або ви вважаєте їх корисними та актуальними навіть сьогодні?


9
Варто було б замислитись, чому всі перераховані заголовки вперше були опубліковані щонайменше 12 років тому, але досі є цінними. Чотири з п'яти були оновлені з моменту першого видання, але середній час між виданнями становить 10,4 року.
Калеб

83
Фундаментальні принципи програмування не змінюються лише тому, що з'явився новий "аромат тижня" мова чи рамки.
Роберт Харві

26
Очікувати, що сирий випускник інформатики побудує складну програмну систему - це як би сподіватися, що сирий випускник цивільного будівництва спроектує підвісний міст, цього просто не повинно статися. Школа не навчить вас усьому, що вам потрібно знати з дальнього пострілу, вона повинна навчити вас, як навчитися бути чудовим інженером-програмістом, і ці старі книги мають стільки сказати зараз, як і десятиліття тому - все закінчилося 16 років з моменту опублікування 20-річного видання «Міфічного чоловіка-місяця», і це так само актуально і сьогодні, як оригінал був у 1975 році.
Марк Бут

10
ці книги вічні; але програміст, який обмежив би себе лише цими книжками і ігнорував би новіші речі, справді був би застарілим
gnat

4
Ви наче благаєте питання: якщо книги хороші, то вони не застаріли.
Quant_dev

Відповіді:


92

Ця книга про принципи розвитку. За своєю природою ці принципи є мовно-агностичними, а для деяких навіть парадигмо-агностичними (ООП, функціональне програмування, імперативні мови).

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

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

Код завершений дивовижним Стівом МакКоннеллом - це, мабуть, книга, яка змусила мене це зрозуміти. І Прагматичний програміст повністю змінив своє бачення розвитку програмного забезпечення. Читаючи подібні книги, ви розумієте, що 95% проблеми, з якою ви стикаєтеся щодня, вже вирішена, і що 95% із нас все ще винаходять колесо.

Так звана "хмара" - це не майбутнє розробки програмного забезпечення, це спосіб використання розробленого програмного забезпечення.

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

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


6
Хороші художники копіюють великих
крадіїв

16
... відправляються справжні художники. :-)
kindall

9
І все ж, незалежно від того, скільки разів ми це говоримо, люди все ще вважають, що їм просто потрібен JavaScript за 12 днів.
Спенсер Ратбун

2
Хороші художники копіюють, великі художники копіюють І зберігають код чистим! (У мене було стільки головних болів у школі, працюючи з іншими дітьми, які заплуталися в проекті, тому що вони копіювали з усього і всіх ...)
HTDutchy

@SpencerRathbun (IMHO), Javascript набагато більше висівок, ніж інші мови, як PHP. І все-таки є мільярд "Learn Javascript in 15 seconds"і лише півмільярда"Learn PHP on 17 secsonds"
Клемент Герреман

80

Усі ці книги здаються дуже, дуже, дуже старими ".

Психологія-комп’ютерне програмування (1971) - з мільйонами разів більше програмістів, ніж у 1970 році, важливіше, ніж будь-коли, важливіша психологія того, як вони розробляють програми та які помилки роблять та як їх уникати.

Програмні засоби (1976) - Оскільки Інтернет є сукупністю рамкових робіт, утиліт, скриптів та плагінів - ідеї в Програмних інструментах ніколи не були більш актуальними.

EDIT: Для вирішення загального питання - чи відповідні старі книги програмування?

Загальні принципи інженерії програмного забезпечення не так сильно змінилися, є нові технології OO, TDD і т. Д. Але в цілому користувачі та проблеми не змінилися - і думати про те, як розділити проблему, те саме, що і зараз завжди був.

Ці старіші книги, як правило, написані фахівцями в цій галузі. Багато сучасних книг програмування спрямовані на те, щоб вимкнути 2000сторінковий стоп-лист для останнього модного слова, поки він все ще актуальний.

Книги з мов та технологій, які більше не використовуються, напевно, не мають відношення - жодного посібника зі збирачів Vax немає в цьому списку. Але "C" все ще дуже використовується, і "Язик програмування на C" - це не лише найкраща книга на темі "C", це модель, як написати короткий підручник та посилання на вашу мову.

Чи є нові алгоритми? Так. Але всі старі алгоритми все ще актуальні, і більшість нових є в неясних місцях, які ви навряд чи зможете зустріти. Нещодавно ніхто не придумав кращого сорту чи FFT. Хоча інші люди мали спроби пояснити їх краще, немає причин, що цьогорічні книги Алгоритмів кращі за CLRS.

пс. Ваш класний новий iWhatsit працює з BSD, розроблений в 1977 році. Тепер ви, дітки, зійдіть з моєї галявини!


28

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

ІМХО не дивно, що дуже хороші книги залишаються популярними протягом десятиліть - це показує, наскільки вони хороші. Але я думаю, що я можу вам сказати щось для кожного з кандидатів, яких ви перерахували:

Code complete: 2nd edition = may, 2004

Насправді перше видання "Кодексу завершено" було з 1993 року, тож це справді "класика". Йдеться про базовий стиль кодування, використовуючи приклади, які застосовуються майже до кожної мови програмування родини C, яка містить найпопулярніші мови на сьогодні (C / C ++ / Java / C # / Objective-C / D / ...). Так що так, ця книга актуальна.

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

Ну, я насправді не читав цю книгу (моя книга з алгоритмами була від "Sedgewick"), але алгоритми навчання та побудова алгоритмів - це справді мова агностик. Звичайно, це ремесло дещо недооцінює останні роки, оскільки в стандартних бібліотеках нині ви знайдете багато основних алгоритмів, але IMHO кожен професійний програміст повинен мати деякі базові знання в цій галузі.

The Pragmatic Programmer

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

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

Це мій особистий фаворит, навіть якщо книга (можливо, тому, що) використовує схему, щоб навчити вас відмінностей між різними парадигмами програмування. Я не знаю жодної іншої книги, яка б настільки сильно акцентувала увагу на побудові абстракцій. А побудова абстракцій - це ключова здатність, яка відрізняє посереднього програміста та топ-програміста - що не змінилося останні десятиліття, так що насправді ця книга є позачасовою. Крім того, останнім часом функціональні мови та мовні елементи стали більш популярними, тому ідеї ІМХО, представлені в цій книзі, отримали ренесанс.

The C Programming Language

Що ж, ця книга може бути не такою позачасовою, як інші чотири. Але оскільки C - це щось на кшталт "матері" усіх тих популярних мов, які я перераховував вище, можливо, було б корисно прочитати цю книгу - я не думаю, що є якісь сучасні "С" книги, які справді кращі. І якщо вам доведеться виконати програмування технічного обслуговування коду C ++, який написав хтось, хто краще знав C, ніж C ++, то ця книга є обов'язковою.

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

  1. Існує більше застарілого коду (особливо більше застарілого коду не тільки у Fortran і Cobol, але і в C ++ та Java).
  2. Тестування блоків і TDD стали більш улюбленими.
  3. Існує набагато більше відкритого коду.
  4. OO набирає все більше критиків

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

Існують хороші книги для тем 1 і 2, особливо "Чистий код" , який починається з 2008 року, і "Ефективна робота зі спадковим кодом" з 2004 року. Можливо, це деякі з "нових" книг, які ви шукаєте?


5
Мова програмування C є позачасовим. Така дистильована книга зустрічається рідко. Я перечитав це за ... Я не знаю, я втратив рахунок (я вперше прочитав його, коли мені було 13), і я все ще ціную це. Швидше, зараз я це ціную набагато більше.
Франческо

3
Я додам №5 до вашого списку: паралельні обчислення. Не зовсім нова ідея, але в даний час це робиться в безпрецедентному масштабі, що викликає нові проблеми. Але все це все ще будується на тих же основах, що і старі речі, і я відчуваю, що ОП ще не дуже розуміє цих основ.
Майк Баранчак

2
@Mike: Я згоден, паралельне обчислення приділяє все більше уваги за останнє десятиліття, я пропустив це, коли писав свою відповідь.
Док Браун

2
@Doc Brown Чи ваші погляди на позачасовість літератури через те, що ви побували в 1885, 1955, 1985 та 2015 роках протягом декількох "днів" з вашої власної точки зору?
Каламан

13

З тих, про які ви згадали "Код завершений", "Прагматичний програміст" та "SICP", у моєму списку рекомендованих для читання всіх нових розробників, які починаються тут у моїй компанії та хочуть вийти на більш високий рівень.

Вони не застаріли довгим пострілом, оскільки фундаментальна наука в галузі комп'ютерних наук не змінилася.


10

Я не читав усіх цих книжок, але в мене є власний Code Complete і «Прагматичний програміст». Ці книги далеко не застарілі. Вони можуть мати пару абзаців, які трохи іржаві, але більша частина змісту актуальна і сьогодні.

Прогрес у галузі інформатики та програмування - це еволюційний процес. Нові абстракції впроваджуються поверх старих, але ці нові речі не обов'язково роблять старі застарілими.

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


так, анатомія Грея (справжня книга, а не телевізійне шоу) була написана в 1918 році, і студенти-медики досі її використовують.
HLGEM

7

"Хмара" не є фактором. "Хмара" насправді набагато старша за більшість перерахованих вами книг. більшість цих книг стосуються основних принципів, вони насправді не змінюються часто. Каркаси та бібліотеки постійно змінюються, але те, як ви повинні структурувати свій код, не сильно змінюється. Так само вказівник як і раніше вказівник, він не починає робити різні речі просто тому. Єдина перерахована вами книга, що ви перераховуєте, стосується мови C, і в цьому випадку ця стара книга набагато корисніша за все нове, оскільки вона, ймовірно, була написана ближче до періоду часу, коли був розроблений будь-який код C, з яким ви працювали б.


6

У списку, який ви цитували, вони не застаріли. Книга застаріла лише тоді, коли тема змінилася достатньо, щоб вони не були корисними. Характер програмування та мова С значно змінилися з моменту публікації


6

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

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

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


Пропозицію Евкліда 1 книги 1 неможливо довести з наданих визначень, аксіом та постулатів. Навчитися з цього часу не вдало, і після тисячоліть це можна вважати застарілим.
Девід Торнлі

1
@DavidThornley, якщо елементи Евкліда не є канонічним текстом геометрії, що таке?

6

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

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

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

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


MMM - Мені подобається частина про команду, яка постійно виправляє помилки, але кількість помилок залишається незмінною :)
JoelFan

5

Основні принципи програмного забезпечення не змінювалися протягом останніх 20 років. Стек, дерево та пов'язаний список все ще працюють так само, як і тоді. "XOR" все ще означає те саме. Байт все ще має 8 біт.

Ви серйозно припускаєте, що "розвиток багатоплатформних платформ" - це нова ідея? Як ви вважаєте, чому С був винайдений?

"Хмара" - маркетингове слово. Раніше це означало щось своєрідне, але це було обговорено через надмірне використання. Сьогодні, щоразу, коли у вас є щось, що спілкується з віддаленим сервером по мережі, маркетологи наклеюють на нього мітку "хмара". Тому насправді немає сенсу говорити про це, адже це безглузде слово.

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


"Ви не станете старим, не дурень. Дуже багато молодих мудреців, вони мертві як невістки". - Річард Прайор


2
"Ви, з іншого боку, явно не такі розумні, як вважаєте, що є". Якби я думав, що я такий розумний, я б ніколи не задавав такого питання.
Олів'є Понс

4

Ось ще кілька дуже старих і застарілих книг:

  • Мистецтво комп’ютерного програмування, т. 1-3 Д. Кнут. Вони були опубліковані між 1968 і 1981 роками! Ми вже не використовуємо вакуумні трубки, люди! Все в цих книгах кульгаво. Де дискусія про Python та Ruby?

  • Комп'ютери та нездатність: Посібник з теорії повноти NP від ​​М. Р. Гарі та Д. С. Джонсона, 1979. Супер кульгавий! Всі ці проблеми на сьогодні вирішені, мабуть.

Якщо книга не була написана протягом останніх трьох років з акцентом на Python, читати її не варто.


Справедливості справедливості є принаймні випадок зробити так, що використання асемблером TAoCP для його псевдокоду означає, що більш сучасні книги алгоритмів, які використовують псевдокод ближче до сучасних мов, є більш корисними для 90% + нас, хто не пише для вбудованих систем.
Пітер Тейлор

-1: щотижня-два я бачу, як хтось запитує алгоритм для обробки того чи іншого, що Кнут описав неймовірно докладно. Для задоволення: Назвіть один алгоритм сортування, який є новішим за 1981. Хочете відповісти на паралельний сортування? У Knuth паралельно розміщуються сторінки про сортування даних. Ви можете мати рацію щодо книг Python, але існує велика різниця між книгами "Аромат тижня" та книгами інженерного ремесла.
sarnold

5
Мабуть, деякі детектори сарказму зламані ...
DaveE

1
<Sarcasm> "Коментар" </Sarcasm>
NWS

1
Я думаю, що ця відповідь зробила б її сенс ще кращою, якби вона включала згадку про «Мистецтво комп’ютерного програмування» Том 4А, який був опублікований у 2011 році та Том 5, запланований на 2020 рік!
Марк Бут

3

Ці книги не застаріли, ці книги - класика.

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


3

Я знаю, що ви маєте на увазі, коли у нас є досягнення (на думку LINQ), які змінюють читабельність та використання коду, але просто тому, що ці книги старі, це не означає, що вони не пропонують читача чудових уроків.

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


2
Мови програмування, якими вони користуються, здебільшого є "С" - вони, можливо, вийшли з ладу, але масово зросли у використанні.
Мартін Бекетт

3
Ви повинні прочитати SICP, це може відкрити ваші очі щодо того, звідки походить LINQ :)
Joris Timmermans

1

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


1

Деякі незначні частини застаріли у всіх цих книгах, але 99% все ще чудово.

Книги алгоритмів старіють повільно. Алгоритми математики, а математика не змінюється стрімко. Звичайно, ще є дослідження нових алгоритмів, які переважають за певних обставин (наприклад, алгоритм Фюрера (2007) Шонгаге-Страссена для множення 40000+ значних довгих чисел разом), але вступ вам потрібно вивчити основи (ділити і перемагати / Динамічне програмування / лінійне програмування / тощо), щоб ви могли навчитися розумно мислити алгоритми.

Стандарт навчання з K&R все ще є найкращим джерелом; хоча я не впевнений, чи буду довіряти їх розділам про те, як налаштувати ваше оточення.

SICP - це чудова книга, яка викладає основи сучасного CS, навчаючи lisp, що є чудовою мовою. Однак, напевно, Lisp не є найкориснішою мовою на сьогодні; хоча інші будуть стверджувати, що lisp - це їхня таємна зброя, і що вивчення таких мов, як java або python спочатку робить дуже поганих програмістів, яким ніколи не потрібно вчитися застосовувати сортування чи пов'язані списки чи масиви чи нотації з великим O і в кінцевому підсумку робити дуже неефективні речі.

Деякі програми програмування Code Complete або Pragmatic є менш актуальними, особливо якщо ви програмуєте більш новими мовами (наприклад, 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" все ще залишається актуальною книгою. Він включає алгоритми, тому "Вступ до алгоритмів" все ще є актуальною книгою. І так далі.

Чи повинен сучасний наголос на розробці мультиплатформних мультиплатформних форм (див. Фонегап) змінити те, що ми дізнаємось сьогодні?

Більшість додатків у 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-- періоду.

Алгоритми та структури даних є основою комп'ютерних програм, вивчайте їх.

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

Усі ці програмісти JAVA та C #, тск, я б'юся об заклад, що більшість із них ніколи навіть не бачила епізоду Star Trek!


1

Я почув вислів від наставника:

"Гарна порада має причину, чому ви знаєте, коли це більше не є гарною порадою". Отже, з точки зору книги, книга, яка пояснює, чому робити X над Y, дасть вам знати, коли ця порада вже не діє. Книга "завжди роби це, просто роби це", як і деякі збої в мові X - це не так добре.

Я бачив одну, що називається "навчитися Unix за 24 години", добре, що книга була товщиною близько 8 см, я сумніваюся, що багато людей навіть могли прочитати кожну сторінку за 24 години :)

Пам'ятайте, що те, що сьогодні модно, може завтра насміхатися. Все наступне колись вважалося мейнстрімом (вчора в моді), але зараз це не так:

  • Йти до
  • Єдиний вхід, єдиний вихід
  • Угорська нотація
  • Підхід водоспаду

І є кілька речей, які колись були повністю анафемою, але зараз прийняті:

  • Рекурсія як інструмент вирішення проблем (радикальних на початку БАЗОВИХ днів)
  • Виділення пам’яті під час виконання за допомогою malloc / new
  • Використання С ++ STL
  • Сміття, зібране мовами для систем реального часу

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

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