C чего начался этот список? Недавно Таганрогское сообщество разработчиков проводило конференцию, посвященную front-end разработке. И они коснулись интересной темы – материалов, содержащих знания, которые лежат в основе труда разработчика программного обеспечения. Не секрет, что зачастую мы уделяем недостаточно внимания теоретической базе, чтобы целиком сосредотоиться на практике. И только опыт дает возможность осознать, что без фундаментальных знаний практика превращается буквально в ночную прогулку по полю граблей.
Поэтому мы решили опубликовать список материалов, которые, по мнению команды INOSTUDIO, будут очень полезны для укрепления фундамента знаний по разработке ПО.
Максимальное внимание в этой подборке уделяется общедоступным курсам лекций, а также лучшим, на наш взгляд, книгам, которые охватывают все области знаний информатики – от математики до управления программными проектами.
I. Алгоритмы и структуры данных
Курсы
- MIT
Introduction to Computer Science and Programming. 2008, 2011
Structure and Interpretation of Computer Programs
Mathematics for Computer Science
Introduction to Algorithms (SMA 5503)
Performance Engineering of Software Systems
Dynamic Programming and Stochastic Control
- Stanford
Математические основы Computer Science
Сложность вычислений и основы криптографии
Видеолекции «Школы Анализа Данных» Яндекса
Книги
Томас Кормен «Алгоритмы. Построение и анализ»
Брайан Керниган, Деннис Ритчи «Язык программирования C»
Харольд Абельсон, Джеральд Джей Сассман «Структура и Интерпретация Компьютерных Программ»
Генри Уоррен «Алгоритмические трюки для программистов»
Никлаус Вирт «Алгоритмы и структуры данных»
Альфред Ахо, Джон Хопкрофт, Джеффри Ульман «Структуры данных и алгоритмы»
Дональд Кнут «Искусство программирования. Основные алгоритмы». Том 1, Том 2, Том 3, Том 4
II. Общие вопросы разработки ПО
Грэди Буч «Объектно - ориентированный анализ и проектирование с примерами приложений на С++»
Стив Макконелл «Совершенный код»
Роберт Мартин «Чистый код: создание, анализ и рефакторинг»
Эндрю Хант, Дэвид Томас «Программист-прагматик. Путь от подмастерья к мастеру»
Фредерик Брукс «Мифический человеко-месяц, или Как создаются программные системы»
Чад Фаулер «Программист-фанатик»
Мартин Фаулер «Шаблоны корпоративных приложений»
Кент Бек, Мартин Фаулер «Экстремальное программирование: планирование»
Майкл Ховард, Дэвид Лебланк «Защищенный код»
Чарльз Петцольд «Код. Тайный язык информатики»
Джон Бентли «Жемчужины программирования»
Том ДеМарко, Тимоти Листер «Человеческий фактор. Успешные проекты и команды»
Питер Сейбел «Кодеры за работой. Размышления о ремесле программиста»
Кент Бек «Экстремальное программирование: разработка через тестирование»
Ричард Фейнман «Вы, конечно, шутите, мистер Фейнман!»
Линус Торвальдс, Дэвид Даймонд «Just for Fun. Рассказ нечаянного революционера»
III. Отдельные технологии
- .NET
- JavaScript
Дуглас Крокфорд «JavaScript: сильные стороны»
Addy Osmani «Learning JavaScript Design Patterns»
Nicholas Zakas «Maintainable JavaScript»
Читайте на Rusbase:
- Какой язык программирования учить первым (если вы в России)?
- Подтяни бигдату. Курсы и полезные ссылки по теме data science
- HeadHunter открыл набор в бесплатную школу программистов
- Записи с тегом #education
Несмотря на то, что в список вошло огромное количество материалов, он не может претендовать на полноту. Поэтому, если у вас есть что-то интересное по теме, что мы пропустили – ждем вас в комментариях.
Мы надеемся, что подборка окажется вам полезной.
Фото на обложке: Shutterstock.
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter
Материалы по теме
ВОЗМОЖНОСТИ
28 января 2025
03 февраля 2025
28 февраля 2025