Статья из внутренней базы знаний нашей компании.
Мы подразумеваем, что разработчик грейда Junior владеет навыками программирования на Python (в идеале — Python 3), базово знает Django/Flask или что-то подобное и умеет работать с базой данных и системной контроля версий (мы используем Git). Таким образом, он может разработать простое веб-приложение на этом стеке.
Для перехода в грейд Middle разработчик должен освоить следующий список инструментов/технологий/навыков.
- Углубленное знание Python, понимание внутреннего устройства языка:
- хорошее знание стандартной библиотеки
- умение выбирать наиболее эффективный алгоритм и/или структуру данных для решения конкретной задачи
- умение отлаживать код на Python
- умение писать юнит-тесты и проектировать код так, чтобы его было легко тестировать
- Владение асинхронным программированием:
- понимание, для чего нужно асинхронное программирование, и как оно работает
- понимание различий между асинхронностью и параллельностью
- понимание, какие могут быть с ним проблемы и умение их решатьумение отлаживать код на Python
- умение работать с асинхронными фреймворками: Tornado и/или asyncio
- умение писать юнит-тесты на асинхронный код
- Более продвинутое знание СУБД:
- умение составлять запросы на SQL и понимание всех видов джойнов
- умение проектировать схему БД под задачу
- понимание устройства индексов
- умение анализировать план запроса
- Умение декомпозировать большие задачи на мелкие
- Умение достаточно точно оценивать сроки выполнения задач (примерно четыре из пяти задач должны быть с точным попаданием в оценку)
- Свободная работа с Git: ветвление, решение конфликтов и т.д.
Дорогие Junior'ы, можете использовать этот список как план действий. Удачи.
Комментариев нет:
Отправить комментарий