Мои контакты


вторник, 4 сентября 2018 г.

Трансформация из Junior в Middle для Python-разработчиков

Статья из внутренней базы знаний нашей компании.

Мы подразумеваем, что разработчик грейда Junior владеет навыками программирования на Python (в идеале — Python 3), базово знает Django/Flask или что-то подобное и умеет работать с базой данных и системной контроля версий (мы используем Git). Таким образом, он может разработать простое веб-приложение на этом стеке.



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