4

我在 Java 和 Web 开发方面有很好的经验,在 C++ 方面也有一些经验。最近,我一直在考虑将 Java(厌烦它)留给 C++。然后是 Python(不喜欢 Ruby)。我觉得它太好了,无法抗拒并开始使用它。但是 C++ 仍然留在我的脑海中。

现在我想“坚持”一种语言来流利地使用它。

Python 非常适合快速编程,但它太简单了,我担心它会让我失望。C++ 更难,但我怀疑我是否应该使用这种浪费更多时间来让编译器满意的语言。

我应该坚持使用哪种语言。任何意见?

4

7 回答 7

13

我建议您不要担心“坚持”一种语言,而是要学习进出任何对您的问题最好的解决方案。

最好的程序员只是出色的问题解决者——特定的语言并不重要。

于 2011-01-24T05:42:42.993 回答
4

我认为您不会“离开”一种语言。它仍在您的工具箱中,只是可能不经常使用。我建议更像是看它:

“我正在考虑通过学习一门新语言来扩大我的选择范围。”

就在过去的一周里,我使用过 C#、Java、Bash、Python 和 Javascript。当您被视为问题解决者时,您永远不知道下个月会被要求帮助什么,但您知道自己会做某事...

于 2011-01-24T05:48:35.023 回答
3

我建议至少研究一下更深奥的语言。在 Smalltalk 中编写一个小型 GUI,或者在 Common Lisp 或 Scheme 中编写一个实用程序。不要只是尝试使您的 Java 知识适应这些语言,而是要真正尝试像世界上的 Ron Jeffries 和 Paul Grahams 使用它们的方式来使用这些语言。

如果你只是想学习一些适用于就业市场的东西,那么那些东西就不如 Python 或 C++。但是,学习与您已经知道的语言截然不同的语言应该会带来一个有趣的挑战,并永久改变您对编程的看法。

于 2011-01-24T06:10:09.437 回答
3

我主要有一些特定领域的语言和一些通用语言(C、C++、Java、Delphi 等)的经验,而我没有使用 Python 的经验(只是对它的一般概念)。

您不能根据语言的难易程度来判断语言。您说您必须考虑必须花时间调试代码才能取悦 C++ 编译器的事实。我是一名经验丰富的 C++ 程序员,我可以一次编写数千行代码,然后编译并运行,第一次尝试一切正常(嗯,有一些不可避免的拼写错误和其他东西,就像在任何编程中一样) . 因此,该论点实际上仅指您的编程语言技能水平。对于我拥有的任何项目,我总是偏爱 C++,因为(对我而言)用这种语言编写代码非常有效。这当然可以作为一种务实的观点考虑,即您应该使用您实际上可以提高生产力的语言(在短期内)进行编程。

但是,在学习方面,您必须转向似乎适用于您的领域的内容。我做人工智能来控制机器人,所以我需要硬件访问,我需要 OOP、GP 和 TMP 提供的复杂编程结构。所以,C++ 的选择对我来说是理所当然的。您必须询问您所在领域的常见任务是什么?它们在低级与高级、网络与数值分析、面向用户与面向计算等尺度上处于什么位置?您所在领域(或您想学习的语言)中使用最广泛的语言是什么?

我还想指出,作为 Linux 用户,在 Linux 软件生态系统的开源开发人员中似乎相当普遍的设置是用 C 语言实现低级驱动程序、用 C++ 实现复杂软件和高级软件Python 中的接口和插件。这正是我在许多开源软件中所观察到的,我认为它似乎使用了所有三种语言中最好的一面是有道理的。这就是我考虑开始学习 Python 的原因。

于 2011-01-24T07:12:14.573 回答
2

我个人将我的主要活动放在 C/C++/Assembly 上,同时探索其他语言。这是因为我的目标是尽可能保持敏锐,无论是在解决问题的部分还是硬件友好方面。就我个人而言,我发现在硬件旁边以及其他方面更令人兴奋。此外,当您定期使用后一种语言进行编码时,管理指针、内存等变得很自然,并且本质上使您成为一名更好的编码员,甚至更适合问题解决者;^)。

希望这可以帮助!

于 2011-01-24T05:49:19.070 回答
2

这真的取决于你打算做什么样的工作。但是,实际上,大多数高级编程语言都遵循非常相似的原则。如果您了解所有基本概念,从一种语言切换到另一种语言只是改变语法的问题。

不过,如果您坚持完全使用一种语言,我是 java 的粉丝。我认为你是对的,C++ 对于大型任务来说有点笨拙。你可以用 java 完成任何你可以用 python 完成的事情,但是它用 python 的一些平滑性换取了你正在做的事情和实际发生的事情之间更直接的关系。(至少,这是我的观点,作为一个使用 java 比使用 python 花费更多时间的人。两者的专家可能不同意我的观点。)

于 2011-01-24T05:52:42.027 回答
1

愚蠢的程序员是优秀的程序员。我维护了比我聪明得多的人的代码,他们的代码一团糟。有趣的是,除了真正聪明的程序员代码确实有效之外,不会编程的人也会发生同样的事情。

在这两种情况下,其他人都很难接管,同时聪明的程序员也变得无聊并正在做其他事情。

一个优秀的程序员编写“愚蠢的”、易于理解的代码,他可以将这些代码交给其他人来维护,这样他就可以继续做更多有趣的事情,而不是维护那个非常需要重构的烦人的大型软件。

程序员应该很聪明。代码应该是愚蠢的。

于 2011-01-24T10:48:48.473 回答