Подтвердить что ты не робот

Перемещение с Java на Python

У меня есть младший, начинающий с фона Java. Как компания, мы теперь сосредоточены на разработке Python (хотя и с некоторыми устаревшими системами в Java, которые висят вокруг).

Я ищу советы и ресурсы, чтобы помочь переходу, и задался вопросом, есть ли у вас, ребята, какие-нибудь полезные советы для новичков.

Приветствия.

4b9b3361

Ответ 1

Сделайте его прочитанным

Руководство для начинающих по Python

Python для Java-программистов

Подумайте о том, как принять принятый ответ на этот вопрос, чтобы указать на это.

Java → Python перечисляет некоторые функции java не имеет

Две статьи, в которых обсуждаются общие разные подходы

Python - это не Java

Java не Python, либо

Частичное сравнение кода java и python с бок о бок

Python/Java A Side-by-Side

Дайте ему указания, как и где найти документацию, похожую на Java JDK API

Справочник по языку Python

Стандартная библиотека Python

Глобальный индекс модуля

Ответ 2

Я бы сказал, что одна проблема при переходе с любого языка, на котором вы чувствуете себя комфортно, - это потерянное чувство внезапно не зная, как все работает!

Я бы посоветовал сначала заполнить фон для них следующим образом:

  • Как вы выполняете проекты структуры? (помните, что Java является "обычно" одним классом для каждого файла и в "каталогах" пакета; аналогичен ли Python?)
  • Как вы строите проекты? (каковы версии Python ant, classpath и т.д.?)
  • Как вы настраиваете и развертываете свой код? (каковы версии Python Spring, guice и т.д.?)
  • Где хорошие сайты сообщества ищут помощь?
  • Каковы некоторые из наиболее полезных сторонних инструментов.

Я думаю, что языковые различия (например, привыкание к lambdas) будут достаточно легкими и занять несколько недель в собственном темпе разработчика, но не понимать вышеперечисленные моменты замедлит процесс ознакомления.

Ответ 3

Для студентов, приезжающих с чистого фона Java и желающих провести свою диссертацию с использованием программного обеспечения на основе Python, я нашел, что лучший способ - просто позволить им начать писать код после чтения некоторых первых учебников.

Затем время от времени я просматриваю свой код и предлагаю фрагменты кода, которые тоже пахнут Java-ish, чтобы перейти к более питоническому стилю.

Чаще всего это

  • для циклов, которые можно изменить, чтобы отображать список.
  • чрезмерное использование классов, где 1) модули, кортежи или словари работают нормально или 2) интерфейсы не нужны явно
  • слишком сложные условия, используемые в if-statement (1<x && x<=y && y<10), которые могут быть упрощены (1 < x <= y < 10)
  • обновленная функциональность, которую можно легко импортировать из scipy или стандартных библиотек Python
  • код для экспериментов в bash, который теперь может быть реализован гораздо более дружелюбным для читателя в самом Python

Ответ 4

Я нашел погружение в python, чтобы быть лучшим средством против культурного шока, которое обязательно произойдет при переходе от другого меньшего ( просто шучу, конечно) язык для python. В нем почти нет программ "Hello world", но вместо этого он показывает вам способы python, скажем, для работы с xml, написания модульных тестов и т.д. Это было очень полезно для меня.

Ответ 5

Я немного похож на вас, поскольку я знаю Java довольно хорошо, но я только начинаю использовать Python.

Учебник по Python - это очень хорошее место для начала.

Руководство по стилю Python сообщает вам все, что вам нужно знать о том, как должен выглядеть ваш код (и это имеет значение в Python - пробелы есть важно).

И помните, что if и for всегда имеют : после них: -)

Ответ 6

Как насчет http://python.computersci.org/?

Я думаю, что с таким руководством, плюс наставничество на идиомы Python (list comps и т.д.) при преобразовании некоторого кода Java в Python в качестве упражнения было бы достаточно

Ответ 7

Вторичные oxbow_lakes, как проектные команды документа свои материалы?
Хотя хороший документ в значительной степени зависит от языка, люди могут комментировать стандарты, инструменты, браузеров

Примерами хорошего Python/хорошего Java-документа были бы полезны.

Ответ 8

Python - это язык, который можно охарактеризовать как:

", которые вы можете поместить в ладони с огромным сумкой Крючки".

Почти все в python следует тем же простым стандартам. Все доступно, сменное и настраиваемое. Очень мало элементов уровня языка.

Возьмем, например, встроенную функцию len (data). len(data) работает, просто проверяя метод data.__len__(), а затем вызывает его и возвращает значение. Таким образом, len() может работать с любым объектом, реализующим метод __len__().


Начните с изучения типов и базового синтаксиса:

  • Динамические сильно типизированные языки
  • bool, int, float, string, list, tuple, dict, set
  • отступы, "все - объект"
  • определения основных функций

Затем перейдем к изучению того, как работает python:

  • импорт и модули (действительно простые)
  • путь python (sys.path)
  • функция dir()
  • __builtins__

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

  • итераторы
  • переопределяет, как __len__ (их много)
  • список понятий и генераторов
  • классы и объекты (опять же, действительно простые, как только вы знаете пару правил)
  • правила наследования python

И как только у вас будет уровень комфорта с этими элементами (с акцентом на то, что делает их pythonic), посмотрите на более конкретные предметы:

  • Threading in python (обратите внимание на блокировку Global Interpreter)
  • контекстные менеджеры
  • доступ к базе данных
  • файл IO
  • розетки
  • и т.д...

И никогда не забывайте Дзен Питона (Тим Петерс)

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let do more of those!

Ответ 9

Здесь уже много хорошего совета, но я должен обратить внимание на более интерактивный характер Python и Java. Python в отличие от Java предлагает вам классический "Read-Eval-Print-Loop" (REPL), который позволяет быстро экспериментировать с языком. Вместо того, чтобы догадываться о том, как конкретное утверждение будет выполняться в реальной жизни, ответ может быть получен, введя выражение в интерпретатор и сразу же увидев результат. Это одна из причин, по которой я рекомендую Python начинающим программистам, вы получаете более немедленную обратную связь, чем традиционный цикл редактирования на других языках.

В частности, я использую ipython для большей части моего взаимодействия с Python. Помимо всего прочего, он позволяет вам ввести "?" после любого идентификатора, чтобы получить некоторую помощь по идентификатору, который дает вам больше информации, чем стандартная функция help(), и меньше нажатий клавиш.

Кроме того, чтобы превратить обучение Python в игру, я лично узнал много своего Python, решая головоломки в PythonChallenge. (Отказ от ответственности: я не связан с PythonChallenge). По общему признанию, решение проблем требует больше, чем просто знания Python (небольшой намек: действительно, "посмотрите источник" ), но желание решить головоломку даст вам мотивацию изучать новые биты Python. Это было для меня, по крайней мере. Удачи.