Computer Science: книги, от новичка до профи

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

What’s up guys?

Computer Science – грубо говоря - наука о компьютерах. Она объединяет всё, что программист должен знать о компьютерах и работе с ними для создания эффективных программ и алгоритмов. Программисты бывают разные, и как правило отличаются только языком, на котором пишут, но всех их объединяет необходимость понимать основы этой науки для понимания того, как работает компьютер.

В этой статье мы поговорим о самых полезных книгах по Computer Science для самых разных уровней, которые дадут вам понимание того, как работают компьютеры и всё, что с этим связанно. Предлагаю незамедлительно начинать, и начнём мы с книг для новичков (по моему мнению).

Книги для новичков

Основных книг тут три:

  • Чарльз Петцольд – Код. Тайный язык информатики. Как говорит сам автор: «Необычная экскурсия по истории цифровых технологий, сформировавших современную эпоху». Книга для новичков действительно не плохая, она рассказывает о многих аспектах работы компьютера более-менее простым языком (если в школе вы учили математику и информатику – вы поймёте). Для старта это не плохая книга.

  • Владстон Феррейра Фило – Теоретический минимум по Computer Science (две книги, зелёная и оранжевая). Как написано на обложке первой части: «Все, что нужно знать программисту и разработчику». А вторая часть повествует про компьютерные сети, криптографию, науку о данных и машинном обучении. Эти книги действительно полезны, но лично мне не хватил информации из них для полного погружения в темы. Но они дают фундаментальную базу, знания в которой можно углубить, прочитав книги из следующих разделов.  Для новичков они хорошо подойдут.

Так же для новичков могу порекомендовать почитать что-нибудь про ту ОС, которую вы используете. По поводу Windows – книгу посоветовать не могу, а по Linux:

  • Колисниченко Д.Н. - Linux на примерах. Практика практика и только практика. Если у вас стоит цель освоить основные команды и работу в Linux, то читать всю книгу нет необходимости, но в любом случае – рекомендую.

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

Для среднего уровня и выше

Архитектура компьютера

В этой категории две книги:

  • Эндрю Таненбаум и Т. Остин – Архитектура Компьютера. Это классика, это база. Одна из самых полных, на мой взгляд, книг, раскрывающих тему Архитектуры Компьютера. Книга рассказывает всё об устройстве компьютера, начиная с основ организации компьютерных систем, заканчивая уровнем ассемблера и параллельными компьютерными архитектурами. Книга максимально подробная – рекомендую.

  • Ноам Нисан и Шимон Шокен - Архитектура Компьютерных Систем. Более общая книга, которая больше будет полезна для того, чтобы научиться собирать компьютеры и понять, как всё это работает.  Но книга Таненбаума мне нравится больше.

Компьютерные сети

  • Э. Таененбаум и Д. Уэзеролл - Компьютерные Сети. Аналогично книге из предыдущей категории – это классика. Кинга переиздавалась уже много раз. Рассказывает практически всё о компьютерных сетях, начиная с физического уровня, заканчивая безопасностью в сетях. Как и некоторые другие книги этого автора может быть немного сложной для чтения, хотя, как по мне – нормально.

Больше по этой теме посоветовать ничего не могу.

Операционные системы

В этой категории три книги:

  • Э. Таненбаум. И Х. Бос – Современные Операционные Системы. Это так же, как и все остальные книги – классика. Описывает общие для всех ОС концепции работы и рассматривает конкретные примеры. В этой книги есть всё, что нужно знать для понимания работы ОС.

  • Эви Немент и др. -  Unix и Linux. Руководство Системного Администратора. Если вы хотите в совершенстве овладеть Linux – эта книга для вас. Она максимально подробно рассказывает об администрировании, работе с сетями, хранении данных и прочих процессах на Unix – подобных ОС.

  • Марк Руссинович и др. – Внутренние устройство Windows. Из названия книги, как мне кажется, всё понятно. Она рассказывает о том, как работает Windows. В книге рассматриваются такие темы как: архитектура системы, процессы, потоки, управление памятью и конечно безопасность.

Алгоритмы

Из этой категории я могу посоветовать серию книг:

  • Роберт Седжвик – Фундаментальные алгоритмы на С++. Даже если вы не знаете С++ - вам будет всё понятно, автор даёт подробные объяснения происходящего в алгоритме. Если знаете – прекрасно. По факту, книги содержат описание всех самых важных алгоритмов в CS и их вам должно хватить. Принцип работы каждого алгоритма описывается достаточно подробно.

 

И ещё момент, специально для тех, кто хочет полностью понимать происходящее, а книгах Таненбаума:

  • В.И. Юров – Assembler - *без комментариев


В целом, по теме CS – это всё. Не стоит так же забывать и про разнообразные разделы математики и физики, необходимые для понимания материала большинства из книги по Computer Science. Так же могу дать несколько советов по чтению подобных книг:

  • Не перегружайте себя информацией. Не надо читать слишком много за раз.

  • Как только встретили что-то, что вам в книге не понятно – сразу изучите эту тему. Если этого не сделать – будет только хуже.

  • Практикуйте всё, что можно практиковать. Если в книги приводится какой-либо алгоритм – поймите, как он работает и попробуйте воссоздать его, если программа – перепишите и разберитесь.

  • Пересказываете прочитанное. После прочтения теоретической, постарайтесь её пересказать (самому себе или кому-то другому) максимально подробно. Так вы лучше запомните материал.

  • Если есть возможность – читайте книги в оригинале. Так у вас меньше шансов наткнуться на ошибки переводчика и редактора.

 

Все книги, упомянутые в статье вы можете скачать здесь.

На этом подборка книг подошла к концу, всем, кто дочитал до этого момента спасибо!

Источник: https://habr.com/ru/articles/774746/


Интересные статьи

Интересные статьи

Сложные заказчики и клиенты — это всегда “геморрой”, много нервов и проблем на всех стадиях проекта. Коммуникационный аспект в нашей работе всегда занимает существенное место. Отчасти, это из-за специ...
Этот пост — обзор полезных в практике PM источников знаний, созданный на основе рекомендаций специалистов и руководителей ЕАЕ-Консалт. В материале постарались отразить не только специфическую литерат...
Пятничный привет тебе, Хабр!Если есть возможность в выходные отдыхать, а не работать — это очень круто. А если получается отдыхать с пользой — это круто вдвойне. Как? — н...
Сегодня поговорим об измерении производительности рендеринга React-компонентов с использованием API React Profiler. Ещё мы будем оценивать взаимодействия с компонентом, применяя новый эксперимент...
На этой неделе в нашем блоге на Хабре вышла целая серия материалов о том, как проходит обучение и практика в магистратуре Университета ИТМО: Магистранты факультета ИТ и программирования деля...