Руководство 2022 года по получению вашей первой роли разработчика программного обеспечения
Пролог
Это был 2021 год. Земля нагревалась, моря поднимались, и один конкретный Джеймс становился все более несчастным в своей рабочей среде. Он хотел перемен, он хотел покинуть индустрию, в которой он работал годами и в которой имел квалификацию; не желая возвращаться в университет, он задумал заняться стрижкой газонов.
Джеймсу удалось проникнуть в мир разработки программного обеспечения. Он уволился с работы, чтобы отправиться в путешествие, полное опасностей и самообучения. И после коротких шести месяцев изучения учебных пособий на YouTube и поиска в Google он оказался на роли удаленного разработчика полного стека; и вы тоже можете. Добро пожаловать, читатель, к подробному руководству по получению вашей первой работы по разработке программного обеспечения.
Введение
Я Джеймс, и в своем путешествии по самообучению я сделал много ошибок и потратил впустую много времени. Так что, хотя это руководство может и не быть точной копией каждого шага, который я предпринял, оно на уровень выше, на лучшую версию. Это руководство, которое я хотел бы иметь, и я надеюсь, что оно поможет вам достичь того, чего достиг я, и даже большего.
Если что-то в какой-то момент вас смущает или вы хотите узнать больше, просто выполните поиск, включив Freecodecamp в поиск. Вы найдете множество ресурсов до тех пор, пока ваше сердце не будет удовлетворено, и ваши запросы не будут подавлены.
Кстати говоря, если ваши текущие знания в области программирования эквивалентны моей способности разговаривать с медведями, то вам стоит выучить свой первый язык. Я бы рекомендовал вам начать с этого сертификата:
Написано 300 часов, реально намного меньше. Это очень важный первый шаг, и я бы рекомендовал сосредоточиться исключительно на нем до завершения. Тогда вы получите этот крутой сертификат!
Теперь вперед.
Что вам нужно знать
Во время смены карьеры я изучил все доски объявлений о вакансиях. Все они. И после того, как я просмотрела больше объявлений о вакансиях, чем овец в мире, это мой взгляд на самые востребованные и перспективные технологии, которые вам нужно знать (и ссылки для начала). Я бы порекомендовал пройтись по ним в указанном порядке, а когда закончите туториал, сделать из него что-нибудь; держи костяк, выпотроши проект, иди и создавай собственное чудовище. Когда вы дойдете до конца списка, вы будете готовы охотиться на охотников за головами и получить роль кита.
Основы внешнего интерфейса:
- HTML и CSS; нет ни на земле, ни на Марсе инженера-программиста, который не знаком с HTML и CSS (Создайте веб-страницу портфолио). Дополнительные преимущества включают изучение Google Fonts и Font Awesome Icons!
- Реакция; React — это среда JavaScript, которая отлично подходит для динамических веб-страниц (Изучите основы React и CSS, создав приложение для отображения данных Covid-19).
- Next.js; Фреймворк React будущего. По-настоящему ценный актив, который можно добавить в свой арсенал навыков, особенно если вы добавите в смесь Stripe, Hooks и LocalStorage (Создание интернет-магазина + TailwindCSS).
- TailwindCSS; со старым CSS и с новым. Этот CSS-фреймворк — самая последняя и лучшая инновация в области стилей (Ознакомьтесь с их потрясающей документацией и погрузитесь прямо в нее). Я бы рекомендовал включать его в каждый проект.
- Вите; новые средства и методология для создания и инициализации ваших портфельных проектов. Настройка занимает две секунды, и вы готовы к работе.
- Использование конечных точек API; чтобы создать динамический интерфейс, вам нужно знать, как использовать API, полный информации (приложение Svelte Movie Dashboard).
- Облачный хостинг; ВАШИ ПРОЕКТЫ ДОЛЖНЫ БЫТЬ ЖИВЫМИ!!! Узнайте, как разместить интерфейсный проект в видео, связанном с первым пунктом.
Основы серверной части:
- Node.js (или Django); фундамент внутренних знаний начинается с самого скромного происхождения. С помощью протоколов Node.js + Express + RESTful вы можете спроектировать любую конфигурацию сервера или API своей самой смелой мечты (Изучите основы и Создайте REST API).
- Системы аутентификации (OAuth || JWT || API_KEYS); нельзя построить бэкенд и не сделать его эксклюзивным. (Учебник JWT Full Stack Tutorial и проект аутентификации Firebase скоро появятся!).
- Базы данных NoSQL; NoSQL — это нессылочная база данных, которая не использует язык структурированных запросов (SQL). Это может быть простая самостоятельная база данных JSON, которую вы можете использовать для создания собственной системы аутентификации. Или это может быть Firestore от Firebase или MongoDB (учебник по MongoDB).
- Базы данных SQL; Эти плохие парни используют язык структурированных запросов. Мой фаворит — PostgreSQL, так как вы можете иметь поля JSON и Array помимо традиционных строковых, логических и числовых полей. (Узнайте, как со вкусом интегрировать PostreSQL в проект Python Data Science).
- Задания CRON; Основа повторяющихся задач — изучение того, как внедрить систему заданий CRON на вашем внутреннем сервере для удовлетворения всех ваших потребностей в обработке заданий.
- Облачный хостинг; ВАШИ ПРОЕКТЫ ДОЛЖНЫ БЫТЬ ЖИВЫМИ!!! (Узнайте, как разместить серверный API с помощью этого руководства).
Приятно иметь:
- Паас; Продукт как услуга позволяет вам включать функции бэкэнд-иска, такие как сохранение данных и аутентификация пользователей, без самостоятельного создания кода. Firebase — отличный пример поставщика таких услуг.
- питон; всегда хорошо знать второй язык, и этот вы сможете освоить за день, если вы уже знаете JavaScript, следуя моему руководству по науке о данных (ссылка скоро появится!).
- Облачные сервисы; это здорово знать
Теперь, когда ты мудр
Поздравляем! Если вы здесь, вы, вероятно, завершили либо карту внешнего обучения, либо карту внутреннего обучения, либо и то, и другое. Это важная веха, и теперь вы находитесь на том этапе, когда мы можем начать собирать ваше профессиональное портфолио.
Портфолио имеет решающее значение для вашей способности войти в отрасль. Независимо от того, самоучка вы или нет, это будет основным способом убедить потенциальных работодателей в том, что вы заслуживаете доверия; вы можете закодировать код. Чтобы получить настоящую работу, доверие даст вам 50% успеха. Последние 50% — это ваши soft-skills, но об этом мы поговорим позже.
Здесь я также должен упомянуть, что именно здесь вы, вероятно, начнете сталкиваться с самыми большими препятствиями на пути к вашему успеху; неуверенность в себе, синдром самозванца и ад учебников. Не бойся, я тебя прикрою.
ВНЯТЬ ЭТО В СВОЙ МОЗГ; ПУСТЬ ЭТО БУДЕТ ВАШИМ ЕВАНГЕЛИЕМ
«Вы новичок. Ваши знания ограничены. Вы не будете помнить, как делать большинство вещей, и будете постоянно гуглить и искать. Этот. Является. Нормальный. Секрет эффективного программиста не в том, сколько вы можете вспомнить, а в том, насколько хорошо вы храните золотые крупицы информации. Лучший разработчик — это тот, кто знает, где найти руководство о том, как выполнить ту или иную задачу с наилучшей реализацией».
Поэтому не сосредотачивайтесь на том, сколько вы можете вспомнить, вместо этого сосредоточьтесь на создании своего арсенала руководств и ресурсов и стремитесь к знакомству. «Я видел это раньше, я знаю, где найти отличную реализацию». Остальное придет со временем.
Что касается ада туториалов, то это ложная конструкция, созданная инженерами-программистами, чтобы заставить вас чувствовать себя плохо из-за того, что вы следуете туториалам. Хороший учебник — это высший самородок знаний. И именно так вы должны отправиться в путь, чтобы завершить проекты, чтобы заполнить свое портфолио. Выберите учебник, который охватывает ряд технологий, с которыми вы менее знакомы, напишите код, а затем, наконец, АДАПТИРУЙТЕ проект. Сохраните основу, систему аутентификации, конфигурацию базы данных, внешний вид интерфейса. Но выпотрошить содержимое. Изменить цель. Адаптируйте логику. Сделайте так, чтобы это выглядело по-другому. Добавьте API_KEY. Сделайте это по-своему! (И затем не забудьте каталогизировать его на своей странице Github). Закрепите его наверху.
Веб-страница вашего портфолио будет разделена на четыре основные части. Первый раздел будет разделом «О вас». В 2–3 строчках вы должны описать себя, свои занятия и стремления. Далее следует раздел о вашем опыте работы и образовании. Опять же, предложение на точку. Четко, лаконично и по делу. И, наконец, мозаичный макет ваших 3-4 проектов, чтобы показать их потенциальным работодателям. Эти проекты должны в совокупности содержать все технологии, о которых говорилось выше. Нажав на проект, вы перейдете на страницу блога, на которой кратко изложен файл Github Readme.md, в котором подробно описывается внутренняя работа и цель указанного проекта. Он также должен включать ссылку на код Github и версию проекта, размещенную в реальном времени. Внизу вашей веб-страницы ссылка на вашу страницу Github и LinkedIn. Ваша страница должна быть адаптивной прежде всего.
Рекомендации по полнофункциональному проекту:
- Электронный магазин на Next.js + Stripe + TailwindCSS
- Проект полного стека SEN (Svelte, Express, Node.js)
- Проект по науке о данных с PostgreSQL и Python (и простая веб-страница с полным стеком Node.js, чтобы обобщить ваши выводы).
- Приложение Node.js + HTML + CSS + Firebase Full Stack Polling
Дополнительные рекомендации по интерфейсным проектам:
- Веб-сайт визуализации данных (который использует API данных и представляет показатели, с которыми пользователь может взаимодействовать, например веб-сайт статистики Covid).
- Игра в браузере (с которой пользователь может взаимодействовать, которая сохраняется в LocalStorage).
Дополнительные рекомендации по внутренним проектам:
- Сервер Web Scraper (который хранит данные, предоставляет их как API).
- Злой обзорный бот (который создает рандомизированные тренировки).
- Сервер заданий CRON (выполняет задачу с заданным интервалом).
- Что-то бессерверное -_-
Учебники по основам всего этого скоро появятся на моем канале YouTube, если вам интересно. Не стесняйтесь, присылайте мне сообщения о том, какие уроки проекта вы хотели бы увидеть в первую очередь, и я сделаю это возможным.
Портфолио, благодаря которому меня наняли (среднее — вы можете сделать лучше):
Профессиональный имидж
Теперь вы сделали работу, вы достигли финального отрезка. Все, что вам нужно сделать сейчас, это убедиться, что ваш профессиональный имидж эффектен. И помимо вашей веб-страницы с портфолио, есть два сайта, которые помогут вам пересечь финишную черту; Линкедин и Гитхаб.
Гитхаб
Рецепт успеха на вашей странице Github состоит из 4 частей:
- Регулярные взносы — с той минуты, как вы начнете работать над своими проектами, вам нужно делать минимум 1 коммит в день. Меня не волнует, если это просто добавление закомментированной строки, сделайте коммит. Проверьте графический интерфейс Github, если вы боитесь Git в терминале.
- Шесть закрепленных проектов. Это должны быть ваши основные проекты, три или четыре, о которых мы говорили выше, плюс любые дополнительные крупицы знаний, которые вы, возможно, нашли на этом пути.
- Файл Readme.md — эти файлы должны быть безупречными. Текстовое объяснение или цель и намерение проекта, проблемы, с которыми вы столкнулись, как вы их исправили и все, что между ними. Каждый также должен содержать аннотацию в начале, в которой резюмируется проект и технология! Формат должен быть следующим: Резюме, Введение в проблему, почему вы хотите ее исправить, как вы собираетесь это исправить *использованная технология*, любые проблемы, с которыми вы столкнулись на этом пути, общее размышление, ссылка на текущий проект).
- Дружелюбная и профессиональная фотография и биография, указывающая то же самое, что и ваше портфолио выше; ваша личность, занятия и усилия, а также ссылка на веб-страницу вашего портфолио и LinkedIn.
- Как и выше, дружелюбный, но профессиональный имидж имеет первостепенное значение, и то же самое касается вашей биографии (ссылки на страницу Github и веб-портфолио).
- В вашем названии должно быть указано «Разработчик полного стека» или что-то еще, чем вы стремитесь стать.
- Фотография на обложке должна быть визуально эстетичной, особенной для вас. Думайте об этом как о обоях для вашей страницы.
- Вам необходимо указать свой предыдущий опыт работы и предоставить некоторые подробности о том, как любая из ролей, которым вы исторически помогали, развила ваши навыки общения, работы в команде, самоуправления и решения проблем.
- Вам необходимо заполнить раздел образования, как указано выше.
- Вам нужно добавить свой список технических навыков в раздел навыков — если вы можете, попробуйте выполнить тесты, которые они должны получить, чтобы получить значок для этого навыка.
- Вам необходимо добавить все имеющиеся у вас сертификаты в раздел лицензий и сертификатов — например, я заполнил сертификат FreeCodeCamp.org JavaScript Algorithms and Data Structures.
- Ссылки на ваши основные активные проекты и портфолио.
Посадка на работу | Заявки на работу
Секрет подачи заявки на работу заключается в последовательности и эффективности. Вы должны постоянно размещать отличные заявки и обеспечивать эффективность процесса подачи заявок.
Резюме
Все, что вам нужно знать, прямо здесь:
Сопроводительное письмо
Для сопроводительного письма я рекомендую сделать аналог документа Google. Это позволяет легко копировать документ, изменять пару фрагментов и делает весь процесс очень эффективным. И да, определенно стоит уделить немного больше времени сопроводительному письму, чтобы сделать его более актуальным для каждого отдельного работодателя.
Коммуникация
В мире, где сотни других абитуриентов, вероятно, умеют программировать так же хорошо, как и вы, имеют портфолио проектов и, возможно, даже больше университетского опыта, общение — ваше самое большое оружие. Что касается способности кодировать, работодатели просто хотят знать, что вы умеете программировать. Однако человек, который получает работу, — это тот, с кем они хотят работать больше всего. Крайне важно, чтобы вы были вежливы в случае успеха и отказа. Вы не можете раздать достаточно «Спасибо за эту возможность» и «Надеюсь, у вас хорошая неделя». Дружелюбные предложения, даже смайлик-смайлик, имеют большое значение для отображения вашего личного влияния. Если вы дружелюбны, приветливы и, возможно, немного веселы, именно так вы получите свою работу. Другая важная часть здесь заключается в том, что вы должны иметь возможность получать обратную связь. Неважно, насколько критическим или неправильным/неоправданным вы это считаете; быть благодарным. Скажи спасибо. Будьте открыты к их словам, признавайте их, принимайте их на вооружение. Вы неопытный разработчик, и вы получите много отзывов, поэтому очень важно, чтобы вы были скромными и относились к этому как к чемпиону!
Я не могу не подчеркнуть, что каждое электронное письмо и сообщение должны быть в той или иной форме позитивными. Мне нравится шаблон:
Hi <name>, I hope you're having a great start to the week :) I wanted to say thank you for your time today. I greatly appreciate the opportunity to get to ...... Cheers, <Your_name>
Линкедин
КАЖДЫЙ. ОДИНОКИЙ. ВРЕМЯ. вы подаете заявку на работу, будь то в LinkedIn или на любой другой доске объявлений о вакансиях, вам нужно отправить сообщение кому-то из компании (в LinkedIn). Найдите их технического директора, менеджера по найму или даже генерального директора в LinkedIn и подружитесь с ними, добавив следующее примечание:
Hi <Name>, I hope you're having a nice week :) I stumbled across your job posting for a <Insert job posting title> and as a seasoned Full Stack React developer, I feel I would be great for the role. I'd love to connect and chat about the opportunity. Cheers, James
Людям нравится инициатива. Вот и все. Некоторые люди не ответят, но некоторые ответят, а некоторые дадут вам время для звонка. Это очень важно, поскольку, хотя это просто чат, по сути, это бесплатное интервью, которое вы получаете только там, где вы можете продемонстрировать свою личность и установить некоторое взаимопонимание и привязанность. Возможно, это даже даст вам работу.
Трудоустройство
Что касается досок объявлений, то их довольно много. Есть большие, такие как:
- Действительно
Они отлично подходят для того, чтобы увидеть, что там есть и какие технологии актуальны и актуальны. Тем не менее, часто именно менее используемые доски объявлений найдут вам путь к успеху. Вот некоторые примеры вакансий, размещенных на:
- Переполнение стека
- Индихакеры
- список ангелов
Последний шаг
Потерпи. Будьте настойчивы. Расти. Если вы столкнулись с отказом, возьмите свой худший проект и замените его новым проектом, который лучше остальных. А когда вы получите работу, вы будете знать так много, что сразу же броситесь в дело и никогда не оглянетесь назад.