- PVSM.RU - https://www.pvsm.ru -

Путь к мастерству: Как стать успешным разработчиком

Путь к мастерству: Как стать успешным разработчиком - 1

👩‍💻 Программирование — это путь, полный вызовов и возможностей для роста. Я начал этот путь в 2010 году как Junior-разработчик и на данный момент достиг позиции Tech Lead, продолжая развиваться в профессии. Накопленный опыт позволяет мне с уверенностью говорить о тех шагах и подходах, которые я опишу в этой статье.

За все время разработки мне довелоcь работать с различными языками программирования, такими как Delphi, JavaScript, PHP и Go. И с разными доменами Cassine, CMS, Billing, Gamblink, Marketplace

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

📚 Образования

Наличие образования в сфере IT не гарантирует, что вы станете программистом. Говорю это с уверенностью, опираясь на опыт своей группы в университете, только 20% выпускников действительно стали работать по професии. Поэтому, если вы решите поступать на IT-специальность, это, конечно, облегчит ваш путь, у вас будет 5 лет, чтобы пройти через 5 стадий принятия неизбежного [1] ;)

Если у вас нет IT-образования — это хорошо, ведь для вас существуют IT-курсы. За 3-6 месяцев вам обещают, что вы станете программистом. Однако, имея опыт работы преподавателем в одной из таких IT школ, могу уверенно сказать, что процент тех, кто действительно становится программистом после таких курсов, ещё ниже — всего около 5% (по моим индевидуальным подсчетам). 

Почему так происходит? Время на обучение ограничено, домашние задания делать некогда, уже есть основная рабата и большинство студентов просто не успевают пройти через все пять стадий принятия. 50% остаются на стадии отрицания, осознав, что программирование — это не для них, 20% застревают на стадии гнева. На стадии торга — всего 10%, еще 10% — на стадии депрессии, и только 10% доходят до стадии принятия.

✨ Типы разработки

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

Web разработка

  • Frontend разработка — это создание того, что видит и с чем взаимодействует пользователь. Она включает работу с HTML, CSS, JavaScript.

  • Backend разработка — это создание серверной логики, управление базами данных и взаимодействие с API.

  • Fullstack разработка — это сочетание навыков frontend и backend, то есть разработка как пользовательского интерфейса, так и серверной части.

Мобильная разработка -  программирование приложений  для телефонов

Game разработчики - программирование игор 

Application разработчики - программирование програм для ОС

Embedded разработчики - программирование микроконтроллеров и встроенных систем

👅 Выбор языка

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

☁️ Web-разработка

  • Frontend разработка:

    • JavaScript — основной язык для создания интерактивных интерфейсов.

    • HTML и CSS — для разметки и стилизации веб-страниц.

  • Backend разработка:

    • PHP — популярен для веб-приложений и работы с CMS.

    • Python — часто используется с фреймворками, такими как Django и Flask.

    • Node.js — JavaScript на серверной стороне.

    • Java — для крупных и надежных приложений.

    • Ruby — используется с Ruby on Rails.

📱 Мобильная разработка

  • iOS разработка:

    • Swift — основной язык для разработки приложений на iOS.

    • Objective-C — старый язык, который всё ещё используется в некоторых проектах.

  • Android разработка:

    • Kotlin — предпочтительный язык для Android-приложений.

    • Java — также широко используется в Android-разработке.

  • Кроссплатформенные приложения:

    • JavaScript (с React Native), Dart (с Flutter) и C# (с Xamarin).

🎮 Game разработка

  • C# — используется с Unity.

  • C++ — широко применяется в разработке игр, особенно с Unreal Engine.

💻 Робототехника

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

  • C/C++ — популярны для программирования микроконтроллеров и встраиваемых систем, поскольку они обеспечивают высокую производительность и прямой доступ к аппаратным компонентам.

  • ROS (Robot Operating System) — это набор библиотек и инструментов, разработанных для облегчения создание робототехнических приложений, поддерживающий множество языков, включая Python и C++.

📼 Разработка приложений (Application разработка)

  • C# — для разработки приложений на Windows (с .NET).

  • Java — для кроссплатформенных приложений и Android.

  • Python — для создания настольных приложений и сценариев.

  • Delphi — используется для разработки настольных приложений под Windows, особенно в бизнес-приложениях.

⚙️ Embedded разработка

  • C и C++ — основополагающие языки для разработки встроенных систем.

  • Python — используется для прототипирования и разработки простых решений.

Также важно не забывать про уровень сложности и порог входа в язык. Некоторые языки проще для начинающих, в то время как другие требуют более глубокого понимания концепций программирования и разработки. Работа в сфере разработки игр - может звучать заманчиво, но нужно понимать что С++ освоить будет сложнее чем PHP. 

Вот таблица языков программирования, отсортированных от простых к более сложным:

Уровень сложности

Язык

Простой

HTML, CSS, JavaScript, Python, Ruby

Средний

PHP, Java, C#, Swift, C, Kotlin

Сложный

C++, Rust, Delphi, Haskell

👦 Junior. Начало пути

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

📚 Обучения

Выбор IT школы

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

  • Репутация школы и отзывы студентов

  • Преподаватели с опытом в IT

  • Насыщеная программа обучения

  • Большей процент практического обучение

  • Менторинг и обратная связь от преподавателей

  • Трудоустройство или хотябы стажировка в IT компании

  • Стоимость и длительность обучуния.

Самообучения

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

  • Четкое планирование и постановка целей

  • Выбор учебных материалов (YouTube [2], ChatGPT [3], Книги)

  • Подписка на уважаемых людей в вашей сфере (Robert C. Martin [4], Martin Fowler [5],...)

  • Изучение кода других разработчиков (GitHub [6])

  • Чтение документации и технических блогов (Stack Overflow [7], Medium [8], Reddit [9],Habr [10])

  • Практика, практика, практика

 🌐 Сообщество и Networking

  1. Участие в сообществах: вступай в онлайн-сообщества (Telegram [11], Slack [12], Discord [13]) и участвуй в обсуждениях.

  2. Местные встречи: если возможно, участвуй в местных IT-мероприятиях или хакатонах.

🔨 Инструменты

Для Junior PHP разработчика важно освоить ключевые инструменты, которые помогут эффективно писать, тестировать и развёртывать приложения. Вот список основных инструментов, которые стоит изучить:

  • Системы управления проектами (JIRA [14])

  • Мониторинг ошибок и логирование (Sentry [15], Graylog [16])

  • Средства для отслеживания производительности (New Relic [17], Kibana [18], Grafana [19], Blackfire [20])

  • Системы контроля версий (Git [21])

  • Докеризация (Docker [22], Vagrant [23])

  • Среды разработки (IDE)

  • Менеджер зависимостей (Composer [24], NPM [25]/Yarn [26])

  • CI/CD системы (GitLab CI [27], Jenkins [28], Travis CI [29])

  • Работы с API (Postman [30]/Insomnia [31], IDE tools)

  • Инструменты работы с БД (phpMyAdmin [32])

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

🦾 Хард скилы

Хард скиллы — это технические знания и умения, которые необходимы Junior PHP разработчику для успешной работы в команде и выполнения поставленных задач. Эти навыки охватывают широкий спектр технологий и инструментов, начиная с основ программирования на PHP и заканчивая знанием фреймворков, баз данных и инструментов разработки.  Вот список основных инструментов, которые стоит изучить:

  • Веб-серверы (Apache [33]/Nginx [34])

  • Понимание основ фронтенд-технологий (CSS [35], HTML [36], JS [37] (на базовом уровне))

  • Основы PHP (Знание синтаксиса и базовых конструкций языка) 

  • Основы работы с популярными фреймворками, Laravel [38], Symfony [39] или CodeIgniter [40].

  • Работа с базами данных: MySQL [41]/PostgreSQL [42]

  • Тестирование: PHPUnit [43]

  • Отладка: Xdebug [44]

  • Основы веб-технологий (RESTful API [45])

  • Основы безопасности (SQL-инъекции, XSS, CSRF)

  • Знание принципов Agile (Scrum [46], Kanban [47])

👬 Софт скилы

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

  • Коммуникационные навыки

  • Работа в команде

  • Готовность к обучению и изменениям

  • Умение справляться с неопределенностью

  • Эффективное планирование и оценка задач

  • Умение подходить к задачам с разных сторон

  • Способность понимать и управлять своими эмоциями

  • Настойчивость и мотивация

  • Организационные навыки

  • Навыки разрешения конфликтов

  • Гибкость и адаптивность

💼 Практика

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

  • Участие в Open Source проектах (GitHub [6])

  • Участия в хакатонах (Devpost [48], HackerEarth [49], Hackathon [50])

  • Решения задач на разных платформах (HackerRank [51], Codewars [52], LeetCode [53])

  • Создания сайта (блог) себе и своим друзям

  • Выполнения заказов на фрилансе (Upwork [54], Freelancer [55], Fiverr [56], Guru [57])

👔 Создание портфолио

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

  • Контактная информация и фото: укажите актуальные контакты и добавьте профессиональное фото.

  • Выполненные задания: включите проекты, выполненные в IT-школе или на хакатонах.

  • Личный сайт или блог: создайте платформу для демонстрации своих навыков и мыслей.

  • Страница на GitHub: убедитесь, что ваш код хорошо структурирован и оформлен.

  • Стажировка: укажите роль и обязанности, которые вы выполняли.

  • Курсы, которые вы прошли: перечислите курсы, связанные с вашей профессиональной деятельностью.

  • Полученные сертификаты: добавьте информацию о сертификатах, подтверждающих ваши навыки.

  • Отзыв или рекомендация: наличие положительного отзыва будет плюсом.

🎯 Поиск работы

Поиск работы может быть сложным процессом, особенно для Junior PHP разработчика, но не стоит огорчаться. Нужно быть готовым к отказам и готовность к прохождению 100+ интервю. Существуют различные стратегии и платформы, которые могут помочь вам в этом:

  1. Сайты по поиску вакансий (LinkedIn [58], Indeed [59], Glassdoor [60])

  2. Платформы для фриланса (Upwork [54], Freelancer [55], Fiverr [56])

  3. Конференции и митапы

  4. Хакатоны

  5. Обращение в компании напрямую

  6. Стажировки и практики:

  7. Поиск ментора

  8. Социальные сети

  9. Профессиональные сообщества и форумы:

  10. Агентства по трудоустройству:

  11. Обновление резюме и портфолио:

☎️ Подготовка к собеседованию

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

  1. Изучение компании:

    • Узнайте о миссии, ценностях и культуре компании

    • Ознакомьтесь с последними новостями и проектами компании

  2. Изучение требований и обязанностей:

    • Внимательно изучите описание вакансии и ключевые обязанности

    • Обратите внимание на необходимые навыки и квалификации

  3. Подготовка примеров из своего опыта:

    • Подумайте о конкретных примерах из вашего прошлого опыта, которые демонстрируют ваши достижения и навыки

  4. Изучение стандартных вопросов:

    • Подготовьтесь к часто задаваемым вопросам на собеседовании, таким как "Расскажите о себе" или "Как вы справляетесь с трудностями?"

  5. Подготовка теории:

    • Освежите знания по технологиям и методологиям, которые могут быть актуальны для интервью

    • Изучите новые тренды и разработки в вашей области

  6. Подготовьте краткий рассказ о себе и своем опыте:

    • Создайте четкий и лаконичный рассказ о себе, который включает ключевые моменты вашего опыта и достижений

  7. Подготовьте вопросы, которые вы хотели бы задать:

    • Сформулируйте вопросы о команде, проектах и перспективах развития в компании

  8. Практика собеседований (с друзьями или в группе):

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

  9. Обратите внимание на невербальную коммуникацию:

    • Практикуйте уверенную осанку, зрительный контакт и открытые жесты

  10. Подготовьте все необходимые документы:

    • Убедитесь, что у вас есть копии резюме, портфолио и других важных документов

  11. Узнайте о формате собеседования:

    • Проверьте, будет ли это техническое интервью, собеседование с HR или панельное интервью, чтобы подготовиться соответствующим образом

💰Получение оффера

Поздравляю! Вы прошли все этапы собеседования и произвели хорошее впечатление на работодателя. Что делать дальше?

  1. Проверьте компанию:

    • Исследуйте репутацию компании (отзывы сотрудников, новости и успехи)

    • Обратите внимание на корпоративную культуру и ценности

  2. Внимательно изучите оффер:

    • Ознакомьтесь с условиями работы, включая зарплату, бонусы и льготы

    • Убедитесь, что все важные аспекты (график работы, удалёнка, отпуска) четко прописаны

  3. Сравните с другими предложениями:

    • Проанализируйте другие офферы, если они есть, и оцените преимущества и недостатки каждого

  4. Подготовка к новой роли:

    • Исследуйте технологии, инструменты и методологии, которые используются в компании

    • Начните изучать документы, если они доступны, и общие требования к роли

  5. Планирование переходного периода:

    • Определите, как будете уходить с текущей работы, уведомите своего руководителя и команду

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

  6. Обсудите дату начала работы и предварительные задачи:

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

    • Если возможно, уточните, кто будет вашим наставником или куратором на новом месте

  7. Обсудите возможности карьерного роста:

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

  8. Проверьте условия контракта:

    • Убедитесь, что все условия, касающиеся увольнения, конфиденциальности и несоперничества, ясны и приемлемы

Выводы

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

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


👨 Middle/Middle+. Развитие

Прошло 2-3 года и мы получили свой первый опыт в програмировании на позиции Junior.  Однако, чтобы перейти на следующий уровень и стать Middle разработчиком, необходимо не только укрепить свои знания, но и развивать навыки, которые сделают вас ценным членом команды. 

Давайте забежим на перед и обсудим позицию Middle+.

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

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

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

  • Изучить новый язык программирования и понять его особенности

  • Освоить новый фреймворк и интегрировать его в свои проекты

  • Постоянно обучаться новым технологиям и подходам в разработке

  • Писать тесты (Unit, Functional, Integration) и учиться тестировать свой код на разных уровнях

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

  • Участвовать в open-source проектах для опыта работы с реальным кодом и сообществом

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

  • Попробовать себя в роли ментора для Junior разработчиков, передавая свой опыт

  • Получить дополнительные сертификаты для подтверждения навыков

  • Участвовать в конференциях и митапах, заводить новые знакомства и получать свежие знания

  • Изучать принципы архитектуры и паттерны проектирования, применять их в своих проектах

  • Работать над soft skills (управление временем, эмоциональный интеллект, работа в команде)

  • Постепенно осваивать DevOps практики, такие как автоматизация, CI/CD и контейнеризация

  • Попробовать себя в роли спикера на конференциях, выступая с докладами

  • Чтение технической литературы, блогов и участие в онлайн-курсах для расширения знаний

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


👴 Senior. Экспертность

Прошло 5+ лет как мы в IT. Но переход от Middle разработчика к Senior может оказаться более сложным, чем переход с уровня Junior на Middle. Основная причина заключается в том, что на уровне Senior от специалистов требуется не только глубокое знание технологий, но и широкий спектр других навыков и качест. 

Таким образом, переход с позиции Middle на Senior — это не просто шаг в карьерной лестнице, а значительный рост как профессиональных, так и личных навыков. Этот путь требует времени, терпения и постоянного саморазвития, что делает его настоящим вызовом для многих разработчиков. 

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

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

Так кто же он такой этот Senir? Это безусловно человек который обладает такими пунктами как

Soft skills

  • Постоянное самообучение и стремление к профессиональному развитию

  • Адаптивность к изменениям и гибкость мышления [61]

  • Критическое мышление [61] и аналитический подход

  • Самостоятельность и самодисциплина

  • Способность создавать и поддерживать качественную документацию

  • Умение эффективно работать в команде

  • Решение проблем и поиск оптимальных решений

  • Менторство, лидерство и управление командой

  • Коммуникативные навыки и умение передавать знания

  • Эмоциональный интеллект и управление конфликтами

  • Способность брать на себя ответственность за решения и их последствия

Hard skills

  • Глубокое понимание языка программирования и владение его тонкостями

  • Опыт работы с популярными фреймворками (например, Symfony [39], Laravel [38])

  • Написание и тестирование собственного кода

  • Разработка Unit, Functional и Integration тестов

  • Знание SQL и опыт работы с реляционными базами данных (например, MySQL [41], PostgreSQL [42])

  • Опыт работы с NoSQL базами данных (например, MongoDB [62], Redis [63])

  • Большие языковые модели (LLM)

  • Умение проектировать и реализовывать RESTful [45] и GraphQL API [64]

  • Понимание архитектуры и основных паттернов проектирования

  • Философия DDD [65] (Domain-Driven Design) и её применение

  • Понимание принципов "чистого кода" и "чистой архитектуры"

  • Владение лучшими практиками кодирования (SOLID [66], DRY [67], KISS [68] и т.д.)

  • Знание основных принципов безопасности приложений (OWASP [69], шифрование, аутентификация)

  • Умение анализировать и оптимизировать производительность приложений

  • Вклад в open-source и участие в профессиональном сообществе

  • Понимание DevOps практик (CI/CD, контейнеризация, оркестрация)

  • Опыт работы с облачными платформами (AWS [70], Google Cloud [71], Azure [72])

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

👀 Уровневая градации

Наконец, хочу сказать несколько слов о уровне градации. Различия между уровнями Junior, Middle и Senior в разработке программного обеспечения обычно отражают опыт разработчика, набор навыков и ожидаемые обязанности в их ролях. Важно помнить, что уровень специализации очень субъективен и зависит от масштаба и культуры компании, в которой вы работаете. Например, если вы занимаете позицию Senior в компании X, это не означает, что вас будут воспринимать так же в компании Y, где могут применяться другие стандарты и требования. Это нормально, и важно понимать, что каждая организация имеет свои собственные критерии для оценки навыков и опыта.

Заключение

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

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

Автор: dykyi_roman

Источник [73]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/401097

Ссылки в тексте:

[1] 5 стадий принятия неизбежного: https://grief.com/the-five-stages-of-grief/

[2] YouTube: https://www.youtube.com/

[3] ChatGPT: https://chatgpt.com/

[4] Robert C. Martin: https://en.wikipedia.org/wiki/Robert_C._Martin

[5] Martin Fowler: https://www.martinfowler.com/

[6] GitHub: https://github.com/

[7] Stack Overflow: https://stackoverflow.co/

[8] Medium: https://medium.com/

[9] Reddit: https://www.reddit.com/

[10] Habr: https://habr.com

[11] Telegram: https://telegram.org/

[12] Slack: https://slack.com/

[13] Discord: https://discord.com/

[14] JIRA: https://www.atlassian.com/

[15] Sentry: https://sentry.io/welcome/

[16] Graylog: https://graylog.org/

[17] New Relic: https://newrelic.com/

[18] Kibana: https://www.elastic.co/kibana

[19] Grafana: https://grafana.com/

[20] Blackfire: https://www.blackfire.io/

[21] Git: https://git-scm.com/

[22] Docker: https://www.docker.com/

[23] Vagrant: https://www.vagrantup.com/

[24] Composer: https://getcomposer.org/

[25] NPM: https://www.npmjs.com/

[26] Yarn: https://yarnpkg.com/

[27] GitLab CI: https://docs.gitlab.com/ee/ci/

[28] Jenkins: https://www.jenkins.io/

[29] Travis CI: https://www.travis-ci.com/

[30] Postman: https://www.postman.com/

[31] Insomnia: https://insomnia.rest/

[32] phpMyAdmin: https://www.phpmyadmin.net/

[33] Apache: https://httpd.apache.org/

[34] Nginx: https://nginx.org/en/

[35] CSS: https://www.w3schools.com/css/

[36] HTML: https://www.w3schools.com/html/

[37] JS: https://www.w3schools.com/js/

[38] Laravel: https://laravel.com/

[39] Symfony: https://symfony.com/

[40] CodeIgniter: https://codeigniter.com/

[41] MySQL: https://www.mysql.com/

[42] PostgreSQL: https://www.postgresql.org/

[43] PHPUnit: https://phpunit.de/index.html

[44] Xdebug: https://xdebug.org/

[45] RESTful API: https://en.wikipedia.org/wiki/REST

[46] Scrum: https://www.scrum.org/resources/what-scrum-module

[47] Kanban: https://en.wikipedia.org/wiki/Kanban_(development)

[48] Devpost: https://devpost.com/

[49] HackerEarth: https://www.hackerearth.com/

[50] Hackathon: https://www.hackathon.com/

[51] HackerRank: https://www.hackerrank.com/

[52] Codewars: https://www.codewars.com/

[53] LeetCode: https://leetcode.com/

[54] Upwork: https://www.upwork.com/

[55] Freelancer: https://www.freelancer.com/

[56] Fiverr: https://www.fiverr.com/

[57] Guru: https://www.getguru.com/

[58] LinkedIn: https://www.linkedin.com/

[59] Indeed: https://nl.indeed.com/

[60] Glassdoor: https://www.glassdoor.com/index.htm

[61] мышления: http://www.braintools.ru

[62] MongoDB: https://www.mongodb.com/

[63] Redis: https://redis.io/

[64] GraphQL API: https://graphql.org/

[65] DDD: https://en.wikipedia.org/wiki/Domain-driven_design

[66] SOLID: https://en.wikipedia.org/wiki/SOLID

[67] DRY: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself

[68] KISS: https://en.wikipedia.org/wiki/KISS_principle

[69] OWASP: https://owasp.org/

[70] AWS: https://aws.amazon.com/

[71] Google Cloud: https://cloud.google.com/

[72] Azure: https://azure.microsoft.com/en-us

[73] Источник: https://habr.com/ru/articles/854772/?utm_source=habrahabr&utm_medium=rss&utm_campaign=854772