TL; DR: здесь, в RisingStack, есть учебный курс по программированию для Node.js, который поможет вам избавиться от синдрома самозванца и даст вам толчок к изучению Node.js!

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

((Тогда я понятия не имел, во что ввязываюсь!))

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

К тому времени, когда вы его закончите, вы станете разработчиком Node, который сможет уверенно работать над корпоративными проектами (с помощью наставника) - и это отличный учебный материал, если вы готовитесь к сертификационному экзамену Node Foundation!

Это моя история:

Знакомьтесь, разработчик Wannabe Node

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

Однажды я увидел рекламу курса программирования. 4 месяца базовой веб-разработки с неплохими шансами найти работу. Я провел небольшое исследование возможностей и поговорил с парой друзей из индустрии. Думаю, вы уже узнали: я подал заявку.

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

Перенесемся в июнь 2017 года: в моем почтовом ящике LinkedIn меня ждало сообщение. Оно отличалось от обычных сообщений рекрутера, оно было немного личным и действительно простым, с вопросом, заинтересован ли я в работе над классный материал, вклад в сообщество Javascript и Node.js, и если да, то давайте поговорим.

Лучший. Время. Всегда.

Запуск учебного курса Node на RisingStack

В мой первый день в RisingStack я получил футболку с двумя словами: Node Hero. Я сразу же расхохотался.

  • «Узел-герой? Скорее кореш. Или парень, который меняет лампочку в отражателе позывного… »- сказал я.
  • «На данный момент, может быть. Но в конце нашего учебного курса по Node.js вы узнаете все, что вам нужно, чтобы двигаться вперед », - сказали они.

Но оказалось, что они были правы. Предоставленного ими профессионализма и знаний было более чем достаточно, чтобы получить основы работы с Node.js и уверенно перейти в новую главу моей карьеры программиста.

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

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

Знаете, просто для развлечения и ради разнообразия. :)

Вы спросите, что же я сделал вместо этого?

Основная задача бизнес-логики при первом назначении заключалась в следующем:

  1. Найдите репозитории GitHub с помощью общедоступного API GitHub
  2. Собирать репозитории в базу данных в форме, указанной в readme
  3. Соберите участников репо в базу данных в форме, указанной в файле readme.
  4. Рассчитайте добавленные строки по участникам и сохраните их в базе данных.
  5. Уметь запрашивать вклады

Это кажется довольно простым, а?

Вы будете удивлены, насколько сложной это может быть в кратчайшие сроки! Особенно, если вы хотите сделать это на уровне RisingStack ..

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

Так что мне нужно было немного сбавить обороты ...

«Не могли бы мы выполнять ежедневное задание каждый конец дня и проверять, все ли у меня правильно?»

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

  • Синтаксис ES6 с async-await
  • Joi для проверки
  • Knex.js, для построения и миграции SQL-запросов
  • Redis для обработки сообщений (да, рабочие будут;)) и это лишь некоторые из них.

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

Совет от новичка: для меня было действительно полезно настроить метод:

  • Сначала я потратил день на чтение ресурсов, поиск связанных с ними и выполнение супер простых примеров, чтобы увидеть, как они работают в реальной жизни, и проверить, правильно ли я все понял.
  • На следующий день я составил план, обычно с ручкой и бумагой (да, я знаю, это так 3000 до н.э., но это лучший способ быстро делать заметки и черновики!), Чтобы составить план рабочего процесса о том, что мне нужно делать в задача.

Таким образом, вы сможете не сбиться с пути и сэкономить много времени!

Тесты. Они получили твою спину, братан ..

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

Но действительно ли это работает? В любом состоянии? А как насчет того рефакторинга, который вы провели вчера? Это все еще круто? Думаю, вы слышали это много раз, иначе вы сам Тестовый Папа, так что вы можете поддержать меня в этом вопросе:

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

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

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

  • Mocha.js,
  • Chai.js,
  • Синон

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

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

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

Не забывайте: пропущенный сегодня тест - это завтрашняя ошибка.

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

Есть такая старинная пословица:

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

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

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

  • «Я только что закончил учебник по javascript. Что я должен делать дальше?"
  • «У вас есть хорошее упражнение, которое подойдет новичку?»
  • «Каковы минимальные требования, чтобы устроиться на младшую работу в качестве Node.js / веб-разработчика?»

Я почти уверен, что если вы подписаны на r / javascript, вы видели эти вопросы более одного раза…

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

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

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

Хочешь пойти дальше? Конечно, шеф! А как насчет того, чтобы подключить к нему какую-нибудь систему CI? Возможно, развертывание на Heroku? Создаете для него интерфейс? Это все возможно, я знаю, потому что сделал это. Только вам решать, в каком направлении вы хотите двигаться от этой точки.

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

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

Вы можете начать учебный курс по узлам RisingStack прямо сейчас

Мое описание выше было всего лишь небольшим вкусом, едва касающимся поверхности. Предлагаю вам проверить упражнения для себя на GitHub: https://github.com/RisingStack/risingstack-bootcamp

Надеемся на ваши отзывы!

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

Первоначально опубликовано на blog.risingstack.com 30 августа 2017 г.