Сколько свободы мне нужно оставить, чтобы выучить новый язык? - PullRequest
13 голосов
/ 24 февраля 2010

Я относительно новичок и начинаю небольшой, довольно простой проект. Язык, на котором будет реализован этот проект, еще не определен. Вопрос в основном сводится к - Java или Python?

Вот дилемма: мой менеджер предпочел бы, чтобы это было сделано в Python. Я не возражаю против этого, но у меня нет опыта работы с Python. Я бы очень хотел изучить Python и подумать, что смогу справиться с этим довольно быстро (особенно потому, что это небольшой проект). НО проект должен быть завершен в конце марта и должен быть готов к тому времени. Поэтому они предпочли бы иметь это на Java и вовремя, чем на Python и позже, и они не хотят заставлять меня делать это на Python, если я думаю, что не могу сделать это вовремя.

Извините за предысторию - но мой вопрос в основном состоит в том, сколько времени в среднем требуется для адаптации к новому языку? Я знаю, что это субъективно и персонифицировано, и зависит от того, насколько быстро работает конкретный программист ... но речь идет о среднестатистическом программисте, или даже о достаточно быстром, который быстро улавливает вещи, какой процент увеличения составляет программирование в не- родной язык (но с похожими понятиями) вызывают? Например, если этот проект займет у меня около 2 недель на языке Java или .NET, сколько времени это займет у меня на Python? Могу ли я предположить, что достаточно удвоить количество времени (т. Е. Новый незнакомый язык вызывает увеличение времени программирования на 50%)?

И включен в этот вопрос - из того, что я слышал, переключение с Java на Python кажется довольно простым / интуитивно понятным. Это правда ...?

Спасибо всем за все ответы! Я не осознавал, что в этом вопросе так много сторон ... Я постараюсь в ближайшее время выбрать ответ - каждый ответ заставлял меня смотреть на это по-своему, и трудно выбрать один ответ.

Ответы [ 12 ]

0 голосов
/ 24 февраля 2010

Чарли, будучи новым наемным работником и все такое, вы не должны в действительности решать, какую технологию кодировать в проекте. Это управленческое решение.

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

Какая технология хорошо подходит для ваших целей? Предполагается, что это действительно может быть сделано в Python и Java:

  • Действительно ли важно время выхода на рынок?
  • Если вам нужно расширить свою команду (т.е. расширить проект), сможете ли вы нанять больше программистов на Python? Они более или менее дороги, чем программисты на Java?
  • Существуют ли другие проекты на Python на вашем предприятии (или на предприятии ваших клиентов)? Однородную среду легче администрировать.
  • Изучите различия между Java и Python и посмотрите, какой из них лучше подходит для решения проблемы. Например, Python, вероятно, работает хуже, чем Java ... Но программы на Python можно программировать и тестировать намного быстрее.

И, конечно, да, вы можете принять во внимание, что есть кривая обучения. Как сказал другой ответ, Python очень прост, как и Java и почти все распространенные языки. Что вас убивает, так это изучение API, SDK, инструментов отладки, различий в среде и т. Д.

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

0 голосов
/ 24 февраля 2010

Вы просто программируете или разрабатываете / проектируете?

Если вы программируете в соответствии с дизайном, который выложил опытный ресурс Python, я бы отдал себе в 3-4 раза больше времени, поскольку вы описали это как небольшой, довольно простой проект.

Если вы разрабатываете / проектируете это самостоятельно, тогда вы берете на себя большой риск, пытаясь одновременно выучить новый язык. Слишком велика вероятность того, что вы могли бы создать что-то в самом начале, что является основой вашего дизайна, только чтобы потом выяснить, что это не работает, и вам нужно переписать много вещей из-за этого.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...