Мой роман с кодом был быстрым и ярким. Я впервые познакомился с Javascript чуть меньше года назад и сильно упал. Меня мгновенно охватил азарт поиска решений и изучения особенностей языка. Сейчас я на полпути через программу Grace Hopper Immersive в Fullstack Academy, и мы с Javascript вышли на новый уровень. У нас сильная команда, но у нас были и страстные ссоры, и серьезные разногласия. Возможно, я люблю кодировать, но мне не всегда нравится код, который я пишу. Вот некоторые из моих самых ценных выводов из моего недавнего опыта, написанные для программистов, которые могут найти их полезными.

Архитектура - ключ к успеху.

На второй неделе иммерсивной программы я участвовал в хакатоне Tessel. Наша команда решила создать приложение, воспроизводящее музыку через маленького робота через определенные промежутки времени, заданные пользователем. У каждой части команды была работающая часть проекта на своих машинах, но когда пришло время собрать ее воедино, ни одна из частей не работала вместе. Я никогда не забуду, насколько суровым и беспощадным я нашел свой опыт программирования в тот день. Я сильно недооценил важность архитектуры в успешном приложении. С тех пор я обнаружил, что наброски деталей различных частей моего приложения (или чужого, на которое я смотрю) и того, как они взаимодействуют, имеют решающее значение до понимания кода. Список инструментов визуализации см. На странице https://www.shopify.com/partners/blog/wireframing-tools-2017. Мне также было полезно использовать просмотр моих моделей базы данных с помощью Postico и мои ассоциации таблиц с помощью Oracle's SQL Developer Data Modeler. Мне гораздо больше нравится то, что происходит в моем коде, когда я продумываю основную структуру, а не пытаюсь склеить скотчем части, которые на самом деле не подходят друг к другу.

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

Во многом «вихревое» ощущение от изучения полного набора технологий за 6 недель - это ощущение, что вещи всегда меняются. Во внешнем интерфейсе я узнавал о прямом управлении DOM, только затем, чтобы узнать о JQuery, только чтобы узнать об одностраничных приложениях и React и Redux. Каждый раз, когда я чувствовал, что «получил» что-то, это заменялось чем-то другим. Это чувство, вероятно, останется со мной еще долго после того, как я уйду из Грейс Хоппер, но теперь я знаю, что каждый раз, когда меня знакомят с новой технологией, важно видеть ее такой, какая она есть. Что делает технология? Каковы его пределы? Как он взаимодействует с остальной частью стека? Так много раз я думал о приложениях для этой технологии только для того, чтобы обнаруживать, что технология не поддерживает эту функциональность, как я думал. Ни одна технология не решит всех проблем, но многие из них могут очень хорошо решить часть проблемы при правильной реализации!

Я не могу думать и писать код одновременно?

Один из первых проектов Grace Hopper включает создание инструмента визуализации для «Игры жизни» Конвея. Этот проект сочетает в себе решение проблем с областью видимости Javascript, управление DOM и создание сложной логики для функциональности игры. Каждый раз, когда я расстраивался, работая над этим проектом, я пытался применить «грубую силу», кодируя больше и быстрее. Теперь я знаю, что когда я дохожу до предела, мне нужно сломаться, подышать и подумать. Когда-нибудь я стану настолько свободно писать код, что буду говорить на родном языке. А пока мне нужно дать себе время подумать, * пауза *, а затем написать код.

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