Фон

Меня зовут Ник Култас, и в настоящее время я проживаю в Рино, штат Невада. Что касается программистов / разработчиков, здесь очень маленькое сообщество. Вскоре я понял это, когда начал посещать местный общественный колледж в соответствии с моими научными сотрудниками, перейдя в местный университет компьютерных наук / программирования. Именно в это время я наткнулся на Lambda School, 6-месячную академию компьютерных наук / веб-разработки с полной занятостью. Чем больше я вглядывался в это, тем больше волновался, и время было идеальным. Сначала я нервничал, боялся, определенно ошеломил. Однако, выполнив более 70 проектов, не считая Capstone Project в конце, я получил очень много знаний о том, как стать профессиональным программистом. Я не только узнал; новые языки программирования и синтаксис, я также изучил настоящие мягкие навыки и упорство, необходимые, чтобы стать профессиональным разработчиком.

1. Как думать как разработчик

Написав этот заголовок, я спросил свою жену - если бы она прочитала только заголовок, что бы она подумала? Ее ответ был - «Как быть компьютерным умным / выучить код». Я уверен, что это будет первоначальная мысль большинства людей, читающих это, но думать как разработчик - это гораздо больше, чем просто изучать код. Как разработчик / программист вы постоянно решаете проблемы, обдумываете творческие пути их решения, используя ранее решенные проблемы как ориентир того, чего следует избегать при создании нового проекта. Вы разбиваете любую проблему на части и решаете каждый раздел за раз, что в конечном итоге приводит вас к ответу на общую проблему. Я очень быстро научился этому в Lambda School, особенно перескакивая в код / ​​проекты, с которыми я был незнаком. Я смог использовать информацию, которую я почерпнул из лекций и практических занятий, чтобы разбить проблему на части. Я прорабатывал каждую часть индивидуально, пока не стал ясен общий ответ. Благодаря этому новому способу изучения и решения проблем, если я когда-либо сталкивался с чем-то похожим впоследствии, я знал, как исправить это прямо сейчас.

Еще одна важная роль, которую играет разработчик, - это планирование. Независимо от того, используете ли вы доску Trello для планирования каждого шага в контрольном списке или используете каркас в качестве визуальной основы того, как проект должен работать / функционировать, вы всегда планируете свой следующий план атаки. Вы также оцениваете каждый шаг по шкале важности в зависимости от того, нужно ли его завершить и реализовать как можно скорее или это функция, которую можно предоставить позже.

2. Парное программирование / работа в команде.

Изначально, когда ко мне подошли с концепцией парного программирования, я действительно нервничал, особенно в интенсивной и иммерсивной среде. В Lambda School приходят люди из самых разных слоев общества, в том числе те, кто уже знает код. Я не хотел показаться «неразумным», потому что другие могут знать больше, чем я, и я не хотел казаться причинением вреда моему партнеру (партнерам). Общение с моим партнером (-ами), выяснение, знают ли они больше, чем я, или я знал больше, чем они, помогли мне научиться эффективно сочетать программы и эффективно работать в команде. В ходе этого процесса я научился как можно более эффективно общаться, задавая вопросы или предлагая идеи по улучшению проекта. Это также помогло мне объяснить свой мыслительный процесс при написании кода. Это также помогло объяснить, почему я мог выбрать что-то вместо другого, особенно когда я был навигатором, а мой партнер - водителем.

Lambda School - это онлайн-программа, поэтому все участники программы работают удаленно. Во время парного программирования и работы над проектами Capstone мы не могли просто подойти к соседнему столу и задать вопросы. Мы полагались на Zoom как на нашу основную платформу для звонков / демонстрации экрана, и именно так мы постоянно общались, а также обменивались сообщениями в Slack. Этот процесс определенно показал мне важность возможности общаться с вашим партнером (-ами).

3. Стойкость, последовательность и стойкость.

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

В Lambda School этим вещам не обучали напрямую, это мягкие навыки, которые вы оттачиваете и учитесь развивать со временем. Как разработчик / программист вы постоянно погружаетесь в код, с которым вы, возможно, не знаком, или даже начинаете новый проект с нуля, используя совершенно новую для вас технологию. Вы должны проявить настойчивость, чтобы выяснить, как работает код и как использовать язык или фреймворк, с которыми вы никогда раньше не сталкивались. Это может включать пошаговое выполнение кода, чтобы увидеть, что он делает, или чтение документации для совершенно нового языка или фреймворка. Если вы столкнулись с проблемой, вам также необходимо проявить настойчивость, чтобы найти решение, будь то повторное отслеживание ваших шагов, логирование вашего кода в console.log или исследование существующей проблемы. Вы также должны быть последовательными, писать как можно больше кода ежедневно, продолжать идти в ногу с новыми фреймворками / языками и продолжать расширять существующие проекты, когда это необходимо.

4. Преодоление препятствий

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

Lambda School научила меня, что я могу делать то, что хочу. Столкнувшись с проблемой или препятствием в Lambda School, будь то проблема в коде или ошибка, которую нужно решить, у нас всегда были рекомендации, но нам никогда не давали однозначного ответа. Мы должны были продолжать работать над этим, пока сами не пришли к решениям. Это лучшее, потому что это помогло мне лично осознать, на что я способен. Я могу найти ответ, будь то дополнительное исследование, громкое высказывание своих шагов самому себе (или моей жене) или повторное отслеживание моих предыдущих шагов. Я не могу сказать вам, сколько раз я объяснял проблему своей жене (которая ничего не знает о программировании) только для того, чтобы лампочка в моей голове гасла и гасла на полпути, потому что я нашел ответ.

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

5. Личный и профессиональный рост

Я уже говорил о личностном росте, когда учился в Lambda School, но это гораздо больше, чем я могу уместить в одной статье. Я развил новые успешные качества, преодолел препятствия и запрограммировал общение / пару с партнером (-ами). Также у меня был огромный профессиональный рост. Мне 21 год, и я начинаю свою карьеру, и это заставило меня понять, что связи огромны! Не только когда речь идет о профессиональном разработчике / программисте, но и в жизни и в целом тоже. Я установил удивительные связи не только через инструкторов и персонал, но и со своими коллегами. И на этом я не останавливаюсь, я продолжал общаться и учиться налаживать связи с людьми, которые являются профессиональными разработчиками из всех слоев общества.

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

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

Спасибо всем, что нашли время, чтобы прочитать это!