Как стать автором
Обновить

Hammock Driven Development — Rich Hickey (с русским переводом)

Время на прочтение 33 мин
Количество просмотров 2.7K
Автор оригинала: Rich Hickey
Всем привет!

Я сделал перевод и набил субтитры на отличный доклад Рича Хикки — Hammock Driven Development (Разработка через гамак). Впервые на русском языке.

Доклад впервые был представлен в 2010 году на первой конференции Clojure Conj.




О докладе:

Отойдите подальше от компьютера, лягте в гамак, закройте глаза и хорошенько подумайте над вашей проблемой.
Это второй «философский» доклад Рича Хикки на тему решения сложных проблем проектирования софта путем предварительной загрузки проблемы в голову и обработки её в фоновом режиме.


Рич Хикки — создатель языка программирования Clojure, независимый разработчик ПО и консультант с 20-летним опытом работы в различных областях разработки ПО. Примерно 2,5 года в одиночку работал над Clojure, прежде чем кому-либо его показать.



UPD от 03.09.2021:
Мои субтитры включены в официальное видео, ниже приведена ссылка на него.
Частично обновлены — исправлены неточности в переводе.

UPD от 18.06.2020:
Субтитры были частично обновлены — исправлены неточности в переводе.

Посмотреть на Ютубе

Полный текст субтитров
1
00:00:16,303 --> 00:00:20,409
«Отойдите от компьютера»

2
00:00:20,409 --> 00:00:30,982
Привет. Как я сказал вчера, я поменял выступление,
так что это более философское выступление.

3
00:00:31,432 --> 00:00:32,932
У него есть несколько названий.

4
00:00:33,518 --> 00:00:36,101
или «Разработка через гамак» (по аналогии с
разработка через тестирование — TDD).

5
00:00:36,201 --> 00:00:38,394
Я не мог решить.
Некоторые из названий были неуклюжими.

6
00:00:38,494 --> 00:00:43,344
или «Если мы не решаем проблемы,
то что мы делаем?»

7
00:00:43,861 --> 00:00:47,187
или Чем занимается Рич, когда не пишет тесты.

8
00:00:47,287 --> 00:00:54,128
А потом Марк дал мне отличную идею.
Так что это про первый шаг.

9
00:00:58,670 --> 00:01:00,477
Рассуждения
Во всех смыслах

10
00:01:00,577 --> 00:01:02,715
Это просто доклад,
основанный на опыте.

11
00:01:02,715 --> 00:01:04,433
не научный доклад,
не будет какой-то методологии.

12
00:01:04,533 --> 00:01:06,687
Здесь мало методологии,
науки или чего-то ещё.

13
00:01:09,908 --> 00:01:15,605
Когда был последний раз, когда вы
всерьёз думали о чём-то целый час?

14
00:01:15,134 --> 00:01:20,629
Вас никто не беспокоит,
можете сосредоточиться.

15
00:01:23,255 --> 00:01:25,372
Или целый день?

16
00:01:25,472 --> 00:01:32,866
Помните ли вы день, когда вы могли
целый день над чем-то думать?

17
00:01:32,966 --> 00:01:44,671
Или месяц?
Почти всё время думая над чем-то?

18
00:01:45,624 --> 00:01:48,044
Или год?

19
00:01:51,071 --> 00:01:56,307
Это чрезвычайно ценные моменты,
если они у вас вообще есть.

20
00:01:56,407 --> 00:02:06,811
Я считаю, что мне очень повезло, я мог думать
о трех разных вещах в течение года или более.

21
00:02:06,911 --> 00:02:15,141
Одной из них был Clojure. И нет ничего,
что я ценю больше, чем такое время.

22
00:02:15,241 --> 00:02:16,796
Еще одна вещь, которую я хотел бы спросить:

23
00:02:16,896 --> 00:02:19,915
когда вы в последний раз чувствовали
себя уверенно, пытаясь сделать то,

24
00:02:20,015 --> 00:02:22,223
чего никогда раньше не делали?

25
00:02:22,323 --> 00:02:27,114
И как вы думаете, что нужно,
чтобы стать уверенным в том,

26
00:02:27,214 --> 00:02:29,041
чего вы никогда не делали раньше?

27
00:02:29,141 --> 00:02:31,341
Очевидно, что, как разработчики
программного обеспечения

28
00:02:31,441 --> 00:02:35,316
мы часто делаем еще одно приложение,
которое извлекает что-то из базы данных

29
00:02:35,416 --> 00:02:37,358
и размещает в Интернете,

30
00:02:37,458 --> 00:02:41,671
но чем вы удачливее, тем больше вероятность
того, что вы столкнётесь с проблемами

31
00:02:41,771 --> 00:02:43,481
которых никогда раньше не решали.

32
00:02:43,581 --> 00:02:52,845
И как вы начнёте их решать?
Не чувствуя себя в большой опасности?

33
00:02:52,945 --> 00:02:57,496
Поэтому я начну с того, что расскажу
о некоторых вещах в области разработки софта

34
00:02:57,596 --> 00:02:59,483
о которых мы все знаем, что это правда.

35
00:02:59,583 --> 00:03:03,796
Мы ненавидим ошибки в наших программах.
Мы пытаемся писать качественные программы.

36
00:03:03,896 --> 00:03:07,832
И мы знаем, что если
позволить программам выйти на рынок,

37
00:03:07,932 --> 00:03:14,912
то невероятно дорого исправить несоответствия
требованиям и ошибки в программе.

38
00:03:15,012 --> 00:03:19,528
Поэтому мы говорим, что у нас будет серьёзный
процесс тестирования в отделе тестирования.

39
00:03:19,628 --> 00:03:21,928
И даже в этом случае, как мы знаем,
всё не так уж и замечательно,

40
00:03:22,028 --> 00:03:26,411
потому что решение проблемы происходит
на удалении, на расстоянии от разработки,

41
00:03:26,511 --> 00:03:28,599
что не хорошо.

42
00:03:28,699 --> 00:03:33,079
Итак, теперь мы знаем,
что делать в этой области.

43
00:03:33,179 --> 00:03:38,172
Мы исправляем ошибки во время написания
кода, тестируя в разработке,

44
00:03:38,272 --> 00:03:42,881
и это лучший способ избежать ошибок
в наших приложениях, верно?

45
00:03:46,869 --> 00:03:48,423
Аудитория: Нет.

46
00:03:48,523 --> 00:03:56,446
Вы заметили, что я научился
показывать каждый элемент по очереди?

47
00:03:56,546 --> 00:04:02,098
Так что теперь вы не знаете,
что я собираюсь сказать дальше.

48
00:04:02,198 --> 00:04:04,323
Это превосходно.

49
00:04:07,727 --> 00:04:10,167
Нет, определенно, абсолютно точно нет.

50
00:04:10,267 --> 00:04:13,235
Наименее дорогостоящее место для
исправления ошибок — 51
00:04:13,335 --> 00:04:16,997
когда вы проектируете своё ПО.
Что все делают, да?

52
00:04:18,777 --> 00:04:26,647
Ага. Я буду утверждать, что всё,
что я здесь говорю, очень, очень нечетко,

53
00:04:26,747 --> 00:04:31,756
но, без сомнения, большинство из важных проблем,
с которыми мы сталкиваемся в программах — 54
00:04:31,856 --> 00:04:33,985
проблемы недопонимания.

55
00:04:34,085 --> 00:04:37,156
У нас нет хорошего представления о том,
что мы делаем, прежде чем мы это сделаем.

56
00:04:37,256 --> 00:04:39,664
А потом, быстрей, быстрей,
быстрей и мы хватаемся за всё.

57
00:04:39,764 --> 00:04:44,670
У нас есть методологии, и мы чувствуем
себя действительно хорошо.

58
00:04:46,311 --> 00:04:48,457
Но если вы всё испортите,
как сказал Марк (Mark McGranaghan),

59
00:04:48,557 --> 00:04:51,833
в самом начале, то ничего хорошего не выйдет.

60
00:04:51,933 --> 00:04:55,784
У нас нет проблем в реализации.
У нас ЕСТЬ проблемы в реализации.

61
00:04:55,884 --> 00:04:59,120
И тестирование и
другие вещи помогают с этим.

62
00:04:59,220 --> 00:05:04,638
Но проблемы недопонимания обычно
не решаются путем тестирования,

63
00:05:04,738 --> 00:05:09,900
или систем типов, или вещей, которые мы
используем для исправления дефектов в реализации.

64
00:05:10,000 --> 00:05:13,536
На самом деле не существует систем типов,
которые могли бы сказать нам,

65
00:05:13,636 --> 00:05:22,442
что мы на правильном пути, или то,
что мы делаем, идёт в нужном направлении.

66
00:05:22,542 --> 00:05:23,556
Анализ и проектирование

67
00:05:23,656 --> 00:05:26,098
Я собираюсь немного поговорить
об анализе и проектировании.

68
00:05:26,198 --> 00:05:35,015
Я знаю, что такой подход устарел, он ужасен,
и по праву был раскритикован,

69
00:05:35,115 --> 00:05:37,609
и выброшен.

70
00:05:37,709 --> 00:05:41,902
Потому что люди считали, что он
связан с процессом, рисованием картинок,

71
00:05:42,002 --> 00:05:47,922
знанием всего обо всём и составлением всесторонних
планов по Каскадной модели (Waterfall model)

72
00:05:48,022 --> 00:05:51,173
и в нём было много всего ужасного.

73
00:05:52,848 --> 00:06:00,865
Но это не значит, что шаг перед
«иди и сделай это» не является важным шагом.

74
00:06:00,965 --> 00:06:07,556
Я думаю, что мы тратим недостаточно времени
и сил, не уделяем достаточно времени на это.

75
00:06:07,656 --> 00:06:09,226
Так бывает не всегда по нашей вине.

76
00:06:09,326 --> 00:06:11,393
Мы можем сказать: о, мы хотели бы
провести время, думая об этом,

77
00:06:11,493 --> 00:06:13,625
но мы должны выдать
что-то на следующей неделе.

78
00:06:13,725 --> 00:06:17,750
Но качество определенно страдает, потому
что мы не тратим время на планирование.

79
00:06:17,850 --> 00:06:21,409
Я хотел бы дать определение тому
чем являются анализ и проектирование,

80
00:06:21,509 --> 00:06:24,332
я бы хотел, чтобы вы на мгновение забыли о них

81
00:06:24,432 --> 00:06:26,608
и давайте попробуем дать действительно
простое определение.

82
00:06:26,708 --> 00:06:29,905
Анализ и проектирование — это две вещи:

83
00:06:30,005 --> 00:06:33,642
выявление проблемы,
которую мы пытаемся решить,

84
00:06:33,742 --> 00:06:40,497
и оценка предлагаемого нами решения с точки
зрения того, решает ли оно эту проблему или нет.

85
00:06:40,597 --> 00:06:44,076
Это действительно то, чем
являются эти вещи, а не что-то ещё.

86
00:06:46,002 --> 00:06:50,754
Мы должны решать проблемы.
Мы не должны пилить фичи.

87
00:06:50,754 --> 00:06:51,595
Решая проблему!

88
00:06:51,695 --> 00:06:54,329
Здесь нет ничего про фичи…
Что такое фича?

89
00:06:54,429 --> 00:07:00,253
Фича — это просто атрибут чего-то.
Это блестящая хромированная ручка на чем-то.

90
00:07:00,353 --> 00:07:03,272
Не в этом предназначение машины.

91
00:07:03,372 --> 00:07:09,476
Нет никакой гарантии, если вы составите
список фич, даже если он получен от клиента,

92
00:07:09,576 --> 00:07:14,196
что он решит их же собственную проблему,
или что он решит любую проблему,

93
00:07:14,296 --> 00:07:18,185
или что фичи, когда вы их объедините,
не создадут тонну других проблем.

94
00:07:18,285 --> 00:07:23,852
Таким образом, программирование и написание
кода не сводятся к выполнению списка фич.

95
00:07:25,182 --> 00:07:29,635
В частности, фичи, предлагаемые пользователями,
несмотря на все их усилия,

96
00:07:29,735 --> 00:07:34,197
чтобы удовлетворить себя,
часто не являются хорошими идеями.

97
00:07:34,297 --> 00:07:37,855
Вы должны докопаться до сути и выяснить,
какая у них проблема,

98
00:07:37,955 --> 00:07:42,334
и как лучше всего её решить,
а затем примирить это с тем, что они просят.

99
00:07:43,654 --> 00:07:46,815
У нас также есть склонность,
потому что мы все умные,

100
00:07:46,915 --> 00:07:50,929
и нам нравится быть умными и в некотором
роде выяснять, как заставить вещи работать,

101
00:07:51,029 --> 00:07:57,825
что понимание того, как заставить что-то работать,
хорошо, независимо от того, что нужно для этого.

102
00:07:57,925 --> 00:08:00,870
Если мы можем найти способ обойти проблему,
мы говорим: «Ух ты! Это здорово».

103
00:08:00,970 --> 00:08:02,722
Но это не здорово.

104
00:08:02,822 --> 00:08:08,701
Избегать проблем, которые мы способны решить,
очень способны — не то же самое, что решать их.

105
00:08:08,701 --> 00:08:10,816
Поэтому мы должны действительно
попытаться решать проблемы.

106
00:08:11,188 --> 00:08:17,136
Сегодня я собираюсь поговорить о том,
что на самом деле

107
00:08:17,236 --> 00:08:21,840
есть куча методов и
навыков для решения проблем

108
00:08:21,940 --> 00:08:27,383
и первое — просто попытаться понять проблему,
над которой вы работаете,

109
00:08:27,483 --> 00:08:32,800
распознать, идентифицировать её,
положить её куда-нибудь и поговорить о ней.

110
00:08:32,900 --> 00:08:35,698
Так что решение проблем
это определенно навык.

111
00:08:35,798 --> 00:08:41,133
Я думаю, что вы не должны уйти с этого
выступления с мыслью, что есть определенные люди,

112
00:08:41,233 --> 00:08:44,183
которые хороши в решении проблем,
и только они выполняют эту часть работы

113
00:08:44,283 --> 00:08:46,371
а нам остаётся практиковаться в других вещах.

114
00:08:46,471 --> 00:08:49,086
Вы можете практиковаться в решении проблем.

115
00:08:49,186 --> 00:08:54,181
Пойа написал эту удивительную книгу
под названием «Как решать задачу» в 1945 году,

116
00:08:54,281 --> 00:09:02,010
о том, как практиковаться в практике, и каковы
методы решения математических задач в этом случае.

117
00:09:02,110 --> 00:09:06,253
Это потрясающая книга,
полная глубокого понимания.

118
00:09:06,353 --> 00:09:07,468
И если вы никогда не читали её,

119
00:09:07,568 --> 00:09:11,978
сразу после моего выступления отправляйтесь
на Амазон и закажите себе копию.

120
00:09:12,078 --> 00:09:14,748
Одна из вещей, которая не так хороша
в этой книге,

121
00:09:14,848 --> 00:09:16,962
это то, что она находится в
математическом пространстве.

122
00:09:17,062 --> 00:09:20,766
В этом пространстве есть
действительно хорошая вещь.

123
00:09:20,866 --> 00:09:22,973
Когда вы решили проблему,
и вы думаете, что у вас есть ответ,

124
00:09:23,073 --> 00:09:26,164
у вас есть все методы математического
доказательства, чтобы определить,

125
00:09:26,264 --> 00:09:28,523
есть ли у вас ответ на самом деле.

126
00:09:28,623 --> 00:09:31,578
У разработчиков софта этого нет.

127
00:09:31,678 --> 00:09:37,929
Невозможно доказать, что у вас есть хорошее решение
чьей-то проблемы с сайтом электронной коммерции.

128
00:09:38,029 --> 00:09:44,648
Нет математических методов, и не будет
в ближайшее время, позволяющих нам доказать это.

129
00:09:44,748 --> 00:09:48,927
Но это навык, и это то, что вы можете практиковать,
то, чему вы можете научиться.

130
00:09:49,833 --> 00:09:54,551
И это стоит делать, потому что, будучи людьми,
мы хороши в том, в чём мы практикуемся.

131
00:09:54,651 --> 00:09:55,897
Неважно, что это.

132
00:09:55,997 --> 00:09:58,471
Есть удивительные примеры того,
как люди практикуются в вещах,

133
00:09:58,571 --> 00:10:03,313
в которых, кажется,
у них нет надежды стать хорошими,

134
00:10:03,413 --> 00:10:05,918
но они становятся хорошими в них,
потому что они практиковались.

135
00:10:05,918 --> 00:10:09,873
Если вы практикуетесь в решении проблем,
действительно практикуетесь в решении проблем,

136
00:10:09,973 --> 00:10:11,752
вы добьетесь успеха в их решении.

137
00:10:11,852 --> 00:10:17,158
Если вы будете практиковать методологию X,
вы будете хороши в ней.

138
00:10:17,258 --> 00:10:22,761
Я хотел бы, чтобы вы спросили себя,
какой лучший способ для достижения цели?

139
00:10:22,861 --> 00:10:26,628
Мне все равно, что такое X.
Выберите любой X, который вы хотите.

140
00:10:26,728 --> 00:10:32,681
Вы бы предпочли быть хорошими в этом?
Или быть середнячками в решении проблем?

141
00:10:34,336 --> 00:10:38,004
Так что нам нужно сделать?
Если мы собираемся работать над решением проблем,

142
00:10:38,104 --> 00:10:39,963
на что похожа наша деятельность?

143
00:10:40,063 --> 00:10:43,139
Первое, что нужно сказать:
«Я решаю эту проблему.

144
00:10:43,239 --> 00:10:48,078
Эта проблема заключается в следующем.
Бла, бла, бла, бла, бла и, следовательно, бла».

145
00:10:48,178 --> 00:10:51,767
Я видел столько программного обеспечения,
созданного так, что никто никогда не говорил так.

146
00:10:51,867 --> 00:10:53,639
Никто никогда не записывал этого.

147
00:10:53,739 --> 00:10:58,682
А потом у нас есть целая система, и никто
не сказал, какую проблему она должна решить.

148
00:10:58,782 --> 00:11:03,228
Если мы не решаем проблемы, я понятия
не имею, почему мы находимся в этой комнате.

149
00:11:03,328 --> 00:11:09,052
Мы обязательно должны работать над решением
проблем, а это значит, что мы должны нумеровать их.

150
00:11:09,152 --> 00:11:12,303
И затем с ментальной позиции,
о которой я расскажу чуть позже,

151
00:11:12,403 --> 00:11:14,634
на самом деле важно произнести
проблемы вслух.

152
00:11:14,734 --> 00:11:16,991
С позиции человека,
который пытается решить проблему.

153
00:11:17,091 --> 00:11:20,935
Поговорите с кем-нибудь
из вашей группы и скажите:

154
00:11:21,035 --> 00:11:24,339
«Мы должны решить это.
Проблема в бла, бла, бла».

155
00:11:24,439 --> 00:11:27,795
Произнесите или проговорите
или запишите её.

156
00:11:27,895 --> 00:11:31,999
Точно так же как, когда вы используете
практику повторения чьего-либо имени,

157
00:11:32,099 --> 00:11:36,248
когда вас представляют кому-то,
чтобы запомнить имя.

158
00:11:36,348 --> 00:11:40,754
Это то же самое. Это источник
решения проблемы, её констатация.

159
00:11:42,454 --> 00:11:46,802
Следующая часть, которая определенно
сложнее — и книга Пойи великолепна в этом.

160
00:11:46,902 --> 00:11:48,308
В ней много практических вещей.

161
00:11:48,408 --> 00:11:53,486
Многие из них пересекаются с нашими.
Например, что нужно понять проблему.

162
00:11:53,586 --> 00:11:55,356
Мы говорим: «У нас есть эта проблема.

163
00:11:55,456 --> 00:12:03,130
Я думаю, что нам нужна база данных NoSQL».
Чего-то не хватает, верно?

164
00:12:04,299 --> 00:12:07,277
«У нас есть эта проблема.
Нам нужна база данных NoSQL».

165
00:12:07,377 --> 00:12:10,813
Мы на самом деле не сказали, почему.

166
00:12:10,913 --> 00:12:14,566
Каковы характеристики этой проблемы,
которые приводят нас к этому пространству решения?

167
00:12:14,666 --> 00:12:19,342
Я думаю, вот в этом и есть вся
интересная часть в разработке софта.

168
00:12:19,442 --> 00:12:22,979
Итак, первый шаг: что вы знаете о том,
что вы пытаетесь сделать?

169
00:12:23,079 --> 00:12:26,996
Там определенно будет куча фактов.
Там будут требования заказчика.

170
00:12:27,096 --> 00:12:28,175
Будут другие вещи.

171
00:12:28,275 --> 00:12:31,115
Будет контекст: система должна
работать на такого рода устройствах,

172
00:12:31,215 --> 00:12:32,844
должна работать с такой продолжительностью.

173
00:12:32,944 --> 00:12:34,832
Она не может потреблять
больше, чем столько ватт,

174
00:12:34,932 --> 00:12:37,197
или должна поддерживать
10 миллионов пользователей.

175
00:12:37,297 --> 00:12:41,634
Что бы это ни было.
Требования такого плана и такие ограничения.

176
00:12:41,734 --> 00:12:43,978
Все эти условия — факты, которые вам нужно учитывать.

177
00:12:44,682 --> 00:12:49,451
Там будут вещи, про которые вы
сразу же знаете, что вы их не знаете.

178
00:12:51,351 --> 00:12:58,998
«Интересно, где мы возьмём данные в
качестве входных данных для этой системы?»

179
00:12:59,716 --> 00:13:02,654
Или: «Что мы будем делать, когда
наш основной источник данных недоступен?

180
00:13:02,654 --> 00:13:04,895
У нас есть запасной источник?»
Будут такие вопросы.

181
00:13:04,995 --> 00:13:08,530
Конечно, будут вещи, про которые
вы не знаете, что вы их не знаете.

182
00:13:10,717 --> 00:13:15,857
Но если есть вещи, о которых вы не знаете,
вы должны подумать о них сейчас.

183
00:13:15,957 --> 00:13:18,871
Другая вещь, которую нужно сделать,
это сказать, вы знаете, все говорят:

184
00:13:18,971 --> 00:13:22,582
«О, делай Х. У меня есть
отличная идея для Х».

185
00:13:22,682 --> 00:13:26,572
Как будто вы единственный человек в мире,
который когда-либо решал эту проблему.

186
00:13:26,672 --> 00:13:32,826
Это очень, очень маловероятно, поэтому
найдите готовые решения подобных проблем.

187
00:13:32,926 --> 00:13:37,050
Есть ли другие, о которых вы знаете?
Что вы можете узнать о них?

188
00:13:37,150 --> 00:13:39,444
Потому что поиск готовых решений
той же проблемы

189
00:13:39,544 --> 00:13:42,193
это лучший способ быстро
набрать скорость

190
00:13:42,293 --> 00:13:48,232
и начать работать над самыми
известными решениями в этой области.

191
00:13:48,929 --> 00:13:52,403
Потому что то, что вам нужно будет
сделать, будет на шаг впереди того,

192
00:13:52,503 --> 00:13:54,368
что сделал последний парень.

193
00:13:54,468 --> 00:13:57,502
Но если вы игнорируете то, что сделал
последний парень, вы начинаете с нуля,

194
00:13:57,602 --> 00:14:00,996
так что вы определенно хотите
осмотреться в пространстве.

195
00:14:02,755 --> 00:14:05,460
Я не защищаю какую-либо методологию
или что-то в этом роде,

196
00:14:05,560 --> 00:14:09,761
но если вы хотите заняться этой работой,
вы должны каким-то образом записать её.

197
00:14:09,861 --> 00:14:12,544
Мне все равно как.

198
00:14:14,297 --> 00:14:16,418
Еще одна вещь, которую вы должны
сделать: вы должны быть разборчивыми.

199
00:14:16,518 --> 00:14:18,914
Вы должны быть критически настроены.

200
00:14:20,198 --> 00:14:23,691
В мире ПО нам всем нужно такими быть,
потому что есть все эти вещи от сообщества.

201
00:14:23,791 --> 00:14:28,042
Это как, я просто услышал «замечательно».
Я бы хотел, чтобы «замечательно» случилось.

202
00:14:28,142 --> 00:14:33,120
Я просто слышу это 50 раз на дню.
Не все предложения замечательны.

203
00:14:35,897 --> 00:14:39,847
Трудно говорить о решениях других людей,
которые не являются замечательными.

204
00:14:39,947 --> 00:14:42,608
Так что, в основном, сосредоточьтесь
на своих собственных проблемах.

205
00:14:42,708 --> 00:14:47,390
В частности, когда вы находите решения,
когда вы пытаетесь найти решение проблемы,

206
00:14:47,490 --> 00:14:50,410
ищите дефекты в своем
собственном решении.

207
00:14:50,510 --> 00:14:55,659
И, конечно, вы могли бы поговорить об
этом, потому что технические ошибки будут.

208
00:14:55,759 --> 00:14:56,942
Ошибки в логике будут.

209
00:14:57,042 --> 00:15:02,747
Будут также и вкусовщина и личные мнения,
проблемы абстракций и тому подобное.

210
00:15:02,847 --> 00:15:05,381
Все это связано вместе,
хватит на отдельный разговор.

211
00:15:05,481 --> 00:15:09,789
Но какие бы проблемы вы ни находили
в своих собственных решениях,

212
00:15:09,889 --> 00:15:12,234
попробуйте решить их тоже,
сразу, заранее.

213
00:15:15,622 --> 00:15:20,069
Итак, другая вещь, которую вы видите:
«О, мы собираемся сделать это».

214
00:15:20,169 --> 00:15:21,294
«О, мы используем базу данных NoSQL».

215
00:15:21,394 --> 00:15:24,532
«Это здорово. У неё есть
эти 10 атрибутов. Это потрясающе».

216
00:15:27,098 --> 00:15:30,490
Действительно легко быть в восторге
от хороших сторон того, что вы делаете,

217
00:15:30,590 --> 00:15:33,065
но вы должны обращать
внимание на компромиссы.

218
00:15:33,165 --> 00:15:38,031
Шансы на отсутствие компромиссов
в любом решении невелики.

219
00:15:39,723 --> 00:15:42,982
Ещё одна вещь в том, «чего вы не знаете?».

220
00:15:43,082 --> 00:15:45,641
Если есть вещи, о которых вы знаете,
что вы их не знаете,

221
00:15:45,741 --> 00:15:47,800
в этом случае нужно иметь вопросы,
которые вы должны задать

222
00:15:47,900 --> 00:15:49,769
чтобы узнать, чего вы не знаете.

223
00:15:52,296 --> 00:15:58,766
Вы не можете знать всего, поэтому такие
вещи должны быть помечены вопросами.

224
00:15:58,866 --> 00:16:01,739
С чем бы вам ни пришлось работать,
запишите все эти вещи.

225
00:16:01,839 --> 00:16:03,847
На этой странице должны
быть знаки вопроса.

226
00:16:03,947 --> 00:16:06,651
Если нет вопросительных знаков,
вы пропустите этот шаг.

227
00:16:09,389 --> 00:16:11,402
Другая вещь, о чем вам
следует подумать:

228
00:16:11,502 --> 00:16:16,287
никто из нас не родился,
зная, как писать программы.

229
00:16:16,387 --> 00:16:22,981
Никто из нас не родился, зная про SQL,
про Интернет, протоколы или про что-то ещё.

230
00:16:24,707 --> 00:16:26,944
И если вы пытаетесь решить проблему,
особенно в пространстве,

231
00:16:27,044 --> 00:16:28,511
в котором вы еще её не решали,

232
00:16:28,611 --> 00:16:34,174
у вас будет очень ограниченная возможность
найти решение, если у вас мало информации.

233
00:16:35,219 --> 00:16:37,900
Вам нужно будет получить
много разных входных данных,

234
00:16:38,000 --> 00:16:40,973
чтобы вы могли позволить своему мозгу
вращаться между ними и сказать:

235
00:16:41,073 --> 00:16:43,975
«О, да. Эта идея и эта идея
связаны друг с другом,

236
00:16:44,075 --> 00:16:45,847
и, следовательно, я могу
сделать эту другую вещь.»

237
00:16:45,947 --> 00:16:48,158
Если вы возьмете только очень узкий фрагмент

238
00:16:48,258 --> 00:16:52,217
«Я точно вижу, что я делаю сейчас, прямо сейчас,
чтобы выйти с решением на следующей неделе»

239
00:16:52,317 --> 00:16:55,576
у вас не будет достаточно
информации для принятия решений.

240
00:16:55,676 --> 00:16:59,758
Итак, вам нужно прочитать о том
пространстве, в котором вы находитесь,

241
00:16:59,858 --> 00:17:02,760
много, очень конкретные вещи прочитать.

242
00:17:02,860 --> 00:17:04,718
Ух ты, есть и другие люди,
пытающиеся сделать то же самое;

243
00:17:04,818 --> 00:17:07,733
и затем в целом, есть эти другие
характерные проблемы;

244
00:17:07,833 --> 00:17:11,130
и, может быть, даже, если захотите,
попытаетесь найти исследовательские работы,

245
00:17:11,230 --> 00:17:12,363
которые находятся в этом же пространстве.

246
00:17:12,463 --> 00:17:15,645
Удивительно, что классные вещи
можно найти, если поискать

247
00:17:15,745 --> 00:17:18,640
что-то вроде документов ACM
(Ассоциация вычислительной техники):

248
00:17:18,740 --> 00:17:22,509
«О, мне интересно, сможем ли мы
получить определенный тип хэш-кода,

249
00:17:23,025 --> 00:17:26,095
Вы заходите в Google и вводите „хэш-код,
который делает что-то“. Нажимаете Enter.

250
00:17:26,195 --> 00:17:30,640
И если есть некоторые научные и
ACM ссылки, возьмите эти документы.

251
00:17:30,740 --> 00:17:33,252
Даже если вы понимаете только
крошечную часть статьи,

252
00:17:33,352 --> 00:17:36,781
это, вероятно, будет способствовать
вашей способности думать о своей проблеме.

253
00:17:37,720 --> 00:17:41,142
Другое дело: даже если вы не собираетесь
спорить с автором идеи вслух,

254
00:17:41,242 --> 00:17:44,060
когда вы смотрите на его решение,
будьте крайне критичны.

255
00:17:44,160 --> 00:17:48,560
Я не могу сказать вам, как часто вы
будете находить новую лучшую идею,

256
00:17:48,660 --> 00:17:52,358
полностью распяв идею последнего парня.

257
00:17:52,458 --> 00:17:53,816
Хотя бы, в вашей собственной голове.

258
00:17:53,916 --> 00:17:58,251
Разберите её на части, потому что,
когда вы разберете её,

259
00:17:58,351 --> 00:18:02,618
вы обнаружите пару вещей, которые,
возможно, они не записали, когда решали её.

260
00:18:04,329 --> 00:18:10,120
Все говорят, что проектирование — это компромиссы. Все это знают.

261
00:18:12,781 --> 00:18:15,302
Обычно, когда они говорят о компромиссах
в своем программном обеспечении,

262
00:18:15,402 --> 00:18:18,633
они говорят об отстойных частях своего софта.

263
00:18:19,586 --> 00:18:25,203
Я должен был учесть эти компромиссы.
Это не то, чем является компромисс, верно?

264
00:18:26,368 --> 00:18:30,542
Вы должны рассмотреть, по крайней мере,
два решения вашей проблемы.

265
00:18:30,642 --> 00:18:31,865
Как минимум два.

266
00:18:31,965 --> 00:18:35,931
И вы должны выяснить, что хорошо
и что плохо в этих вещах,

267
00:18:36,031 --> 00:18:40,430
прежде чем вы сможете сказать:
»Я нашёл компромисс".

268
00:18:42,362 --> 00:18:44,974
Поэтому я очень рекомендую
вам найти два решения.

269
00:18:45,074 --> 00:18:50,020
И когда вы найдёте их,
вы сможете записать их где-нибудь.

270
00:18:52,823 --> 00:18:55,529
Ладно. Итак, давайте поговорим
немного больше о практике.

271
00:18:55,629 --> 00:19:00,122
Большая часть попыток сделать эту работу
заключается в концентрации внимания.

272
00:19:02,062 --> 00:19:05,163
У нас вчера был действительно хороший
разговор о состоянии потока,

273
00:19:05,263 --> 00:19:10,042
и это своего рода концепция
связанная с концентрацией.

274
00:19:10,142 --> 00:19:12,346
И когда вы пытаетесь что-то спроектировать,

275
00:19:12,446 --> 00:19:17,833
вам понадобится самая сильная
концентрация внимания, чем когда-либо.

276
00:19:17,933 --> 00:19:21,918
И поэтому про гамак есть
несколько интересных моментов.

277
00:19:22,018 --> 00:19:26,159
Один из интересных моментов в том,
что вы можете лечь в гамак и закрыть глаза,

278
00:19:26,259 --> 00:19:30,867
и никто не знает, что вы НЕ спите,
но они не будут вас беспокоить,

279
00:19:30,967 --> 00:19:36,448
потому что подумают, что вы спите.
Так что это очень круто.

280
00:19:37,531 --> 00:19:40,812
Компьютеры плохие,
плохие источники отвлечения.

281
00:19:40,912 --> 00:19:43,372
Они совершенно не подходят,
особенно таким как мы.

282
00:19:45,360 --> 00:19:49,316
Они помогают думают о чём угодно, но не
о том, о чём я пытаюсь думать.

283
00:19:49,416 --> 00:19:53,632
Нужно сломя голову бежать от компьютера,
если вы пытаетесь сконцентрироваться.

284
00:19:53,732 --> 00:19:56,689
Почти невозможно сконцентрироваться,
сидя за компьютером.

285
00:19:57,621 --> 00:20:01,313
Другая мысль о концентрации — вам придётся пойти на компромиссы,

286
00:20:01,413 --> 00:20:03,614
когда вы пытаетесь сконцентрироваться
очень интенсивно.

287
00:20:03,714 --> 00:20:06,680
Вы выроните шары
(шары для жонглирования).

288
00:20:06,780 --> 00:20:11,394
Вы забудете перезвонить
и ответить на емейлы,

289
00:20:11,494 --> 00:20:19,646
а также сделать свои слайды для
конференций, пока не приедете в аэропорт.

290
00:20:24,176 --> 00:20:25,885
Таковы правила.

291
00:20:25,985 --> 00:20:30,305
Но главное, что вы должны сообщить об
этом процессе людям, которые вам небезразличны.

292
00:20:30,405 --> 00:20:37,614
Факт, что когда вы погружены в процесс,
вы будете казаться довольно далеко.

293
00:20:37,714 --> 00:20:42,227
И это не связано с человеком,
который вам дорог.

294
00:20:42,327 --> 00:20:47,578
Это просто характер работы такого рода,
поэтому важно сообщить им об этом.

295
00:20:47,678 --> 00:20:49,658
У многих людей не будет времени,
чтобы заниматься этим каждый день

296
00:20:49,758 --> 00:20:53,408
или в течение целой недели,
но если вы собираетесь сосредоточиться,

297
00:20:53,508 --> 00:20:55,476
определите, в каком виде это будет.

298
00:20:55,576 --> 00:20:58,614
Все знают о методе «тайм-аута» для маленьких детей
(временное отделение ребенка от окружающей среды).

299
00:20:58,714 --> 00:21:00,464
Что ж, программисты нуждаются в этом методе.

300
00:21:00,564 --> 00:21:04,948
Поэтому, как маленьким детям, им нужно
сидеть в гамаке, чтобы никто не беспокоил.

301
00:21:06,166 --> 00:21:15,013
Так что я думаю, что процесс включает
в себя две части вашего разума

302
00:21:15,113 --> 00:21:18,082
Есть книги, написанные об этом.

303
00:21:18,182 --> 00:21:22,836
Я не читал их, но они, кажется,
соответствуют моему личному опыту,

304
00:21:22,936 --> 00:21:26,762
который заключается в том, что у вас
есть бодрствующий разум и фоновый разум.

305
00:21:26,862 --> 00:21:30,497
И ваш бодрствующий разум
действительно хорош в части критики.

306
00:21:30,597 --> 00:21:36,783
Он очень хорошо анализирует и очень,
очень хороший тактик.

307
00:21:36,883 --> 00:21:41,692
Прямо сейчас нам нужно принять решение.
Лев гонится за нами.

308
00:21:41,792 --> 00:21:44,707
Прыгай влево.
Мы действительно хороши в этом.

309
00:21:44,807 --> 00:21:47,635
Вот в чем заключается наш бодрствующий разум:
сохранить нам жизнь

310
00:21:47,735 --> 00:21:52,230
и принимать краткосрочные решения,

311
00:21:52,330 --> 00:21:56,891
смотреть на немедленно предоставляемую
информацию и что-то делать с ней.

312
00:21:56,991 --> 00:22:01,997
Однако, если вы думаете, что собираетесь
сесть и посмотреть на проблему впервые,

313
00:22:02,097 --> 00:22:04,269
и уставиться в свой компьютер,
и что-то делать,

314
00:22:04,369 --> 00:22:08,315
и обсудить её в течение 10 минут,
и принять действительно хорошее решение.

315
00:22:08,415 --> 00:22:13,087
Я так не думаю. Я знаю, что
не могу этого сделать. Точно нет.

316
00:22:13,187 --> 00:22:16,518
Проблема с таким подходом в том,
что он толкает нас наверх.

317
00:22:16,618 --> 00:22:20,757
«О, я вижу это. О, я вижу это. О, я вижу…
хорошо, здесь у меня есть выбор налево или направо.

318
00:22:20,857 --> 00:22:24,703
Хорошо, я могу идти направо.
Немного вверх. Влево или вправо, вправо.

319
00:22:24,803 --> 00:22:26,427
Теперь налево. Вверх. Ещё вверх.»

320
00:22:26,527 --> 00:22:30,722
Эта часть вашего разума действительно
хороша в поиске локального максимума,

321
00:22:32,213 --> 00:22:36,010
но она не очень хороша в том, чтобы
сойти с трассы, на которой мы находимся,

322
00:22:36,110 --> 00:22:40,284
и обнаружить тот факт, что там есть еще один
холм, который действительно поднимет вас выше.

323
00:22:42,627 --> 00:22:45,756
Но я думаю, что есть очень, очень важное
занятие, которым вы должны заниматься,

324
00:22:45,856 --> 00:22:50,209
если хотите использовать весь свой мозг
и стать очень хорошими в решении проблем.

325
00:22:50,309 --> 00:22:53,471
Иными словами, подумать об использовании
своего времени бодрствования,

326
00:22:53,571 --> 00:22:57,758
чтобы назначить таски
своему фоновому разуму,

327
00:22:59,430 --> 00:23:04,466
действительно серьезно задуматься о чём-то
и создать работу для своего фонового разума.

328
00:23:06,014 --> 00:23:10,025
В этом и заключается смысл гамака,
и весь этот список, и вся эта работа,

329
00:23:10,025 --> 00:23:11,882
о которой мы собираемся поговорить,
когда вы будете бодрствовать,

330
00:23:11,982 --> 00:23:15,519
на самом деле состоит в том, чтобы
дать другой вашей половине занятие.

331
00:23:16,316 --> 00:23:18,051
Ещё одна хорошая вещь о вашем
бодрствующем разуме:

332
00:23:18,151 --> 00:23:21,664
когда вы думаете, что у вас есть прекрасная идея,
которую вы придумали в фоновом режиме,

333
00:23:21,764 --> 00:23:25,148
ваш бодрствующий разум хорошо
разбирает её на части, говоря:

334
00:23:25,248 --> 00:23:27,803
«Ах. Вы думали, что проснулись
с этой блестящей идеей,

335
00:23:27,903 --> 00:23:32,043
но теперь я вижу эту особенность,
которая кажется не такой блестящей».

336
00:23:33,254 --> 00:23:34,756
Итак, давайте поговорим о фоновом разуме.

337
00:23:34,856 --> 00:23:39,208
Я не собираюсь прямо приравнивать его
к спящему разуму, но спящий разум

338
00:23:39,308 --> 00:23:41,769
это первый пример фонового разума.

339
00:23:41,869 --> 00:23:45,305
Вы можете получить доступ к своему
фоновому разуму в течение дня

340
00:23:45,405 --> 00:23:49,361
когда вы не спите, но это сложно.

341
00:23:50,599 --> 00:23:52,694
Он хорош в создании связей.

342
00:23:52,794 --> 00:24:01,582
Такие вещи, как «Если я сделаю хижину из грязи,
и будет сильный дождь, она распадётся»,

343
00:24:02,883 --> 00:24:06,328
это не обязательно та вещь, которую
вы можете тактически выяснить.

344
00:24:06,428 --> 00:24:10,360
Ваш фоновый разум будет знать аспекты
всех этих различных компонентов,

345
00:24:10,460 --> 00:24:11,965
устанавливать связи и синтезировать их.

346
00:24:12,065 --> 00:24:16,456
Даже если вы думаете, что действительно
умеете принимать решения на лету,

347
00:24:16,556 --> 00:24:20,544
вы почти всегда просто возвращаете
что-то, что уже понял ваш фоновый разум.

348
00:24:21,495 --> 00:24:26,038
Так что фоновый разум хорош в
синтезировании вещей. Он хорош в стратегии.

349
00:24:26,138 --> 00:24:30,601
И поэтому, когда Марк говорит об
абстракциях и тому подобных вещах,

350
00:24:30,701 --> 00:24:34,089
абстракции — это программная стратегия.

351
00:24:34,189 --> 00:24:38,724
Поскольку идея заключается в том, что вы
принимаете какое-то супер глобальное решение,

352
00:24:38,824 --> 00:24:41,143
которое должно быть правильным
в целом ряде контекстов,

353
00:24:41,243 --> 00:24:44,002
в которых вы пока не можете
принимать тактические решения.

354
00:24:44,102 --> 00:24:48,472
Что значит создать абстракцию, из которой
вы собираетесь создавать библиотеки?

355
00:24:49,330 --> 00:24:53,093
Что значит поместить что-то в язык
программирования, когда я понятия не имею,

356
00:24:53,193 --> 00:24:54,803
что вы, ребята, собираетесь с этим делать?

357
00:24:55,888 --> 00:24:58,458
Это более стратегическая вещь.

358
00:24:58,558 --> 00:25:00,385
Вы не создаёте языки
программирования таким образом:

359
00:25:00,485 --> 00:25:04,146
«Как этот язык программирования
будет обрабатывать HTTP-запросы?»

360
00:25:04,895 --> 00:25:08,669
Что вы хотите сделать, так это дать
Марку то, что он сможет использовать,

361
00:25:09,813 --> 00:25:13,459
когда у него будет тактическое
решение в отношении HTTP-запросов.

362
00:25:13,559 --> 00:25:18,569
И это стратегическое мышление, и ваш фоновый
разум хорош в стратегическом мышлении.

363
00:25:18,669 --> 00:25:21,927
Если вы хотите создать абстракцию,
вы должны найти время,

364
00:25:22,027 --> 00:25:24,985
чтобы заняться такими размышлениями,
потому что это та часть вашего мозга,

365
00:25:25,085 --> 00:25:29,027
из которой появляются абстракции.
Она создаёт их. Она проводит аналогии.

366
00:25:30,481 --> 00:25:35,399
Я думаю, что именно здесь вы решаете
большинство нетривиальных задач.

367
00:25:36,246 --> 00:25:39,008
Иногда вы можете принимать
правильные решения на лету,

368
00:25:39,330 --> 00:25:41,258
но если вы действительно пытаетесь
решить что-то сложное,

369
00:25:41,358 --> 00:25:44,184
вам нужно задействовать
другую половину своей головы.

370
00:25:45,920 --> 00:25:52,864
Так что я не просто так говорю это.
Американские ученые говорят, что когда мы спим,

371
00:25:52,964 --> 00:25:57,187
мы обрабатываем информацию
в течение дня, это довольно очевидно.

372
00:25:58,739 --> 00:26:01,834
Сон укрепляет память,
и это хорошо.

373
00:26:01,934 --> 00:26:05,006
Я имею в виду, важно помнить,
над чем вы работаете.

374
00:26:05,106 --> 00:26:09,179
Но что еще более важно,
сон отлично разбирается с такими вещами.

375
00:26:09,279 --> 00:26:11,461
Таким образом…

376
00:26:11,561 --> 00:26:14,295
Я просто выступаю за то, чтобы получить
как можно больше входных данных.

377
00:26:14,395 --> 00:26:18,212
Много входных данных, производится
анализ требований в пространстве,

378
00:26:18,312 --> 00:26:22,721
прочитывается всё, что нужно,
смотрится на подходящие решения

379
00:26:22,821 --> 00:26:26,775
и разделяется на части.
Куча разных вещей.

380
00:26:26,875 --> 00:26:31,544
Когда вы решаете, что важно, а что нет?
Когда вы спите.

381
00:26:32,537 --> 00:26:34,076
Вот что происходит.

382
00:26:34,900 --> 00:26:40,235
Эволюция решила эту проблему за нас,
и это решение, которое она придумала.

383
00:26:40,335 --> 00:26:44,241
Мы не можем игнорировать его.
Мы должны использовать его.

384
00:26:45,195 --> 00:26:55,832
Но самое главное — найти скрытые отношения
и решить проблемы, над которыми мы работали.

385
00:26:57,237 --> 00:27:03,261
Итак, представьте, что кто-то говорит:
«У меня есть проблема этого, того, того».

386
00:27:03,361 --> 00:27:05,196
И вы смотрите на неё в течение
10 минут и говорите:

387
00:27:05,296 --> 00:27:08,010
«Хорошо, я собираюсь пойти в кино
и сделать что-то ещё или что-то ещё».

388
00:27:08,110 --> 00:27:11,865
Затем вы идёте спать. Собираетесь
ли вы решить эту проблему во сне?

389
00:27:13,652 --> 00:27:14,417
Кто-то из зала: «Конечно».

390
00:27:14,517 --> 00:27:16,810
Нет.

391
00:27:16,910 --> 00:27:22,684
Вы ведь не думали над этой проблемой?
Нет, вы не думали о ней.

392
00:27:22,784 --> 00:27:25,044
Вы не думали о ней достаточно
усердно, пока бодрствовали,

393
00:27:25,144 --> 00:27:27,608
чтобы она стала важной для
вашего разума, пока вы спите.

394
00:27:27,708 --> 00:27:30,784
И мы возвращаемся к тому,
что питает ваш фоновый разум.

395
00:27:30,884 --> 00:27:35,246
Вы действительно должны усердно поработать:
просто думайте над ней, не записывая её.

396
00:27:35,346 --> 00:27:37,564
Просто подумайте о проблеме в течение дня,

397
00:27:37,664 --> 00:27:41,795
чтобы она стала повесткой дня
для вашего фонового разума.

398
00:27:41,895 --> 00:27:43,923
Вот как это работает.

399
00:27:44,023 --> 00:27:48,631
Когда люди где-то там говорят:
«Боже мой. Как я собираюсь найти еду,

400
00:27:48,731 --> 00:27:54,261
но я знаю, что видел там лося, и он,
кажется, иногда находится у воды.»

401
00:27:54,361 --> 00:27:56,671
Именно тогда вы просыпаетесь
пещерным человеком и говорите:

402
00:27:56,771 --> 00:28:01,159
«Давайте пойдем охотиться
на животных у воды».

403
00:28:01,259 --> 00:28:04,146
Это не логический вывод.

404
00:28:04,246 --> 00:28:10,224
Вроде ваш бодрствующий разум догадался до этого,
но не обязательно, что это было логически.

405
00:28:10,324 --> 00:28:13,298
Это действительно процесс такого
параллельного мышления.

406
00:28:13,398 --> 00:28:15,955
Так что это очень важно.

407
00:28:16,055 --> 00:28:22,278
В общем, у нас есть проблема, потому
что нас просят написать софт,

408
00:28:22,378 --> 00:28:25,608
который со временем становится
все более и более сложным.

409
00:28:26,714 --> 00:28:33,403
И мы знаем, что существует предел
рабочей памяти типа 7 плюс/минус 2.

410
00:28:33,503 --> 00:28:37,721
И как бы умны мы ни были, мы все
страдаем от одного и того же ограничения.

411
00:28:38,513 --> 00:28:44,440
Но проблемы, которые мы призваны решать,
обычно гораздо больше, чем эти числа.

412
00:28:44,841 --> 00:28:48,296
Так что же нам делать? Если мы не можем
вместить всё в нашу голову одновременно,

413
00:28:48,396 --> 00:28:53,306
как мы можем работать над проблемой
с более чем девятью компонентами?

414
00:28:57,454 --> 00:29:02,673
Я рекомендую вам записать всю
информацию. Особенно в наше время.

415
00:29:02,773 --> 00:29:06,575
Итак, вы многое записали про проблему.
Вы знаете, в чём проблема.

416
00:29:06,675 --> 00:29:10,220
Вы знаете много фактов о ней.
Вы знаете ограничения среды исполнения.

417
00:29:10,320 --> 00:29:13,958
Вы знаете то, чего не знаете. Вы задали
себе эти вопросы. Вы записали их.

418
00:29:14,058 --> 00:29:15,359
«Я хотел бы знать, чтобы я знал то-то.»

419
00:29:15,872 --> 00:29:18,385
Вы посмотрели на конкурирующие
вещи и сказали:

420
00:29:18,485 --> 00:29:21,394
«Это прекрасно работает здесь, но эта часть
этой конкурирующей вещи — отстой.

421
00:29:21,494 --> 00:29:25,040
Я ненавижу её. Хотелось бы,
чтобы её здесь не было».

422
00:29:25,140 --> 00:29:28,484
Вы положили важную мысль
в свой фоновый разум.

423
00:29:28,584 --> 00:29:35,553
И когда вы пытаетесь загрузить проблему,
вам нужно изучить её,

424
00:29:35,653 --> 00:29:38,171
вот в этом и был смысл записать её раньше.

425
00:29:38,271 --> 00:29:42,353
Если вы записали все вещи,
в том числе некоторые наброски того

426
00:29:42,453 --> 00:29:47,746
как вы хотите решить проблему, вы можете
просто оглянуться и посмотреть на неё.

427
00:29:47,846 --> 00:29:50,450
И это вроде как, сколькими шарами
можно жонглировать одновременно?

428
00:29:50,550 --> 00:29:51,747
Ну, вы можете жонглировать
только определённым количеством.

429
00:29:51,747 --> 00:29:52,994
Я не могу жонглировать вообще.

430
00:29:53,094 --> 00:29:57,223
Но если мы посмотрим на 7 плюс/минус 2, мы
скажем, что мы можем жонглировать 7-9 шарами.

431
00:29:57,323 --> 00:30:00,283
Но если вы можете себе представить,
что у вас есть помощник,

432
00:30:00,383 --> 00:30:03,939
который время от времени может вынимать
один из них и помещать шар другого цвета,

433
00:30:04,039 --> 00:30:07,715
тогда вы можете жонглировать шарами
20 разных цветов одновременно,

434
00:30:07,815 --> 00:30:11,609
если в воздухе только девять
шаров одновременно.

435
00:30:11,709 --> 00:30:15,124
Вы будете как бы оглядываться
вокруг на все эти кусочки

436
00:30:15,224 --> 00:30:21,939
и класть произвольные фигуры
в свою голову в разные моменты времени.

437
00:30:25,196 --> 00:30:30,713
Может быть, вы будете рисовать картинки.
Не используйте UML для этого.

438
00:30:30,813 --> 00:30:33,826
Это не методология.
Так что пробуйте снова и снова.

439
00:30:35,113 --> 00:30:39,219
Но тогда вам нужно снова
отойти от компьютера.

440
00:30:39,319 --> 00:30:43,725
Есть еще одна очень важная часть,
которая заключается в том чтобы пойти

441
00:30:43,825 --> 00:30:50,340
и сесть куда-нибудь, не имея больше
входных данных, закрыть глаза и не уснуть.

442
00:30:50,440 --> 00:30:54,988
Закройте глаза, потому что у нас есть
другая особенность. Все знают, что это такое.

443
00:30:55,088 --> 00:30:56,407
Это действительно сложно описать.

444
00:30:56,507 --> 00:30:59,353
У всех есть понятие своего
собственного мысленного взгляда?

445
00:30:59,453 --> 00:31:02,654
То, что вы видите, когда закрываете
глаза и начинаете думать о чём-то.

446
00:31:02,754 --> 00:31:05,824
Это странно, я имею в виду, что на самом
деле это не визуально в техническом плане,

447
00:31:05,924 --> 00:31:07,632
хотя некоторые люди действительно
визуально богаты.

448
00:31:07,732 --> 00:31:10,769
Я знаю, для меня это… Я не знаю.

449
00:31:10,869 --> 00:31:13,289
Я не могу описать это,
это не очень реалистично.

450
00:31:14,345 --> 00:31:18,607
Но вы должны сделать это.
Эта часть важна для вашего мозга,

451
00:31:18,707 --> 00:31:23,906
потому что в этот момент вы
переключаетесь из режима ввода информации.

452
00:31:24,006 --> 00:31:25,317
Если вы просто посмотрите на свой список,

453
00:31:25,417 --> 00:31:27,607
вы находитесь в режиме
«Я получаю входные данные».

454
00:31:27,707 --> 00:31:32,577
Но когда вы сидите и обдумываете что-то,
и хешируете это в своей голове,

455
00:31:32,677 --> 00:31:37,091
у вас нет другого ввода, что
означает, что вы тренируете возврат.

456
00:31:37,191 --> 00:31:39,813
Я посмотрел на эти 20 пунктов.
Допустим, было всего 20.

457
00:31:39,913 --> 00:31:44,995
Я смотрел на эти 20 пунктов снова и снова.
И я прыгал между ними.

458
00:31:45,095 --> 00:31:50,976
Теперь я закрываю глаза и пытаюсь вернуть их
и подумать о них немного больше в моей голове,

459
00:31:51,076 --> 00:31:54,159
и вы обнаружите, что если вы сделали последний
шаг, возвращая информацию снова и снова,

460
00:31:54,259 --> 00:32:00,000
вы действительно сможете сесть в гамак и вытащить
все части довольно большой проблемы из вашей головы

461
00:32:00,100 --> 00:32:03,227
возможно, одновременно,
и подумать о них таким образом.

462
00:32:03,327 --> 00:32:07,783
Это упражнение действительно очень важно.
Я не знаю, почему, просто так и есть,

463
00:32:07,883 --> 00:32:11,435
потому что оно ускоряет возврат,
который определенно помогает

464
00:32:11,535 --> 00:32:14,058
разобраться с важными моментами
вашему фоновому разуму.

465
00:32:14,905 --> 00:32:16,955
Будем называть это «временем
мысленного взгляда»

466
00:32:19,054 --> 00:32:26,326
Теперь вы закончили. Пирог в духовке.
Вам просто нужно подождать. Это так здорово.

467
00:32:28,510 --> 00:32:32,901
Одна из вещей, которые я бы сказал:
по крайней мере, подождите ночь.

468
00:32:33,001 --> 00:32:37,653
Неважно, как, вы и ваши приятели говорили
об этом, и вы просто чувствуете давление:

469
00:32:37,753 --> 00:32:40,037
«Я понял в чём дело»

470
00:32:41,505 --> 00:32:46,214
Переспите с этой мыслью хотя бы одну ночь.
Как минимум одну, если это важное решение.

471
00:32:46,395 --> 00:32:51,256
*Рич показал на слайде строку:
спите трезвыми для получения лучших результатов

472
00:32:51,799 --> 00:32:55,461
Сколько людей проснулись сегодня утром
с ответом на сложную проблему?

473
00:32:58,369 --> 00:33:04,415
Вы видите? Это наука. Наука на работе.
Нет, это действительно печальная вещь.

474
00:33:04,515 --> 00:33:07,159
Если вы не думаете об этом,
то получится так:

475
00:33:07,259 --> 00:33:09,521
«Что случилось? Я много работал весь день».

476
00:33:09,621 --> 00:33:14,015
Например: «Я закончил работать.
Время отдыхать».

477
00:33:14,115 --> 00:33:17,986
К сожалению, если вы верите в то,
что я говорю сегодня,

478
00:33:19,081 --> 00:33:23,152
вы на самом деле делаете
что-то важное пока спите.

479
00:33:23,252 --> 00:33:28,106
Поэтому иногда вам действительно нужно дать
мозгу шанс выполнить эту другую часть работы.

480
00:33:28,206 --> 00:33:33,340
Если вы всегда отрицаете это, я не думаю,
что у вас будут лучшие результаты.

481
00:33:34,719 --> 00:33:37,905
К сожалению, иногда одной ночи
не достаточно.

482
00:33:38,005 --> 00:33:41,916
Некоторые большие проблемы, особенно
поиск действительно хороших абстракций

483
00:33:42,016 --> 00:33:46,342
или поиск ответов на вещи, которые удовлетворяют
множеству одновременных ограничений,

484
00:33:46,442 --> 00:33:48,616
занимают много времени.

485
00:33:48,716 --> 00:33:54,071
Это так. И я знаю, все должны
поставлять фичи и всё такое.

486
00:33:54,171 --> 00:33:57,431
В этом случае многое из того,
что я говорю, не подходит.

487
00:33:57,531 --> 00:34:00,928
И, как я уже говорил ранее, я считаю,
что это отличная возможность,

488
00:34:01,028 --> 00:34:04,120
когда у меня есть много времени,
чтобы подумать о проблеме,

489
00:34:04,220 --> 00:34:06,875
потому что я знаю, что придумаю
лучшее решение.

490
00:34:07,790 --> 00:34:10,673
Один из способов, с помощью которого вы
можете справиться с этим и не попасть в тупик:

491
00:34:10,773 --> 00:34:12,927
«Хорошо, позвольте мне подумать
об этом в течение 3 месяцев».

492
00:34:13,027 --> 00:34:19,480
— потому что большинство менеджеров
не очень восприимчивы к этому предложению.

493
00:34:21,510 --> 00:34:26,923
— просто поработайте над чем-то ещё,
но только в другой день

494
00:34:27,023 --> 00:34:30,369
Попробуйте работать над чем-то
одним в течение дня.

495
00:34:30,469 --> 00:34:34,320
Но если со временем у вас будет три проекта,

496
00:34:34,420 --> 00:34:38,824
вполне возможно загрузить один
и работать над ним три дня.

497
00:34:38,924 --> 00:34:43,328
И вы обнаружите, что вы не находите ответов
ни на один из своих вопросов

498
00:34:43,428 --> 00:34:47,814
и не можете придумать новые решения,
вы немного застряли.

499
00:34:47,914 --> 00:34:51,604
Просто переключитесь на другой проект и
работайте над ним в течение нескольких дней.

500
00:34:51,704 --> 00:34:53,632
Вы должны амортизировать время загрузки.

501
00:34:53,732 --> 00:34:57,660
Для загрузки чего-либо может потребоваться
от часа до целого дня, поэтому,

502
00:34:57,760 --> 00:35:00,223
как только вы загрузили информацию
в себя, попытайтесь думать над ней

503
00:35:00,323 --> 00:35:02,947
по крайней мере остаток дня,
или три дня, или больше.

504
00:35:03,047 --> 00:35:07,047
Но не зацикливайтесь на застрявшей вещи.

505
00:35:07,147 --> 00:35:11,482
Просто переключитесь. Не застревайте.
Переключайтесь.

506
00:35:11,582 --> 00:35:14,793
Или получите больше информации.
Поговорите о проблеме подробнее.

507
00:35:14,893 --> 00:35:18,474
Продолжайте стимулировать путь к решению.
Не зацикливайтесь на ней.

508
00:35:19,711 --> 00:35:24,979
Затем, в конце концов, пирог выходит из духовки.
Вы просыпаетесь, и у вас есть отличная идея.

509
00:35:25,079 --> 00:35:30,187
Вы думаете, что знаете ответ на свою проблему,
или у вас есть хорошая идея для решения.

510
00:35:31,952 --> 00:35:37,884
К сожалению, иногда у вас есть ответ
не на ту проблему, над которой вы работали.

511
00:35:37,984 --> 00:35:42,831
Вы работали над тремя проектами и загрузили
проект C, но вы проснулись с ответом на проект A.

512
00:35:42,931 --> 00:35:48,821
Это должно быть хорошо. Просто
переключитесь и воспользуйтесь этим решением.

513
00:35:48,921 --> 00:35:50,561
По крайней мере, запомните его.

514
00:35:50,661 --> 00:35:53,856
Если вы проснётесь с ответом на другую проблему,
с которой не можете работать в этот день,

515
00:35:53,956 --> 00:35:58,756
запишите результаты этого фонового процесса.
Они действительно полезны.

516
00:35:58,856 --> 00:36:06,117
Наконец, вам нужно взять свои великие идеи
и выяснить, действительно ли они велики,

517
00:36:06,217 --> 00:36:09,475
либо проанализировав их больше,
что, безусловно, важно,

518
00:36:09,575 --> 00:36:12,962
но иногда вы должны напечатать
их на своём компьютере.

519
00:36:14,240 --> 00:36:15,873
На самом деле, мы все должны это сделать.

520
00:36:15,973 --> 00:36:18,477
Таким образом, вы, в конце концов,
должны писать код.

521
00:36:18,577 --> 00:36:23,714
Это забавно, у Стю есть этот — он видел
некоторые из моих таблиц проектирования.

522
00:36:23,814 --> 00:36:28,088
Как он их называет, «документ отчаяния»
или как-то еще, он их называет.

523
00:36:28,188 --> 00:36:32,055
Кажется мы не можем этого сделать.
Это не работает так.

524
00:36:32,155 --> 00:36:36,437
Знаки вопроса, бла, бла. Эта другая вещь
была как… Один негатив.

525
00:36:36,537 --> 00:36:41,961
Но это сложности в процессе решения проблем.
Это не отчаяние. Они позитивны.

526
00:36:42,061 --> 00:36:45,732
В нём говорится: «Я знаю, какие у меня сложности
и поэтому я могу работать над ними».

527
00:36:47,461 --> 00:36:51,037
Вы получаете решение, теперь у вас есть
что-то, поэтому вы…

528
00:36:53,388 --> 00:36:55,971
Постарайтесь печатать поменьше.
Я знаю о чём говорю.

529
00:36:58,183 --> 00:37:01,791
Потому что, если я думаю, что у меня
есть ответ, и этот ответ небольшой,

530
00:37:01,891 --> 00:37:07,903
это один из самых убедительных
признаков того, что он, вероятно, хорош.

531
00:37:10,945 --> 00:37:18,008
И я надеюсь, что, пройдя весь этот процесс,
вы обретёте уверенность после того

532
00:37:18,108 --> 00:37:19,529
как увидите, что решение работает.

533
00:37:19,629 --> 00:37:22,150
Итак, вы говорите: «Вы знаете что,
я никогда не делал этого раньше,

534
00:37:22,250 --> 00:37:24,839
но я действительно думал об этом,
и это решение,

535
00:37:24,939 --> 00:37:29,331
которое я нашел за ночь кажется
потрясающим, и ух! Поехали!»

536
00:37:31,539 --> 00:37:35,008
Важно взглянуть на то, что вы сделали,
запустить решение, увидеть,

537
00:37:35,108 --> 00:37:38,977
узнать что-то новое о решении и сказать:
«О, вы знаете, моё предположение. Оно неверно.

538
00:37:39,077 --> 00:37:42,765
Я думал, что это будет иметь такую ​​
характеристику, но это не так и т.д.»

539
00:37:42,865 --> 00:37:47,171
Я не защищаю Каскадную модель.
Попробуйте разные подходы и возвращайтесь.

540
00:37:47,271 --> 00:37:50,575
Это хорошо.
Но не надейтесь на них.

541
00:37:52,569 --> 00:37:56,904
Стоматология через тестирование,
я не думаю, что смогу придумать лучшее название.

542
00:37:58,483 --> 00:38:00,060
Так это не работает.

543
00:38:00,160 --> 00:38:10,155
Последняя мысль: вы будете ошибаться.
Я часто ошибаюсь. Это часть игры.

544
00:38:10,255 --> 00:38:14,628
Вы будете думать о лучших идеях. Я думаю,
что это одна из самых захватывающих вещей.

545
00:38:14,728 --> 00:38:17,261
Я думаю, что независимо от того,
о чем я когда-либо думал,

546
00:38:17,361 --> 00:38:20,099
тот факт, что я знаю, что буду думать
над лучшими решениями

547
00:38:20,199 --> 00:38:22,477
хотя они и будут не идеальными,
потому что я знаю,

548
00:38:22,663 --> 00:38:26,943
что принёс что-то, что было не самым лучшим — означает, что я всё ещё в игре.

549
00:38:27,043 --> 00:38:30,723
Всё ещё получается.
Так что вы будете думать о лучших идеях.

550
00:38:30,823 --> 00:38:36,287
А ещё факты меняются.
Они могут измениться по двум причинам, верно?

551
00:38:36,387 --> 00:38:39,616
Во-первых, вы пропустили некоторые
из них в самом начале.

552
00:38:39,716 --> 00:38:41,786
Они вновь открываются вами,
потому что вы пропустили их.

553
00:38:41,886 --> 00:38:48,866
Что еще у нас есть? Изменение требований.
Мы знаем, что так бывает.

554
00:38:48,966 --> 00:38:53,031
Факты будут меняться.
Когда факты меняются, не закапывайтесь.

555
00:38:53,131 --> 00:38:57,358
Проверьте снова и посмотрите,
является ли ваш ответ все ещё верным

556
00:38:57,458 --> 00:38:59,587
в контексте новых требований,
новых фактов.

557
00:38:59,687 --> 00:39:04,322
А если это не так,
поменяйте решение и не извиняйтесь.

558
00:39:05,329 --> 00:39:11,193
Иногда вы просто будете совершать ошибки, ошибки
в логике или просто пойдёте не в ту сторону.

559
00:39:12,429 --> 00:39:13,571
Это нормально.

560
00:39:14,377 --> 00:39:16,070
Если бы я мог пропагандировать что-либо,

561
00:39:16,170 --> 00:39:21,799
то я бы сказал «не бойтесь»,
особенно «не бойтесь ошибаться».

562
00:39:25,336 --> 00:39:31,608
В итоге, это были рассуждения.
Выводов не будет.

563
00:39:31,708 --> 00:39:46,982
Автор перевода и субтитров:
Константин Проскурня — t.me/ProsWeb
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+16
Комментарии 0
Комментарии Комментировать

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн