Программирование
Программирование имеет множество областей применения:
- Веб-программирование
- GUI программирование
- Прикладное программирование
- Системное программирование
- Gamedev
Также программирование состоит из:
Подходы:
Парадигмы программирования:
Архитектура программ:
Тип сборки:
- Компилируемые языки программирования
- Интерпритируемые языки программирования
- Языки с образом
Элементы программирования:
- Структуры данных
- Алгоритмы
- Выразительность
- Сложность
- Типизация
- Паттерны
- Синтаксис
- Раскрутка Компилятора
- Актор
Концепции языков программирования:
- Trait
- Mixin
- Exception
Социальный аспект:
Векторы развития:
- Знание конкретных языков
- Знание парадигм (например ООП)
- Знание конкретных инструментов (например фреймворков вроде Symfony / Django)
- Знание алгоритмизации
- Тестирование
Для программирования используют Системы Контроля Версий (VCS)
Концепции языков программирования
Первая вики по программированию
Древние документы по древним языкам (Software Preservation Group)
Программы изучения:
- Книги Вирта
- http://stolyarov.info/books
- https://functionalcs.github.io/curriculum/
- https://github.com/ossu/computer-science
- https://teachyourselfcs.com/
- https://en.wikibooks.org/wiki/Programming_Fundamentals/Printable_version
- книга Т. Пратта "Языки программирования. Разработка и реализация
Видеокурсы
Интернет энциклопедии
Книжные издательства
- O'Reily
- Pragmatic Bookshelf
- Manning
Задачи:
- Hackerrank
- Codewars
- https://www.codeabbey.com/
- Exercism
- Project Euler
- Odin Project
- Leetcode
(Желательно собирать задачи оффлайн в Org-Mode)