在两种编程语言之间来回切换是否明智?[关闭]


28

近两年来我一直在写很多PHP。现在,我正在进行.NET(主要是C#)开发。但是,有时我回去做一些php。

我的主要问题是,继续执行此操作是否明智?还是应该继续使用C#开发?从长远来看,这会对我造成伤害吗(请注意,我的主要目标不是成为所有交易的杰克)还是这样做是一种好习惯?


30
胜过所有技巧,而不是花招小马
scrwtp

27
如果将自己限制为仅两种语言,那肯定会伤害您。在工具箱中获取更多不同的工具。
SK-logic

4
您问这个问题,好像您完全可以在C#和PHP之间自由选择一样-确实是这样吗?
布朗

10
知道一种语言的所有肮脏细节无疑是非常有用的。但是,当您使用多种语言时,无论您使用的是哪种语言,您都会在某个时候发现自己以某种方式设计程序的各个部分。这是一种程序员的必杀技,其中的语言成为次要的,应用才是重要的。那是一个很棒的地方,因为这意味着即使在将来人们使用某些新奇的Z ++语言工作时,您也有潜力成为程序员。

2
只有两个?许多程序员经常以多种语言工作。知道几个可以为您提供更多可供借鉴的工具。
卡勒布(Caleb)2012年

Answers:


75

同时使用两种语言完全没有意义。对于程序员来说,每天使用几种不同的语言并不少见。不同的任务和不同的技术需要不同的语言。

就在今天,我已经使用了四到五种不同的语言,这很有趣,因为到目前为止我还没有进行任何编程。我所做的只是演示文稿上的工作。

作为一名优秀的程序员,本质上要求您了解几种语言,而达到(然后保持)合理流畅度的唯一方法是使用这些语言。


4
我不确定在没有定期使用至少三种语言的情况下,没有谁能成为有效的程序员。
Brian Knoblauch 2012年

1
@Brian-这三种语言是您的主要口头/书面语言,您的主要编程语言以及SQL和/或HTML?
KeithS 2012年

2
@KeithS仅当您在客户端创建超纯页,并且永远不要在服务器端接触XML记录时。CSS和Javascript以及XPath和XSLT和XQuery都是自己的语言。
Tacroy

2
任何包含“最多人”或“大多数开发人员”的内容,都应加上各种引用。否则,它是主观的。我遇到的几乎每一个开发人员(包括我自己)都将SQL视为一种编程语言,而图灵完备性并不是编程语言的必要因素(请考虑DSL,这些DSL通常设计为完整)。HTML和XML显然是不是编程语言(尽管您可以使用基于XML的域特定语言)。正则表达式不是编程语言,但是可编程/可配置自动机是。
luis.espinal,2012年

2
那不是来源。这是一个讨论的链接(讨论本身不是源),并且仅关注CSS和HTML。它没有解决“图灵完成”测试(我建议您阅读Martin Fowler关于DSL主题的工作),也没有解决SQL是否是编程语言(它是这里的实际来源):en.wikipedia.org/ Wiki / SQL或此amazon.com/SQL-Programming-Language-Kirk-Scott/dp/0763766747)。您或者没有完全阅读我的文章,或者您认为到
stackexchange

37

这是一个好习惯吗?

这是一个极好的实践。此外,我建议您通过尝试一种新的语言来定期扩展您的语言列表。

语言和技术在短短几年内迅速受到青睐。例如,Objective C在几乎死了两年半之后就以惊人的力量起飞了 -以该行业的标准来说是永恒的!

计划“不成为所有交易的杰作”并不重要:如果您打算在该行业中停留足够长的时间,可以很安全地假设您必须至少切换一次技术堆栈在您的整个职业生涯中。现在,使用多种语言可以使您准备好在短时间内打开通知。


14

从长远来看,这会对我造成伤害吗(请注意,我的主要目标不是成为所有交易的杰克)还是这样做是一种好习惯?

知道两种或更多种语言永远不会伤害您。浅浅地了解您的语言(不了解内部工作原理)可能会伤害您。

我个人比较喜欢始终先掌握一种面向对象的编程语言。这将为您提供所有编程概念的深入学习,并在需要时轻松学习下一个。

这是一个好习惯吗?

绝对没错!

我绝对建议您学习多个,并通过构建一些应用程序来实践它们。同时,如果您正在或计划进行Web开发,您可能还计划学习一些脚本语言(jQuery,KnockoutJs等)和库。


1
我不认为,学习OOP会教您功能编程中的许多概念,例如,JavaScript范围规则与其他流行的OOP语言(例如C#)有很大不同,等等。
phant0m 2012年

我非常同意。但是,jQuery和KnockoutJs都不是脚本语言。如果不具备基本的JavaScript知识,我将不建议“学习jQuery”。
布鲁诺·谢珀(BrunoSchäpper)2012年

在此过程中,如果不学习JavaScript,就无法学习jQuery,因为jQuery不是语言,而是用语言编写的库。
ILikeTacos

5

从长远来看,它不会对您造成伤害,精通多种语言会使您成为全面的开发人员。使用“正确的工具来完成正确的工作”是最终目标,精通不同的语言可以帮助您实现目标,因为您知道那里还有其他内容,并且可以针对要使用的平台/框架/语言做出明智的决定。做点事情。


感谢您的回答,但我想知道频繁的轮换是否会损害我的学习过程或延长学习过程,还是仅取决于该人的能力?
拉明·桑尼

@LaminSanneh学习另一种语言并不会使您在第一种语言中变得更糟。它不是RPG,并且您没有可分配给每种语言的一定数量的“编程技巧”要点。最坏的情况是,您会花时间去学习另一种语言。但是语言只是表达您的想法的一种方式,学习新语言可以为您提供新的,新颖的观点和想法,您可以将它们应用于已经知道的观点和想法。当然,您不会立即掌握每种语言的语法,但是谁在乎呢?这是Google的快速搜索工具
周杰伦(Jay)

5

在您的职业生涯中,您将必须学习新的语言和新技术。行业完全需要它。在我的第一个专业任务中,我必须交付用Ada,C和Fortran编写的代码,以及一些SQL和Shell脚本。在过去的几年中,我不得不从C ++切换到Java,然后又回来。我已经用csh,bash和perl编写了shell脚本。

花时间学习不同的语言,尤其是如果它们处于不同的领域(OO,功能,逻辑等)时,将以多种方式帮助您。它将使您的大脑保持敏锐。它将帮助您将概念与实现分开(例如,哈希和映射不仅是特定语言中的数据类型)。它将使您更好地了解哪种工具适合于给定的问题(例如,我不会用C建立网站,也不会用Haskell编写设备驱动程序)。这可能使您更容易找到工作(“嘿,他已经知道Intercal 1了,我们不必培训他!”)。它将使您了解语言设计人员面临的挑战。它可能会激发您创建自己的编程语言。

至少,它将使您免于无聊。


1.开玩笑。不要尝试学习Intercal。


4

今年退休的人们在创建C之前就开始了自己的职业生涯。可以肯定地说,在您的职业生涯中,您可能会切换编程语言一次或两次。您不想为不了解这一点的雇主工作。

如果您是新手,则在两种语言之间进行上下文切换要困难得多,因此,如果在切换之前使用一种语言至少工作4-8个小时,您的工作效率将更高。稍后,您将能够立即切换而不会损失生产力。换句话说,使用两种语言最终将成为一种优势,而不会减慢您的速度。


2

这有好处也有缺点。

有好处的...

正如其他人提到的那样,能够学习新知识并能使用多种语言和编程工具对于长期从事编程工作至关重要。多年来,情况发生了变化,工具/语言不断出现。当然,有些人很满足于在1980年代使用的大型机COBOL中进行编程,但这是一种相对罕见的情况。大多数程序员在其职业生涯中都会多次更换工具/语言。有时,您可能会被录用,因为您确实了解一些较旧的技术或公司所使用的所有语言。

缺点是...

一些雇主将您视为“万事通,万事通”,并且拒绝您的申请而没有给您机会。他们正在寻找特定领域的狭窄专家,而不仅仅是一个优秀,全面的程序员。有时,由于没有“ [X]的5年连续经验”,您可能会被HR裁掉。您可以通过量身定制适合您工作的简历来避免这种情况,但这可能无法帮助您进行技术面试。

对我来说,好处要好得多,但您确实需要意识到,少数组织认为这是消极的。


+1,此外,我很肯定这少数组织与糟糕的编程和无效性之间存在关联。
K.Steff

2
这种消极情绪虽然被认为完全相反的雇主所抵消。我在聘用我在哪里工作的决策时有发言权,而且很难说服聘用只有一种编程语言的人。也许是初级职位,但肯定不是高级开发人员。
乔恩·汉纳

@JonHanna-主要问题是,开发团队甚至可能从未面试过潜在的开发人员,因为他们是由HR(有时是通过自动化程序)筛选出来的。当然,这是大型组织中比较常见的问题。确保您的人力资源人员没有根据任意标准选出最佳人选很重要。
jfrankcarr 2012年

+1指出缺点。我来自哪里,保留“万事通,万事通”的公司的数目并不小。
lsoliveira 2012年

是的,但是我们可以将其转换为任何高质量的文件;人力资源部总会有一个白痴,认为自己的素质很差。最终,如果组织中的人力资源部门是白痴,他们将招来不好的员工,而被录用时可能比失业线还好,那么您将立即寻找新工作并在其他地方找到工作。
乔恩·汉娜

2

在进行PHP开发时,您是写JavaScript还是SQL?在您的C#开发中,您仍然可以同时使用这两种方法。它并没有像使用一种编程语言那样繁琐。

如果您乐意这样做,请不必担心。如果您不想两者都做,那么您会遇到问题。


2

学习一种新的编程语言将教会您有关编程的知识,这些知识可以应用于您已经知道的语言。您绝对应该考虑至少使用其他一些语言,即使您不是专业地使用它们,也不是只有很少的几种。

理想情况下,与您已经知道的方法截然不同。


2

不,学习多种语言并经常使用所有语言没有错。在我的日常工作中,我会遇到Ruby,PHP,JavaScript,CoffeeScript,Python以及偶尔的C语言。我对所有这些语言都非常了解,并且从一种语言过渡到另一种语言只会动摇我的大脑。当然,当我转到另一种语言时,确实会错过某些语言的功能,但是您会克服的。

我尝试始终要拥有一种我正在深入学习的语言,然后再将另一种语言称为“崛起”。这样,您始终有一个明确的教育目标,然后又有了新的目标。现在,Ruby是我的主要语言,并且我正在尝试Go。我可能永远不会找到Go开发人员的工作,但是学习一种新的语言已成为一名更好的开发人员。

当我采访开发人员时,我总是喜欢在简历中看到几种不同的语言。如果开发人员的简历上带有“ C / C ++”或“ PHP and Javascript”,则他们看起来比掌握4或5种语言的人有趣得多。确保您使用列出的任何语言感到自在,简历中的任何内容在面试中都是公平的游戏!

简而言之:定期使用多种语言是优秀的开发人员关心自己的手艺的标志。继续编码!


我要说的是,如果开发人员在简历中说“ C / C ++”,我希望那是那里唯一的语言。但是使用其他防呆语言,效果就越好。
编码员

2

在查看简历时,我们通常会寻找会多种语言的人。另外,随着人的经验的增加,他们使用的语言数量也应增加。

在我们的环境中,我们经常必须解决新的有趣的问题,并且我们正在寻找愿意跳入并解决这些问题的人员,无论他们是否需要学习新的语言。问题可能出在运行于Windows桌面,Windows服务器,Linux服务器或浏览器中的代码中。

会说多种语言是对某人持良好态度的标志。他们想总是学习新事物,所以他们这样做。缺乏对多种语言的了解向我表明,一个人只做最少的事情,对学习不感兴趣。


2

人们使用一种以上的语言进行编程一直都是这种情况。人们在使用Assembly时,每次更改体系结构时都必须学习一种新的Assembly语言。

当人们在做COBOL或Fortran时,他们通常也会做RPG和/或JCL。

在Unix中,人们将使用C,sed,awk,shell脚本以及Unix厨房接收器中的几乎所有内容(Unix中几乎每个命令行工具都是其自己的,非常特殊的DSL)。

在DOS中,除了批处理脚本外,人们还将使用Turbo Pascal或C进行编程。后来,当Windows出现时,是VB或类似PowerBuilder的工具,再加上SQL以及可能的批处理安装脚本。

如今,它是一个事实上,人们的“工作”与任何一天两种以上的语言(和“工作”我的意思是做实际的一天到一天的编码或已工作的知识)。Java或C#或VB至少与JavaScript和SQL混合在一起。然后,其他语言开始用于批处理/作业脚本等。然后,对于每种语言,您都有一个框架,该框架本身实现了内部DSL,它本身就是一种迷你语言。

因此,使用多种语言不仅有益,而且是必要的。没有办法用一种语言来构建现代的,复杂的系统(“构建”并不是要编写一些可编译的废话,而是要用一个体面的设计来构建。)

哎呀,我会竭尽全力地说,如果他们认真地从事这个专业,我希望大学里的孩子精通两种或多种语言

因此,关于您的问题:

我的主要问题是,继续执行此操作是否明智?还是应该继续使用C#开发?从长远来看,这会对我造成伤害吗(请注意,我的主要目标不是成为所有交易的杰克)还是这样做是一种好习惯?

因此,简短的回答,不,使用或切换语言不会给您带来麻烦。知道一种以上的语言不会使您万事通,而且开发人员无法通过使用一种以上的语言来成为专家。


1

与主要语言相比,您需要比较的内容越多,您就会更好地理解设计折衷方案,这些折衷方案使它在某些情况下特别强大或较弱,并利用/补偿了这些事情。掌握至少一个,但不要担心成为许多其他人的杰作。那看起来很好。

最好问一下“高级”开发人员仅列出的一种语言的简历的外观。这个问题的答案是:“对他们的谋生不是很感兴趣。”


0

两种语言可能对您有无帮助-取决于情况。肯定不会伤害您的。许多开发人员倾向于认为使用除“主要语言”之外的其他内容纯属浪费时间,但我强烈不同意。学习另一种语言(并使用它)纯粹是有益的:它为您提供了解决问题的不同视角。您可能会一直在任何时候都开始使用一种语言来执行特定任务(就像我有机会学习和使用Python之后发生的事情一样)。


0

在这种情况下,您并不是一直在要求从JAVA切换到C#,然后一直返回,而是使用C#和PHP,这确实没什么大不了的。

假设您要使用WAMP堆栈(Windows / Apache / MySQL / PHP)和C#进行一些基于WEB的工作。您可以使用C#编写一些基于SOAP的服务,然后使用PHP来使用它们。

这对我来说完全可以接受。

无论如何,懂一种以上的语言是件好事。您了解得越多越好。PHP / C#/ Java / Python / javascript库[例如JQuery]。对尽可能多的人有用。

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.