用于C#程序员的C ++或Python?

时间:2009-10-07 21:52:53

标签: c# c++ python

我是一名企业C#程序员。我找到了一些时间来投资自己并陷入两难境地。从现在开始去哪儿? C#/ .NET很容易学习,开发等等。将来我想申请微软或谷歌,并希望明智地投入业余时间,所以我将学到的东西将来会蓬勃发展。

那么:C#程序员的Python或C ++?我有点害怕C ++,因为在其中开发任何东西都需要很长时间。 Python很简单,但我把它当作一种儿童游戏语言,它仍然需要大量修补才能成为一种成熟的开发工具/语言。

任何C#开发者都有同样的困境吗?

10 个答案:

答案 0 :(得分:7)

  

我有点害怕C ++,因为在其中开发任何东西都需要很长时间。

当你说自己没有语言经验时,我不确定你怎么说。对于某些事情来说,C ++是一个很好的工具,Python对其他东西很有用。你想要做什么应该是推动这个决定,而不是技术本身。

C#程序员与否,我认为你可以选择任何语言,但语言只是一种工具,所以你的问题很难回答。

答案 1 :(得分:5)

Python可能更容易入门,但动态类型的脚本语言是一种非常不同的语言,来自C#或C ++。通过跳到你已经熟悉的语言的近亲,你将学到更多关于编程学习的知识。实际上,对至少一种脚本语言(Python,Perl和Ruby是最受欢迎的)的熟悉应该是所有程序员的要求。

答案 2 :(得分:3)

如果您想申请Google,那么 Python 可能是最适合的选择,MS肯定会想要C#。如果不是其他任何事情,竞争就不会像拥有多年C ++经验的更多人一样激烈。 Python还为您提供了更广泛的语言技能,并且是通往更多语言和脚本的良好途径。

但正如所说的那样,将会再次说明,明智地选择你的工具,看看它是钉子还是钉子,你试图确保它。

答案 3 :(得分:1)

为什么不学习每一个。学习一个语言一个星期左右不会让你成为专家,但它会回答你脑子里的很多问题并为将来种下种子。

重要的是不要只是阅读练习。找到一些可以在一页或两页中编程的简单问题,并用每种语言解决它们。这将有助于您了解思考的方式以及解决问题的方式的优势和劣势。

答案 4 :(得分:1)

通常在涉及速度和低级操作系统访问时使用C ++。 如果你想扩展,这是一项很好的技能。

Python允许您快速完成任务,并且它非常容易学习,并且提供的功能超出了您对脚本语言的期望,并且可能是最快速的语言之一。

C ++的开发速度并不是很慢,如果你有一个IDE,那么本身并不难写,但语法很适合你。

答案 5 :(得分:1)

如果您想申请Google和/或Microsoft,那么我会说两者都需要两者!

给予更多选择,可能是C ++和另一种语言 - 无论是动态的,还是功能的,或者两者兼而有之(Scala也可能是一个不错的选择)。

这不一定是关于你是否自己使用这些语言,而是关于他们需要和鼓励的不同方法的更多信息。

如果你继续被C ++“吓唬”,你可能会很难在这些组织中作为开发者申请 - 除非你在其他地方高度专业化。

答案 6 :(得分:1)

C#比Python更接近Java和C ++,所以首先要学习Python。

但是,我的建议是:

  • 坚持使用您当前的语言并学习更多技巧,例如更广泛的算法,函数式编程,合同设计,单元测试,OOAD等。

  • 学习C(专注于搞清楚指针,多维数组,链接列表等数据结构,以及内存分配/释放,文件句柄等资源管理)

  • 学习汇编(在具有平面内存架构的现代平台上,但是做低级别的事情,比如与硬件交谈或在画布上绘图)

  • 学习Python或Ruby。有可能,你会坚持使用其中一个,知道上述所有内容,除非当时出现了一些热门的新语言。

答案 7 :(得分:1)

我想你刚才提出了错误的问题。它与工具本身无关。它应该是关于你真正喜欢用什么样的软件来创造。 C ++用于创建使用C#或Python编写的不同类型的应用程序。请注意,C#或.NET本身并不易于 学习。开发一些可以以某种方式工作的东西可能相当容易,但如果你只是深入研究细节......

无论如何,我的观点是:如果您对开发Web解决方案感兴趣:请选择Python。目前有很多关于Python的炒作,甚至微软也意识到了这种语言的强大功能(你可以使用IronPython的.NET和Python编程知识)。 C ++目前用于某些特定领域。业务应用程序主要使用Java或.NET编写,而C ++仍然适用于更低级别的编程,在性能至关重要的领域(我的意思是“性能”作为语言/平台本身的性能)。游戏行业就是一个很好的例子:Java和C#肯定比C ++更容易学习,但是......在C#/ Java中完全创建了多少“大型游戏”?

我还有另一条建议:如果你想为微软或谷歌工作,请不要专注于语言itselft。这不是最重要的事情。专注于解决问题,算法和其他东西(Stevie Yegge's post about how to prepare for an interview at Google)。 哦,当然作为C ++(和C#的粉丝)的粉丝,我必须承认,用C ++开发任何东西都需要很长时间。您可能会认为C ++是“C with clasees” - 看看STL,模板,高级模板,Boost ...不知何故,所有那些在游戏行业工作的人都设法创造出更好更好的游戏,而不是那么漫长的时间。其他人用Java / C#创建“无聊且简单”的商业应用程序。

答案 8 :(得分:0)

熟悉C#和.NET的人应该考虑使用IronPython。 Python for .NET。这将是一个很好的方式来利用你所知道的并同时学习一种新的动态语言。

答案 9 :(得分:0)

您可能对查看Windows Powershell感兴趣。它是Microsoft最新的脚本技术,基于.NET构建,可以通过C#进行扩展。

当然,它不像C ++或Python那样可移植,但它会更容易利用您的C#/ .NET体验。否则,我会建议C ++(可能还有C)。微软使用C / C ++构建的产品远远多于使用Python构建的产品。