От поиска «почему» до получения работы

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

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

Это потрясающе, но может быть и подавляющим.

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

Вот краткое содержание:

  • Вступление
  • 1. Начните с вопроса "Почему"
  • 2. Хорошие и плохие стороны работы разработчика
  • 3. Бюджет
  • 4. Различные части разработки
  • 5: Создание вашего первого портфолио
  • 6. Подача заявления о приеме на работу
  • 7: Куда отсюда?

1. Начните с «Почему»

Это твоя карьера.

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

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

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

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

Всегда помните свое «почему». Почему вы решили начать путь разработчиков, почему вы решили потратить время на обучение и развитие в этой области.

2. Хорошие и плохие стороны работы разработчика

В любом выборе карьеры есть хорошие и плохие стороны.

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

Плюсы:

  • Зарплата. Шестизначные зарплаты в мире разработчиков - не миф, но на то, чтобы добиться этого, уйдет пара лет, если только вы не работаете в месте с небольшим бюджетом.
  • Возможность работать удаленно. Вам необязательно находиться в офисе весь день, каждый день. Многие компании подогревают идею удаленной работы с рабочими днями для планирования встреч.
  • Передаваемые навыки. Ваши знания выходят за рамки границ, и вы можете применять их практически везде, где захотите. Вы можете перемещать страны и при этом оставаться актуальными.
  • Высокий спрос. Согласно Бюро статистики труда США, прогноз по занятости вырастет на 17% в период с 2014 по 2024 год. Это огромная цифра, если сравнивать со средним ростом в 7% для других секторов.

Минусы:

  • Конкуренция. Давайте будем честными: чем легче начать что-то, тем выше шансы, что другие сделают то же самое. По мере того как искусство программирования становится более доступным для других, пропорционально возрастают уровень и конкуренция.
  • Стресс. Постоянные дедлайны, ошибки, которые не имеют смысла, унаследованный от других код, плохие фреймворки и реализации, ночные развертывания и просто старый стресс от обучения, но никогда не успевают за постоянно меняющимися пейзаж.
  • Возможно долгие часы. Работа не прекращается, когда ты возвращаешься домой. Иногда он следует за вами. Затем вам нужно потратить часы на обучение. Для начинающих разработчиков часы могут быть долгими и изнурительными.
  • Сидячий образ жизни. большую часть времени вы будете проводить за экраном. Это означает, что вы не будете много двигаться, что может быть плохо для вашего здоровья.

Что следует учитывать

  • ваш темперамент. Чтобы быть успешным разработчиком и создавать код на Excel, вам нужна стойкость. Требуется терпение, особенно в процессе обучения. Также имеет значение то, как вы учитесь. Существует множество ресурсов цифрового обучения, которые часто предназначены для самостоятельного изучения и не связаны с реальными людьми. Если вы не слишком хороши в изолированном и самостоятельном обучении, вам может быть трудно преуспеть в этой области.
  • Ваши социальные и семейные обязанности. Возможно, вы не превратитесь в отшельника в подвальном помещении, но работа, связанная с обучением программированию, отнимет у вас много времени. Если вы не будете осторожны, это может полностью вас завладеть. Ваша семья и друзья могут сначала не понять, но все должны быть на одной волне, когда дело касается вашей карьеры. Некоторые партнеры предпочли бы посмотреть с вами фильм, чем увидеть, как вы напрягаетесь из-за того, что код не компилируется, потому что в руководстве не упоминается версия пакета узла.
  • Обязательства. Когда вы превращаете код из хобби в полноценный выбор карьеры, вы также совершаете жизненный путь постоянного совершенствования своих навыков и знаний. Вы должны четко понимать, каковы ваши способности к обязательству с точки зрения наличия времени, и активно им следовать. В противном случае вы рискуете завладеть вашей жизнью или отстать. Вам нужно выяснить, сколько вы можете посвятить совершенствованию своих навыков, не нарушая при этом другие аспекты вашей жизни.
  • Ваши ожидания. Не все начинают с шестизначной зарплаты. В большинстве случаев мы ищем от 45 до 55 тысяч долларов для младших разработчиков. Это число также зависит от того, в какой части мира вы находитесь и в какой компании вы в конечном итоге работаете. У стартапов, как правило, более низкий бюджет, но больше шансов на ускоренный рост из-за того, как они созданы.

Бюджет

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

Аппаратное обеспечение

Это вопрос, который задают многие новички, но никто не отвечает должным образом. По большому счету, все, что связано с 7-ядерным чипом, прекрасно подойдет. Мой Dell XPS i7, первоначально купленный в 2012 году, довольно хорошо продержался до мая 2019 года. В настоящее время я использую ноутбук ASUS Ryzen 7 для большей части своей деятельности по программированию.

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

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

Вам не нужно тратить руки и ноги на машину для разработки. Судя по тому, что я видел недавно, цены имеют тенденцию расти по мере уменьшения толщины всей машины. Не отвлекайтесь на размер и смотрите на фактические характеристики. Вы по-прежнему можете получить ноутбук с 7 ядрами, 1 ТБ и минимум 16 оперативной памятью по приличной цене и иметь возможность без проблем кодировать большинство вещей.

Программное обеспечение

Большая часть программного обеспечения, связанного с разработчиками, бесплатна и имеет открытый исходный код. Например, Visual Studio Code - один из самых популярных редакторов кода с бесплатными расширениями от сообщества.

Когда дело доходит до дебатов между Windows и Mac OS, это действительно зависит от того, чего вы пытаетесь достичь с помощью своего кода. Если вы хотите начать с разработки мобильных приложений Apple, вам понадобится компьютер Apple. Однако компьютер с Windows может покрыть остальную часть вашей работы по разработке.

Курсы

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

Нет ничего плохого в ученой степени, но помните, что в наши дни это лишь один из многих способов встать на ноги.

Вот несколько мест, которые могут помочь начать вашу карьеру в программировании:

Награда Udacity Nano

Udacity предлагает ряд курсов, которые помогут вам начать работу в этой области. В нем представлены проекты, которые оценивают настоящие и проверенные преподаватели. Структура курса представляет собой смесь самостоятельного и направленного обучения.

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

Coursera

Coursera - это бесплатная платформа с возможностью получения платных дипломов и сертификатов. Это примерно половина стоимости традиционной степени CS на кампусе.

Курсы проводят университеты со всего мира. У них часто есть определенная дата начала и содержание, которое отражает то, что вы найдете в университетском городке.

EdX

EdX - это платформа онлайн-обучения, в которой участвуют такие члены Лиги плюща, как Гарвард, Принстон и Браун. Среди других участников - такие бренды, как IBM, Microsoft и AWS.

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

Различные части работы разработчиков

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

Внешний интерфейс

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

Многие разработчики в наши дни начинают с фронтенд-разработки, особенно те, кто занимается самоучкой. Это связано с тем, что большая часть из них основана на триединстве HTML, CSS и некоторой формы JavaScript.

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

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

Бэкэнд

Интерфейс обычно бесполезен, если он не подключен к источнику данных. Бэкэнд действует как мост, который обрабатывает и определяет, как данные хранятся, извлекаются и форматируются.

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

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

Инфраструктура и архитектура

В самом простом случае размещение кода в облачном хранилище, таком как капля Digital Ocean или экземпляр AWS EC2, может показаться легкой задачей. Сложность возникает, когда вам нужно подумать о масштабируемости, автоматизированных процессах и о том, как не раздуть счет за хостинг до цены, которую вы не можете себе позволить.

Получение сертификата в области инфраструктуры часто означает, что вы специализируетесь на определенном облачном продукте, таком как Google Cloud, Microsoft Azure или Amazon AWS. Эти сертификаты могут значительно повысить вашу зарплату. Не многие люди склонны выбирать инфраструктуру и архитектуру в качестве отправной точки.

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

Языки и фреймворки

Есть много языков и фреймворков на выбор. Самым популярным сейчас является JavaScript.

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

Если вы хотите заняться мобильной разработкой или играми, для начала подойдут Java и C ++. Они также поставляются с фреймворками, которые позволяют вам реализовать интерфейс, который предварительно обрабатывается в серверной части.

5: Создание вашего первого портфолио

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

Вот несколько советов, с которых можно начать.

Внешняя реализация

Для всего нужен интерфейс. Почему бы не продемонстрировать свои навыки работы с фронтендом с помощью лаконичной и лаконичной реализации, объединяющей HTML, CSS и JavaScript?

Вы можете использовать фреймворк, например Angular, или библиотеку, например React, для реализации одностраничного приложения. Список дел преувеличен - он обычно используется в качестве отправной точки для обучения.

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

  • Трекер веса
  • Приложение для заметок
  • Приложение Pomodoro
  • Приложение для отслеживания счетов
  • Приложение-калькулятор
  • Приложение со списком желаний

Если вы обернете его такими фреймворками, как ionic, он также может стать мобильным приложением.

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

Бэкэнд-реализация

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

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

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

Если ответ, вероятно, утвердительный, но вы не знаете, как это сделать, пора обратиться к Google.

Интегрировать API

Если у вас нет серверной части как части вашего набора инструментов, тогда другой путь, который следует использовать вместе с вашим интерфейсом, - это интегрировать внешний API. Есть несколько открытых и бесплатных API.

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

Бюро Census имеет набор API, которые вы можете использовать для доступа к собранной в ходе переписи информации по демографическим, демографическим и экономическим данным. Вы можете весело провести время с поисковыми запросами и графиками для такого рода данных.

С другой стороны, Marvel Comics имеет API, дающий доступ к информации о данных, связанных с комиксами, за 70 лет существования Marvel. Я лично не проверял это, но похоже, что из таких данных можно построить что-то грандиозное.

Подача заявки на работу

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

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

Главный совет - составьте как можно больше портфолио и составьте свое резюме так, чтобы оно было информативным, но не забито до краев шрифтом 5pt. Избегайте использования звездочек или процента навыков (вы знаете, что 85% владеют JavaScript), потому что это занимает ненужное место. Потенциальный работодатель не знает, какой показатель вы использовали для получения этого числа.

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

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

7: Куда отсюда?

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

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

Чем больше у вас знаний, тем легче станут ваши проекты и тем больше возрастет ваша способность решать проблемы на лету. Как новичок, старайтесь делать ошибки и кодируйте как можно больше. Это поможет вам распознать свою неэффективность и предсказать, где что-то может пойти не так.