Я только начал новую работу пару месяцев назад в небольшой компании, где я в настоящее время возглавляю все усилия по разработке настоящего и будущего. У меня лично есть многолетний опыт проектирования и разработки программного обеспечения, в основном на Java, но также и с точки зрения .NET. Позже, в своей карьере, я с легкостью освоил .NET и практически не нуждался в обучении, чтобы начать работу, и, кроме того, это помогло мне по-настоящему понять и оценить универсальность многих лучших практик и общих тем, видя две разные точки зрения. к решению той же проблемы.
У моего босса есть стартап-компания, и, не разглашая слишком много информации, ему понадобилось умеренно сложное веб-приложение, которое интегрируется в Google Maps для построения маршрутов.
Он заключил контракт с веб-приложением, в которое они завышены, в основном недопоставлены, и превысил крайний срок. В настоящее время он пытается бороться, чтобы попытаться вернуть хотя бы часть вложенных средств. У него есть исходный код сайта, как он есть сейчас, но у него есть список вещей, которые он хотел бы исправить и добавить, прежде чем начать работу с ним.
Он спросил меня, не хочу ли я сделать это на стороне за дополнительные деньги, но проблема в том, что сайт был написан на Python с использованием Django, чего у меня нет никакого опыта. Я сказал ему, что я на самом деле не лучший человек для этого, потому что я практически ничего не знаю о Python или Django и должен был бы изучить это с нуля. Я чувствую, что было бы несправедливо выставлять ему почасовые счета за мое время, если я использую это время для изучения языка и платформы.
Исходя из краткого изложения уровня моего опыта, насколько сложно или сколько времени, по вашему мнению, мне понадобится, чтобы поднять это? Если вы думаете, что это пустая трата времени, кто-нибудь может порекомендовать, где найти опытных веб-разработчиков Python? Деньги сейчас его волнуют, поэтому у него больше нет самого большого бюджета.
источник
Ответы:
Python практически так же прост в изучении, как и язык, что является одним из главных преимуществ этого языка. Как человек с большим опытом работы с ОО-языками, у вас прекрасная возможность начать. Единственные фундаментальные различия между Python и Java / C #
Я понимаю, почему вы чувствуете, что вы не самый лучший человек для этой работы, и вы, возможно, не достигнете такого большого прогресса в первую неделю, как другие. С другой стороны, ваш босс доверяет вам, и его просто сожгли некоторые ненадежные люди, которые знали Python лучше, чем вы.
Если вы беспокоитесь о злоупотреблении доверием своего босса, предложите ему
N
часами работать бесплатно. (Вы решаете, чтоN
есть.) В конце этого времени вы можете решить, стоит ли вам почасовая ставка. В худшем случае у вас будет гораздо лучшее понимание Python / Django в конце этого времени.источник
Как программист со встроенным Си, который в конечном итоге работал над веб-приложением Python / Django как проект скунса, я могу засвидетельствовать, что основы легко понять.
Python, как правило, очень прост в освоении. Лично я не нашел саму документацию по Python очень полезной - она всегда больше напоминает памятную записку для человека, который уже знает Python - но в Интернете полно полезных примеров. Возможно, вы захотите попробовать Python Challenge однажды вечером и посмотреть, как вы поживаете.
Я очень рекомендую Джанго. Он делает очень хорошую работу по абстрагированию доступа к базе данных и предоставляет достаточно утилит, которые я впоследствии также использовал для веб-проектов без компонента базы данных. Обычно, если вы думаете о чем-то, чего хотите достичь, будет метод с уже заданным очевидным именем. Документация тоже очень хорошо.
Django очень прост в установке, поэтому я настоятельно рекомендую вам просто попробовать и посмотреть, как вы поживаете. Пару вечеров, играя с Python и Django, должны дать вам достаточно уверенности, чтобы решить, будете ли вы счастливы, выполняя требуемую работу.
источник
Парадигма Python / Django, безусловно, отличается от стеков .NET или Java. Если вы знакомы с несколькими парадигмами программирования (и под этим я подразумеваю функциональность против ОО и статичность против динамики), вы, вероятно, сможете это осуществить. Согласно @EricWilson, Python не так уж сложен в изучении (просто будьте готовы к баллистике в отношении отступа == scope; p).
Это старая поговорка, что «Умный и готовый материал» превосходит «количество знакомых с языком».
Если вы хорошо понимаете базовый веб-стек (HTTP, циклы запросов / ответов и т. Д.) И сторонние API (Google), то это будет немного проще.
Вам также понадобится помощь для тех моментов WTF. Убедитесь, что вы присоединились к сообществу разработчиков Python / Django, будь то локальная группа пользователей, онлайн-форум или небольшой сайт под названием StackExchange :)
О, просто подумал о чем-то другом. Сделай себе лакмусовый тест. Вечером или выходным днем скачайте и установите Python и Django и посмотрите, насколько легко вы освоите учебники. Основной тест, который я даю себе, - это создание экрана CRUD для фиктивного доменного объекта. Если я не могу этого сделать (и в этом нет ничего постыдного), тогда я не тот человек, или стек отстой;)
И, наконец, я буду осторожен со стороной $ здесь. Если вы всегда хотели использовать этот технологический стек, то, возможно, вы оба делаете друг другу одолжение, иначе это будет немного похоже на то, как ваш менеджер полагается на вашу добрую волю, чтобы исправить ситуацию и сэкономить за счет вашего драгоценного времени. ,
источник
Я не могу комментировать ценность Django, но я думаю, что изучение Python может быть хорошим вложением вашего времени. Не только для этого проекта, хотя ...
Как Java-разработчик, я считаю Jython бесценным, и мне хотелось бы знать о IronPython, когда я разрабатывал на C # (я перешел на C #> Java, а не Java на C #).
Тот факт, что у вас есть вся java-библиотека для вашего скрипта Jython, превосходен, и я часто использую модульные тесты Jython для тестирования классов POJO с использованием объектов Mock.
Мы даже предоставляем консоль Jython в нашем приложении, чтобы пользователи могли создавать собственные подпрограммы с полным доступом как к библиотекам Java, так и к нашим собственным. Очень приятно иметь возможность показывать пользователям, как писать простые сценарии, и заставлять их самостоятельно автоматизировать все виды вещей без необходимости выполнять всю эту автоматизацию для них.
Конечно, Jython не идеален - он немного отстает (2.5) от CPython (3.2) и даже IronPython (2.7), но это только делает его современным с книгой Гвидо . * 8' )
источник
Я потратил неделю или две на изучение основ Python и Django (в конце концов я решил использовать Rails по другим причинам) после выполнения только работы на C #. Поначалу было немного трудно ухватиться, но Джанго относительно прост; самая сложная часть, которую я обнаружил, это выяснить, как именно написать необходимый код на Python. Сам Джанго довольно прост; Я не касался этого больше года, но, вероятно, все еще мог бы сделать что-то тривиальное. Однако с использованием общих объектов и некоторых более сложных шаблонов и представлений все становится немного сложнее.
Одна вещь, которую я нашел странной, чтобы обернуть мою голову, это идея, что все ваши модели Django находятся в
models.py
файле; Я уверен, что вы могли бы создавать разные файлы и импортировать их все (однако я не пробовал это делать), но это само по себе было «неправильно» при использовании в C #, где очень плохо иметь несколько классов в одном файле, если один какой-то частный класс, используемый только другим классом. В остальном это было совсем не сложно, хотя, если вы не очень хорошо знакомы с MVC (или MTV на языке Django), это небольшая кривая обучения сама по себе.источник