Путь Python Junior-а в 2017
Инфографика о минимум знаний и навыков, необходимых современному python джуниору. Без каких технологий не обойтись начинающему разработчику?
Общее
Есть несколько вещей, которыми должен владеть любой начинающий разработчик. Это системы контроля версий, базовые знания информатики, алгоритмы и структуры данных и не только.
- Git — контроль версий
- SSH — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов)
- HTTP — протокол прикладного уровня передачи данных
- Базовые навыки пользования терминалом
- Алгоритмы и структуры данных — основа основ
- Кодировки
- SQL, базы данных
- nginx — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах
- GitHub
- создайте свой профиль
- изучайте интересные вам проекты, учитесь читать чужой код, выработайте привычку разбираться в том, как он работает
- создайте свой проект с открытым кодом или присоединитесь к уже существующему
- ООП
- основные принципы ООП
- императивный и декларативный стили
- замыкания и интроспекция
- асинхронная концепция программирования
- ОС
- потоки
- процессы
- сокеты
- стек протоколов TCP/IP
Основы
- Python2 vs Python3 — различия синтаксиса
- Дескрипторы — очень мощный инструмент в Python. Дескрипторы - это классы, в которых определены методы __get__, __set__ и __delete__
- GIL — способ синхронизации потоков
- WSGI — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером
- Генераторы и итераторы
- Импорт модулей
Дополнительные инструменты
Фреймворки
Асинхронные
- Tornado
- gevent
- aiohttp
- Celery
Синхронные
- Pyramid
- Flask
- Django
Тестирование
- doctest
- py.test
- Selenium
- unittest/pyUnit
Менеджеры пакетов
- pip