Я отправился в свой первый программный вояж с Valaa Technologies. Это вторая часть. "Часть первая".

Я проснулся в понедельник утром с оптимизмом. Солнце сияло, листья мерцали изумрудами на фоне голубого неба, а в автобусе ничего странного не происходило. Он выбросил меня из центра города, и я плыл вместе с ветерком.

Каждый день по дороге в офис я проходил мимо своего любимого суши-бара, как только он открылся. Сегодня хозяин был на улице и курил на прохладном утреннем воздухе. Мы кивнули в знак взаимного признания, и я почувствовал, что с миром все в порядке.

Десять минут спустя я скрючился на столе, пот стекал с пупка и усеивал грудь пурпурной футболки. Я сделал мысленную заметку, чтобы сказать своей семье, чтобы они тоже не ездили в Финляндию летом.

Это было напоминанием: не устраивайся слишком удобно.

Накануне вечером я потратил пару часов на то, чтобы печатать учебник для начинающих на Валаа. Притворившись собой неделю назад, я познакомил пользователя с несколькими вещами, которые вы найдете в первый час любого учебника по JavaScript:

Шаг 1. создайте две переменные. Установите равным числу один. Назовите первую птичку, вторую - otherBirdy.

Шаг 2. создайте функцию с именем whenTwoBirdiesLoveEachOtherVeryMuch, которая складывает две птички вместе и умножает результат на три. Назовите результат «happyFamily».

Шаг 3. создайте функцию с именем hungryCat, которая проходит через happyFamily, вычитая 1 каждый раз, пока happyFamily не будет = 0. Не волнуйтесь.

Я впервые столкнулся с потоком на Валаа - неуловимым, но чрезвычайно продуктивным состоянием, в котором вы максимально используете свои навыки для достижения конкретной задачи. Вы не разочарованы и не скучаете. Это правильная каша обучения и продуктивности, и я плавал в ней с широко открытым ртом.

То, что я начал писать такие простые задачи в потоке, было напоминанием о том, как далеко мне нужно продвинуться за несколько коротких недель.

Я впервые поделился с Вилле своей идеей об изучении Валаа и написании об этом во время бессвязного собеседования перед стажировкой. Он выглядел заинтересованным, поэтому я не стал упоминать, что десять минут назад это пришло мне в голову, вибрируя по дороге на Валаа на автобусе номер 6.

«Вы бы хотели завершить какой-нибудь проект за эти пять недель?»

«Конечно, определенно», - сказал я, охваченный первым уколом сомнения. Я увидел, что приходит следующий вопрос, и мои мысли забились.

"Любые идеи? Являетесь ли вы частью сообщества, может быть, в США, которое могло бы использовать приложение? "

В 2015 году я прошел по Аппалачской тропе. Это означает, что я провел пять месяцев, гуляя вверх и вниз по гигантским холмам в лесу и почти не принимая душ. Каждый год весной пара тысяч человек отправляются на поиски, чтобы завершить все это. К осени их число сократится до нескольких сотен, а остальные будут отсеяны травмами, болезнями или выгоранием.

Лучший отпуск на свете!

Я рассказал об этом Вилле, и мы кое-что придумали:

Я бы создал на Валаа социальное приложение, разработанное в первую очередь для путешественников по Аппалачской тропе, которое позволяет пользователям создавать заметки или изображения. Когда они отправляют свою записку, она «сбрасывается» в их координатах. Когда другой путешественник оказывается на расстоянии, скажем, 5 км от записки, он может ее просмотреть. Это проект, отвечающий нескольким важным критериям:

  1. Он основан на основных сильных сторонах Valaa (коммуникабельность, масштабируемость без усилий).
  2. Это довольно просто, с местом для дополнительных функций, если позволяет время.
  3. Он действительно полезен для целевой аудитории, поскольку он оцифровывает традиционный «журнал убежища» и из уст в уста. Это не только забавное социальное приложение, но и способ транслировать важную информацию по местности: агрессивные животные, ненадежный источник воды, заблудившийся путешественник.

Я также мог убедить Вилле позволить мне называть записи «пометом».

Вернувшись за мой потный стол в Valaa, я начал думать, что все это «попытаться выучить что-то по-настоящему быстро и написать об этом» казалось намного круче, когда это делал кто-то другой.

Но планирование финального приложения, которое я предварительно (но с любовью) назвал «HelloHiker», все еще находилось в начальной стадии. Предстояло еще заложить большой фундамент, поэтому мне дали новый проект: составить список задач.

Мне пришлось бы расширить свои знания, полученные на первой неделе, когда я кодировал калькулятор ИМТ, читал учебные пособия и учился у Вилле. Там должно быть текстовое поле и кнопка отправки, которая добавит элемент в список - наши «Задачи». Основная цель проекта заключалась в том, чтобы помочь мне лучше понять файловую структуру Valaa.

И это будет называться Суперзадача!

В ту среду Вилле сел со мной на интенсивный сеанс, чтобы «слегка травмировать напуганного стажера». Тема: Циклы ForEach Валаа.

Я сосредоточился и попытался удержаться. Я пристально смотрел на каждое место, на которое он указывал, толстым пальцем на микроскопическом тексте моего скромного ноутбука. Когда мы подошли к доске, я пристально смотрел в глаза, пока мои пальцы набирали ноты на клавиатуре с головокружительной скоростью, которую я оттачивал, как катана, когда боролся с пятнадцатилетней интернет-зависимостью.

По прошествии часа я никак не мог понять эту концепцию. Я начал улавливать намек на разочарование от Вилле, и был ли он реальным или в моей голове, я не мог винить его.

Ты, должно быть, шутишь

После ухода Вилле я почти час смотрел на блок кода, который мы только что просмотрели. В моем теле нарастало напряжение. Я хотел выступить, но не мог найти парус, на который можно было бы натолкнуться.

К счастью, я несколько раз попадал в «кроличью нору» на TED Talk. Я кое-что уловил. Одна из таких вещей: притвориться, будто вы учите кого-то делать что-то, - неплохая идея, если вам нужно научиться что-то делать.

Один из лучших выступающих на TED, Сенека, знал это давным-давно. В письме своему приятелю по подотчетности Луцилию он сказал: «Мужчины учатся, пока они учат».

Оптимизированный для SEO термин smartypants для обозначения этого - техника Фейнмана.

Как и большинство полезных стратегий обучения, я никогда раньше не применял их на практике, но они мне понадобились сейчас.

Я вставил блок кода в файл Google Docs и начал разбирать его, выделяя почти каждое слово и записывая длинные бессвязные пояснения в разделе комментариев. Я перебирал его снова и снова, писал и смотрел.

Его основная задача в контексте SuperTask - брать код, сгенерированный каждый раз, когда пользователь нажимает «Добавить задачу», и отображать его пользователю в списке. Оттуда, используя цикл ForEach, список можно было бы обрабатывать как одно целое: элементы можно было перевернуть, распределить по категориям, отфильтровать и т. Д.

Спустя поистине ужасное количество времени я отправил ссылку Вилле для обратной связи и пошел домой. Пытаясь отключить свой мозг на несколько часов, я проверил свою электронную почту. Был один от Вилле.

«Вы трансформируетесь. :) »

Следующие несколько дней я работал над SuperTask.

Сначала я создал текстовое поле с кнопкой, при нажатии на которую создавалась новая папка, представленная в Zero. Эти папки, которые представляли каждую задачу, содержали несколько частей информации: имя задачи, была ли она «выполнена» или нет, ее класс (Задача, Проект, Ссылка), а также HTML-код, который фактически отображал ее на страница. Многое происходило в фоновом режиме, но пользователю все еще казалось, что он нажимает кнопку «Добавить задачу», которая ничего не делает.

Но, потратив несколько часов на изучение каждой детали цикла ForEach, я смог понять его достаточно хорошо, чтобы перенести синтаксис из урока с Вилле и заставить его работать: задачи, которые я создал, пока невидимые на страница, внезапно появившаяся в пользовательском графическом интерфейсе. Я кулаком накачал воздух.

К концу недели я добавил несколько новых критических концепций в свой набор инструментов и создал новое приложение, борясь со значительно меньшей экзистенциальной тревогой. Я действительно трансформировался? Я не был уверен, но чувствовал себя выполненным.

Ожидается мой последний проект - HelloHiker.