Skip to content

Instantly share code, notes, and snippets.

@corbands
Created June 3, 2015 20:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save corbands/c17906d56f5c3dfebef4 to your computer and use it in GitHub Desktop.
Save corbands/c17906d56f5c3dfebef4 to your computer and use it in GitHub Desktop.
python developer
Опишу какие вещи нужно знать и уметь с ними работать
*******
Python
*******
основы:
- базовые типы данных (int, str, float), более сложные (list, dict, tuple)
рекомендую посмотреть сайт tutorialspoint - там можно найти базовые методы для работы со строками и сложными типами
например, для листа - http://www.tutorialspoint.com/python/python_lists.htm
там же можно посмотреть строки, dict, tuple
- условия, циклы
- функции - аргументы функций (позиционные, именнованные, аргументы по умолчанию)
- файлы - чтение, запись
ООП:
- классы, объекты
- конструктор
- наследование, переопределение методов в дочерних классах, множественное наследование
- методы - staticmethod, classmethod
тоже нужно знать:
- генераторы, итераторы
меня на собеседовании просили написать простой генератор списка, генератор словаря
- декораторы
- контекстный менеджер
эти штуки знать как и зачем использовать, как написать свои - знать не нужно (но это несложно, можно врубиться впоследсвии)
*******
Django
*******
Вот тут нужно порядочно сломать мозг :)
Первое время сориентироваться в джанго непросто - можно и приуныть - так что будь готов, что не с первого раза всё пойдет.
У меня так было несколько заходов, пока не стал врубаться
Рекомендую сразу посмотореть статьи обзорные (на хабре, например) про джанго и про архитектурный паттерн MVC - на нём джанго основан
и пройти туториал на оф. сайте
https://docs.djangoproject.com/en/1.8/intro/tutorial01/ - там 6 шагов
и почитать книгу
Форсье Дж., Биссекс П., Чан У. - Django. Разработка веб-приложений на Python (High tech) - 2009
в этой книге хорошо бы прочиать всё до примеров (примеры тоже можно посмотреть выборочно) - это важно чтобы начать врубаться в предметную область. Чтобы знать из чего фреймворк состоит.
**
После этого можно придумать себе проект и начать его делать (отдельно напишу, какого типа проект можно замутить)
****************
Вообще про веб
****************
- как происходит взаимодействие клиент-сервер. Знать что происходит, когда пользователь на сайте нажимает ссылки - что происходит с точки зрения клиента и сервера
- протокол http. типы запросов (GET, POST, PUT, PATCH, DELETE) - когда какие запросы применяются
***********
БД
***********
основные запросы
select
insert
update
delete
уметь писать простые запросы типа на SQL
select name, age, nation from student;
Тут достаточно простого туториала по SQL пройти
И знать общие сведения, что значит реляционные БД
Большим плюсом будет знание как писать запросы с JOIN'ами
******
LINUX
******
нужно уметь ориентироваться с терминале.
Если у тебя не линукс, очень рекомендую все обучение проходить именно под линуксом - в основном, вся веб-разработка ведется под линуксами.
Или под маками (в алитиксе - Нет) - но там тот же shell - так что лишним точно не будет
минимум тут примерно следующий:
- перемещаться по файловой системе, создавать папки, файлы, удалять их.
- запускать .sh скрипты
- убивать процессы
- знать про ssh
- grep, find
что касается ssh, то это штуковина для ежедневного использования - врубишься, если например, поднимешь собственный сервак в облаке или поднимешь виртуалку под вагрантом.
*****************************************
системы контроля версий, в частности, git
*****************************************
рекомендую сразу применять git в домашнем проекте.
Нужно знать основной flow - тут туториалов существует много
********
advanced
********
Это в общем-то не нужно для джунира, но про многопоточное программирование базу было бы хорошо знать
большим плюсом будут знания:
- по многопоточному программированию (в случае Python - многопроцессорного)
- по rest api веб-приложения (в алитиксе используется tastypie)
- celery - это тоже испльзуется в алитиксе - для запуска асинхронных процессов (в них всякие ресурсоемкие операции выполняются)
@corbands
Copy link
Author

corbands commented Jun 3, 2015

хороший ресурс по Джанго - http://gettingstartedwithdjango.com/en/lessons/introduction-and-launch/
это я бы рекомендовал точно после туториала, и мб после книги
Тут полезная информация как поднять виртуалку и вагрант - окружение для разработки

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment