90+ обучающих материалов по разработке ПО
C чего начался этот список? Недавно Таганрогское сообщество разработчиков проводило конференцию, посвященную front-end разработке, где наша команда INOSTUDIO приняла главное участие.
Мы коснулись интересной темы – материалов, содержащих знания, которые лежат в основе труда разработчика программного обеспечения. Не секрет, что зачастую мы уделяем недостаточно внимания теоретической базе, чтобы целиком сосредоточиться на практике. И только опыт дает возможность осознать, что без фундаментальных знаний практика превращается буквально в ночную прогулку по полю граблей.
Поэтому мы решили опубликовать список материалов, которые, по мнению нашей команды INOSTUDIO, будут очень полезны для укрепления фундамента знаний по разработке ПО.
Максимальное внимание в данном сборнике уделено общедоступным курсам лекций, а также лучшим книгам, которые охватывают все области знаний информатики от математики до управления программными проектами. Алгоритмы и структуры данных
Курсы
MIT
- Introduction to Computer Science and Programming 2008, 2011
- Structure and Interpretation of Computer Programs
- Introduction to Algorithms
- Computer Language Engineering
- Mathematics for Computer Science
- Introduction to Algorithms (SMA 5503)
- Performance Engineering of Software Systems
- Dynamic Programming and Stochastic Control
- Advanced Data Structures
- Poker Theory and Analytics
Stanford
Harvard
Caltech
Lectorium
- Избранные темы Computer Science
- Введение в теорию информации
- Машинное обучение
- Компьютерная графика
- Алгоритмы во внешней памяти
- Формальные языки и синтаксический анализ
- Теория игр
- Современные технологии разработки ПО
- Базы данных
- Введение в теорию информацию
- Языки программирования и компиляторы
- Алгоритмическая теория информации
- Вероятностные методы в вычислениях
- Математическая статистика
- Алгоритмы для NP-трудных задач
- Основы дискретной математики
- Функциональное программирование
- Распределенные алгоритмы
- Технологии хранения и обработки больших объемов данных
- Линейное программирование
- Эффективные алгоритмы
- Виртуальные машины
- Параллельное программирование
- Алгоритмы и структуры данных
- Основы Java
- Основы программной инженерии
- Компьютерные сети
- Математические основы Computer Science
- Сложность вычислений и основы криптографии
- Видеолекции "Школы Анализа Данных" Яндекс
Книги
- Томас Кормен "Алгоритмы. Построение и анализ"
- Брайан Керниган, Деннис Ритчи "Язык программирования C"
- Харольд Абельсон, Джеральд Джей Сассман "Структура и Интерпретация Компьютерных Программ"
- Генри Уоррен "Алгоритмические трюки для программистов"
- Никлаус Вирт "Алгоритмы и структуры данных"
- Альфред Ахо, Джон Хопкрофт, Джеффри Ульман "Структуры данных и алгоритмы"
- Альфред В. Ахо, Моника С. Лам, Рави Сети, Джеффри Д. Ульман "Компиляторы. Принципы, технологии и инструментарий"
- Дональд Кнут "Искусство программирования. Основные алгоритмы": Том 1, Том 2, Том 3, Том 4
- Роберт Мартин "Быстрая разработка программ. Принципы, примеры, практика"
Общие вопросы разработки ПО
- Грэди Буч "Объектно - ориентированный анализ и проектирование с примерами приложений на С++"
- Стив Макконелл "Совершенный код"
- Роберт Мартин "Чистый код: создание, анализ и рефакторинг"
- Эндрю Хант, Дэвид Томас "Программист-прагматик. Путь от подмастерья к мастеру"
- Фредерик Брукс "Мифический человеко-месяц, или Как создаются программные системы"
- Чад Фаулер "Программист-фанатик"
- Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес "Приемы объектно-ориентированного проектирования. Паттерны проектирования"
- Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс "Рефакторинг. Улучшение существующего кода"
- Мартин Фаулер "Шаблоны корпоративных приложений"
- Кент Бек, Мартин Фаулер "Экстремальное программирование: планирование"
- Майкл Ховард, Дэвид Лебланк "Защищенный код"
- Чарльз Петцольд "Код. Тайный язык информатики"
- Джон Бентли "Жемчужины программирования"
- Том ДеМарко, Тимоти Листер "Человеческий фактор. Успешные проекты и команды"
- Питер Сейбел "Кодеры за работой. Размышления о ремесле программиста"
- Кент Бек "Экстремальное программирование: разработка через тестирование"
- Эрик Эванс "Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем"
- Ричард Фейнман "Вы, конечно, шутите, мистер Фейнман!"
- David Kushner "Masters of DOOM"
- Federico Biancuzzi "Masterminds of Programming: Conversations with the Creators of Major Programming Languages"
- Линус Торвальдс, Дэвид Даймонд "Just for Fun. Рассказ нечаянного революционера"
Отдельные технологии
.NET
- Эндрю Троелсен "Язык программирования C# 5.0 и платформа .NET 4.5"
- Джеффри Рихтер "CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#"
PHP
C++
- Герберт Шилдт "C++. Базовый курс"
- Бьярне Страуструп "Программирование. Принципы и практика использования C++"
- Бьярне Страуструп "Язык программирования С++"
- Андрей Александреску "Современное проектирование на С++: Обобщенное программирование и прикладные шаблоны проектирования"
- Герб Саттер "Решение сложных задач на С++"
- Герб Саттер, Андрей Александреску "Стандарты программирования на С++"
- Роберт С. Мартин, Мика Мартин "Принципы паттерны и методики гибкой разработки на языке С#"
- Джон Скит "C#. Программирование для профессионалов"
Java
- Джошуа Блох "Java. Эффективное программирование"
- Бенджамин Эванс, Мартин Вербург "Java. Новое поколение разработки"
JavaScript
- Дуглас Крокфорд "JavaScript: сильные стороны"
- Addy Osmani "Learning JavaScript Design Patterns"
- Nicholas Zakas "Maintainable JavaScript"
Несмотря на то, что данный список содержит огромное количество материала, он не может претендовать на полноту. Поэтому, если у вас есть что-то интересное, что мы пропустили - ждем вас в комментариях и с радостью добавим ваш источник в этот список.
Мы надеемся, что собранный нами список будет вам полезен, и что каждый найдет в нем что-то интересное.
Мы благодарим всех, кто остался неравнодушен к статье и разработке ПО в целом!
Оригинал статьи читайте на страницах блога компании и не забывайте подписываться на наш блог!
Автор статьи - команда INOSTUDIO.