Разное

Список литературы по программированию: Актуальный список литературы по программированию

Содержание

Актуальный список литературы по программированию


  1. Бессмертный, И. А. Системы искусственного интеллекта : учеб. пособие для СПО / И. А. Бессмертный. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2018. — 130 с.
  2. Гниденко, И. Г. Технология разработки программного обеспечения : учеб. пособие для СПО / И. Г. Гниденко, Ф. Ф. Павлов, Д. Ю. Федоров. — М. : Издательство Юрайт, 2017. — 235 с. 
  3. Гордеев, С. И. Организация баз данных в 2 ч. Часть 2 : учебник для вузов / С. И. Гордеев, В. Н. Волошина. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2019. — 501 с. 
  4. Жмудь, В. А. Моделирование замкнутых систем автоматического управления : учеб. пособие для академического бакалавриата / В. А. Жмудь. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2019. — 128 с. 
  5. Зыков, С. В. Программирование. Объектно-ориентированный подход : учебник и практикум для академического бакалавриата / С. В. Зыков. — М. : Издательство Юрайт, 2019. — 155 с. 
  6. Иванов, В. М. Интеллектуальные системы : учеб. пособие для СПО / В. М. Иванов ; под науч. ред. А. Н. Сесекина. — М. : Издательство Юрайт, 2019. — 93 с. 
  7. Иванов, В. М. Интеллектуальные системы : учеб. пособие для вузов / В. М. Иванов ; под науч. ред. А. Н. Сесекина. — М. : Издательство Юрайт, 2017. — 91 с. 
  8. Кубенский, А. А. Функциональное программирование : учебник и практикум для академического бакалавриата / А. А. Кубенский. — М. : Издательство Юрайт, 2019. — 348 с. 
  9. Кудрина, Е. В. Основы алгоритмизации и программирования на языке c# : учеб. пособие для СПО / Е. В. Кудрина, М. В. Огнева. — М. : Издательство Юрайт, 2019. — 322 с.
  10. Кудрина, Е. В. Основы алгоритмизации и программирования на языке c# : учеб. пособие для бакалавриата и специалитета / Е. В. Кудрина, М. В. Огнева. — М. : Издательство Юрайт, 2019. — 322 с. 
  11. Кудрявцев, К. Я. Методы оптимизации : учеб. пособие для вузов / К. Я. Кудрявцев, А. М. Прудников. — 2-е изд. — М. : Издательство Юрайт, 2019. — 140 с.  
  12. Лаврищева, Е. М. Программная инженерия и технологии программирования сложных систем : учебник для вузов / Е. М. Лаврищева. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2019. — 432 с.
  13. Лебедев, В. М. Программирование на vba в ms excel : учеб. пособие для академического бакалавриата / В. М. Лебедев. — М. : Издательство Юрайт, 2019. — 272 с. 
  14. Малявко, А. А. Формальные языки и компиляторы : учеб. пособие для вузов / А. А. Малявко. — М. : Издательство Юрайт, 2018. — 429 с
  15. Мамонова, Т. Е. Информационные технологии. Лабораторный практикум : учеб. пособие для СПО / Т. Е. Мамонова. — М. : Издательство Юрайт, 2019. — 178 с. 
  16. Маркин, А. В. Программирование на sql в 2 ч. Часть 2 : учебник и практикум для бакалавриата и магистратуры / А. В. Маркин. — М. : Издательство Юрайт, 2019. — 292 с. 
  17. Нагаева, И. А. Программирование: delphi : учеб. пособие для академического бакалавриата / И. А. Нагаева, И. А. Кузнецов ; под ред. И. А. Нагаевой. — М. : Издательство Юрайт, 2017. — 302 с. 
  18. Плескунов, М. А. Операционное исчисление : учеб. пособие для вузов / М. А. Плескунов ; под науч. ред. А. И. Короткого. — М. : Издательство Юрайт, 2019. — 141 с. 
  19. Советов, Б. Я. Базы данных : учебник для прикладного бакалавриата / Б. Я. Советов, В. В. Цехановский, В. Д. Чертовской. — 3-е изд., перераб. и доп. — М. : Издательство Юрайт, 2019. — 420 с.
  20. Стасышин, В. М. Базы данных: технологии доступа : учеб. пособие для СПО / В. М. Стасышин, Т. Л. Стасышина. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2018. — 164 с.
  21. Сысолетин, Е. Г. Разработка интернет-приложений : учеб. пособие для СПО / Е. Г. Сысолетин, С. Д. Ростунцев. — М. : Издательство Юрайт, 2019. — 90 с.
  22. Сысолетин, Е. Г. Разработка интернет-приложений : учеб. пособие для вузов / Е. Г. Сысолетин, С. Д. Ростунцев ; под науч. ред. Л. Г. Доросинского. — М. : Издательство Юрайт, 2019. — 90 с
  23. Трофимов, В. В. Основы алгоритмизации и программирования : учебник для СПО / В. В. Трофимов, Т. А. Павловская ; под ред. В. В. Трофимова. — М. : Издательство Юрайт, 2019. — 137 с.
  24. Тухфатуллин, Б. А. Численные методы расчета строительных конструкций. Метод конечных элементов : учеб. пособие для академического бакалавриата / Б. А. Тухфатуллин. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2019. — 157 с.
  25. Федоров, Д. Ю. Программирование на языке высокого уровня python : учеб. пособие для прикладного бакалавриата / Д. Ю. Федоров. — 2-е изд., перераб. и доп. — М. : Издательство Юрайт, 2019. — 161 с. 
  26. Федоров, Д. Ю. Программирование на языке высокого уровня python : учеб. пособие для СПО / Д. Ю. Федоров. — М. : Издательство Юрайт, 2019. — 126 с.
  27. Черткова, Е. А. Статистика. Автоматизация обработки информации : учеб. пособие для вузов / Е. А. Черткова ; под общ. ред. Е. А. Чертковой. — 2-е изд., испр. и доп. — М. : Издательство Юрайт, 2017. — 195 с.



Просмотров
2 916

Список литературы на тему «Языки и системы программирования

Список литературы

Генератор кроссвордов

Генератор титульных листов

Таблица истинности ONLINE

Прочие ONLINE сервисы

 

Список литературы

1. Ашарина, И. В. Основы программирования на языках C и C++ / И.В. Ашарина. — М.: Горячая линия — Телеком, 2012. — 208 c.
2. Бибило, П. Н. Задачи по проектированию логических схем с использованием языка VHDL. Учебное пособие / П.Н. Бибило. — М.: ЛКИ, 2015. — 328 c.
3. Биллиг, В. А. Основы объектного программирования на C# (C# 3.0, Visual Studio 2008) / В.А. Биллиг. — М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2016. — 584 c.
4. Буховец, А. Г. Алгоритмы вычислительной статистики в системе R. Учебное пособие / А.Г. Буховец, П.В. Москалев. — М.: Лань, 2015. — 160 c.
5. Васильев, П. П. Турбо Паскаль в примерах и задачах / П.П. Васильев. — М.: Финансы и статистика, 2016. — 496 c.
6. Вычислительная техника в инженерных и экономических расчетах. Учебник. — М.: Высшая школа, 2017. — 320 c.
7. Гавриков, М. М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А. Н. Иванченко, Д.В. Гринченков. — М.: КноРус, 2014. — 184 c.
8. Гергель, В. П. Современные языки и технологии параллельного программирования / В.П. Гергель. — М.: Издательство МГУ, 2012. — 408 c.
9. Герман, О. Программирование на Java и C# для студента / О. Герман, Ю. Герман. — М.: БХВ-Петербург, 2014. — 512 c.
10. Грегер, С. Э. Сервер приложений «Zope» / С.Э. Грегер. — М.: Горячая линия — Телеком, 2017. — 256 c.
11. Дадян, Э. Г. Проектирование бизнес-приложений в системе «1С:Предприятие 8». Учебное пособие / Э.Г. Дадян. — М.: Вузовский учебник, Инфра-М, 2014. — 288 c.
12. Е., П. Истомин Информатика и программирование / Истомин Е. П., A. M. Власовец. — М.: Андреевский Издательский дом, 2013. — 294 c.
13. Задачи по программированию. — М.: Бином. Лаборатория знаний, 2014. — 824 c.
14. Зыков, С. В. Введение в теорию программирования. Курс лекций. Учебное пособие / С.В. Зыков. — М.: Интернет-университет информационных технологий, 2012. — 400 c.
15. Ишкова, Э. А. C#. Начала программирования / Э.А. Ишкова. — М.: Бином-Пресс, 2016. — 334 c.
16. Кетков, Ю. Л. Свободное программное обеспечение. FREE PASCAL для студентов и школьников (+ CD) / Ю.Л. Кетков, А.Ю. Кетков. — М.: БХВ-Петербург, 2012. — 376 c.
17. Культин, Никита Visual Basic для студентов и школьников / Никита Культин. — М.: БХВ-Петербург, 2012. — 354 c.
18. Медведик, В. И. Практика программирования на Паскаль. Задачи и решения. Учебное пособие / В.И. Медведик. — М.: ДМК Пресс, 2015. — 590 c.
19. Опалева, Э. А. Языки программирования и методы трансляции / Э.А. Опалева, В.П. Самойленко. — М.: БХВ-Петербург, 2015. — 480 c.
20. Павловская, Т. А. C/C++. Программирование на языке высокого уровня / Т.А. Павловская. — М.: Питер, 2013. — 464 c.
21. Павловская, Татьяна C/C++. Процедурное и объектно-ориентированное программирование. Учебник / Татьяна Павловская. — М.: Питер, 2015. — 496 c.
22. Программирование на С++. — М.: Корона-Принт, Альтекс — А, 2014. — 512 c.
23. Рапаков, Г. Г. Turbo Pascal для студентов и школьников / Г.Г. Рапаков, С.Ю. Ржеуцкая. — М.: БХВ-Петербург, 2012. — 352 c.
24. Санников, Е. В. Курс практического программирования в Delphi. Объектно-ориентированное программирование / Е.В. Санников. — М.: Солон-Пресс, 2013. — 188 c.
25. Семакин, И. Г. Основы программирования и баз данных. Учебник / И.Г. Семакин. — М.: Academia, 2014. — 224 c.
26. Финогенов, К. Г. Использование языка Ассемблера. Учебное пособие / К.Г. Финогенов. — М.: Горячая линия — Телеком, 2017. — 440 c.
27. Финогенов, К. Основы языка Ассемблера / К. Финогенов. — М.: Горячая Линия — Телеком, Радио и связь, 2016. — 963 c.
28. Хабибуллин, И. Программирование на языке высокого уровня. C/C++ / И. Хабибуллин. — М.: БХВ-Петербург, 2016. — 512 c.
29. Хорев, П. Б. Объектно-ориентированное программирование с примерами на С#. Учебное пособие / П.Б. Хорев. — М.: Форум, Инфра-М, 2016. — 200 c.
30. Черпаков, И. В. Основы программирования. Учебник и практикум / И.В. Черпаков. — М.: Юрайт, 2016. — 220 c.


Внимание: данные, отмеченные красным цветом, являются недостоверными!


Книги, использованные при создании данного списка литературы:

В нашем каталоге

Околостуденческое

Это интересно…

Наши контакты

Язык программирования | Актуальный список литературы за 2015-2019 гг.


СПИСОК ЛИТЕРАТУРЫ

1. Баженова, И.Ю. Языки программирования: Учебник / И.Ю. Баженова. — М.: Академия, 2018. — 448 c.

2. Гавриков, М.М. Теоретические основы разработки и реализации языков программирования / М.М. Гавриков, А.Н. Иванченко. — М.: КноРус, 2018. — 207 c.

3. Довек, Ж. Введение в теорию языков программирования / Ж. Довек, Ж.-Ж. Леви. — М.: ДМК, 2016. — 134 c.

4. Дорогов, В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова. — М.: Форум, 2015. — 320 c.

5. Касторнова, В.А. Структуры данных и алгоритмы их обработки на языке программирования Паскаль: Учебное пособие / В.А. Касторнова. — СПб.: BHV, 2016. — 304 c.

6. Керниган, Б. Язык программирования C. / Б. Керниган, Д.М. Ритчи. — М.: Вильямс, 2016. — 288 c.

7. Кузин, А.В. Основы программирования на языке Objective-C для iOS: Учебное пособие / А.В. Кузин, Е.В. Чумакова. — М.: Инфра-М, 2018. — 384 c.

8. Липпман, С. Язык программирования С++. Базовый курс / С. Липпман. — М.: Вильямс И.Д., 2018. — 1120 c.

9. Макаровских, Т.А. Языки и методы программирования: Путеводитель по языку С++ / Т.А. Макаровских, А.В. Панюков. — М.: Ленанд, 2018. — 216 c.

10. Макаровских, Т.А. Языки и методы программирования: Создание простых GUI-приложений с помощью Visual С++ / Т.А. Макаровских, А.В. Панюков. — М.: Ленанд, 2018. — 144 c.

11. Орлов, С. Теория и практика языков программирования: Учебник / С. Орлов. — СПб.: Питер, 2017. — 224 c.

12. Орлов, С. Теория и практика языков программирования. Учебник для вузов Стандарт третьего поколения / С. Орлов. — СПб.: Питер, 2017. — 688 c.

13. Солдатенко, И.С. Практическое введение в язык программирования Си: Учебное пособие / И.С. Солдатенко, И.В. Попов. — СПб.: Лань, 2018. — 132 c.

14. Страуструп, Б. Язык программирования С++ / Б. Страуструп. — М.: Бином-Пресс, 2019. — 1136 c.

15. Страуструп, Б. Язык программирования С++ (стандарт C++11). Краткий курс / Б. Страуструп. — М.: Бином, 2017. — 176 c.

16. Страуступ, Б. Язык программирования С++. Специальное издание / Б. Страуступ. — М.: Бином, 2015. — 1136 c.

17. Троелсен, Э. Язык программирования C# 7 и платформа .NET и NET Core / Э. Троелсен. — М.: Вильямс И.Д., 2018. — 1328 c.



Какой список литературы для структурированного изучения программирования?

Знаю Delphi, PHP, немного ASP, HTML, CSS, JS.
Но возник вопрос… как научиться программировать?
Не шаблонно вспоминать что и где применяется, используя CMS, Фреймворки и кучу плагинов.
А именно с точки зрения правильного когда, с пониманием парадигм и паттернов, с полным осознанием ООП и фишек типа синглтон, плейсхолдер и всяческие интерполяции. Что бы точно понимать архитектуру и возможности решения той или иной задачи.

Хочу делать игры на Unity или UE4. Пока склоняюсь к первому движку, но окончательно не решил. Думаю понимая теорию и изучая C# можно будет легко перейти на C++ и наоборот. Так что тут особая разница не чувствуется.
Если есть возможность и там и там использовать Java, то согласен и на него.

Решил начать все с нуля, так сказать «наплывом», освежить прошлые знания и приобрести новые. Но не могу составить систематизированный перечень литературы.
Что бы было понятней, я открыл статью в Вики «парадигмы программирования», и был несколько озадачен, когда начал идти по списку составляющих, где императивное программирование сразу же описывалось как противоположное декларативному. Системности в этом не увидел, потому как, условно, декларативное программирование я еще не знаю, т.е. не дошел до него по статье. Грубо говоря нельзя объяснять человеку что-то, терминами которые он не знает.

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

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

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

Список литературы

а)
основная литература

1.
Медведев В.И. Особенности
объектно-ориентированного программирования
на C++/CLI,
C#
и Java.
– Казань: РИЦ «Школа», 2008. – 360 c.:
ил. – (Серия «Современная прикладная
математика и информатика»).

2.
Медведев В.И. Программирование на С++,
С++.NET/C#
и .NET
компоненты. – Казань: Мастер
Лайн,
2006. – 296 c.:
ил.

3. Медведев В.И. Программирование на C++,C++.NETиC#
(Серия “Современная прикладная математика
и информатика”). – Казань: Мастер
Лайн, 2005. – 270c.: ил.

б) дополнительная
литература:

1.
Байдачный
С.С.
.NET Framework. Секреты
создания Windows-приложений.
– М.: СОЛОН-Пресс, 2004. – 496 с.: ил.

2.
Гербердт Шилдт. C#:
учебный курс. – СПб.: Питер; К.: Издательская
группа BHV,
2003. – 512 c.:
ил.

СПб.: Питер, 2002. –
464 с.

3.
Петцольд Ч. Программирование для
Microsoft
Windows
на C#.
В 2-х томах/Пер. с англ. – М.: Издательско-торговый
дом “Русская Редакция”, 2002. – 576 + 624 с.:
ил.

4.
П. Наутон, Г. Шилдт. Java
2. Наиболее полное руководство в
подлиннике.– СПб.: БХВ-Петербург, 2000. –
1072 с.: ил.

5.
Рамбо Дж., Якобсон А., Буч Г. UML:
специальный справочник. – СПб.: Питер,
2002. – 656 c.

Приложение . Пример курсовой работы

В
этом разделе приведён пример оформления
пояснительной записки применительно
к простому заданию, включающему
обязательную часть курсовой работы,
оцениваемой положительной оценкой.
Усложнив это задание совместно с
преподавателем в процессе выполнения
работы, студент может заслужить более
высокую оценку. В зависимости от
способностей студента задания на
курсовую работу могут быть связаны с
научными интересами студентов или с
разработкой каких-либо программных
систем в рамках кафедральной
научно-методической работы и т.д. Но в
любом случае задание должно быть
согласовано с преподавателем, и
разрабатываемая программа должна быть
реализована на языках C#
и Java.
Введение в курсовую работу изображений,
дополнительных интерфейсных элементов,
обогащающих управление программой,
может привести к повышению оценки

Задание сформулировано
следующим образом:

В
прямоугольнике перемещаются 2 объекта
шаров с различными скоростями, отталкиваясь
от стенок этого прямоугольника.
Оттолкнувшись от стенок, объекты шары
сообщают об этом специальному объекту
шару, который при этом “вспыхивает”
на 2 сек.

Министерство общего и профессионального
образования

Российской Федерации

Казанский государственный технический университет

имени. А.Н. Туполева

——————————————————————————————

Кафедра АСОИУ

Курсовая работа

по дисциплине
«Объектно-ориентированное программирование»

(задание № 0)

Исполнитель: студент группы 4208 И. И.
Иванов

Руководитель: доц.
кафедры АСОИУ В.И. Медведев

Оценка _________________________

Подпись _________________________

«____»
_________________ 2009 г.

Казань 2009

Содержание

1.
Задание

2.
Уточнение задания

3.
Описание
разрабатываемой программы с точки
зрения пользователя.

4.
Описание
разрабатываемой программы с точки
зрения программиста. Данный раздел
включает следующие подразделы:

    1. Объектное
      представление программы.

    2. События.

    3. Потоки.

5.
Поэтапная разработка программной
системы.

5.1.
Этап 1. Разработка
класса обычного объекта

5.2.
Этап 2. Разработка класса Balls

5. 3. Этап 3. Разработка события ev

5.4.
Этап 4. Разработка прикладного окна

5.5.
Этап 5. Разработка дочернего окна

5.6.
Этап 6. Добавление элемента списка

5.7.
Этап 7. Разработка специального объекта

6.
Описание проблем, возникших при разработке
программной системы.

7.
Список используемой литературы.

8. Приложение 1.
Диаграмма классов разработанной
программы.

9.
Приложение 2. Текст программы на.языке
C#.

10.
Приложение 2. Текст программы на.языке
Java.

Список литературы — алгоритмические структуры Паскаль

1.       Абрамов
В.Г. Введение в язык Паскаль: учебник для ССУЗов / В.Г. Абрамов, Н.П. Трифонов,
Г.Н. Трифонова – М.:Наука, 2015. – 384 с.

2.       Архангельский
А.Я. Программирование в Delphi.
Учебник по классическим версиям Delphi
/ А. Я. Архангельский – М.: Бином-Пресс, 2008. – 1158 с.

3.       Белов
В.В., Чистякова В.И. Программирование в Delphi. Процедурное,
объектно-ориентированное, визуальное программирование: учебное пособие / В.В.
Белов, В.И. Чистякова – М.: Горячая Линия – Телеком, 2014. – 240с.

4.       Богомолова
О.Б. Информатика. Полный справочник для подготовки к ЕГЭ / Богомолова О.Б. –
М.: АСТ, 2013. – 416 с.

5.       Златопольский
Д.М. Сборник задач по программированию / Д.М. Златопольский– СПб.: БХВ —
Петербург, 2011. – 304 с.

6.       Культин Н. Основы программирования в Delphi 7 — СПб.: БХВ-Петербург, 2003.

7.       Окулов
С.М. Программирование в алгоритмах. – М.:Бином. Лаборатория знаний, 2013. – 384
с.

8.       Попов
В.Б. Delphi
для школьников. – М.: Инфа-М, 2010. – 320 с.

9.       Самылкина
Н.Н. ЕГЭ-2015. Информатика. Тематические тренировочные задания / Н.Н. Самылкина,
Е.М. Островская – М.: Эксмо, 2014. – 96 с.

10.  Самылкина
Н.Н. ЕГЭ-2016. Информатика. Тематические тренировочные задания / Н.Н.
Самылкина, Синицкая И.В., Соболева В.В. – М.: Эксмо, 2015. – 176 с.

11.  Семакин
И.Г. Основы программирования: учебник для ССУЗов/ И.Г. Семакин, А.П. Шестаков
7-ое издание. – М.: Академия, 2012. – 432 с.

12.  Семакин
И.Г. Основы алгоритмизации и программирования: учебник для ССУЗов / И.Г.
Семакин, А.П. Шестаков. – М.: Издательский центр «Академия», 2008. – 400 с.

13.  Фаронов
В.В. Delphi.
Программирование на языке высокого уровня. – М.: 2003. – 640 с.

14.  Сайт
бесплатного дистанционного обучения intuit [электронный ресурс]. – ссылка http://vplaksina.narod.ru/uchebnik/algoritm.htm

15.  http://www.maksakov-sa.ru/Algol/RazAlgol/index.html

 

список литературы алгоритм

Список литературы алгоритм

​​​

  1. Андреев А. Е. Дискретная математика: прикладные задачи и сложность алгоритмов : учебник и практикум для академического бакалавриата / А. Е. Андреев, А. А. Болотов, К. В. Коляда, А. Б. Фролов. — 2-е изд., испр. и доп. — Москва : Издательство Юрайт, 2019. — 317 с. 

  2. Аверина, Т. А. Численные методы. Верификация алгоритмов решения систем со случайной структурой : учебное пособие для вузов / Т. А. Аверина. — Москва : Издательство Юрайт, 2019. — 179 с. 

  3. Игошин, В.И. Теория алгоритмов: Учебное пособие / В.И. Игошин. — М.: ИНФРА-М, 2013. — 318 c.

  4. Канцедал, С.А. Алгоритмизация и программирование : Учебное пособие / С.А. Канцедал. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. — 352 c.

  5. Крупский, В.Н. Математическая логика и теория алгоритмов: Учебное пособие для студентов учреждений высшего проф. образования / В.Н. Крупский, В.Е. Плиско. — М.: ИЦ Академия, 2013. — 416 c.

  6. Семакин, И.Г. Основы алгоритмизации и программирования. Практикум: Учебное пос. для студ. учреждений сред. проф. образования / И.Г. Семакин, А.П. Шестаков. — М.: ИЦ Академия, 2013. — 144 c.

  7. ​Судоплатов, С. В. Математика: математическая логика и теория алгоритмов : учебник и практикум для среднего профессионального образования / С. В. Судоплатов, Е. В. Овчинникова. — 5-е изд., стер. — Москва : Издательство Юрайт, 2019. — 255 с. 

  8. Семакин, И.Г. Основы алгоритмизации и программирования: Учебник для студ. учреждений сред. проф. образования / И.Г. Семакин, А.П. Шестаков. — М.: ИЦ Академия, 2013. — 304 c.

  9. Трофимов, В. В. Алгоритмизация и программирование : учебник для академического бакалавриата / В. В. Трофимов, Т. А. Павловская ; под редакцией В. В. Трофимова. — Москва : Издательство Юрайт, 2019. — 137 с. 

  10. Черняк А. А. Методы оптимизации: теория и алгоритмы : учебное пособие для академического бакалавриата / А. А. Черняк, Ж. А. Черняк, Ю. М. Метельский, С. А. Богданович. — 2-е изд., испр. и доп. — Москва : Издательство Юрайт, 2019. — 357 с. 

 

 

 

 

 

 

 

 

 

 

Список книг по программированию

Список книг по программированию Список книг по программированию


Существует множество списков «12 книг по CS, которые должен прочитать каждый программист». Это чепуха. Поле слишком велико, чтобы практически любая тема могла быть обязательной к чтению для всех программистов, и даже если тема настолько важна, предпочтения людей в обучении слишком сильно различаются, чтобы любая книга по этой теме могла быть лучшей книгой по этой теме для всех людей.

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

Алгоритмы / структуры данных / сложность

Зачем вам это нужно? Что ж, есть прагматический аргумент: даже если вы никогда не используете это в своей работе, большинство наиболее высокооплачиваемых компаний будут спрашивать вас об этом на собеседовании. С другой стороны, я считаю, что алгоритмы полезны точно так же, как и математика. Вероятность того, что какой-либо конкретный алгоритм будет полезен для какой-либо конкретной проблемы, мала, но часто полезно иметь общее представление о том, какие типы задач являются решаемыми, какие проблемы трудноразрешимы и когда приближения будут эффективными.

McDowell; Cracking the Coding Interview

Некоторые проблемы и решения с пояснениями, соответствующие уровню вопросов, которые вы видите на собеседованиях начального уровня в Google, Facebook, Microsoft и т. Д. Я обычно рекомендую эту книгу людям, которые хотят пройти собеседование, но не совсем узнать об алгоритмах. Этого достаточно, чтобы обойтись, но на самом деле это не научит вас , почему за чем-то стоит. Если вы действительно хотите узнать об алгоритмах и структурах данных, см. Ниже.

Дасгупта, Пападимитриу и Вазирани; Алгоритмы

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

Я знаю, что некоторым он не нравится, потому что он относительно ориентирован на математику / доказательство. Если это вы, вы, вероятно, предпочтете Skiena.

Skiena; Руководство по разработке алгоритмов

Более длинная, более полная, более практичная и менее математическая версия Dasgupta. Он похож в том, что он пытается научить вас выявлять проблемы, использовать правильный алгоритм и дать четкое объяснение алгоритма. Книга хорошо мотивирована «военными историями», которые показывают влияние алгоритмов на программирование в реальном мире.

CLRS; Введение в алгоритмы

Этой книге каким-то образом удается попасть в половину этих списков «N книг, которые должны прочитать все программисты», несмотря на то, что она настолько исчерпывающая и строгая, что практически никто из практиков на самом деле не прочитает всю книгу. Он отлично подходит в качестве учебника для класса алгоритмов, где вы получаете выбор тем. Приятным бонусом для классного учебника является то, что в нем есть упражнения, которые достаточно сложны, чтобы их можно было использовать на курсах для выпускников (около половины упражнений из моего класса алгоритмов на уровне выпускников были взяты из CLRS, а другая половина — из Kleinberg & Tardos. ), но для большинства людей это совершенно непрактично как отдельное введение.

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

Kleinberg & Tardos; Разработка алгоритмов

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

Demaine; Расширенные структуры данных

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

Окасаки; Чисто функциональные структуры данных

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

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

Dominus; Perl высшего порядка

Мягкое введение в функциональное программирование, которое происходит с использованием Perl. Вероятно, вы могли бы так же легко проработать эту книгу на Python или Ruby.

Если вы идете в ногу с модой, эта книга может показаться немного устаревшей, но только потому, что многие идеи стали мейнстримом.Если вам интересно, почему вы должны заботиться об этом «функциональном программировании», о котором все говорят, а некоторые слоганы, которые вы слышите, не говорят с вами или даже отталкивают (типы — это предложения, это здорово, потому что это математика и т. д.), дайте шанс этой книге.

Левитин; Алгоритмы

Я заказал это на Amazon после того, как увидел эти два сообщения: «Другие функции, улучшающие обучение, включают резюме глав, подсказки к упражнениям и подробное руководство по решению». и «Обучение студентов дополнительно поддерживается советами к упражнениям и резюме глав.Одно из этих записок даже напечатано на самой книге, но после того, как я получил книгу, единственными ресурсами для самообучения, которые я смог найти, были несколько сообщений с ответами на Yahoo, в которых спрашивали, где можно найти подсказки или решения.

Вместо этого я взял Dasgupta, который можно было бесплатно скачать на сайте автора.

Mitzenmacher & Upfal; Вероятность и вычисления: рандомизированные алгоритмы и вероятностный анализ

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

В тексте достаточно вводной части для вероятности того, что вам не нужно иметь какой-либо вероятностный фон. Кроме того, материал о границах хвостов (например, границы Чернова) полезен для многих доказательств теории CS и не охвачен во вводных текстах о вероятности, которые я видел.

Sipser; Введение в теорию вычислений

Классическое введение в теорию вычислений. Машины Тьюринга и др.Доказательства часто даются на интуитивно понятном, «эскизном» уровне детализации. В упражнения включены многие важные результаты (например, теорема Райса), поэтому вам действительно нужно выполнять ключевые упражнения. К сожалению, большинство ключевых упражнений не имеют решений, поэтому вы не можете проверить свою работу.

Для чего-то более современного, возможно, см. Аврора и Барак.

Bernhardt; Вычисление

Охватывает несколько основных моментов теории вычислений. Объяснения восхитительны, и я смотрел некоторые видео более одного раза, просто чтобы увидеть, как Бернхардт объясняет вещи.Предназначен для широкой аудитории программистов без опыта работы в CS.

Кирнс и Вазирани; Введение в теорию вычислительного обучения

Классический, но устаревший и пронизанный ошибками, без исправлений. Когда мне захотелось изучить этот материал, я собрал воедино заметки из нескольких курсов, одного из которых был Кливанс, а другой — Блюма.

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

Зачем вам это нужно? Небольшие знания об операционных системах могут сэкономить дни или неделю времени на отладку.Это обычная тема в блоге Джулии Эванс, и я обнаружил, что то же самое относится и к моему опыту. Мне сложно вспомнить кого-нибудь, кто создает практические системы и немного разбирается в операционных системах, но не считает, что их знания об операционных системах позволяют сэкономить время. Тем не менее, есть предвзятость в том, кто читает книги по операционным системам — это, как правило, люди, которые выполняют связанную работу! Возможно, вы не получите того же, прочитав их, если будете делать действительно высокоуровневые вещи.

Зильберхац, Гальвин и Ганье; Концепции операционных систем

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

Кокс, Касшук и Моррис; xv6

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

Эта книга хорошо сочетается с книгой, в которой рассказывается о том, как работают более современные операционные системы, такие как «Разработка ядра Linux» Лава или «Внутренние устройства Windows» Руссиновича.

Арпачи-Дюссо и Арпачи-Дюссо; Операционные системы: Three Easy Pieces

Хорошее объяснение множества тем, касающихся ОС. В нем содержится гораздо больше деталей, чем в любой другой известной мне вводной книге по ОС. Например, главы, посвященные файловым системам, подробно описывают несколько реальных файловых систем и обсуждают основные особенности реализации ext4 .Если у меня есть одна критика в адрес книги, так это то, что она очень целенаправленна. Многие из описываемых вещей — это просто то, как что-то делается в * nix, а не неотъемлемые, но в тексте обычно не говорится, когда что-то является неотъемлемым, а когда это детали реализации * nix.

Любовь; Linux Kernel Development

Название может вводить в заблуждение — в основном это книга о том, как работает ядро ​​Linux: как все сочетается друг с другом, какие алгоритмы и структуры данных используются и т. Д. Я прочитал 2-е издание, которое сейчас довольно устаревший.Третье издание содержит некоторые обновления, но содержит некоторые ошибки и несоответствия, и все еще устарело (оно было опубликовано в 2010 году и охватывает версию 2.6.34). Тем не менее, это хорошее введение в то, как работает относительно современная операционная система.

Другой недостаток этой книги состоит в том, что автор теряет всякую объективность всякий раз, когда сравнивают Linux и Windows. Практически каждый раз, когда их сравнивают, автор говорит, что Linux явно и неопровержимо сделала правильный выбор, а Windows делает что-то глупое.В целом, я предпочитаю Linux Windows, но есть ряд областей, в которых Windows превосходит, а также области, в которых есть паритет, но Windows опережала на долгие годы. Однако вы никогда не узнаете, что это такое, из этой книги.

Руссинович, Соломон и Ионеску; Windows Internals

Самая полная книга о том, как работает современная операционная система. Это просто про Windows. Исходя из опыта работы с * nix, мне было интересно прочитать это, просто чтобы увидеть различия.

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

Дауни; Маленькая книга семафоров

Берет тему, которая обычно представляет собой один или два раздела в учебнике по операционным системам, и превращает ее в отдельную книгу на 300 страниц. Книга представляет собой серию упражнений, немного напоминающих «Маленького интригана», но с большим содержанием.Он начинается с объяснения, что такое семафор, а затем содержит серию упражнений, которые создают примитивы параллелизма более высокого уровня.

Эта книга была очень полезна, когда я только начал писать код для потоковой передачи / параллелизма. Я подписываюсь на школу параллелизма Батлера Лэмпсона, что означает, что я предпочитаю, чтобы весь связанный с параллелизмом код был помещен в черный ящик, который пишет кто-то другой. Но иногда вы застреваете при написании черного ящика, и если да, то в этой книге есть хорошее введение в стиль мышления, необходимый для написания, возможно, не совсем неправильного параллельного кода.

Хотелось бы, чтобы кто-нибудь написал книгу в этом стиле, но и более низкого, и более высокого уровня. Я бы хотел увидеть подобные упражнения, но начнем с примитивов на уровне инструкций для пары разных архитектур с разными моделями памяти (скажем, x86 и Alpha) вместо семафоров. Если сегодня я пишу безобразный низкоуровневый код потоковой передачи, мне очень нравится использовать примитивы потоковой передачи c ++ 11 , поэтому я бы хотел что-то, что использует их вместо семафоров, которые я мог бы использовать, если бы я писал потоковый код для Win32 API. Но поскольку этой книги не существует, это кажется лучшим вариантом.

Я слышал, что параллельное программирование Дуга Ли на Java тоже неплохое, но я только бегло на него взглянул.

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

Зачем вам это нужно? Конкретные факты и мелочи, которые вы узнаете, будут полезны при оптимизации производительности на низком уровне, но реальная ценность состоит в том, чтобы научиться находить компромисс между производительностью и другими факторами, будь то мощность, стоимость, размер, вес и т. Д. или что-то другое.

Теоретически такому виду рассуждений следует учить независимо от специализации, но мой опыт показывает, что люди, занимающиеся компьютерной аркой, с гораздо большей вероятностью «поймут» такие рассуждения и сделают обратные вычисления, которые спасут их от выбрасывания. коэффициент производительности в 2 или 10 (или 100 раз) увеличивается без всякой причины. Это кажется очевидным, но я могу представить себе несколько производственных систем в крупных компаниях, которые отказываются от 10x до 100x производительности, которые работают в таком масштабе, где даже двукратная разница в производительности может принести зарплату вице-президенту — все потому, что люди этого не сделали. продумайте влияние их дизайна на производительность.

Хеннесси и Паттерсон; Компьютерная архитектура: количественный подход

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

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

Предполагается наличие некоторой предыстории, но она представлена ​​в приложениях (которые доступны в Интернете бесплатно).

Shen & Lipasti: Современный дизайн процессора

Представляет большую часть того, что вам нужно знать для создания высокопроизводительного микропроцессора эпохи Pentium Pro (1995). Это немалый подвиг, учитывая сложность такого процессора. Кроме того, представлены некоторые более продвинутые идеи и границы того, сколько параллелизма может быть извлечено из различных рабочих нагрузок (и как вы можете выполнять такие вычисления).Имеет необычно большой раздел по прогнозированию стоимости, потому что авторы изобрели концепцию, и когда было опубликовано первое издание, все еще было жарко.

Для чистой архитектуры ЦП это, наверное, лучшая книга.

Хилл, Джуппи и Сохи, Литература по компьютерной архитектуре

Прочтите по историческим причинам и посмотрите, насколько лучше мы стали объяснять вещи. Например, сравните статью Амдала о законе Амдала (две страницы, с одним неочевидным графом и без формул) ипрезентация в современном учебнике (один абзац, одна формула и, возможно, один график для пояснения, хотя обычно он достаточно ясен, что никакого дополнительного графика не требуется).

Чем дальше вы идете, тем хуже становится; Поскольку comp Arch — относительно молодая область, здесь нет ничего сложного для понимания. Если вы хотите увидеть наглядный пример того, как мы научились лучше объяснять вещи, сравните оригинальную статью Максвелла о уравнениях Максвелла с современной трактовкой того же материала.Забавно, если вам нравится история, но немного утомительно, если вы просто пытаетесь чему-то научиться.

Алгоритмическая теория игр / теория аукционов / разработка механизмов

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

В частности, разработка совместимых со стимулами механизмов (грубо говоря, как создавать системы, обеспечивающие глобально оптимальные результаты, когда люди ведут себя в своих эгоистических интересах) должна быть обязательной к прочтению для всех, кто разрабатывает внутренние системы стимулов в компаниях. Если вы когда-либо работали в крупной компании, которая «получает» то и другое, то вы увидите, что компания, которая этого не получает, имеет огромные груды денег, которые в основном горят, потому что люди кто создал стимулы, создал чрезвычайно расточительные системы. Это поле дает вам основу для понимания того, какие механизмы дают вам какие результаты; чтение тематических исследований дает вам очень длинный (и занимательный) список ошибок, которые могут стоить миллионы или даже миллиарды долларов.

Кришна; Auction Theory

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

Относительно сухо. Вряд ли будет мотивировать, если вы уже не заинтересованы в этой теме. Требуется понимание основ вероятности и исчисления.

Steighlitz; Снайперы, шиллы и акулы: eBay и поведение человека

Похоже, это увлекательное введение в теорию аукционов для непрофессионала. Не требует математической подготовки и относит математику к мелкому шрифту. Охватывает, может быть, 1/10 материала о Кришне, если что. Весело читать.

Крэмптон, Шохам и Стейнберг; Комбинаторные аукционы

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

Шохам и Лейтон-Браун; Мультиагентные системы: алгоритмические, теоретико-игровые и логические основы

Худшее в этой книге — название. В противном случае это хорошее введение в алгоритмическую теорию игр.Книга охватывает основную теорию игр, теорию аукционов и другие классические темы, о которых специалисты CS могут еще не знать, а затем освещает пересечение CS с этими темами. Не предполагает особого фона в теме.

Нисан, Рафгарден, Тардос и Вазирани; Алгоритмическая теория игр

Обзор различных результатов в алгоритмической теории игр. Требуется достаточное количество предыстории (сначала прочтите Шохама и Лейтон-Брауна). Например, пятая глава — это, в основном, статья Деванура, Пападимитриу, Сабери и Вазирани JACM, Market Equilibrium via the Primal-Dual Algorithm for a Convex Program , с немного большей мотивацией и некоторыми связанными проблемами.Хорошая экспозиция и интересный результат (если вам нравятся подобные вещи), но это не обязательно то, что вам нужно, если вы хотите прочитать книгу и познакомиться с этой областью.

Разное

Бейер, Джонс, Петофф и Мерфи; Разработка надежности сайта

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

Для более подробного описания см. Этот 22-страничный набор примечаний к книге Google SRE.

Фаулер, Бек, Брант, Опдайк и Робертс; Рефакторинг

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

У Стива Йегге есть отличная подача для этой книги:

Когда я впервые прочитал эту книгу в октябре 2003 года, я испытал это ужасное чувство холода, которое вы могли бы почувствовать, если бы только поняли, что идете. работать в течение 5 лет со спущенными штанами до щиколоток.На следующий день я небрежно спросил у окружающих: «Да, вы читали эту, эм, книгу по рефакторингу, конечно, верно? Ха, ха, я спрашиваю только потому, что я прочитал ее очень давно, а не сейчас, конечно. » Только 1 человек из 20 опрошенных мной прочитал его. Слава богу, у всех были спущены штаны, не только у меня.

Если вы относительно опытный инженер, вы узнаете, что 80% или более методов из книги — это вещи, которые вы уже поняли и начали делать по привычке. Но он дает им все имена и объективно обсуждает их плюсы и минусы, что я считаю очень полезным.И это развенчало две или три практики, которыми я лелеял с первых дней моей карьеры программиста. Не комментируйте свой код? Локальные переменные — корень всех зол? Этот парень сумасшедший? Прочтите и решайте сами!

Demarco & Lister, Peopleware

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

Но практически каждая успешная компания работает наоборот. Даже Microsoft перестраивает здания из отдельных офисов в открытую планировку. Может быть, все это не имеет большого значения? Если это действительно так важно, то почему компании, которые искренне верят, такие как Fog Creek, не грубо обращаются со своими конкурентами?

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

Драммонд; Renegades of the Empire

В этой книге объясняется, как агрессивная культура Microsoft стала такой, какой она является сегодня. Во вступлении говорится:

Microsoft не обязательно нанимала клонов Гейтса (хотя их было много в корпоративном кампусе), а скорее нанимала тех, кто разделял некоторые из наиболее заметных черт Гейтса — высокомерие, агрессивность и высокий интеллект.

Гейтс печально известен тем, что высмеивает чью-то идею как «глупую» или, что еще хуже, «случайную», просто чтобы посмотреть, как он или она защищает свою позицию.Этот враждебный управленческий прием неизменно распространялся по цепочке командования и создавал культуру конфликта.

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

На собеседовании в Microsoft:

«Что вам нравится в Microsoft?» «Билл надрывает задницу», св.- сказал Джон. «Мне нравится надрать задницу. Мне нравится убивать конкурентов и доминировать на рынках ».

Он не был уверен, как у него дела, и подумал, что споткнулся, затем спросил, был ли он «народным человеком». «Нет, я думаю, что большинство людей — идиоты», — ответил Сент-Джон.

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

О проповеди разработчиков в Microsoft:

В свое время евангелисты Microsoft также обычно имели дело срывать конкурентов, появляясь на их конференциях, занимая должности в комитетах по стандартам, а затем запутывая их и пытаясь влиять на СМИ.

«Мы группа в Microsoft, чья работа состоит в том, чтобы трахнуть конкурентов Microsoft»

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

Bilton; Вылупление Twitter

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

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

Галенсон; Старые мастера и молодые гении

Эта книга об искусстве и о том, как продуктивность меняется с возрастом, но, если ее тезис верен, он, вероятно, применим и к программированию. Галенсон применяет статистику для определения «величия» искусства, а затем использует ее, чтобы сделать выводы о том, как производительность художников меняется с возрастом.У меня нет времени подробно разбирать данные, поэтому я должен скептически относиться к этому, пока у меня не появится больше свободного времени, но я думаю, что это интересное чтение даже для скептика.

Математика

Зачем вам это нужно? С точки зрения чистой рентабельности инвестиций, я сомневаюсь, что изучение математики того стоит для 99% рабочих мест. AFAICT, я использую математику чаще, чем большинство программистов, и я использую ее не так часто. Но наличие правильного математического образования иногда бывает полезным, и мне действительно нравится учить математику.YMMV.

Берцекас; Introduction to Probability

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

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

Росс; Первый курс по вероятности

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

Brualdi; Вводная комбинаторика

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

Что касается альтернативного вводного текста, я слышал хорошие отзывы о книге Камины и Льюиса, но сам не читал ее. Кроме того, Ловаш — отличная книга по комбинаторике, но не совсем вводная.

Апостол; Calculus

Том 1 охватывает то, что вы ожидаете от книги «Исчисление I + исчисление II». Том 2 охватывает линейную алгебру и многомерное исчисление. Он охватывает линейную алгебру до исчисления с несколькими переменными, что значительно упрощает понимание исчисления с несколькими переменными.

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

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

Стюарт; Calculus

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

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

Основы оборудования

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

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

Nisan & Shocken; nand2tetris

Если вы хотите прочитать только что-то одно, вероятно, это должно быть именно оно.Это вступление уровня «101», которое сводится к логическим элементам и логической логике. Как следует из названия, он приведет вас от ворот NAND к работающей программе тетриса.

Roth; Основы логического дизайна

Гораздо больше деталей о вентилях и логическом дизайне, чем вы увидите в nand2tetris. Книга полна упражнений и, похоже, предназначена для самостоятельного изучения. Обратите внимание, что ссылка выше относится к 5-му изданию. Существуют более новые и более дорогие издания, но они, кажется, не сильно улучшены, содержат много ошибок в новом материале и намного дороже.

Weste; Харрис и Баннерджи; CMOS VLSI Design

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

Шире и глубже, чем альтернативы, с четкой экспозицией. Исследует пространство дизайна (например, в разделе сумматоров не просто упоминаются несколько различных типов, но и исследуются все возможные компромиссы. Кроме того, есть как проблемы, так и решения, что делает его отличным для самостоятельного изучения .

Канг и Леблебичи; Цифровые интегральные схемы CMOS

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

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

Pierret; Основы полупроводниковых устройств

На один уровень ниже СБИС вы узнаете, как на самом деле работают транзисторы.

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

Streetman & Bannerjee; Твердотельные электронные устройства

Охватывает тот же материал, что и Пьерре, но, кажется, заменяет интуитивное понимание, к которому стремится Пьер, математическими формулами.

Ida; Engineering Electromagnetics

На один уровень ниже транзисторов, у вас есть электромагнетизм.

В два-три раза толще, чем другие вводные тексты, потому что в нем больше проработанных примеров и диаграмм. Разбивает все на типы проблем и подзадач, упрощая отслеживание. Для самостоятельного изучения. Введение гораздо мягче, чем у Гриффитса или Перселла.

Shanley; Системная архитектура Pentium Pro и Pentium II

В отличие от других книг в этом разделе, эта книга посвящена практике, а не теории. Это немного похоже на Windows Internals, поскольку в нем подробно описывается реальная, работающая система. Темы включают протоколы аппаратной шины, то, как на самом деле работает ввод-вывод (например, APIC) и т. Д.

Проблема с практическим введением в том, что с 8080 года наблюдается экспоненциальный рост сложности. Чем дальше вы идете, тем легче это понимание наиболее важных движущихся частей системы и более неуместных знаний. Эта книга кажется хорошим компромиссом в том смысле, что протоколы шины и ввода-вывода должны обрабатывать многопроцессорные системы, и многие элементы, которые есть в современных системах, были в этих системах, только в более простой форме.

Не охвачено

Из книг, которые мне понравились, я бы сказал, что это охватывает не более 25% книг по программному обеспечению и 5% книг по аппаратному обеспечению. В среднем книги, исключенные из списка, более специализированы. В этом списке также отсутствуют многие целые тематические области, такие как PL, практические книги по изучению языков, сетевое взаимодействие и т. Д.

Причины ухода вне тематических областей различаются; У меня нет в списке книг PL, потому что я не читаю книги PL. У меня нет книг по сетям, потому что, хотя я прочитал пару, я недостаточно знаю об этом районе, чтобы действительно сказать, насколько полезны эти книги.Подавляющее большинство книг по аппаратному обеспечению не включены, потому что они охватывают материал, о котором вы не заботились бы, если бы вы не были специалистом (например, дизайн устойчивых к перекосам схем или сверхбыстрая оптика). То же самое касается таких областей, как математика и теория компьютерной науки, где я остановил ряд книг, которые я считаю отличными, но с практически нулевой вероятностью быть полезными в моей повседневной жизни программирования, например, Экстремальная комбинаторика. Я также не включил книги, которые не прочитал все или большую часть, если только я не остановился, потому что книга была ужасной.Это означает, что я не перечисляю классику, которую я еще не закончил, например SICP и The Little Schemer, поскольку эти книги кажутся хорошими, и я просто не закончил их по той или иной причине.

В этот список также не входит много книг по истории и культуре, таких как Inside Intel или Masters of Doom. Возможно, в какой-то момент я добавлю больше, но я пытался провести эксперимент, в котором я пытался писать больше как Джулия Эванс (поток сознания, меньше черновиков или их нет). Мне пришлось бы вернуться и перечитать книги, которые я прочитал 10+ лет назад, чтобы написать содержательные комментарии, что не совсем соответствует эксперименту.Кстати, поскольку этот список составлен по памяти, а пару лет назад я избавился почти от всех своих книг, я, вероятно, забываю многие книги, которые собирался добавить.

_Если вам это понравилось, вам также может понравиться Список чтения по безопасности приложений Томаса Птачека или этот список блогов по программированию, который написан в аналогичном стиле _

7 основных книг по программированию Разработчики X-Team рекомендуют

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

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

1. Программист-прагматик (А. Хант и Д. Томас)

Классика в своем жанре и часто используемая в качестве учебника на университетских курсах. The Pragmatic Programmer от Энди Ханта и Дэвида Томаса — это книга, которая предлагает практические и разумные советы по программированию, которые вы можете использовать в любом проекте разработки.

По сути, это серия статей, каждая из которых содержит урок «передовой практики», который часто объясняется метафорой. Если вы новичок в программировании, эта книга поможет убедиться, что вы на правильном пути с самого начала проекта. Если вы опытный программист, эта книга укрепит некоторые убеждения, которые вы сформировали за годы программирования.

2. Чистый кодер (Р. Мартин)

Роберт Сесил Мартин, также известный как дядя Боб, был соавтором Манифеста для гибкой разработки программного обеспечения , текста, который запустил популярный фреймворк для разработки программного обеспечения Agile, который теперь лежит в основе таких фреймворков, как Scrum и Kanban.

The Clean Coder не объясняет, как писать хороший код. Вместо этого он объясняет, как вы можете стать лучшим программистом или даже просто хорошо работающим профессионалом. В нем рассказывается, как лучше всего вести себя в сжатые сроки, как создать среду для процветания, как отказаться от определенных запросов и многое другое.

3. Кодеры за работой (П. Сейбель)

Питер Сейбел берет интервью у шестнадцати интересных программистов из Coders at Work .Сюда входят Дуглас Крокфорд (основатель JSON), Питер Норвиг (директор по исследованиям в Google), Фрэнсис Аллен (первая женщина, получившая премию Тьюринга) и Кен Томпсон (изобретатель UNIX).

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

4. Чистый код (Р. Мартин)

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

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

5. Искусство программирования Unix (Э. Реймонд)

При участии корифеев Unix Брайана Кернигана, Дэвида Корна и Генри Спенсера, проект The Art of Unix Programming предлагает глубокое понимание секретов разработки программного обеспечения первоначальных программистов Unix.

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

6. Префакторинг (К. Пью)

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

Префакторинг — это вариант «рефакторинга». Он хочет, чтобы его читатели применяли хорошие методы проектирования с самого начала проекта, а не после фактов. По сути, это собрание полезных передовых практик.

7.Так хорошо, что они не могут вас игнорировать (К. Ньюпорт)

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

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


Это наш список книг по программированию, которые необходимо прочитать. Какие ваши любимые книги по программированию? Были ли они в этом списке? Дайте нам знать в комментариях ниже 👇.

Мои любимые книги: часть первая

Недавно я дал интервью Fog Creek, и один из вопросов был о моих любимых книгах по программированию, кодированию и разработке. Меня очень взволновал этот вопрос, поскольку я большой книжный ботаник. Я люблю книги о компьютерах, программировании и науке.Каждые несколько месяцев я провожу день или два, исследуя последнюю литературу и покупаю (или загружаю на libgen.rs) самые интересные книги. Я, наверное, могу бесконечно рассказывать о своих любимых книгах. У меня так много.

Я был так взволнован этим вопросом, что решил начать новую серию статей здесь, на сайте catonmat, о моих 100 любимых книгах по компьютерам, программированию, разработке программного обеспечения, науке, физике и математике. Я буду писать по 5 книг за раз, так как разбиение огромных задач на крошечные подзадачи — самый простой способ добиться результата.

Часть моей книжной полки.

В первом посте этой серии я поделюсь теми же пятью книгами, которые рекомендовал в своем интервью Fog Creek. Я ожидаю, что эта серия статей будет продолжаться несколько лет, так как я буду публиковать одну или две публикации в год. Если вам интересна эта тема, вы можете подписаться на RSS-ленту моего блога и следить за мной в твиттере за обновлениями.

Вот первые пять книг.

# 1 Новый омнибус Тьюринга

Новый омнибус Тьюринга.

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

Я прочел эту книгу от корки до корки за один вечер. Мне настолько понравилась одна из глав о проблеме занятого бобра, что я потратил несколько дней на реализацию Busy Beaver на нескольких языках и написал программу, которая визуализирует, как бобер путешествует, на ленте.Вот моя запись в блоге о Занятом Бобре.

Занятый бобер кладет еще один на ленту машины Тьюринга.

Автор: Александр К. Девдни.

# 2 Маленькая книга семафоров (бесплатный pdf)

Маленькая книга семафоров.

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

Автор: Аллен Б. Дауни.

# 3 Жемчуг программирования и многое другое Жемчуг программирования

Жемчужины программирования и другие жемчужины программирования.

Классические книги по программированию. Джон Бентли умеет ясно и с энтузиазмом писать об алгоритмах.Эти книги неподвластны времени, и они учат вас рассуждать о проблемах, разбирать их и эффективно внедрять решения. Вы пройдете собеседование в Google, если прочитаете и поймете эти две книги.

Автор: Джон Бентли.

# 4 Маленький интриган

Маленький интриган.

Little Schemer научит вас немного LISP в самом увлекательном стиле. Книга представляет собой диалог между вами и авторами о сотнях крошечных программ на Scheme, и она учит вас мыслить рекурсивно. Эта книга заставит задуматься и немного расширит ваш разум. Это одна из самых увлекательных книг по программированию, когда-либо написанных. Вы узнаете о машине, cdr, минусах, работе со списками, лямбде и y-комбинаторе.

Я провел с этой книгой бесчисленное количество часов. Я скопировал все примеры кода и поместил их на GitHub (репозиторий the-little-schemer), а также написал сообщение в блоге о получении y-комбинатора на основе одной из глав этой книги.

Это сообщение поймет только истинный фанат интриганов.

Авторы: Дэниел П. Фридман и Маттиас Фелляйзен.

# 5 Элементы стиля и элементы стиля программирования

Элементы стиля и элементы стиля программирования.

«Элементы стиля» — это не совсем книга по разработке или кодированию, а книга по письму. Чтобы быть отличным разработчиком, вам нужно общаться четко, просто и прямо. Хорошие письменные навыки необходимы для успеха. В книге всего 100 страниц, и вы можете прочитать ее за один вечер. Для полного эффекта перечитывайте его каждые пару месяцев.

Авторы: Уильям Странк-младший и Э. Б. Уайт.

Элементы стиля программирования — это классическая книга Брайана Кернигана по программированию. На форму этой книги сильно повлияли «Элементы стиля». Это старая книга, но в основном все, чему она учит, применимо и сегодня. Он содержит 70 правил программирования, таких как:

  • Пишите четко — не будьте слишком умны.
  • Скажите, что вы имеете в виду, просто и прямо.
  • Выберите представление данных, которое упростит программу.
  • Позвольте данным структурировать программу.
  • Модульность …

Авторы: Брайан В. Керниган и Филип Дж. Плаугер.

В качестве бонуса рекомендую мою собственную книгу Perl One-Liners, изданную No Starch Press. Моя книга учит, как быстро работать в командной строке и быстро выполнять задачи. Быстрая работа в командной строке сэкономит вам тысячи часов на протяжении всей вашей карьеры. Освоив однострочники, вы сможете решать быстрые разовые задачи за секунды.Я видел, как программисты часами пишут программы для задач, которые можно выполнить за 20 секунд с однострочным текстом. Не будь таким программистом. Будь как я.

Perl One Liners.

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

лучших книг по разработке программного обеспечения: 20 наиболее рекомендуемых книг для разработчиков программного обеспечения

«Доверяй, но проверяй» («Доверяй, но проверяй»)
— Русская пословица


Люди часто ошибаются: мы делаем плохие ставки, покупаем недвижимость до того, как лопнут пузыри на рынке жилья, и придерживаемся модных диет.Мы принимаем неверные решения, иногда по совету других (посещение музея Лефрекона в Дублине — это 2 часа моей жизни, которые я никогда не верну).

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

Я собрал предложения десятков программистов, менеджеров, карьерных тренеров и других профессионалов отрасли, чтобы предоставить вам список из 20 наиболее рекомендуемых книг для разработчиков программного обеспечения с некоторыми краткими резюме (любезно предоставлено Amazon). Все данные, которые я использовал для составления этого списка, свободно доступны в виде единой книги Excel на GitHub.По состоянию на , суббота, 19 октября 2019 г. , , мой мета-список цитирует 36 источников и включает рекомендации для 297 уникальных книг.

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

Вот практических правил , которые я использовал для составления этого списка:

  1. Как можно чаще статьи , в которых запрашивается рекомендаций, не включают , а .

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

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

  4. Списки, которые ориентированы на определенный уровень разработчика (то есть технический директор, младший разработчик, новичок). включены.

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

  6. Хотя некоторые могут интерпретировать их несколько иначе, для целей этого списка термины «разработчик программного обеспечения», «инженер-программист», «разработчик», «программист» и «кодировщик» являются эквивалентными. Статьи, относящиеся к любому из вышеперечисленных, включены, если также не применяется пункт (5).

Это — насколько я могу судить — наиболее полный мета-список рекомендаций по разработке программного обеспечения где-либо в Интернете . Я просмотрел всех результатов, которые Google возвращал для «разработчика программного обеспечения для книг», а также каждую статью с «книгами» в названии по Dev.К и это результат. Если вы найдете список книг с рекомендациями по общей разработке программного обеспечения, которого нет в моей таблице исходных текстов на GitHub, сообщите мне. Я буду рад добавить его в список, если он соответствует моим критериям, изложенным выше.

И, без лишних слов, список:


Мартин Фаулер (

3-ходовая связь с № 19 и № 18 )

13,0% рекомендуется

Эта книга фактически представляет собой две книги в одной.Первый раздел — это краткое руководство по разработке корпоративных приложений, которое вы можете прочитать от начала до конца, чтобы понять объем уроков книги. Следующий раздел, основная часть книги, представляет собой подробное описание самих выкроек. Каждый шаблон предоставляет информацию об использовании и реализации, а также подробные примеры кода на Java или C #. Вся книга также богато иллюстрирована диаграммами UML для дальнейшего пояснения концепций.

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

— Amazon.com


Роберт С. «Дядя Боб» Мартин

Рекомендуется 13,0% (

3-сторонняя стяжка с # 20 и # 18 )

  • Узнайте, чего необходимо достичь архитекторам программного обеспечения, а также об основных дисциплинах и методах достижения этого
  • Освоить основные принципы разработки программного обеспечения для решения функций, разделения компонентов и управления данными
  • Посмотрите, как парадигмы программирования навязывают дисциплину, ограничивая возможности разработчиков
  • Поймите, что критически важно, а что просто «деталь»
  • Реализация оптимальных высокоуровневых структур для веб-приложений, баз данных, толстых клиентов, консолей и встроенных приложений
  • Определите соответствующие границы и слои, а также организуйте компоненты и службы
  • Узнайте, почему проекты и архитектуры идут не так, как надо, и как предотвратить (или исправить) эти сбои

— Амазонка. com


Дональд Кнут

Рекомендуется 13,0% (

3-сторонняя стяжка с # 20 и # 19 )

Этот великолепный тур представляет собой исчерпывающий обзор широкого спектра алгоритмов и их анализ. Третье издание книги The Art of Computer Programming … содержит существенные исправления, внесенные автором, и множество новых упражнений.

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

— Amazon.com


Чарльз Петцольд

15.

Рекомендуется 9% ( связано с # 16 )

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

Используя предметы повседневного обихода и знакомые языковые системы, такие как азбука Брайля и азбука Морзе, автор Чарльз Петцольд создает яркое повествование для всех, кто когда-либо интересовался тайной внутренней жизнью компьютеров и других интеллектуальных машин.

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

— Amazon.com


Роберт С. «Дядя Боб» Мартин

Рекомендуется 15,9% (

связано с # 17 )

Написанная разработчиком программного обеспечения для разработчиков программного обеспечения, эта книга представляет собой уникальное собрание новейших методов разработки программного обеспечения.Автор включает методы OOD, UML, Design Patterns, Agile и XP с подробным описанием полного проекта программного обеспечения для многоразовых программ на C ++ и Java. Используя практический подход, основанный на решении проблем, он показывает, как разработать объектно-ориентированное приложение — от ранних стадий анализа до низкоуровневого проектирования и до реализации. Проводит читателей через мысли дизайнера, показывая ошибки, тупики и творческие идеи, возникающие в процессе разработки программного обеспечения.Книга охватывает: статику и динамику; Принципы дизайна классов; Управление сложностью; Принципы дизайна упаковки; Анализ и дизайн; Паттерны и пересечения парадигм. Один за другим объясняет принципы OOD, а затем демонстрирует их на многочисленных примерах, полностью проработанных дизайнах и тематических исследованиях. Охватывает ловушки, подводные камни и обходные пути в применении C ++ и OOD, а затем показывает, как можно использовать Agile-методы. Подробно обсуждает методы проектирования и разработки большого программного обеспечения.Содержит три главы, углубленное, одно тематическое исследование системы безопасности здания. Для инженеров-программистов, программистов и аналитиков, которые хотят понять, как разрабатывать объектно-ориентированное программное обеспечение с помощью современных методов.

— Amazon.com


Томас Х. Кормен, Чарльз Э. Лейзерсон, Рональд Л. Ривест и Клиффорд Стейн

Рекомендуется 17,4% (

3-сторонняя связь с # 14 и # 13 )

Некоторые книги по алгоритмам строгие, но неполные; другие покрывают массу материала, но не имеют строгости. Введение в алгоритмы уникальным образом сочетает в себе строгость и полноту. Книга подробно описывает широкий спектр алгоритмов, но делает их разработку и анализ доступными для всех уровней читателей. Каждая глава относительно автономна и может использоваться как единица изучения. Алгоритмы описаны на английском языке в псевдокоде, предназначенном для чтения любым, кто хоть немного программировал. Объяснения оставлены элементарными, без ущерба для глубины охвата или математической строгости.

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

добавлено много упражнений и задач.

— Amazon.com


Эрик Фриман, Элизабет Робсон, Кэти Сьерра и Берт Бейлз

Рекомендуется 17,4% (

3-сторонняя связь с # 15 и # 13 )

В любой момент кто-то борется с теми же проблемами, что и вы.И, скорее всего, кто-то уже решил вашу проблему. Эта редакция Head First Design Patterns — теперь обновленная для Java 8 — показывает проверенные временем шаблоны, используемые разработчиками для создания функционального, элегантного, многоразового и гибкого программного обеспечения. К тому времени, когда вы дочитаете эту книгу, вы сможете воспользоваться передовыми методами проектирования и опытом тех, кто победил и победил зверя в дизайне программного обеспечения.

— Amazon. com


Гейл Лаакманн Макдауэлл

17.Рекомендуется 4% (

3-сторонняя связь с # 15 и # 14 )

  • 189 вопросов на собеседовании по программированию, от основ до самых сложных алгоритмов.
  • Пошаговое руководство по получению каждого решения, чтобы вы могли узнать, как это сделать самостоятельно.
  • Подсказки о том, как ответить на каждый из 189 вопросов, как на реальном собеседовании.
  • Пять проверенных стратегий решения вопросов алгоритмов, позволяющих решать вопросы, которых вы не видели.
  • Обширный охват основных тем, таких как время большого O, структуры данных и основные алгоритмы.
  • Закулисный взгляд на то, как ведущие компании, такие как Google и Facebook, нанимают разработчиков.
  • Методы подготовки к собеседованию и самые лучшие из них: поведенческие вопросы.
  • Для интервьюеров и компаний: подробные сведения о том, что делает собеседование хорошим, и процесс найма.

— Amazon.com


Стив Круг

18.Рекомендуется 8% (

связано с # 11 )

Не заставляйте меня думать — это книга Стива Круга о взаимодействии человека с компьютером и удобстве использования Интернета. Предпосылка книги состоит в том, что хорошее программное обеспечение или веб-сайт должны позволять пользователям выполнять намеченные задачи настолько легко и напрямую, насколько это возможно. Круг отмечает, что люди умеют находить удовлетворение или первое доступное решение своей проблемы, поэтому дизайнеры должны использовать это в своих интересах. Он часто цитирует Amazon.com в качестве примера хорошо спроектированного веб-сайта, который обеспечивает высококачественное взаимодействие, даже если веб-сайт с каждым днем ​​становится больше и сложнее.

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

— Википедия


Роберт С. «Дядя Боб» Мартин

18.Рекомендуется 8% (

связано с # 12 )

Программисты, которые терпят и преуспевают в кружащейся неопределенности и непрекращающемся давлении, имеют общий атрибут: они глубоко заботятся о практике создания программного обеспечения. Они относятся к этому как к ремеслу. Они профессионалы.

В книге The Clean Coder: A Code of Conduct for Professional Programmers легендарный эксперт по программному обеспечению Роберт С. Мартин знакомит с дисциплинами, методами, инструментами и практиками настоящего мастерства в области программного обеспечения.Эта книга наполнена практическими советами по всему, от оценки и программирования до рефакторинга и тестирования. Он охватывает гораздо больше, чем просто технику: речь идет об отношении. Мартин показывает, как подходить к разработке программного обеспечения с честью, самоуважением и гордостью; работать хорошо и работать чисто; честно общаться и оценивать; честно и ясно принимать трудные решения; и понимать, что глубокие знания связаны с ответственностью действовать.

— Amazon.com


Джон Сонмез

23.Рекомендуется 2% (

привязано к # 11 )

Soft Skills: Руководство разработчика программного обеспечения — это руководство к всесторонней и приятной жизни профессионала в области высоких технологий. В нем разработчик и лайф-коуч Джон Сонмез дает советы разработчикам по таким важным «мягким» вопросам, как карьера и производительность, личные финансы и инвестиции, и даже фитнес и отношения. Эта интересная книга, состоящая из 71 короткой главы, приглашает вас окунуться в нее, где захотите.Раздел «Принятие мер» в конце каждой главы показывает, как быстро добиться результатов. Soft Skills поможет вам стать лучшим программистом, более ценным сотрудником, более счастливым и здоровым человеком.

— Amazon.com


Том Де Марко и Тимоти Листер

Рекомендуется 23,2% (

привязаны к # 12 )

Peopleware — популярная книга об управлении организацией программного обеспечения. В первой главе книги говорится: «Основные проблемы нашей работы носят не столько технический, сколько социологический характер».Книга обращается к социологическим или «политическим» проблемам, таким как групповая химия и командная подготовка, «время потока» и тишина в рабочей среде, а также высокая стоимость текучести кадров. Другие темы включают конфликты между индивидуальной рабочей перспективой и корпоративной идеологией, корпоративную энтропию, «коллективное убийство» и теорию рабочего пространства.

Авторы представили большинство тем как принципы, подкрепленные какой-то конкретной историей или другой информацией. В качестве примера, глава «Ужин из спагетти» представляет вымышленный пример менеджера, который приглашает новую команду на обед, а затем заставляет их покупать и готовить еду в группе, чтобы добиться успеха первой команды.В других главах используются истории из реальной жизни или цитируются различные исследования для иллюстрации представленных принципов

— Википедия


Джон Бентли

26,1% рекомендуют

Компьютерное программирование многолико. Фред Брукс рисует большую картину в «Мифическом месяце человека»; в его эссе подчеркивается решающая роль менеджмента в крупных программных проектах. Стив МакКоннелл учит хорошему стилю программирования в Code Complete.Темы этих книг — ключ к хорошему программному обеспечению и отличительный признак профессионального программиста. К сожалению, умелое применение этих принципов звуковой инженерии не всегда вызывает восхищение — до тех пор, пока программное обеспечение не будет завершено вовремя и не будет работать без неожиданностей.

Колонки в этой книге посвящены более яркому аспекту профессии: жемчужинам программирования, истоки которых лежат не только в твердой инженерии, но и в сфере проницательности и творчества. Подобно тому, как натуральный жемчуг вырастает из песчинок, раздражавших устриц, эти жемчужины программирования выросли из реальных проблем, которые раздражали настоящих программистов.Программы веселые, они учат важным техникам программирования и фундаментальным принципам дизайна.

— Amazon.com


Майкл Фезерс

Рекомендуется 27,5% (

связано с # 6 )

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

В этой книге Майкл Фезерс предлагает стратегии от начала до конца для более эффективной работы с большими непроверенными базами устаревшего кода. В этой книге использован материал, созданный Майклом для его известных семинаров Object Mentor: методы, которые Майкл использовал в наставничестве, чтобы помочь сотням разработчиков, технических менеджеров и тестировщиков взять под контроль свои унаследованные системы. Охваченные темы включают:

  • Понимание механизма изменения программного обеспечения: добавление функций, исправление ошибок, улучшение дизайна, оптимизация производительности
  • Получение устаревшего кода в тестовой программе
  • Написание тестов, которые защищают вас от появления новых проблем
  • Методы, которые можно использовать на любом языке или платформе — с примерами на Java, C ++, C и C #
  • Точное определение места, где необходимо изменить код
  • Работа с устаревшими системами, не ориентированными на объект
  • Работа с приложениями, которые не имеют никакой структуры

— Амазонка. com


Фредерик П. Брукс

Рекомендуется 27,5% (

связано с # 7 )

Немногие книги по управлению проектами программного обеспечения были столь же влиятельными и неподвластными времени, как «Мифический человеко-месяц». Сочетая в себе факты о программной инженерии и наводящие на размышления мнения, Фред Брукс предлагает понимание всех, кто управляет сложными проектами. Эти эссе основаны на его опыте руководителя проекта для семейства компьютеров IBM System / 360, а затем для OS / 360, его огромной программной системы.Теперь, спустя 20 лет после первой публикации своей книги, Брукс пересмотрел свои первоначальные идеи и добавил новые мысли и советы как для читателей, уже знакомых с его работой, так и для читателей, открывающих для себя ее впервые.

— Amazon.com

Прочтите мой обзор

The Mythical Man-Month на Dev.To


Мартин Фаулер

Рекомендуется 33,3% (

связаны с # 4 )

Уже более двадцати лет опытные программисты по всему миру полагаются на метод Refactoring Мартина Фаулера для улучшения дизайна существующего кода и повышения ремонтопригодности программного обеспечения, а также для облегчения понимания существующего кода.

Это долгожданное новое издание было полностью обновлено, чтобы отразить важные изменения в сфере программирования. Refactoring , Second Edition, включает обновленный каталог рефакторингов и включает примеры кода JavaScript, а также новые функциональные примеры, демонстрирующие рефакторинг без классов.

Как и в оригинале, это издание объясняет, что такое рефакторинг; зачем вам рефакторинг; как распознать код, требующий рефакторинга; и как это сделать на самом деле, независимо от того, на каком языке вы говорите.

  • Понимание процесса и общих принципов рефакторинга
  • Быстро применяйте полезные рефакторинги, чтобы облегчить понимание и изменение программы
  • Распознавать «неприятный запах» в коде, который сигнализирует о возможности рефакторинга
  • Изучите рефакторинг, каждый с объяснениями, мотивацией, механизмами и простыми примерами
  • Создавайте надежные тесты для рефакторинга
  • Признайте компромиссы и препятствия на пути рефакторинга

— Амазонка. com


Эрих Гамма, Ричард Хелм и Ральф Джонсон

Рекомендуется 33,3% (

связано с # 5 )

Эта книга не является введением в объектно-ориентированные технологии или дизайн. Многие книги уже хорошо справляются с этим … это тоже не продвинутый трактат. Это книга шаблонов проектирования, в которых описаны простые и элегантные решения конкретных проблем объектно-ориентированного проектирования программного обеспечения … Как только вы поймете шаблоны проектирования и получите ответ «Ага!» (и не просто «А?» с ними, вы никогда не будете так думать об объектно-ориентированном дизайне.У вас будут идеи, которые помогут сделать ваши собственные проекты более гибкими, модульными, многоразовыми и понятными — вот почему вы в первую очередь заинтересованы в объектно-ориентированной технологии, верно?

— Amazon.com


Стив МакКоннелл

44,9% рекомендуется

Оригинальная книга Стива МакКоннелла Code Complete , широко признанная одним из лучших практических руководств по программированию, уже более десяти лет помогает разработчикам писать более качественное программное обеспечение. Теперь эта классическая книга полностью обновлена ​​и отредактирована с учетом передовых методов и сотен новых примеров кода, иллюстрирующих искусство и науку создания программного обеспечения. Используя совокупность знаний, полученных в результате исследований, академических кругов и повседневной коммерческой практики, МакКоннелл синтезирует наиболее эффективные методы и принципы, которые необходимо знать, в четкое и прагматичное руководство. Независимо от вашего уровня опыта, среды разработки или размера проекта, эта книга будет информировать и стимулировать ваше мышление и поможет вам создать код высочайшего качества.

  • Откройте для себя вечные техники и стратегии, которые помогут вам:
  • Дизайн для минимальной сложности и максимального творчества
  • Воспользуйтесь преимуществами совместной разработки
  • Применяйте защитные методы программирования для уменьшения и устранения ошибок
  • Используйте возможности для рефакторинга или развития кода и делайте это безопасно
  • Используйте методы строительства, которые подходят для вашего проекта
  • Устранение проблем быстро и эффективно
  • Решайте критические проблемы строительства как можно раньше и правильно
  • Обеспечьте качество в начале, середине и конце вашего проекта

— Амазонка. com


Эндрю Хант и Дэйв Томас

47,8% рекомендуют

Программисты — это люди, обученные использованию определенного набора инструментов (редакторы, диспетчеры объектов, средства отслеживания версий) для создания определенного вида продукта (программ), который будет работать в некоторой среде (операционные системы на сборках оборудования). Как и любое другое ремесло, компьютерное программирование породило массу мудрых знаний, большей части которой не учат в университетах или на сертификационных классах.Большинство программистов со временем приходят к так называемым уловкам мастерства путем независимых экспериментов. В книге The Pragmatic Programmer Эндрю Хант и Дэвид Томас систематизируют многие истины, которые они обнаружили во время своей карьеры в качестве разработчиков программного обеспечения и авторов кода.

Некоторые самородки прагматизма авторов конкретны, и путь к их реализации ясен. Они советуют читателям изучить, например, один текстовый редактор и использовать его для всего.Они также рекомендуют использовать программное обеспечение для отслеживания версий даже для самых маленьких проектов и продвигают преимущества изучения синтаксиса регулярных выражений и языка обработки текста. Другой (возможно, более ценный) совет более беззаботен. В разделе отладки отмечено, что «если вы видите отпечатки копыт, думайте о лошадях, а не о зебрах». То есть подозревать все, но начинать искать проблемы в самых очевидных местах. Есть рекомендации по оценке времени и затрат, а также по интеграции тестирования в процесс разработки.Вам понадобится копия The Pragmatic Programmer по двум причинам: он отображает вашу собственную накопленную мудрость более четко, чем вы когда-либо пытались сформулировать, и он знакомит вас с методами работы, которые вы, возможно, еще не рассматривали. Эта книга понравится работающим программистам.

— Дэвид Уолл через Amazon.com


Наконец, самая рекомендуемая книга для разработчиков программного обеспечения:


Роберт С.

«Дядя Боб» Мартин

52,2% рекомендуется

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

Известный эксперт по программному обеспечению Роберт К. Мартин представляет революционную парадигму в книге Clean Code: A Handbook of Agile Software Craftsmanship . Мартин объединился со своими коллегами из Object Mentor, чтобы превратить их лучшую гибкую практику очистки кода «на лету» в книгу, которая привит вам ценности мастера программного обеспечения и сделает вас лучшим программистом — но только если вы будете работать на него.

Какую работу вы будете выполнять? Вы будете читать код — много кода. И вам будет предложено подумать о том, что в этом коде правильно, а что — нет. Что еще более важно, вам будет предложено переоценить свои профессиональные ценности и приверженность своему делу.

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

Читатели отойдут от этой книги, поняв

  • Как отличить хороший код от плохого
  • Как написать хороший код и как преобразовать плохой код в хороший
  • Как создавать хорошие имена, хорошие функции, хорошие объекты и хорошие классы
  • Как отформатировать код для максимальной читаемости
  • Как реализовать полную обработку ошибок без скрытия логики кода
  • Как проводить модульное тестирование и практиковать разработку через тестирование
  • Эта книга необходима любому разработчику, инженеру-программисту, менеджеру проекта, руководителю группы или системному аналитику, заинтересованному в создании лучшего кода.

— Amazon.com


Вышеупомянутые «процентные доли рекомендаций» представляют собой долю всех опрошенных списков, которые содержат эту книгу. Таким образом, даже если книга «рекомендована только на 12,5%», это означает, что в среднем 1 из каждых 8 разработчиков читает книг, а книги рекомендуют другим разработчикам. Все вышеперечисленные книги преодолевают порог 1 из 8.

Еще более удивительно то, что книги с 10 по 6 рекомендуют , 1 из каждых 4 разработчиков, в среднем .Книги №5 и №4 рекомендуют 1 из каждых 3. А три лучшие книги, Code Complete , The Pragmatic Programmer и Clean Code , рекомендуют примерно все остальные разработчики программного обеспечения . Это огромное влияние на одну из самых важных отраслей современного общества. Если вы хотите укрепить свои знания в области разработки программного обеспечения и еще не прочитали эти три книги, есть большая вероятность, что около половины ваших коллег порекомендуют вам это.



Если вам понравилась вышеприведенная статья, может быть, вы хотели бы следить за моей работой над Dev.To? Или читать мои тупые твиты на Твиттере? Или купите мне чашку кофе? (У меня изнурительная зависимость от кофеина.)

В любом случае, спасибо, что заглянули!

8 научно-фантастических книг, которые помогут правильно программировать

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

Почему в большинстве научно-фантастических книг не говорится о программировании?

Если вы не программист, вы, несомненно, возразите: «В спекулятивной фантастике много программирования!» Но на самом деле нет.Чего здесь много, так это взлома, то есть взлома устоявшихся систем, обычно с большим количеством бормотания техно-мумбо-джамбо вроде «Я в мэйнфрейме!» а безнадежно неумелые головорезы обстреливают местность пулями.

Итак, во взломе нет ничего плохого. (В одной из моих любимых серий, «Дневники роботов-убийц», рассказывается о машине-убийце-киборге, которая любит и мыльные оперы, и взламывает камеры, так что робот-убийца определенно хорошо сбалансирован.) менеджмент — ни один из которых традиционно не поддается увлекательному повествованию.

Итак, я спросил: каковы основные действия программирования и какие истории ближе всего подходят к правильному пониманию?

Техническое обслуживание

Что происходит при поддержке проекта: каждый день вы приходите на работу, чтобы просмотреть список ошибок, обнаруженных вашими клиентами, с сортировкой по приоритету. Вы спускаетесь по списку от наиболее важных к наименее важным и пытаетесь исправить каждую из них по очереди.

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

Нет, большинство ошибок являются незначительными, непонятными вещами вроде «Пользователь выходит из системы каждый четверг в 22:13». Если вам повезет, вы устраните распространенное неудобство двухстрочным исправлением и будете выглядеть гением.Если вы этого не сделаете, вы будете сидеть там в четверг в 22:13, надеясь, что сможете увидеть ошибку и исправить ее — что известно как «ужасное воспроизведение», сокращенно от «Невозможно воспроизвести ошибку, «Этого не происходит, когда я это делаю, так что кто знает, что происходит?»

Обслуживание, как правило, утомительно. Код хорошо известен. Проблемы сдержанные. Не совсем для высоких ставок.

Так какой роман лучше всего похож на поддержку кода?

Макса Гладстона Три части мертвых

Three Parts Dead технически касается магического закона, но оказывается, что «законы, применяемые магией», во многом пересекаются с «программированием», даже если главные герои считают себя переговорщиками по контракту.

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

Three Parts Dead не о легком обслуживании, но опять же, медленное исправление ошибок, вероятно, сделало бы паршивую книгу.И есть гораздо больше ужасных горгулий, высасывающих душу теней и вампиров, чем вы, вероятно, встретите при устранении неполадок в стеке Apache.

Но достаточно близко.

Устаревший код

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

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

Все знают, что унаследованный код плох. Половина вашей работы состоит в том, чтобы столкнуться с командами менеджеров, которые ярко говорят: «Ну, должно быть легко…», в ​​то время как вы объясняете — не выглядя так, будто вы им препятствуете, — что на самом деле это тривиальное решение потребует восемнадцати месяцев ресурсов. минимум, потому что некоторые неясные ограничения устаревшего кода (часть кода, получившая название «сокрушитель снов») — единственная причина, по которой у нас не может быть хороших вещей.

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

Итак, какой роман лучше всего подходит для работы над унаследованным кодом?

Вернор Виндж Глубина в небе

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

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

Там даже есть скрытое подмигивание меткам времени Unix, указывающее на то, что еще долго после того, как человечество перебралось к звездам, мы все еще будем отмечать наше время (столько же компьютеров сегодня), сколько секунд прошло с полуночи 1 января 1970 года.

Вплоть до тепловой смерти Вселенной.

Строительство долгосрочных проектов

Что происходит при создании долгосрочных проектов. В какой-то момент прогнозируемая частота отказов крупных ИТ-проектов составляла около 50%; теперь, когда у нас есть гораздо более совершенные структуры управления и навыки развития, этот показатель снизился примерно до 15%.

Still. Эти шансы на русскую рулетку означают, что подписание на долгосрочный проект — это проявление веры.

Есть хороший шанс, что вы вложите в этот проект свои лучшие навыки программирования, но он потерпит неудачу по причинам, отнюдь не вашим собственным. Возможно, руководство на полпути выясняет, что то, что вы создали, на самом деле не то, что им нужно. (Непрограммисты удивительно непоследовательны, когда дело доходит до объяснения того, чего они хотят, и часто требуют, чтобы вы делали прямо противоположное тому, что им нужно.) ресурсы, пока вы не превратитесь в пыль.Может быть, какая-то другая компания придумает лучшее решение, и они бросят вас, чтобы купить это.

Каждая строка кода, которую вы пишете, — это надежда. (Довольно часто эта надежда состоит в том, что вы убьете ужасный код наследия.) Но вы не пишете много кода; вместо этого вы проводите бесконечные встречи с другими программистами, обсуждаете веские теории о том, как эта сложная вещь должна функционировать, увязая в мелочах, которые действительно имеют значение, но каждый момент, потраченный на эти необходимые аргументы, истекает.

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

Итак, какой роман лучше всего подходит для создания долгосрочных проектов?

Кидж Джонсон Человек, преодолевший туман

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

Вот и вся история.

Проза Кейдж Джонсон всегда ослепительна и скудна, и ее мастерство никогда не было больше на форме, чем в этой новелле, которая не столько о коде, сколько о том чувстве необъятности, которое вы чувствуете, глядя прямо на что-то настолько невероятно сложно, что ты никогда не сможешь его закончить.И Кидж очень точно описывает элементы здания, огромный приток ресурсов, который потребуется для выполнения этой задачи.

Дело не в программировании в физическом смысле; Несмотря на звание «инженер-программист», наведение моста совсем не похоже на создание программы. Но «Человек, преодолевший туман» во многом связан с чувством чуда, пота, политики — всего того, что должно объединиться, чтобы создать невозможное.

Ослепление новыми взаимодействиями

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

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

Пятнадцать минут. Серьезно.

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

Что происходит, так это то, что вы собираете Лигу справедливости из своих собственных наборов навыков, накапливая все маленькие способности, которые вы приобрели на этом пути, пока вы не сможете создать что-то великолепное, объединив эти модульные навыки в один проект.

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

Итак, какой роман больше всего нравится ослепленным новым взаимодействием?

Роберт Джексон Bennett’s Foundryside

Как это обычно бывает с книгами в жанре фэнтези, посвященными программированию, здесь задействовано гораздо больше волшебных ниндзя, чем вы можете увидеть, просматривая Stack Overflow.Но процветающая экономика технологических стартапов в стимпанк-городе Беннета Теванн подпитывается скрайнгами — волшебными инструкциями, которые меняют реальность. И отважному ребенку поручено украсть важный артефакт, который, конечно же, больше, чем кажется.

Но то, что Беннетт прибивает в этой книге, — это ощущение, что технологии накладываются друг на друга. Магия следует правилам, и правила ясны, но последствия не до конца продуманы. И много раз персонажи сталкиваются с невозможным использованием скайлинга, которое в разложенном виде не только кажется правдоподобным, но и почти неизбежным с точки зрения того, как они привыкли.

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

Ужасная документация

Что происходит, когда документация — отстой: похоже, что должен быть сериал в жанре фэнтези, который справится с этим, потому что вы никогда не почувствуете себя более похожим на мастера D&D, изучающего новое заклинание, чем когда вы изучаете чью-то идиотскую документацию.

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

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

Или вы следуете инструкциям по документации, повышая свои навыки выпечки, пока не поймете этот пирог Бейкуэлл настолько тщательно, что будете уверены, что сам Пол Голливуд пожмет вам руку, только чтобы обнаружить, что они прекратили это тарт Bakewell, и новые дети 3.0 не будут его есть.

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

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

Так какой роман больше всего нравится, когда документация отстой?

Нет победителя.

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

Но эти книги должны выглядеть как дань уважения XKCD DenverCoder9.

Общество, меняющее технологии

Что произойдет, когда ваша технология получит новые корни: Технология подобна мемам; лучший признак успеха — это то, что люди начинают с этим связываться.

И когда они возятся с вашей технологией, если вам повезет, ваши пользователи найдут для нее применение, о котором вы даже не задумывались.Твиттер изначально рассматривался как прославленный групповой чат — никто не думал, что он станет основным методом для групп Black Lives Matter распространять доказательства жестокости полиции. Flickr (фото-сайт, к сожалению, сейчас теряющий влияние) начинал как способ делиться скриншотами в MMORPG. Черт возьми, на ранних стадиях Интернет в основном рассматривался как способ хранения документации.

Каждая внедренная технология развивается непредсказуемым образом. И когда появляются действительно революционные технологии, они трансформируют общество.Это ответственность, с которой должен столкнуться каждый программист — тот же код, который упрощает проверку ваших детей, может стать для жестокого партнера способом запереть своего супруга в страданиях. И давайте не будем забывать о поразительной жестокости, которая может иметь место, когда бездумный программист решает, что «Вовлеченность пользователей» — это то же самое, что «Самый счастливый пост года!» и решает сделать мертвую дочь отца главным постом в отчетном году.

(RIP, Ребекка Элисон Мейер, навсегда встроена в Интернет как #rebeccapurple.)

Так какой роман больше всего напоминает технологии, меняющие общество?

Рамес Наам Nexus

Nexus — первая часть трилогии, но, поверьте, вы захотите прочитать ее целиком. Потому что он касается того, что происходит, когда программисты совершенствуют Nexus OS — операционную систему, которая напрямую связана с вашим мозгом.

Это не уникальный дубль. Но что делает Nexus таким непоколебимо уникальным, так это то, что мозговой хакерство продолжает переходить в новые руки, а эти руки, в свою очередь, меняют то, для чего предназначена ОС Nexus.Очевидно, что правительства хотят использовать его как для наблюдения, так и для контроля, но они видят в нем угрозу свободе. Хакеры — или, по крайней мере, хакеры в стиле Burning Man, представленные здесь — видят в этом возможность, лекарство или возможность уникальных форм психотерапии.

Никто из них не ошибается.

То, что делает Наам в этой книге, поразительно, как в научно-фантастической книге: на самом деле, похоже, у него нет мнения. Нексус хорош? Плохо? Нейтрально? Все это строго зависит от того, кто его использует, и даже персонажи меняют свое мнение о Nexus, когда мир начинает формироваться и адаптироваться к нему.

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

Опыт группового чата

Что происходит, когда вам приходится иметь дело с патчем Примечания: В идеальном мире ваш товарищ-программист был бы вашим союзником.Но часто ваши товарищи-программисты выступают противником — добавляя тривиальные ошибки, которые они должны были обнаружить, переписывая совершенно хороший код в соответствии со своими педантичными стандартами, игнорируя большой предупреждающий знак, который гласит: «ПОЖАЛУЙСТА, НЕ ОТКРЫВАЙТЕ КЛЕТКУ С ЛЕПАРДАМИ, ПОЖИРАЮЩИМИ ЛИЦА» незадолго до подачи билета с надписью «Лицо съедено, пожалуйста, помогите».

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

Так какой роман больше всего похож на патч?

«Викиистория» Десмонда Варзеля

Скажу честно; Я попал в эту категорию только потому, что мне до сих пор нравится эта история.

Это не роман. Это о чем, не более 2000 слов? Но, честно говоря, это так. Обещать. И это чертовски забавно.

Пользователи, формирующие карго-культы

Каково видеть, что ваши пользователи искажают себя кренделями из-за ошибки пользовательского интерфейса, которую вы могли исправить за двадцать минут: помните, когда я сказал, что непрограммисты обычно очень плохо понимают, чего они хотят, и просят массовые решения, которые этого не делают. на самом деле решить их проблему?

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

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

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

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

И вы войдете, запинаясь: «Это… нет. Вы не обязаны — мы могли бы — «И где-то в глубине души вы будете подсчитывать все часы, потерянные для этого поклонения Программному обеспечению, и удивляться, как скоро вы сможете спасти эти бедные, заблудшие души от их собственной веры. .

Так какой роман больше всего похож на обнаружение ваших пользователей, искажающих себя кренделями из-за ошибки пользовательского интерфейса, которую вы могли бы исправить за двадцать минут?

Нет победителя.

Опять же, я не говорю, что эту книгу никто не написал, я просто говорю, что не нашел ее. Пожалуйста, выключите звук.

Но лично я бы хотел прочитать какой-нибудь чудовищный роман, в котором подробно описывается, как угнетенная цивилизация восстает против злонамеренного ИИ, и в конце приходит какой-то чувак из QA и говорит: «О, да, мы можем исправить это» и исправит в выходные.

Оптимизация

Что такое оптимизация компьютеров? Если вы когда-либо запускали компьютер с установленным Linux, вы знаете, что существует огромное количество опций, которые вы можете настроить. Вы можете ослепнуть, глядя на руководство на тридцати страницах, в котором описаны параметры для одной команды… не говоря уже об опциях для четырехсот или около того других команд.

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

Но что, если вам действительно нужно настроить этот сервер, пока он не поет? Что, если вы запускаете веб-сервер, который должен обслуживать одновременное подключение 50 000 пользователей? Что делать, если у вас есть тонна сложных данных, и вам нужно убедиться, что ваше хранилище данных оптимизировано для получения ответов на любой запрос менее чем за 15 миллисекунд?

Что ж, тогда вы так глубоко погрузитесь в документацию, что рискуете получить компрессионную болезнь. Вы будете рыться в форумах, проверять Stack Overflow, зайти в Slacks и Discords, чтобы спросить экспертов.Есть люди, которым платят за то, чтобы они ничего не делали, а заставляли компьютеры работать изящнее, сложнее, лучше, быстрее — и если вы хотите добиться этого, вам нужно будет иметь фундаментальное представление о тайм-аутах поддержки активности и прокси-кешах.

Так какой роман больше всего похож на оптимизацию ваших компьютеров?

Ferrett Steinmetz с автоматической перезарядкой

Полное раскрытие: я написал эту книгу, так что, вы знаете, примите мою рекомендацию с недоверием.

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

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

Вот где Мэт, герой «Автоматической перезарядки», находится прямо сейчас: он огромный киборг с протезами, и он в мгновение ока вышел из боя, чтобы понять, что его ружья убили не того человека. Таким образом, он стал одержим тонкой настройкой, гарантируя, что все выполняемое им обслуживание никогда больше не причинит вреда постороннему, независимо от того, какие перестрелки могут начаться, и этот механизированный посттравматический стресс медленно убивает его.
К счастью, он находит подходящую девушку, которая поможет ему избавиться от травмы.

К сожалению, она также является генетически модифицированной машиной для убийства.

Плохое управление

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

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

Звучит странно — вы бы предпочли иметь менеджера, который мог бы помешать вам внедрять ужасные решения, верно? И вы это делаете. Но это не всегда возможно; иногда внешние силы требуют исправлений не ниже номинала, а иногда решение, которое вам действительно нужно, слишком дорого (с точки зрения человеко-часов или оборудования) для выполнения.

Когда это происходит, хорошие менеджеры жмут пулю и признают проблемы.

Плохие менеджеры прикуривают вас.

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

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

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

Не Чарли Стросса Архив злодеяний.

Я слышал, как ты чавкал. Каждый раз, когда они упоминают «программирование» и «спекулятивную фантастику», слова «АРХИВ ЗЛОУПОТРЕБЛЕНИЯ ЧАРЛИ СТРОССА» вырываются из их уст, как Глубоководные, взывающие к своему подводному хозяину К’тулху.

И я имею в виду, кому не нравится идея о хакерах, работающих в правительственной бюрократии, борющихся с лавкрафтовскими монстрами? Чарли Стросс отлично справляется со съемкой деталей тонких научных исследований взглядов горгон, потусторонних измерений и — черт возьми — единорогов.

(Вы действительно не хотите знать, какое вероломство может сотворить Строссовский единорог.)

Тем не менее, я бы сказал, что Архив злодеяний больше похож на взлом. Здесь много мыслей о программировании, но даже несмотря на то, что боссы Боба Ховарда заметно плохи (в том числе некоторые буквально бесчеловечно ужасные менеджеры), я думаю, что для этого есть немного лучший выбор:

Мэри Робинетт Коваль Расчетные звезды

The Calculating Stars — первая в серии Lady Astronaut — начинается очень удачно.

Точнее, взрыв, которым заканчивается Земля.

Но, конечно, все не так просто — метеорит, обрушившийся на нас в этой альтернативной истории 1950-х годов, разрушил нашу экосистему, но это происходит медленно. В конце концов Земля станет непригодной для жизни, и поэтому мир должен объединиться, чтобы основать космическую колонию.

Эльма Йорк — вундеркинд: большой математик, опытный пилот, целеустремленный и компетентный. Но Эльма Йорк тоже еврейка, в 1950-х годах она участвовала в космической программе, которая ценит ее только потому, что она хорошая фотооператор.Она изо всех сил пытается справиться с приступами паники, чтобы наладить и запустить программу рабочего пространства … Но ее высшее руководство подрывает ее при каждой возможности и активно противодействует интеграции друзей и коллег Эльмы.

The Calculating Stars — хороший пример того, что происходит, когда менеджер предан проекту, но не обязательно вам. Существует множество уловок, отстранения наиболее талантливых людей по политическим мотивам от траты ресурсов на то, чтобы отдавать приоритет «хорошим» решениям, о которых они знают.

(Хорошие решения, которые обычно оказываются исключительно белыми и смолистыми. Взгляните на цифру.)

Как я уже сказал, плохой менеджмент не всегда разрушает проект. Иногда им все равно удается. А в The Calculating Stars вы можете увидеть некоторых очень человечных менеджеров — людей, которые очень заботятся о своем проекте, но у них есть белые пятна и есть вещи, которые они совершенно не хотят слышать.

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

Феррет Штайнмец является выпускником Мастерской писателей Clarion и «Жизнеспособного рая». В 2012 году он был номинирован на премию «Небула» за свою новеллу «Станция квашеной капусты ». Он является автором романов The Sol Majestic от Tor Books, а также трилогии Mancer и The Uploaded. Его короткометражка была представлена ​​в «Научная фантастика Азимова», «Под бесконечным небом», «Мерцание» и «Андромеда Космические пути» в журнале «». Ферретт живет с женой в Кливленде.

Рекомендуемый список литературы: Программа изучения английского языка: Университет Лойола, Чикаго,

An English Dictionary — первая книга, которую вы должны купить в Чикаго. Купи один. Сейчас же.

Очень легко – легко (Художественная литература / романы)

Художественная литература с участием детей-персонажей:

  • Дом на Манго-стрит Сандры Сиснерос — действие в Чикаго; легко читается с короткими главами
  • Маленький принц Антуана де Сент-Экзюпери — вечная классика известного французского писателя
  • Отверстие Луи Сачар — маленьких детей находят приключение после того, как вырыли ямы для наказания
  • Esperanza Rising Пэм Муньос Райан — занимается иммиграцией из Мексики
  • Свинья Пол Зиндель— двое молодых людей учатся ценить жизнь у старика
  • Фрэнни и Зуи Дж. Д. Сэлинджер — история младшего брата и сестры
  • Superfudge Джуди Блюм — приключения и неприятности маленького мальчика; очень забавная книга
  • Абсолютно правдивый дневник индейца, работающего неполный рабочий день Шермана Алекси — забавная книга с мультфильмами
  • Чарли и шоколадная фабрика Роальда Даля — вдохновение для двух разных фильмов, (Джонни Депп)
  • Джеймс и гигантский персик Роальда Даля — Маленький мальчик-сирота переживает множество волшебных приключений
  • Единый осколок Линда Сью Парк — история корейской истории
  • Wringer Джерри Спинелли — история молодых парней и давления со стороны сверстников
  • Мост в Теребитию Кэтрин Патерсон— сладкая история о дружбе
  • Посторонние С. Э. Хинтон — история дружбы, убийства, банд и социального статуса
  • Жемчужина Джона Стейнбека — мексиканская сказка о бедном рыбаке и жемчужине
  • Остров Голубых дельфинов Скотт О’Делл— 12-летняя девочка выжила на острове
  • Маньяк МакГи Джерри Спинелли — посвящена бездомности, расизму, спорту и бесстрашию.

Художественная литература с персонажами-животными:

  • Скотный двор Джорджа Оруэлла — политическая сатира с участием сельскохозяйственных животных в главных ролях
  • Charlotte’s Web Э.Б. Уайт — Простая, красивая и грустная история с животными в главных ролях
  • Миссис Фисби и крысы из НИПЗ Роберта К. О’Брайена — Мать-мышь пытается переместить свою семью
  • Средняя сложность, чрезвычайная популярность (романы / вымышленные серии):
  • Фэнтези серии:
  • Голодные игры Сюзанн Коллинз — Девушка борется за свою семью и свою страну (3 книги)
  • Сумерки Стефани Майер — Команда Эдварда или Команда Джейкоба, кто покорит сердце Беллы? (4 книги)
  • Хроники Нарнии К. С. Льюис — Четыре брата и сестры путешествуют в волшебный мир под названием Нарния (7 книг)
  • Гарри Поттер Серия Дж. К. Роулинг — , возможно, вы слышали об этом волшебном мальчике (7 книг)
  • Перси Джексон и олимпийцы Рик Риордан — хороший способ узнать о мифологии (5 книг)
  • Серия неудачных событий Бретта Хелквиста — 3 невезучих ребенка (13 книг)
  • Автостопом по галактике Дугласа Адамса — научно-фантастическая комедия (5 книг)
  • The Dark is Rising Сьюзан Купер — 11-летняя девочка сражается с силами зла (5 книг)

Детективный сериал:

  • Нэнси Дрю Кэролайн Кин — классический сериал о талантливой молодой женщине-детективе (175 книг)
  • Hardy Boys Франклин В. Диксон — классический сериал о двух молодых братьях-детективах (сотни книг)

Умеренный – сложный (художественная литература / романы):

Романы, посвященные американской или международной истории:

Научная фантастика / Фэнтези-романы:

Детективов / Детективов:

  • Убийство в Восточном экспрессе Агаты Кристи — классическая тайна убийства в поезде
  • Большой сон Рэймонда Чендлера — криминальный роман с участием Филипа Марлоу, действие которого происходит в Лос-Анджелесе, Калифорния,
  • По вторникам с Морри Митч Албом — старик учит нас, как умирать; правдивая история
  • Жизнь Пи Ян Мартель— мальчик и тигр на лодке посреди океана
  • Маленькие женщины Луизы Мэй Олкотт — история четырех сестер
  • Отдельный мир Джона Ноулза — история двух друзей по колледжу
  • Любопытный инцидент с собакой в ​​ночное время Марк Хэддон — Мальчик-аутист пытается разгадать тайну того, кто убил его собаку

Научная литература:

  • Переломный момент Малькольма Гладуэлла — «Как мелочи могут иметь большое значение»
  • Freakanomics Стивена Левитта — экономист смотрит на мир с другой точки зрения
  • Искусство путешествовать Алена де Боттона — эссе о том, почему людям следует путешествовать
  • Пророк Халила Джебрана — поэтических / философских эссе о любви, детях, работе, радости, печали и т. Д.
  • Сингулярность близка Рэй Курцвейл — Обсуждение технологий, науки и будущего
  • Интеллектуальное преданное служение Дэвида С. Киддера — одна страница на тему; информация обо всем

Рассказов:

  • Лучшие американские рассказы под редакцией Катрины Кенисон — ежегодная серия с участием разных авторов
  • Исчезающий слон Харуки Мураками — известный японский писатель пишет о потерях и одиночестве
  • Полное собрание рассказов и сказок Эдгара Аллена По страшных стихов и рассказов американского мастера
  • Человек-зонтик и другие рассказы Роальда Даля — искаженных рассказов, очень темный юмор
  • Холмы, похожие на белых слонов и Снега Килиманджаро Эрнест Хеммингуэй — Хозяин Америки
  • Толкователь болезней Джумпа Ларири — рассказов об индейцах / американцах индийского происхождения любимого писателя Джона
  • Одинокий рейнджер и Тонто Кулачный бой на небесах Шерман Алекси — Рассказы коренных американцев

Графические романы:

  • Персеполис Марджан Сатрапи — история девочки, выросшей во время иранской революции
  • Пхеньян: Путешествие в Северную Корею Гая Делисла — канадский писатель проводит год в Северной Корее. Корея
  • Хранители Алан Мур- Когда супергерои становятся плохими…
  • Maus Арта Шпигельмана — рассказ о нацистах и ​​евреях во Второй мировой войне; Лауреат Пулитцеровской премии
  • Одеяла Крейга Томпсона — рассказ о взрослении, романтике, братской любви и истоках веры
  • Habibi Крейг Томпсон — история любви и общего наследия христианства и ислама
  • Петроград Фил Гелатт и Тайлер Крук— заговор за убийством Григория Распутина
  • Недостатки Адриан Томин — Отношения пары подвергаются испытанию с неожиданными последствиями
  • Приговоры: Жизнь М.Ф. Гримма Перси Кэри — жизнь в опасной хип-хоп индустрии

5 лучших книг, рекомендованных учителями и персоналом

авторов, которых нет в этом списке

  1. Дом на Манго-стрит (# 2)
  2. Маленький принц (# 3)
  3. Убить пересмешника (# 32)
  4. Серия Гарри Поттер (1–7) (# 25)
  5. Книжный вор (# 34)
  1. Джон Гришэм (юридический)
  2. Агата Кристи (криминал)
  3. Стивен Кинг (ужасы)
  4. Том Клэнси (шпионы, правительство)
  5. Дэвид Седарис (комедия)

5 лучших книг по программированию для начинающих

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

  • Программист должен обладать терпением и выдержкой. Это абсолютно незаменимые качества в его работе;
  • Человеку нужно уметь быстро адаптироваться и постоянно узнавать что-то новое. В противном случае через несколько лет его ценность как специалиста может значительно снизиться;
  • Умение объективно оценивать возможности технологий и их использование в каждом конкретном случае.

Все вышесказанное говорит о том, что профессия программиста достаточно сложная, но в то же время перспективная.

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

В этой статье мы перечислим лучшие книги, которые помогут новичкам освоить компьютерное программирование.

Популярные книги по программированию для начинающих

Итак, ниже представлены 5 лучших книг по компьютерному программированию. Если вам интересна эта тема, то вам стоит их внимательно изучить.

Книги по компьютерному программированию для начинающих:

  1. « Python Tricks» Дэна Бадера . Эту книгу нельзя назвать курсом Python начального уровня или пошаговым руководством для начинающих. Если вы только начинаете изучать этот язык, то эта книга не поможет вам стать специалистом по разработке Python.Однако его чтение благотворно скажется на вас. В то же время вам обязательно нужно использовать другие ресурсы, которые сформируют ваши фундаментальные навыки программирования на Python. Скорее всего, человек, свободно владеющий Python и желающий улучшить свои знания, извлечет максимум пользы из этой книги. Это поможет, если вы какое-то время программировали на Python и готовы пойти дальше, чтобы придать своим знаниям законченный вид и сделать программный код более профессиональным. Чтение книги также будет бесценным, если у вас уже есть опыт работы с некоторыми другими языками программирования и вы надеетесь быстро понять тонкости языка Python.Вы найдете множество практических инструкций и шаблонов проектирования, которые сделают вас более эффективным и квалифицированным программистом на Python;
  2. «Полное руководство по карьере разработчика программного обеспечения» , Джон Сонмез . Эта популярная книга — не просто книга по разработке программного обеспечения; лучше сказать, что это учебник по исследованию методов разработки программного обеспечения. Он предназначен для начинающих программистов. Поскольку основная цель книги — развитие навыков и умений в разработке программного обеспечения, книга также будет полезна профессиональным разработчикам программного обеспечения, которые хотят расширить свои знания, улучшить свои навыки и способности.Предполагается, что читатель уже знаком с программированием с использованием классов и объектов, в основном на языке Java;
  3. «Код» Чарльз Петцольд . Эту книгу должен изучить каждый новичок, потому что автор рассказывает об истории появления компьютерных технологий, сути кодирования информации и т. Д. Практические примеры помогают читателям усвоить основные понятия информационных технологий, а также принципы процессор и другие компьютерные устройства;
  4. «Взлом: искусство эксплуатации» Джон Эриксон .Эта современная книга — одна из самых подходящих для начинающих. В нем обозначен ряд препятствий, с которыми обычно сталкиваются новички. Здесь вы можете найти информацию по различным техническим аспектам, в частности, об эксплуатации уязвимостей и командных оболочках. Кроме того, в книге даются советы, как эффективно работать;
  5. «Эффективная Java» Джошуа Блох . Как отмечают специалисты, важной особенностью языка Java является наличие достаточно простого синтаксиса. Однако понять его не так-то просто.Книга «Эффективная Java» существенно отличается от других классических книг, поскольку основана на визуализации. Здесь вы найдете подробную презентацию, яркие примеры и практические упражнения, которые позволят закрепить изученный материал. Книга отлично подойдет новичкам, которые ранее не изучали объектно-ориентированное программирование. Благодаря оригинальной нестандартной форме презентации книга «Эффективная Java» считается одной из самых подходящих книг для начинающих. Любой, кто интересуется программированием, обязательно найдет в этой книге то, что ищет.

Итак, если вы решили заняться изучением компьютерного программирования, но столкнулись с рядом трудностей, не переживайте, а попробуйте их преодолеть. Книги, которые мы уже охарактеризовали в этой статье, помогут вам достичь вашей цели. Вам следует выбрать книгу, которая вам больше всего подходит, и начать активно работать прямо сейчас. У вас обязательно все получится и результаты не заставят себя ждать!

Ссылки для покупок на Amazon:

Уловки Python: набор потрясающих функций Python

$ 4.99
на складе

по состоянию на 16 февраля 2021 г. 17:39

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

$ 9,99
на складе

по состоянию на 16 февраля 2021 г. 17:39

Код: Скрытый язык компьютерного оборудования и программного обеспечения

$ 29,99
$ 20,29
в наличии

14 новый от 20 $.29
17 б / у от 17,43 долл. США

по состоянию на 16 февраля 2021 г. 17:39

Взлом: искусство эксплуатации, 2-е издание

49,95
38,90 долл. США
в наличии

24 новых от 32,64 $
24 б / у от 27,40 $

Бесплатная доставка

по состоянию на 16 февраля 2021 г. 17:39 Share :

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *