Рус Укр
Must have после курсов

Must have после курсов

  • 22 марта
  • читать 10 мин
Артем Хряпа
Артем Хряпа Python developer в AnyTeam, Преподаватель Компьютерной школы Hillel.

Информация, изложенная ниже, является субъективным мнением автора и может быть неполной\неверной\плодом больной фантазии (нужное подчеркнуть). Не относитесь к ней слишком критично. В силу того что автор питонист — все имеет уклон в сторону Python/Back-end.

Итак, вы закончили курсы и уже нашли работу мечты. Ну или еще нет, но в процессе поиска. И у вас возникает закономерный вопрос: а что дальше? Достаточно ли приобретенных знаний для работы? Достаточно ли приобретенных знаний, чтобы найти работу? Стоит ли что-то еще учить поcле курсов?

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

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

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

Чему стоит уделить внимание? Для того, чтобы статья была полезна для всех направлений программирования, она разделена на части:

Рекомендуем курс по теме

Общеe IT-шное:

  • Английский язык. Если вы можете только «London is the capital of Great Britain», то у меня для вас плохие новости. Язык всего IT — английский. Вся документация, все свежие статьи, вся переписка, вся IT-шная жизнь — на английском. Жизненно необходимо уметь объясниться на нем как письмено, так и устно. Для старта карьеры в IT вполне хватит уровня pre-intermediate, но чем выше ваш уровень, тем вы более востребованы.

  • Быстрый набор текста. Любой IT-шник пользуется компьютером и набирает текст на клавиатуре. Любой IT-шник — это писатель. Печатать три строки двумя пальцами на протяжении одного часа — это неэффективно. Ускоряйтесь!

  • Изучение доменной области. У каждой отрасли есть своя специфика. Если вы работаете в сфере доставки медикаментов, но не понимаете, как она функционирует — то у меня для вас опять плохие новости. Если вы еще не работаете, но очень хотите работать в сфере торговли криптовалютой и при этом не понимаете, как там все работает — то у меня для вас снова плохие новости. Не важно, какую работу в компании вы выполняете или планируете выполнять — HR или верстальщик, архитектор БД или пишете формулы для бухгалтерии — понимать что делает ваш продукт/компания/отрасль очень важно! Разберитесь и изучите как минимум основные принципы и специфику. Это значительно увеличит вашу эффективность.

Общее программистское:

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

  • Чистота, читаемость и стилистика кода, принципы DRY, KISS, YAGNI и т.д. Для каждого языка существуют правила, традиции, рекомендации. Не пренебрегайте этим!

  • Расширяйте свое понимание ООП. Базовые принципы ООП, SOLID и т.д. Литературы по этим темам читать-не перечитать.

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

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

  • GIT. Система контроля версий, которая используется везде и повсеместно. И хорошо бы знать/применять чуть больше, чем git push origin master.

Back-end:

  • Базы данных. Любой бекенд всегда использует БД. Изучайте язык SQL, принципы работы реляционных и нереляционных БД, работу различных СУБД.

  • Операционные системы. Кроме Windows существует огромное множество других ОС. Серьезно. Не шучу. Сервера, на которых будут работать ваши приложения, скорее всего будут на Unix-подобных ОС. Изучайте ОС на ядре Linux или ей подобных.

  • Docker. Невероятно популярный на сегодня инструмент для создания приложений на основе контейнеров.

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

  • Смежные с backend области:
    • Тестирование. Принципы тестирования в общем и юниттесты в частности. Проверять свою работу за собой и защитить свой код от поломок очень важно для программиста любого уровня. Понимание общих принципов тестирования поможет лучше проектировать ваши приложения. Юниттесты оградят от «неожиданностей» в процессе внедрения новых фич.

    • Фронтенд. Любому бекендщику важно понимать что происходит на «той стороне» и понимать, хотя бы в общих чертах, как «там» все работает. Не говоря уже о том, что некоторые компании намеренно ищут фулстекеров. Изучите, хотя бы базово, HTML и CSS, покопайтесь в JS.

Python:

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

  • Потоки и процессы. Разберитесь с потоками и процессами, различиями, особенностями, применением. Модули multiprocessing и threading.

  • Изучите принципы и подходы асинхронного программирования. Популярным модулем для этого является asyncio.

  • Очереди заданий. Что это, как работает, как используется. Брокеры очередей (например, RabbitMQ).

  • Фреймвоки. Знание Django — это, безусловно, хорошо, но существуют и другие фреймворки. И немало.

Как это все увязать и изучить или применить ?

  1. Pet-project. Собственный проект — прекрасный способ изучать все вышеописанное. Не пытайтесь с нуля написать свой фейсбук, все равно не выйдет. Придумайте себе несложную задачку в вашей нынешней или желаемой доменной области. Продумайте алгоритм работы системы, структуры данных, взаимосвязи. Напишите и запустите скелет проекта. Постепенно добавляйте в него изучаемые технологии. Доведите до ума код, напишите документацию, обложите тестами, запустите, покажите друзьям, коллегам. Хороший пет-проект является прекрасной тренировочной базой, а наличие ссылки на репозиторий с проектом в резюме часто заменят тестовое задание при поиске новой работы.

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

    2. Youtube. Аналогично, только в видеоформате.

    3. Telegram. Модно, стильно, молодежно. Куча каналов с годными статьями, тестами и т.д.

    4. Книги. Читайте, это полезно.

  3. Курсы. Кто сказал, что нужно останавливаться? Продолжайте учиться!)