我在Java和Web开发方面有很好的经验,并且在C ++方面也有一些经验。最近,我一直在考虑为Java留下Java(厌倦了)。然后是Python(不喜欢Ruby)。我发现抗拒并开始使用它太好了。但C ++仍然存在于我的脑海中。
现在我想用一种语言“坚持”以便能够流利。
Python非常适合快速编程,但它太容易了,我担心它会让我感到沮丧。 C ++比较难,但是我怀疑是否应该使用这样一种语言来浪费更多的时间来保持编译器的快乐。
我应该坚持使用哪种语言。有什么意见吗?
答案 0 :(得分:13)
我建议你不要担心“坚持”一种语言,并学会进出什么是你问题的最佳解决方案。
最好的程序员只是很好的问题解决者 - 特定的语言并不重要。
答案 1 :(得分:4)
我认为你不会“离开”一种语言。它仍在您的工具箱中,可能不经常使用。我建议更多地看一下:
“我正在考虑通过学习一门新语言来拓宽我的选择范围。”
就在上周,我使用过C#,Java,Bash,Python和Javascript。当你被看作是一个问题解决者时,你永远不会知道下个月你会被要求提供什么帮助,但你知道你会做某事......
答案 2 :(得分:3)
我建议至少在一段时间内研究一种更深奥的语言。在Smalltalk中编写一个小GUI,或在Common Lisp或Scheme中编写一个实用程序。不要只是尝试将Java知识应用于这些语言,而是尝试使用世界上Ron Jeffries和Paul Grahams使用它们的语言。
如果你只想学习适用于就业市场的东西,那么那些就不如Python或C ++那么好。但是,学习与您已经知道的语言非常不同的语言应该提供一个有趣的挑战,并永久改变您对编程的看法。
答案 3 :(得分:3)
我主要使用一些特定于域的语言和一些通用语言(C,C ++,Java,Delphi等),而且我没有使用Python的经验(只是对它的一般概念)。
你不能根据他们的努力程度判断语言。你说你必须考虑这个事实,你必须花时间调试代码以取悦C ++编译器。我是一位经验丰富的C ++程序员,我可以一次写几千行代码,然后编译运行,一切都在第一次尝试(好吧有一些不可避免的错别字和东西,比如在任何编程中) 。所以,这个论点实际上只是指你在编程语言中的技能水平。对于我拥有的任何项目,我总是喜欢C ++,因为用这种语言编写代码是非常有效的(对我而言)。这肯定可以说是一种务实的观点,你应该用你真正有效的语言(在短期内)进行编程。
但是,在学习方面,你必须转向适合你所在领域的东西。我做控制机器人的人工智能,所以我需要硬件访问,我需要OOP,GP和TMP提供的复杂编程结构。所以,C ++的选择对我来说是明智的选择。您必须询问您域中的常见任务是什么?他们在哪些方面处于低级别与高级别,网络与数值分析,面向用户和面向计算的等级?您所在领域中使用最广泛的语言(或您希望进入的语言)是什么?
我还想指出,作为Linux用户,在Linux软件生态系统的开源开发人员中看起来非常普遍的设置是在C中实现低级驱动程序,在C ++中实现复杂软件,并且Python中的级别软件接口和插件。这正是我在许多开源软件中所观察到的,我认为它似乎使用了所有三种语言的最佳方面是有道理的。这就是为什么我正在考虑开始学习Python的原因。
答案 4 :(得分:2)
我个人将我的主要活动放在C / C ++ / Assembly上,并探讨其他语言。这是因为我的目标是保持尽可能尖锐,无论是解决问题的部分还是硬件友好的一面。就个人而言,我发现除了硬件之外还要更加令人兴奋。此外,当您经常使用后面的语言编写代码时,管理指针,内存等变得很自然,并且本质上会让您作为编码器变得更好,甚至更能解决问题; ^)。
希望这有帮助!
答案 5 :(得分:2)
这实际上取决于您打算做什么样的工作。但是,实际上,大多数高级编程语言都遵循非常相似的原则。如果您了解所有基础概念,那么从一种语言切换到另一种语言只需要更改语法。
但是,如果你坚持完全坚持使用一种语言,我就是java的粉丝。我认为你是对的,C ++对于大型任务来说有点笨拙。你可以使用python完成任何使用java的东西,但它可以交换python的一些平滑性,以便在你正在做的事情和实际发生的事情之间建立更直接的关系。 (至少,这是我的看法,因为有人花了很多时间使用java而不是使用python。两者的专家可能不同意我。)
答案 6 :(得分:1)
哑巴程序员是优秀的程序员。我维护的代码比我聪明,他们的代码是一个难以理解的混乱。有趣的是,除了真正聪明的程序员代码实际工作之外,无法编程的人也会发生同样的事情。
在这两种情况下,其他人都难以接管,同时智能程序员也会感到无聊并正在做其他事情。
好程序员写“哑”,易于理解的代码,他可以给别人维护,所以他可以继续做更多有趣的事情,而不是维护那些烦人的大软件这非常需要重构。
程序员应该聪明。代码应该是愚蠢的。