Информация, изложенная ниже, является субъективным мнением автора и может быть неполной\неверной\плодом больной фантазии (нужное подчеркнуть). Не относитесь к ней слишком критично. В силу того что автор питонист — все имеет уклон в сторону 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 — это, безусловно, хорошо, но существуют и другие фреймворки. И немало.
Как это все увязать и изучить или применить ?
Pet-project. Собственный проект — прекрасный способ изучать все вышеописанное. Не пытайтесь с нуля написать свой фейсбук, все равно не выйдет. Придумайте себе несложную задачку в вашей нынешней или желаемой доменной области. Продумайте алгоритм работы системы, структуры данных, взаимосвязи. Напишите и запустите скелет проекта. Постепенно добавляйте в него изучаемые технологии. Доведите до ума код, напишите документацию, обложите тестами, запустите, покажите друзьям, коллегам. Хороший пет-проект является прекрасной тренировочной базой, а наличие ссылки на репозиторий с проектом в резюме часто заменят тестовое задание при поиске новой работы.
- Интернет полон информации. Существует тьма ресурсов с кучей полезных статей. Подпишитесь на интересующие ресурсы. Обновляйте свои знания в уже известных вам областях, а также будьте в курсе новых технологий.
Тематические сайты, статьи, туториалы. Поисковик вам в помощь.
Youtube. Аналогично, только в видеоформате.
Telegram. Модно, стильно, молодежно. Куча каналов с годными статьями, тестами и т.д.
Книги. Читайте, это полезно.
Курсы. Кто сказал, что нужно останавливаться? Продолжайте учиться!)