Полезно ли читать старые книги по программированию на Java? [закрыто]

10

Многим из моих книг по Java 5-10 лет. Помогает ли это прочитать их, или я должен использовать что-то в течение 2 лет.

Адель
источник
2
зависит от того, является ли он все еще устаревшим, время возврата, потраченное на его чтение, следует также сравнить с использованием времени для чтения современной книги.
Саравут Позитвинью

Ответы:

26

Если книги о самом языке , потеряйте его и получите новый.

Если книга о программировании как предмете (искусство, предмет, дисциплина, техника, что угодно), то это определенно стоит прочитать. Лучшие книги по программированию, которые я написал, были написаны более 10 лет назад.

CesarGon
источник
12
Можно утверждать, что K & R посвящена самому Си, и это лучшая книга по Си, которую вы когда-либо найдете.
Vitor Py
7
Я согласен с @Victor Braga. Дело не в том, когда была написана книга, а в том, насколько изменился язык. Ява сильно изменилась за последние 5-10 лет. Однако C не имеет. Ваши 5-летние книги по Java бесполезны. Тем не менее, ваше первое издание книги K & R C от 1978 года гораздо более современное (хотя оно не является точным на 100%, равно как и второе издание от 1988 года). Основным фактором является то, насколько изменились язык и вспомогательные инструменты между публикацией книги и тем, когда вы хотите использовать книгу.
Томас Оуэнс
1
+1 к темным книгам 30 лет, и они по-прежнему бесценны.
Камил Томшик,
8

Это зависит от книги и от того, что вы хотите учиться у них и от вас.

Есть несколько причин, чтобы читать старые книги:

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

Лично я храню НЕКОТОРЫЕ из моих старых книг по программированию:

  • Я знаю, где найти то, что я ищу.
  • В них есть мои аннотации.
  • Они пробуждают мою память лучше, чем новые книги.
  • Это (очевидно) дешевле, чем покупать новое.

Например, руководство пользователя ZX81 (примерно с 1981 года) содержит отличное описание алгоритма рисования прямых линий. Это все еще имеет для меня больше смысла, чем все, что я читал с тех пор. Я использовал его в качестве основы для реализации много раз за эти годы.

Все сказанное, я тоже читаю новые книги. Я конечно не хочу застрять в темных веках.

Kramii
источник
4

Если они были хороши тогда, и языковые особенности, которые они преподают, не изменились - тогда почему бы и нет!

Я не думаю, что основы Java сильно изменились с версии 1.2 (или Java 2).

Мартин Беккет
источник
6
Это зависит от того, как вы определяете основы. 5-10 лет назад такие вещи как дженерики, автобокс, перечисления, переменные и цикл for-each были новыми или еще не существовали. Я считаю, что эти функции в корне изменили то, как вы пишете хорошее, высококачественное, читаемое и поддерживаемое программное обеспечение на Java. Не говоря уже о том, что ряд стандартных функций не будет охвачен, потому что люди должны будут выполнять свои собственные. Зачем изучать 5-10-летние практики и привычки, которые вам просто нужно будет сломать и освоить новые техники?
Томас Оуэнс
5
@World Engineer - это страшно. 12 лет назад был 1999 год, что означает, что Java 1.2 вышла. После этого были внесены изменения в RMI, JNDI стал основным, было добавлено ключевое слово assert, внесены изменения в regex, а API-интерфейсы NIO и журналирования, обобщенные элементы, класс Scanner, автобокс, enums, varargs и цикл for-each были добавлено. Не говоря уже об изменениях в AWT, Swing, JDBC, компиляторе и JIT-компиляторе. Этот университет преподает вредные привычки каждому, кто читает эту книгу. Я должен был бы подвергнуть сомнению ценность любого, кто заканчивает ту программу, если они не могут использовать адекватные ресурсы для первых курсов
Томас Оуэнс
3
@ Томас Он сказал "первый курс". Ничто из перечисленного не преподается в любом вводном курсе, кроме, возможно, foreach.
Пит
2
@Pete Мы использовали или обсуждали дженерики, сканер, перечисления, автобокс и Swing в первые два квартала (около полутора семестров) моей первоклассной последовательности CS.
Томас Оуэнс
1
Текст был скорее справочным, Swing и сканеры появились в первую неделю.
Мировой инженер
2

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

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

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

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

Silverfire
источник
1
Первая часть верна, но я не согласен со второй частью. Книга по Java, как правило, научит вас, как создавать с помощью Java, а не разрабатывать систему, которая в конечном итоге будет реализована на Java. Кроме того, сравнение относительно неизменного языка (например, C) с быстро меняющимся языком (например, Java) имеет недостатки.
Томас Оуэнс
2

Может быть полезно сохранить старые книги в качестве справочного материала, если вы работаете на устаревших системах, основанных на устаревшей технологии, особенно на старых системах J2EE. Я имел обыкновение хранить старую книгу по J2EE, потому что я иногда сталкивался со старым кодом, который использовал EJB 2.1 или старый код Swing.

Последней версией Java, которая внесла значительные изменения в язык, была Java 5 в 2004 году. Любые книги, написанные после этого времени, должны включать эти языковые изменения и должны быть в целом удобны для чтения (и, возможно, даже не было опубликовано более новое издание). Однако обратите внимание, что с тех пор многое изменилось в экосистеме Java; Spring Framework и Maven, например, в настоящее время широко используются технологии, которые не были так распространены тогда.

Кен Лю
источник
0

Зайдите на amazon.com и найдите книги по Java. Обычно книги примерно одинаковы, но вы можете выяснить, какая из них лучше, читая обзоры. Я всегда выбираю такие книги - читаю отзывы, а затем решаю, какую из них я собираюсь прочитать.

Сергей
источник
-1

Для языка Java и для программирования на Java хорошо иметь последние выпуски этих книг, например, класс WeakReference из Java 1.2, и не так много программистов, которые не знают, что этот класс даже существует в Java SE Это означает, что читать последние книги по Java - это самое лучшее, это хорошо только для некоторых фреймворков, но чтобы понять эти последние книги, вам нужно иметь основы, которых вы не получите от последних книг, но с наиболее рекомендуемыми книгами. Я думаю, что «Думая на Java» - это хорошая книга, чтобы начать с Java

user31645
источник