Крис Зичко — Full Stack Developer в компании OpenHouse Home Insurance, расположенной недалеко от Орландо, Флорида. После успешной карьеры в Корпусе морской пехоты он решил изменить свое направление и следовать своему зарождающемуся интересу к строительным технологиям. История Криса является свидетельством того, как рывок и погоня за своей страстью могут привести к чему-то прекрасному в будущем.

В: Как вы впервые начали программировать?

Я научился программировать в августе 2020 года, когда начал играть в такие видеоигры, как Old School RuneScape и Call of Duty. Я хотел выяснить, как автоматизировать свою мышь и клавиатуру, и у меня это получилось! Это было потрясающе. После этого я захотел принять более серьезный вызов, поэтому купил руку робота. Когда я получил руку, я попытался провести некоторые тесты по дому для себя, такие как автоматизация моей прачечной.

Я стал более серьезно относиться к обучению кодированию, поэтому я прошел сертификацию Free Code Camp по научным вычислениям с Python. После того, как я закончил этот курс, он просто продолжал расти как снежный ком. Я прошел учебный курс Full Stack в Университете Центральной Флориды. Я наслаждался этим много. Было много бессонных ночей, потому что я работал полный рабочий день и проходил учебный лагерь, но оно того стоило. Учебный лагерь специализировался на стеке MERN. Он охватывал различные аспекты MongoDB, ExpressJS, ReactJS и NodeJS.

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

В: Не могли бы вы рассказать мне больше об автоматизации манипулятора робота? Как вы это сделали?

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

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

В: Вы все еще заинтересованы в автоматизации физических объектов?

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

В: Какое у вас образование?

В дополнение к сертификату Scientific Computing Certificate, о котором я уже упоминал, у меня также есть полный сертификат веб-разработки, специализирующийся на стеке MERN, то есть MongoDB, Express.js, React.js и Node.js. Многое из этого было самоучкой, а также с помощью сертификатов и курсов от Educative или Udemy.

В: Что, по вашему мнению, лучше всего подходит для самообучения?

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

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

В: Над чем вы работаете?

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

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

В: Как вы решили, что хотите заниматься кодированием как профессией?

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

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

В: Какова ваша текущая роль?

Я Full Stack Cloud Developer в OpenHouse Home Insurance. Это лучшее место, где я когда-либо работал.

В: Что помогло вам получить свою первую полноценную должность разработчика Full Stack?

Прежде чем получить эту должность на полную ставку, я работал по контракту с Fiverr. Этот процесс помог мне многому научиться на своих ошибках. Например, у меня был один клиент, который хотел преобразовать свой веб-сайт в стек MERN, на котором я специализировался. Однако в то время я недостаточно знал о SEO, и я фактически разрушил его SEO в процессе. Я чувствовал себя ужасно и в итоге работал над проектом намного дольше, чем собирался, пытаясь это исправить. Предполагалось, что проект займет всего около 2–3 недель; В итоге я работал над ним 3 месяца.

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

В: Что помогло вам в итоге получить работу на полную ставку?

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

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

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

В: Как вы продолжали свое обучение во время работы?

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

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

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

В: С какими аспектами разработки полного стека вы работаете конкретно в своей должности?

Я много работаю с API и отправляю данные в сервисы, которые мы используем, и обратно. Я помог автоматизировать многие наши процессы. AWS — это самое конкретное место, где я работаю, особенно с лямбда-функциями и корзинами S3. Это то, к чему, я думаю, может получить доступ любой, кто пытается научиться программировать.

В: Вам нравится писать технические статьи? Что привело вас в Образовательные ответы?

Да и нет.

После того, как я закончил свою компьютерную сертификацию по Python, я связался с кем-то из Educative, который спросил, не хочу ли я написать несколько руководств по Python. Я написал одну статью о статистике, а затем я написал несколько о Kivy для Python, который, по сути, представляет собой интерфейсный фреймворк для приложений, с которыми я работал в то время.

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

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

В: Можете ли вы дать какой-нибудь совет тем, кто пытается заняться программированием?

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

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

Я бы также рекомендовал использовать ChatGPT, чтобы ответить на ваши вопросы. Я знаю, что некоторые люди сомневаются в этом, но это такой же инструмент, как Google или Stack Overflow, и он может помочь разрушить логику наших вопросов.

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

Узнайте, как установить модуль Kivy в Python с Крисом!

Если вы хотите прочитать весь ответ Криса Зичко, вы можете прочитать его здесь.

Путешествие Криса по техническому письму началось прямо здесь, на Образовательных ответах! Если вы хотите повысить свою квалификацию, техническое письмо — отличный способ развить профессиональные навыки общения.

Если это про вас, приходите, пишите в Educative Answers.

Удачного обучения!