В моем предыдущем посте я использовал слово интенсивный для описания первой недели Hack Reactor. Я явно понятия не имел, что меня ждет. С этого момента я буду осторожен в выборе слов. При этом термин, который описывает недели 2 и 3 для меня, — это эффект тетриса.

Последние 2 недели состояли из спринтов, посвященных концепциям внешнего интерфейса, а также спринта по алгоритмам, который требовал от нас решения печально известной проблемы с N-ферзями. Нам также приходилось каждое утро решать задачи по программированию (называемые игрушечными задачами), чтобы попрактиковаться в вопросах для интервью.

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

Однако недостаточно просто написать работающий код. Мы обязаны учитывать ограничения по времени и пространству, поскольку неэффективные решения могут не пройти тесты.

На второй неделе мы использовали html, css, javascript и jQuery, чтобы увидеть, как создаются клиентские приложения без каких-либо фреймворков. Мы впервые столкнулись с серверами при создании приложения чата, которое отправляло запросы GET и POST к серверу Parse, которые были общими для всех в нашей когорте.

Использование общего сервера означало, что мы подвергались атакам межсайтового скриптинга (XSS-атакам). Я увидел в этом шанс осуществить свои голливудские хакерские мечты. Я провел исследование и успешно внедрил скрипты в приложения некоторых товарищей по группе, установив их html-фоны на мою картинку, в результате оставив свой след.

Мне не потребовалось много времени, чтобы обнаружить, что карма реальна, когда на меня напал другой товарищ по группе, который превратил мое приложение для чата в радугу, изменив цвет ВСЕГО. Все это было в хорошем настроении. Нас просили не проводить атаки таким образом, чтобы замедлить обучение друг друга (например, не создавать всплывающие бесконечные оповещения). Во всяком случае, наши атаки сделали жертв более продуктивными, заставив их научиться защищать свои приложения.

На третьей неделе мы познакомились с тремя интерфейсными фреймворками — Backbone.js, React и AngularJS. Мы создали одно и то же приложение, используя каждый из этих фреймворков. Хотя некоторые могут сказать, что мы «изучили 3 фреймворка», кто-нибудь когда-нибудь изучал фреймворк?

Я бы сказал, что, будучи вынужденным читать сообщения документации/переполнения стека, чтобы выяснить, как разные фреймворки подходят к одной и той же проблеме, я смог понять основы каждого фреймворка. Таким образом, я нахожусь в той точке, где, если бы мне поручили работать над проектом с фреймворком X, мне было бы удобно читать документацию/примеры кода, чтобы ознакомиться с философией фреймворка и решить проблему.

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

Это имеет свои последствия. Многие из нас страдают от «эффекта тетриса», когда мы видим код с закрытыми глазами. Нам рекомендовали оторваться от экранов компьютеров за час до сна, чтобы расслабиться.

Не терпится узнать о концепциях серверной части на четвертой неделе!