我在学习新语言时能留出多少余地?
我刚入职不久,正在开始一个小而简单的项目。这个项目用什么编程语言实现还没决定。简单来说,我想问的是——用Java还是Python?
现在的问题是:我的经理更希望用Python来做这个项目。我对此没有异议,但我对Python没有经验。我真的很想学Python,并且觉得我能很快上手(尤其是这个项目不大)。但是,这个项目的截止日期是三月底,必须在那之前完成。所以他们宁愿用Java按时完成,也不想让我在Python上拖延时间,他们也不想给我压力,如果我觉得自己无法按时完成的话。
抱歉说了这么多背景信息——我的问题其实是,通常来说,适应一门新语言需要多长时间?我知道这因人而异,取决于程序员的学习速度……但如果说到一个普通程序员,或者是那种学习比较快的程序员,使用一种非母语的语言(但概念相似)会增加多少编程时间呢?比如,如果这个项目用Java或.NET语言大约需要两周,那么用Python会需要多长时间呢?我能否假设,给自己双倍的时间(也就是说,学习一种新语言会让编程时间增加50%)是合理的?
还有,我听说从Java转到Python似乎很简单/直观。这是真的吗……?
谢谢大家的回答!我没想到这个问题有这么多方面……我会尽快选择一个答案——每个回答都让我从不同的角度看待这个问题,真的很难选出一个答案。
12 个回答
我老板有个经验法则,就是每当遇到学习曲线的时候,写一个应用程序的时间可能会增加到原来的三倍。所以,如果用Java写一个程序需要两周时间的话,用Python可能就得花六周。
你大概有5周的时间来完成这个项目。如果你觉得用Java做这个项目需要2周,那就剩下3周的时间可以尝试用Python来做,虽然可能会遇到困难,最后可能会放弃。我觉得可以试试。Python相对来说比较容易上手。我认为3周的时间足够你判断自己能否在截止日期前完成。
在我看来,这是一个很好的机会让你学习一门新语言。记得定期向你的经理更新你的进展。我相信随着时间的推移,正确的决定会变得清晰可见。
我觉得这要看项目的具体领域。如果是做图形用户界面(GUI),虽然在Python中并不难,但任何一种GUI框架的学习曲线都会有点陡峭。
如果是做网页应用,我建议用Python。虽然学习的时间会稍微多一点,但使用Python的各种网页框架后,你会发现很快就能弥补这些时间,因为它们使用起来非常方便。
最大的风险是,你可能会像写Java一样去写Python。很多在Java中成立的事情,在Python中并不适用,反之亦然。这可能会导致你的Python代码变得又慢又啰嗦。
如果你决定尝试Python,建议你了解一些从Java转到Python时常见的误区,比如:http://dirtsimple.org/2004/12/python-is-not-java.html