是应该学习一种新语言,还是应该只专注于您已经知道的语言并增加其知识?[关闭]


22

哪种方法更有益和更有成效?


1
这不取决于工作和项目的类型吗?如果您在一家大型公司工作,您可能不会经常转移技术,如果您是自由职业者,则可以选择。
克里斯(Chris

@Chris:建议,“语言和框架”,大多数开发人员不再仅使用命令行编译器和文本编辑器,而是库,IDE,BD,第三方工具... ;-)
umlcat

1
从投票数来看,这个问题在许多人看来建设性的。我认为Mark Trapp实际上是一个为解决问题而编写的计算机程序。
T. Webster

Answers:


18

我想你们两个都需要。您必须专注于自己的核心竞争力并增强对它们的理解,但是同时向外看,看看还有什么是有益的。接触其他方法和其他语言对于使一个整体上更好的开发人员非常重要。有很多方法可以为猫做皮,并且尽可能多地了解它们,可以使您更聪明地选择合适的工具来完成特定任务。

因此,将您的大部分时间花在提高自己选择的能力上,并花一些时间学习新知识。


4
+1既要知道如何很好地使用“锤子”,又要知道有“螺丝刀”,“锯”和“粘钉”之类的东西。
瑞安·海斯

1
而且在大多数时候,学习一种新语言可能会使您接触到一种设计模式或一些您从未想到使用自己的语言的有用功能。
AttackingHobo

8

有人说“一种不会改变您对编程的思考方式的语言不值得学习”。

因此,如果您了解Java,学习C#几乎没有收获(反之亦然)。如果不是出于实用的原因(即,您需要用它来解决问题),我建议每个Paradigma都使用一种语言,并且您的日程安排仍然足够;)。

另一方面,根据我的经验,专业化主要是在“现场”实现的,即在进行项目工作时就自然而然地做到了。


1
C#为Java开发人员提供了有趣的新功能。Linq和lambda的表达方式可能会打开一个新世界的视线。
卡拉

实际上,我想说,将C#程序推向市场要容易得多(至少对我而言),然后再将Java程序推向市场。因此,从这个意义上讲,我的眼睛睁开了,因为我可以在避免Java不足的同时获得Java的便利。不用担心语言大战,那是很不错的。
riwalk

+1我从.NET开始,从我对Objective C和JavaScript的学习中学到了很多东西。
Trevor

@Carra:我还不知道这一点(我最近对这两者的深入体验是在Java 1.5发行时)。根据您的经验,这种差异是否已经变得足够大,足以使它们有所差异,从而值得推荐(从“学术”的角度)学习两者?
keppla 2011年

您最好还是学习一种功能语言。所以总的来说,我同意你的看法。
卡拉

3

双方都有很多非常好的论点。许多年前,我被问到了这个确切的问题……专注于我的主要语言,并试图成为“专家”,或者尝试使用一种新的语言并扩大我的销售能力。我选择专注于一种语言。

确实不会有错误的答案。两者都有优点,归根结底是哪个更适合您以及您希望事业发展的方向。


2

学习新语言主要是获得新概念并提高编程效率的一种方法。学习编程本身与学习要编程的新语言有很大不同。

您应该专注于使程序更好(并且有很多衡量指标的方法,许多是主观的;没关系,随便挑选指标并随着时间的推移对其进行完善,并将其用于您的教育)。

话虽这么说,Python在您的较旧列表(例如,说“ C”等)中学习“较新的”语言(例如)将有助于您更有效地思考,并专注于应该改进的核心概念。再举一个例子,它可能不会立即出现,但是您可能会发现C编程变得更好,因为您一直在用Python进行思考。您甚至可能开始编写Python而不是的psudo代码C。现在,这是一个更具可读性和可验证性的伪代码。

这使我们对一个主要问题进行了总结:
是的,只要您仍在使用它们,您就应该专注于您已经知道的语言并增加对它们的了解。并且,您还应该涉猎较新的语言,以便为您的大脑提供更新的工具,以考虑(甚至更快)考虑您的编程需求的解决方案。


1

控制编程框架(和相关语言),并为其他(最好是不同的)“域”留出一些空闲时间。示例:C ++客户端服务器,Web上的Ruby


1

学习新语言

这取决于您学习语言的目的。如果您正在学习该语言,是因为它使用了不同的范例或适合于特定的问题领域。但是,如果它是一种与您已经知道的语言非常相似的语言,并且您打算做的就是用该新语言重写所有现有代码,则可能没有太多价值(例如,在python中重写python webapp红宝石)。

使用当前语言更深入的知识

如果您已经对使用某种语言进行编程非常熟悉,熟悉其所有习惯用法并且可以在不使用每个库调用的文档的情况下就可以使用该语言编写程序,那么可能没有更多的知识要学习。另一方面,如果您对语言的了解不深,则学习更多内容可能会有一些价值。衡量您是在X语言的前阵营还是后阵营的一些好方法是

  1. 您用X语言编写了多少个程序?
  2. 如果继续进行Stack Overflow并查看标记为X的问题,您会愿意回答几个问题?
  3. 人们会向您寻求有关X语言的帮助吗?

如果您对这些问题的回答大致是“很多”,“大多数”和“是的,并且令人讨厌”,则表明您已经掌握了该语言,应该继续学习新。


0

如果您已经足够熟悉您所熟悉的语言,那么学习一些非常详细,特定的技巧就没什么好处了……这将完全是浪费时间。但是,当您对某种语言不太满意时,建议您首先掌握该语言。

除了语言之外,还有框架,模式...要学习框架,您必须了解一种语言,因此,对于非常相似的语言,学习它们除了带来一些有趣的乐趣外没有任何帮助。

我个人的观点是,您应该始终开发自己的功能,以便为更多平台开发更快,更安全,更健壮的软件,并缩短时间,为此,您可能需要学习新的语言,新的框架,新的IDE。 (这和语言一样重要),只有为此目的,您的投资才有价值。

至少不要学习新的语言以增加您所知道的语言数量。

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.