Чему я научился во время стажировки по разработке программного обеспечения

1656668426 chemu ya nauchilsya vo vremya stazhirovki po razrabotke programmnogo obespecheniya

от Кармен Чанг

XFMUVvieJCMLZQlqBMdoI14bQAkF5EMANwkP
Фото Дж. Келли Брито на Unsplash

В рамках моего обучающего семинара по кодированию в Coder Academy меня назначили стажером по программной инженерии в Valiant Finance, победителя награды Австралийского начинающего финтех года (2017). За четыре недели, которые я здесь провел, я сделал больше интеллектуальных открытий, чем могу счесть: все благодаря невероятному наставничеству и терпению команды, с которой я работал.

Вот 10 лучших вещей, которым я научился во время своей стажировки, разделенных на технические и нетехнические уроки.

ТЕХНИЧЕСКАЯ

Будьте придирчивы

Будучи корпоративным юристом в течение семи лет, я всегда гордился вниманием к деталям. Но ошибки случаются.

На третьей неделе своей стажировки я нажал Ctrl+F, чтобы найти слово, которое я искал в своем файле. Тогда я, вероятно, случайно нажал пробел, полностью удалив слово.

К моему подавлению, я не заметил, что сделал это. Это было то, что не вызвало бы очевидной ошибки, иначе наши тесты ее обнаружили бы. Скорее это осталось бы незамеченным и «молча провалилось»… если бы не острый взгляд нашего соучредителя, Ричи.

Чтобы избежать моей ошибки, посмотрите GitHub Desktop. Он отображает все изменения, которые вы внесли в файл, и позволяет просматривать строку за строкой в ​​последний раз перед закреплением. Эту часть просто пропустить. Но найдите время, чтобы пересмотреть свои изменения в последний раз перед тем, как зафиксировать/нажать может спасти вас от серьезной сердечной боли – и смущения – на более позднем этапе.

GvfEtzAo27YBQbS5jspK6k9qyUOsEApsqe1n
Не будь Вельмой!

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

Даже такие простые вещи, как проверка комиттов Git вашей компании, чтобы увидеть, как они их пишут — например, мы используем определенный смайлик, чтобы указать, что такое комит, пишем первое слово в комите с прописной буквы, используем настоящее и не добавляем раздела знаки конец – избавляет вас от раздражения коллег, когда вы сбиваетесь с пути последовательности.

Делайте заметки (и усердно учитесь)

Забудьте об источнике знаний.

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

Но они щелкают быстрее, если вы делаете заметки.

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

OKENsvJjZ4ktK7HNBURVSXJyADkEjTADEY5E

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

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

EN6SMceBtwLodxTu8aqoch-5YzNJdTawTbiz

Не изобретайте велосипед заново

Одной из вещей, которые я обнаружил, было то, что Ричи создал невероятную систему CSS со своими полностью настроенными таблицами стилей (с использованием метода БЭМ) — и руководством по стилю, которое заставит петь сердце любого любителя документации.

До того, как я познакомился с системой, у меня возник соблазн создать определенные классы CSS, к которым, как я считал, было бы легко получить доступ и применить их. То, что я понял и уважал, так это то, что мне в принципе не было необходимости это делать. Почти в каждом случае был набор четких и гибких стилей, которые я мог включать и выключать — как взаимозаменяемые детали Lego — все под рукой. Создавая ненужные классы стиля, я бы загромождал структурированную и чистую систему, что усложняло бы людям ориентироваться на следующем этапе.

1KtLKQWsMC21g-NpM5f4zVqAvxpvNNWnbTbh
Если у вас есть отличные кубики Lego, не переделывайте их. Вместо этого сосредоточьтесь на создании вещей с ними.

Избегайте многословия

Одним из ключевых принципов Ruby on Rails является DRY (не повторяйся). Это то, что было изучено у младших разработчиков Rails с первого дня… но ох, какая же настоящая борьба.

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

Вот как сначала вышел наш код:

- if @invite_count == 1
 %p
 You have invited 1 friend to be part of Valiant Finance.
 — if @invite_count > 1
 %p
 You have invited
 %strong #{@invite_count} friends
 to be part of Valiant Finance!
 
- if (@invite_count % 3) == 0 || (@invite_count % 3) == 1
 %p
 Invite another
 %strong #{3 — (@invite_count % 3)} friends
 to receive $50!
 — if (@invite_count % 3) == 2
 %p
 Invite another
 %strong friend
 to receive $50!

Когда я показал Ричи, он сказал нам посмотреть на множество.

Ум.
Взорван.

Вот как впоследствии вышел наш код:

%p You have invited #{@invite_count} #{“friend”.pluralize(@invite_count)} to be part of Valiant Finance.
 %p
 Invite another
 %strong #{3 — (@invite_count % 3)} #{“friend”.pluralize(3 — (@invite_count % 3))}
 to receive $50!
 %p

Будьте в курсе тонкостей вашего языка программирования

Несколько младших веб-разработчиков используют определенные термины в качестве синонимов, не подозревая о том, что они есть – иногда мизерные, иногда не очень! — различия между ними. Я виноват в том, что часто ищу в угле различия между .present?, .exists?и .any?; и .empty?, .nil?и .blank?. Сделан еще более ужасающим, потому что .exists? фактически устарело. Ой!

fMyJ-tJVWuLl263uB8Njy7GGPo-wqOq4uInh
Похоже, я не единственный, кто об этом забывает.

Иногда тонкости почти незаметны – в первую неделю стажировки я печатала Product.all.map(&:name). Но позже меня научили, что вместо этого я могу просто использовать Product.pluck(:name). там есть разница между этими двумя с точки зрения эффективности как относительно того, что я фактически набираю это, так и с точки зрения скорости поиска. Дополнительные сведения см. в этой статье.

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

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

НЕТЕХНИЧЕСКИЕ

Включайтесь в компанию

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

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

Учитывая, что у меня уже есть несколько аккаунтов в социальных сетях, я сначала не хотел добавлять еще один. Но это оказалось действительно полезным.

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

mwVLN-X2SDvnji3xpv3z8EpxYtiWSR64kHPz
Гордость Valiant Finance принимает участие в наших внутренних зимних Олимпийских состязаниях.

Задавайте вопросы, но, что важнее, слушайте

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

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

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

bmtPk9Pbivm-7qSGtuQdaDQL9ccnsPumPvvm
Не будь этим маленьким парнем (если ты не очень, очень мил)

Знать, с кем говорить

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

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

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

v-bU8hOaVzLyGgSnS833fOm42Pmq83VYI8Xj
Мы работали с руководителем отдела партнерства с третьими лицами, чтобы создать адаптивные вкладки информационной панели и функцию «Предложите брокеру»

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

Не бойтесь просить своих руководителей о помощи в таких случаях — они, как правило, лучше подготовлены и опытнее, чтобы сказать другим командам, что то, что они просят, — это u̶t̶t̶e̶r̶l̶y̶ ̶r̶i̶d̶i̶c̶u̶l̶o̶u̶ це тому, що це u̶t̶t̶e̶r̶l̶y̶ ̶r̶i̶d̶i̶c̶u̶l̶o̶u̶s̶ не є критичним для бізнесу, його буде додано до списку u̶t̶t̶e̶r̶l̶y̶ ̶r̶i̶d̶i̶c̶u̶l̶o̶u̶u̶s̶ ̶s̶s̶ список речей, які потрібно зробити log.

Оставайся скромным

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

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

lTZTI-yEgrBVvADz7t0hRPwJqNCY6UO2jFos
Не будь этим парнем (если ты не шутишь)

На заметку: когда вы напутали, знайте, что пора съесть скромный пирог.

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

веселиться

В Valiant Finance мы празднуем победы. У нас есть целый канал Slack, посвященный поддержке друг друга как в профессиональных, так и в личных начинаниях.

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

eC7CQ2oLtetN05tbXWDARyzdjAdEm4xn-ZPO
Поздравительный пакет ухода мы получили в первый день стажировки

Это кажется очевидным, но люди хотят работать вокруг счастливых людей. Хотя вы не там, чтобы найти друзей по рюмке в вашей компании, которая занимается стажировкой (однако, если вы это сделаете!), вы хотите наслаждаться своим временем — и компания тоже должна этого захотеть. Весь смысл стажировки состоит в том, чтобы попытаться понять, хорошо ли вы подходите для компании и наоборот.

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

Если вы недовольны стажером, скорее всего, вы будете несчастливы как штатный работник.

А этого никто не желает.

Большая благодарность соучредителю Ричи Коттону и главе инженерного отдела Крису Хоферу, а также за их невероятное терпение, наставничество и знания во время моей стажировки в Valiant Finance. Я никогда не мог себе представить, чтобы столько всего научиться за такой короткий промежуток времени или получить от этого такое удовольствие. Спасибо, ребята.

Следите за мной в Twitter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *