Найти тему
Трусливый Айтишник

Чему не учат на ИТ курсах.

Оглавление

Всем доброго дня.

В прошлой статье я писал о том, как закончил курсы GeekBrains и как они помогли мне в новой работе. Однако на этих курсах, как впрочем и на остальных(программы у всех ИТ школ почти одинаковые) было далеко не все из того, что нужно в полноценной работе python программиста. Далее я расскажу про инструменты на которые надо обязательно обратить внимание в дополнительном самообучении. Рассказывают про них очень мало, а работать с ними придется очень много и скорее всего с первых же дней на новом месте.

Pytest и тестирование в целом

Если открыть практически любую вакансию Python разработчика, то там обязательно будет пункт "умение писать тесты". Это важнейший навык и без него никуда. Почему? Это тема для отдельной статьи, а пока знайте, без умения пользоваться библиотеками pytest и unitest сейчас никуда.

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

Асинхронность

Про такую важную тему как асинхронность на курсах практически не говорят вообще. И это очень странно. Да, использование асинхронных фреймворков вроде Tornado или FastAPI можно встретить не так часто, но вот уж задачек с использованием связки celery/redis или celery/rabbitMQ хватает еще как. И вот про них хотелось бы узнать заранее, а так практически все знания пришлось искать в свободных источниках, причем в очень сжатые сроки.

Kubernetes

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

Gitlab CI

Тут, как и в случае с тестированием вроде и рассказывают, но явно недостаточно. Создавать ветки, делать commit и push вас научат, но этого все равно очень мало. Нужно уметь делать merge request и разбираться с конфликтами. Знать чем git rebase отличается от git merge. Ну и отдельная история CI/CD pipelines, важнейшая вещь про которую на курсах обычно не говорят ни слова. Да тут опять можно сказать, что это дело уже DevOps, но см. предыдущий пункт, мы живем не в идеальном мире.

Итого

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