summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210410211702-программирование.org
blob: 4e678c460686c2caaef3cb724e626182004499fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
:PROPERTIES:
:ID:       84c9e794-c30c-4ac8-b743-ec2da2bdd93f
:END:
#+title: Программирование

* Программирование
Программирование имеет множество областей применения:
- [[id:3010ab5d-88b9-4287-bbd2-37f936afbc9b][Веб-программирование]]
- [[id:aaeb756b-2b5c-44cd-92e1-fe4900b6a8c2][GUI программирование]]
- [[id:45b89a6e-957f-4375-914e-a22ebfc9e9ca][Прикладное программирование]]
- [[id:33870a2e-615d-4170-82e2-099a34885296][Системное программирование]]
- [[id:5a781ba5-9679-4dc0-902c-9f281757379c][Gamedev]]
  
Также программирование состоит из:
- [[id:77d32578-cf7b-4947-8351-ca2fe19bbf6f][Языки программирования]]
- [[id:f0451ee4-d882-440b-86a1-850a873dc46c][Языки разметки]]  
- [[id:2e04bf54-3469-496a-ac95-efd3ddca828e][Инструменты разработки]]
- [[id:18b8111f-d3c5-4cc8-9991-c90761142384][Нотации языков программирования]]
  
Подходы:
- [[id:ad8d9635-de2a-447b-9afb-76117fecc98a][Грамотное Программирование]]

Парадигмы программирования:
- [[id:361afa9b-4d63-4fde-93c1-dc6b183a6fc6][Функциональное программирование]]  
- [[id:d59ae5ab-7189-4d37-ab8b-259eaaa57995][ООП]]

Архитектура программ:
- [[id:7dbb05d0-e411-4e5e-965f-005b66b23564][DDD]]
  
Тип сборки:
- [[id:5346da1a-6f67-4919-ac90-fd1a0b4c68f3][Компилируемые языки программирования]]
- Интерпритируемые языки программирования
- Языки с образом

Элементы программирования:
- [[id:f16c12f6-2ddc-4b1c-aa01-be44cbdae187][Структуры данных]]  
- [[id:190cef43-efe6-4049-9efd-a96bd515878e][Алгоритмы]]
- [[id:071eb2e6-daa6-4e92-8090-4cdba08a1dd0][Выразительность]]
- [[id:46fd8a93-c8de-49d7-bddc-1dcc61b23cef][Сложность]]
- [[id:4134413b-5027-47d7-b929-d9902db61df5][Типизация]]
- [[id:4f2e9fa6-3aeb-4e0d-84f2-f1db4263136b][Паттерны]]
- [[id:67b5ad6e-3214-4094-9337-37c582bed76b][Синтаксис]]
- [[id:88c82883-c8c4-4931-b6e3-2c7f130e9eab][Раскрутка Компилятора]]
- [[id:e254dc49-4cc8-47e5-a9e6-008e90430fd4][Актор]]

Концепции языков программирования:
- Trait
- Mixin  
- [[id:d1ab37ab-45b5-4415-a265-797ba71a799c][Exception]]
  
Социальный аспект:
- [[id:b60fac2f-a169-4be7-97ed-0ff5006ea927][Сертификация]]
- [[id:9fda3d97-6a21-4078-bcdb-c98a819e01b8][Рефакторинг]]

Векторы развития:
- Знание конкретных языков
- Знание парадигм (например ООП)
- Знание конкретных инструментов (например фреймворков вроде Symfony / Django)
- Знание алгоритмизации
- Тестирование  
  
Для программирования используют [[id:d2cd6ee3-5512-4232-a3ae-43a9e07b4c8c][Системы Контроля Версий (VCS)]]

https://ru.wikipedia.org/wiki/Программирование

[[https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F][Концепции языков программирования]]

Первая вики по программированию

[[https://www.softwarepreservation.org/][Древние документы по древним языкам (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
- книга Т. Пратта "Языки программирования. Разработка и реализация

*Видеокурсы*
- [[https://www.youtube.com/watch?v=IIKffaoU9nk][Теоретическая информатика | Александр Охотин | Лекториум]]

*Интернет энциклопедии*
- https://devopedia.org/
- https://wiki.c2.com/  

*Книжные издательства*
- O'Reily
- Pragmatic Bookshelf
- Manning    
  
*Задачи*:
- Hackerrank
- Codewars
- https://www.codeabbey.com/
- Exercism
- Project Euler
- Odin Project
- Leetcode  

(Желательно собирать задачи оффлайн в Org-Mode)

[[https://en.wikipedia.org/wiki/Category:Computer_programming][Программирование на википедии]]