Python和Django选择Java / .NET Web开发人员有多难?[关闭]


19

几个月前,我刚刚在一家小公司开始了新工作,目前负责目前和将来的所有开发工作。我个人从Java到.NET方面都有多年的软件设计和开发经验。我在职业生涯的后期很轻松地学习了.NET,几乎不需要任何培训就可以投入工作,最重要的是,它通过看到两种不同的观点,帮助我真正地掌握和欣赏了许多最佳实践和通用主题的普遍性。解决相同的问题。

我的老板旁边有一家初创公司,并且在不泄露过多信息的情况下,他需要一个中等复杂的Web应用程序,该应用程序可以集成到Google Maps中以构建路线。

他将他们过度承诺的Web应用程序外包了出去,主要是交付不足,并在截止日期前运行。他目前正在努力争取至少收回他所投资的一些资金。他现在拥有该网站的源代码,但是在上线之前有一份清单,他希望对其进行修复和补充。

他问我是否愿意为此花一些额外的钱,但是问题是该网站是使用Django用Python编写的,我对此没有任何经验。我告诉他我真的不是最好的人,因为我对Python或Django几乎一无所知,因此必须从头开始学习。我觉得如果我利用这段时间学习语言和平台,对我来说按小时计费是不公平的。

根据我的经验水平的总结,您认为我要花多长时间或多少时间?如果您认为这很浪费时间,那么有人可以建议在哪里找到有经验的Python Web开发人员吗?金钱现在对他来说很重要,因此他不再有最大的预算。


10
为什么这么问?您是否会因为.Net使您变得愚蠢而难吗?这只是代码。它能有多难?
S.Lott,

1
@ S.Lott,这不是能力的问题,当付款的人预算有限并且是我主要收入来源的直接经理时,我只是不想参加我没有资格的工作。我当然不想把它坚持下去。
maple_shaft

1
您不是真的必须尝试做一部分,看看它是否有效吗?这里没有人可以珍惜您的时间。
JeffO

2
我认为您正在对自己不利。我怀疑,鉴于他最近的经验,即使事实是“我不熟悉该框架,但我愿意尝试”,您的经理还是希望有一个他可以信任的人告诉他事实。您至少应该能够告诉他,他被追回的来源是否值得。
Benjol 2011年

2
@Benjol,“您至少应该能够告诉他,他所追回的来源是否物有所值”,而这正是我所担心的。仅仅因为我可以在几个小时内找到Django Hello World教程,并不意味着我有经验和知识可以做出准确的估算,甚至可以判断代码的质量。据我所知,意粉代码和8,000行函数是应该在Python中完成的方式。
maple_shaft

Answers:


15

Python就像语言一样易于学习,这是该语言的主要卖点之一。作为一个对OO语言非常有经验的人,您将很容易上手。Python和Java / C#之间的唯一基本区别是

  1. 鸭式打字/缺乏类型安全性。
  2. 一流的功能。

我理解为什么您会觉得自己不是这份工作的最佳人选,因此在第一周内您可能不会取得比其他人那么大的进步。另一方面,您的老板信任您,而他只是被一些不信任Python的人所烧毁,他们比您更了解Python。

如果您担心滥用老板的信任,请主动给他N几个小时。(您确定是什么N。)在该时间结束时,您可以决定是否值得每小时收费。在最坏的情况下,到那时,您将对Python / Django有更好的了解。


那是一个有趣的想法,让他有一些空闲时间来享受我们的两个福利。也许我只是害怕承诺?
maple_shaft

如果这些是根本的区别,那么C#开发人员知道JavaScript应该根本没有很多困难...我正确吗?
2011年

3
C#具有一流的功能,只是大多数开发人员不使用它们#justsaying
sa93 2011年

@Morawski是的,如果您知道Java,C#或C ++之一以及Perl,Ruby或JavaScript之一,那么学习Python就是一件轻而易举的事情。
埃里克·威尔逊

@ sa93说了什么。另外(该死,我和我的非主题评论..),我并不是真正的微软迷(实际上,我更像是一个Pythonistas),但是令人印象深刻的是,他们已经添加了多少功能。通过各种版本。C#5.0已成为一种相当有用的语言(与其他相关语言* cough * java * cough * VB * cough *相比)
Nadir Sampaoli 2013年

8

作为一名嵌入式C程序员,最终以一个臭鼬作品项目的身份在Python / Django Web应用程序上工作,我可以证明其基础很容易掌握。

通常,Python非常容易掌握。我个人并不认为python文档本身非常有用-对于似乎已经了解python的人来说,它似乎总是更像是一份回忆录-但网络上充满了有用的示例。您可能想在一个晚上尝试“ Python挑战”,然后看看您的情况如何。

我会彻底推荐Django。它在抽象数据库访问方面做得非常好,并且提供了足够的实用程序,后来我也将其用于没有数据库组件的Web项目。通常,如果您想到要实现的目标,将会提供一种带有明显名称的方法。该文档也很好。

Django非常易于安装,因此我强烈建议您随便看看它的运行情况。在与Python和Django一起玩的几个晚上,应该给您足够的信心来决定您是否乐于承担所需的工作。


4

Python / Django范例肯定不同于.NET或Java堆栈。如果您对几种编程范例感到满意(我的意思是功能与OO,静态与动态),那么您可能可以实现这一目标。按照@EricWilson的说法,Python并不是很难学习(只要准备好对缩进==作用域; p进行弹道)。

这句老话是“聪明就能完成工作”,胜过“对某种语言的熟悉程度”。

如果您对基础Web堆栈(HTTP,请求/响应周期等)和第三方API(Google)有很好的了解,那么它也将变得更加容易。

对于这些WTF时刻,您还将需要帮助。确保您是Python / Django开发人员社区的热心对象,无论是您的本地用户组,​​在线论坛还是一个名为StackExchange的小型站点:)

哦,想到了别的东西。让自己接受石蕊测试。在傍晚或周末的下午,下载并安装Python和Django,并查看如何轻松阅读本教程。我给自己做的基本测试是为虚拟域对象构建CRUD屏幕。如果我不能做到这一点(顺便说一句,也没有什么不好意思的),那么我就不是合适的人,否则筹码很糟糕;)

最后,我在这里要注意美元方面的问题。如果您一直想选择这项技术,那么也许您俩都在互相帮忙,否则,闻起来有点像您的经理依靠您的善意将东西固定下来,而又以宝贵的时间为代价。


“否则,这听起来有点像您的经理依靠您的商誉来以便宜的时间浪费掉便宜的东西来固定东西”,我对此并不感到be惜,我们都有自己的最大利益,特别是自从我无论如何,我没有义务帮助他。如果我做出选择并后悔,那我只能怪自己。
maple_shaft

1

我无法评论Django的价值,但我认为学习Python 可能是您宝贵的时间投入。虽然不只是这个项目...

作为Java开发人员,我发现Jython非常有价值,我希望我在使用C#开发时就了解IronPython(我使用C#> Java而不是Java到C#)。

您拥有Jython脚本可用的整个java库的事实非常棒,我经常使用Jython单元测试来使用Mock对象测试POJO类。

我们甚至在我们的应用程序中提供了Jython控制台,以便用户可以编写自己的例程,并可以完全访问java库和我们自己的例程。能够向用户展示如何编写简单的脚本并让他们自己自动化各种事情而不必为他们执行所有自动化工作真是太好了。

当然,Jython并不是完美的-它落后(2.5)一定要落后于CPython(3.2)甚至是IronPython(2.7),但这在Guido的书中显得很现代。* 8')


0

在仅执行C#工作之后,我花了一两个星期的时间来学习Python和Django的基础知识(由于其他原因,我最终决定使用Rails)。起初有点困难,但是Django比较简单。我发现最难的部分是弄清楚如何用Python编写必要的代码。Django本身非常简单。一年多来我没有碰过它,但我可能仍然可以做些琐碎的事情。但是,使用通用对象以及一些涉及更多的模板和视图会使情况变得更加复杂。

我发现奇怪的是,我所有的Django模型都在models.py文件中了。我确定您可以创建不同的文件并导入所有文件(但是,我没有尝试过),但是仅此一个人就习惯了C#,这在同一个文件中有多个类是非常不好的,除非一种仅由另一类使用的私有类。尽管您对MVC(或Django术语中的MTV)不那么熟悉,但其余的一点也不是那么困难,它本身就是一个很小的学习曲线。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.