Изучение Python для .NET-разработчика
Я занимаюсь активной разработкой на С# уже несколько лет. Я в первую очередь создаю корпоративное приложение и внутренние структуры в стеке .NET.
Мне никогда не приходилось использовать другие основные языки высокого уровня помимо С# для моих задач, так как .NET - это стандартная платформа, которую мы используем.
Есть некоторые устаревшие приложения Python, которые меня попросили поддержать в будущем, у меня нет контакта с python и динамическими языками вообще (хотя я сделал справедливый бит JavaScript).
Я надеялся получить какое-то руководство/посоветую, чтобы помочь в том, как заниматься изучением языка, такого как python, для статически типизированного ума.
EDIT: Использование IronPython не является вариантом!
Ответы
Ответ 1
Foord and Muirhead IronPython в действии - удивительно хорошая книга, отлично подходящая для обучения Python для .NET-людей, а также для обучения .NET Питоны. Я могу быть предвзятым, так как я был техническим рецензентом, а Фоорд - друг, но в прошлом у меня были другие случаи, когда друг написал книгу, а я ее переработал - и в итоге решение об этой книге было неправильным, публично говоря это (способ потерять друзей, но я просто не могу сказать ложь, а не где Python обеспокоен хотя бы!)
Изменить. Если вам запрещено переходить на IronPython (что, вероятно, будет поддерживать ваши устаревшие приложения просто отлично, btw), есть лучшие ответы: Mark Pilgrim Погружение в Python часто считается лучшим введением Python для опытного разработчика, а мой собственный Python в двух словах был оценен как самый быстрый способ для разработчиков суперзвезд. Я, конечно, склонен к этим соображениям - Марк - коллега, и моя жена была ключевым техническим редактором своей книги (и моей собственной), и, очевидно, я тоже предвзята в пользу моей собственной книги;). Но тогда я склонен относиться к множеству лучших книг на Python, так как у меня либо была рука в их редактировании, либо я дружу со своими авторами или с обоими; -).
Ответ 2
Самое сложное, с чем я столкнулся при использовании python, приходящего с Java, - это правильно обернуть голову вокруг вещи Duck Typing... Сначала я подумал, что это просто ужасно и просто одет в волосы на спине на шее.
Далее - область действия по соглашению, но это довольно просто. И важность белых пространств дала мне несколько ударов.
Однако, как только вы облегчите себя в плане языка и скорости развития, вы научитесь ценить его гораздо больше. Через некоторое время я подумал, что это лучшее, что когда-либо случалось со мной!: -)
вот несколько вещей, которые мне очень помогли:
Сначала я начал с этой book и получил основы языка и для повседневного использования Краткая справочная карта Python была очень полезна. Также console станет вашим лучшим союзником, чтобы попробовать быстрые вещи и укрепить ваше обучение.
Для IDE, исходящих из мира затмения PyDev, я был естественным выбором для меня, но их было гораздо больше. Но если вы более знакомы с средой Visual Studio, Python Tools для Visual Studio тоже неплохо.
Удачи, надеюсь, вы найдете Python так же весело, как и я.
Ответ 3
Существует большое начальное препятствие для удобного динамического набора текста. Первый шаг - когда вы смотрите на Python-код и понимаете, что переменные не определены нигде, вы просто создаете их из воздуха, что кажется прыжком через скалу. На мгновение перед тем, как ваш дельтаплан поймает воздух должным образом.
И тогда вам понадобится время, прежде чем вы доверяете своим новообретенным динамическим крыльям, и вы, вероятно, сможете получить их, выполнив пилотаж с ними. Узнайте, как python обрабатывает ссылки, развлекайтесь с помощью методов обезглавливания, тип утки разных животных. Попытайтесь узнать некоторые уродливые трюки.
И хотя вы не можете использовать IronPython для этого, нет причин, по которым вы не можете использовать его для изучения Python.
Ответ 4
Вы столкнетесь с культурным шоком, идущим от С# до дикой утки, типичной для Python. Недостаток типов и intellisense может быть довольно сложным. Хорошо, что вы знакомы с JavaScript. Также знайте, что чувствительные к отступу правила блоков Python могут быть очень запутанными для неопытности (обычно вы либо любите, либо ненавидите его: -)
Кроме того, основная проблема, связанная с переходом от одного языка к другому, обычно является основой. Знакомство со всеми классами и функциями Just Takes Time, к сожалению.
Ответ 5
Я бы рекомендовал использовать IronPython, чтобы помочь вам учиться. Это реализация Python на платформе .NET. Таким образом, вы можете использовать/изучать Python с доступом к библиотеке классов .NET.
Хорошее место для начала - загрузить IronPython и посмотреть IronPython в действии, который является очень хорошей книгой, рассматривающей Python на платформе .NET.
EDIT: Поскольку IronPython не является вариантом, не обращайте внимания на этот ответ. Спасибо, хотя.
Ответ 6
Книга Pro IronPython тоже стоит прочитать, если у вас есть время.
Ответ 7
Я бы рекомендовал просто прочитать книгу об этом. Книга для начинающих. Он будет содержать много вещей, которые вы уже знаете, но вы не пропустите ничего относительно использования динамического языка. Я могу указать на Погружение в Python, которое кажется очень дружелюбным, или Учебник Python, который, кажется, очень кстати (что я узнал).
Ответ 8
Для опытного разработчика, изучающего Python, Dive Into Python - очень хорошая книга.
Уэсли Чун Core Python Programming в книге используется более "основополагающий" подход, который может быть немного медленным для опытного разработчика. Но это позволило очень легко сравнивать базовый синтаксис и операторы по сравнению с другими языками. Стиль письма Уэсли очень прост в чтении, а его примерные проекты достаточно нетривиальны, чтобы действительно быть интересными.
Python Cookbook - отличная справочная информация для обучения программированию на языке "Pythonic". Эта книга содержит сотни (?) Примеров того, как решать обычные повседневные проблемы с Python. В целом серия "Поваренная книга" выведет вас на идиомы языка быстрее, чем любая другая книга.
Всякий раз, когда мне нужно изучать новый язык программирования, я начинаю использовать его для всех задач "ежедневного обслуживания", которые возникают - все мелочи, которые я обычно решал с помощью оболочки script или с общими инструментами unix - Я начинаю использовать новый язык для решения этих проблем. Поскольку у вас есть опыт .NET, IronPython, вероятно, является хорошим способом использовать эти знания при изучении Python. Даже если вы только устанавливаете IronPython в личную песочницу... и используете его для всех ежедневных задач работы с рабочим заданием - это отличный способ изучить синтаксис и идиомы Python.