globuzer
@globuzer
gezgrouvingus progreszive ombusgrander greyderzux

Какие самые реальные и действенные проекты\работы\фриланс для python-программиста?

Многие ресурсы и интервью веб-разработчиков, видео-обзоры, статьи аналитиков пестрят о том, что в последнее время язык Python самый распространенный и приобретает наибольшую популярность.
Очень удобен на практике и прост в изучении. Спор о применении того или иного языка в тех или иных проектах - бесконечен, это дело вкуса, задач, привычки, психологии, времени и философии.
Вопрос не об этом.
Хотелось бы услышать мнение тех специалистов, кто давно занимается Python, а также тех, кто его только начинает изучать. Пролистывая многие учебники информатики, Python даже преподают в школах, вместо бейсика, как ранее...

Получив определенный уровень и опыт в программировании на этом замечательном языке программирования, где можно и в каких проектах и в каких типовых задачах поработать?
Какие типовые задачи встречаются для питон-программистов на odesk, fl, elance, weblancer?
Каким нужно обладать опытом и квалификацией чтобы фрилансить по задачам связанным с "питоном"?
В чем заключается работа в подобных задачах: это целый полный проект с нуля и писать-писать-кодить-кодить модули и связывать все в одно целое в каком-то нагруженном сервисе ИЛИ же прикрутить к некому серверу уже некий готовый модуль?
То есть какие встречаются по трудоемкости и времязатратам задачи? Среднестатистические для питонистов?

Вопрос для тех, кто начинал осваивать питон: через какой промежуток времени, начав изучать питон с нуля, можно уже начинать фрилансить или работать? На какие задачи ориентироваться изначально?
В каком направлении растить опыт и навыки по области питон программирования? Какие библиотеки, модули и фреймворки пытаться усвоить?

Что кроме самого Python, питон-программисту необходимо обязательно знать из веб-технологий?
Что больше всего используется и наиболее встречается в задачах питон-программистов?
Как сильно перспективен этот язык и технология? И есть ли у нее будущее?
  • Вопрос задан
  • 11532 просмотра
Пригласить эксперта
Ответы на вопрос 3
voidnugget
@voidnugget
Программист-прагматик
Пишу на питоне ещё с 15 лет (2.4+)... ненавижу его runtime и архитектуру. Язык хороший - реализация никакущая. Ну да его синтаксис достаточно упрощён, но и за синтаксический сахар приходится платить сложностями отладки и поддержки.

Сейчас же почти все известные мне конторы не используют питон в продакшенах с более-менее высокой нагрузкой. Яндекс тому пример. Чаще питон используется для решения прикладных задач администрирования, так как это делается, к примеру, в SaltStack. Все дружно слезают с питона, РНР и рельсов на Golang, Java/Scala, и иногда даже Groovy - производительность выше в десятки раз, и managed runtime на много стабильнее. Правда в случае с JVM очень сильно раздувается куча в виду избыточности объектной модели (оператву жрёт как дурное, а я байтики считать привык). Сейчас это должно лечится с помощью Project Graal и Truffle, правда пока до этого дошёл только jRuby, который тоже в пару десятков раз быстрее Ruby. По идее и Groovy тоже должен переползти как-то ... Вот про jyton ничего не знаю.

Много моих знакомых слезло на Golang с Ruby и Питона.
Стоит попробовать - он достаточно простой и идиоматичный, вот рефлексию стоит обходить стороной - она очень медленная, впрочем как и везде. Работу может и не найдёте сразу, но после реализации пары простых проектов будет проще предлагать в качестве целевой платформы.

Фрилансить с питоном начать можно, но очень желательно опробовать ещё хотя бы пару окружений и фреймворков типа Groovy Grails, или Typesafe Stack. Сейчас требования рынка возросли в пару раз за последние два года - нужны ассинхронности/многопоточности, push-нотификации в мобильные приложения и по вэбсокетам/комету. И это всё с богатыми js-фронтендами на всяких там Angular'ах и React'ах. Естественно можно крутить костыли типа Celery / Gearmand / Beanstalk / RabidMQ, но накладные расходы на коммуникацию слишком большие :( Компилируемые языки со своими Managed Runtime'ами позволяют строить монолитные приложения в которых подобные решения избыточны в рамках одной и той же машины, а если это куча нод в кластере то нужно мерить/думать.

Django сейчас сложно поддерживать так как он достаточно сильно развился за последние 3 года, и я очень сомневаюсь что сохранится совместимость новых версий со старыми.

А вот с pyramid (pylons) и SQLAlchemy можно строить достаточно хорошие приложения. У них есть enterprise поддержка и соответствующие гарантии.

Типовые задачи на питоне:
- написать какой-то мелкий скрипт с Gui на PyQT / Pyside для какой-то аналитики и отрисовки графиков, иногда попадаются задачки с gstreamer'ом
- написать какое-то простое RESTful CRUD приложение, в стиле "одна табличка БД - один контролеер", это конечно же тонна копипасты и мне больше нравятся DataMapper'ы по типу TastyPie. Иногда люди хотят чистого Tornado или Flask'a, так как им не нравится overhead в джанге и pylons.
- написать скрипты для деплоя чего-то, обычно люди не знают про SaltStack.

В плане архитектуры питонистам чужды различные SOA с CQRS-ES'ом, потому что сам компилятор не располагает. Хотя её достаточно просто поддерживать.

Проблема всех проектов на Node.js / Python / Ruby это отсутствие долгосрочной поддержки библиотек и фреймворков - часто ломается обратная совместимость, и нужно постоянно следить за состоянием всех зависимостей. Опять же нужен TDD/BDD для того что это всё хорошо контролировать. Тестируешь руками - себя не уважаешь.

Ну и вроде всё ...
p.s. я опубликую на хабре статью сегодня-завтра "Freelance - you're doing it wrong" там поделюсь опытом работы и основными организационными проблемами в рамках удалённой работы и фриланса, покажу разницу между ними.
Ответ написан
kivsiak
@kivsiak
software engineer
Основной навык для любого программиста это самостоятельный поиск и анализ информации.
odesk fl и т.п. не являются закрытым элитарным сообществом. Что вам мешает зайти и посмотреть какие задачи там ставят? Что требуют? Сколько платят? Какие сроки?
Ответ написан
Комментировать
ali_aliev
@ali_aliev
Разработчик на Django/Python, JavaScript
Python используется везде, где только можно. Web разработка, анализ данных, системное программирование/администрирование, математика, и т.д. Вам остается только решить, чем вы будете заниматься. По поводу опыта - чем его больше чем лучше. Я вам рекомендую забить в гугл "python engineer vacancy" и посмотреть какие требования для Python разработчика у работодателей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы