在当今的环境中了解编程语言

时间:2009-05-17 19:06:12

标签: programming-languages

我是一名已经编程了几年的新手。有许多编程语言用于不同的目的。在陈述原因的同时,为了在当今的环境中保持竞争力,学习哪些语言是好的。

我会尽我所能正确标记这个问题,因为这不是直接的编程问题。

注意:阅读一些评论后。这不是什么是最好的编程语言问题。 C ++可能比javascript更强大,但需求更高?

19 个答案:

答案 0 :(得分:10)

目前尚不清楚“这种环境”的含义或竞争对手的含义。知道当前流行的语言集合(例如,可能包括C#,Java,PHP和Ruby)从不会伤害它。

如果您希望获得良好的工作并在任何环境中具有竞争力,那么这就是我在潜在雇佣中所寻求的:

  • 他们是否了解C,特别是成本模型?当程序执行时,他们真的知道寄存器和内存会发生什么吗?如果一个人声称使用C ++而不是C作为理解程序如何在机器级工作的基础,他们能解释模板,虚拟成员函数等发生了什么吗?

  • 他们可以递归地解决问题吗?他们可以在不使用可变数据结构的情况下解决问他们可以通过编写纯函数来解决问题吗?好的指标是在Haskell,ML,Caml或F#等语言中取得成功。 Scheme,Lisp和Clojure也是可以接受的。

  • 他们可以use types to help understand and create programs吗?好的指标是在Haskell,ML,Caml或F#等语言中取得成功。

  • 他们是否理解使用函数或对象的高阶编程?

  • 他们可以使用别人设计的类库吗?好的指标包括Smalltalk,Ruby,Modula-3,Java或C#。

  • 他们真的可以设计自己的类层次结构吗?这需要深入理解Small#,Small,Modula-3,Java,C#中使用的编程方法。

  • 他们可以使用shkshbash,awk,Lua或Python等语言将简单的Unix命令有效地合并到脚本中吗?

    < / LI>
  • 他们能否使用Lua,Icon,awk,Python或Ruby等语言快速编写好的字符串处理程序。 (我不是Perl的粉丝,因为它似乎没有促进用户的清晰思考。)

所以,要成为我的团队的强大雇员,你必须熟悉四种语言:C,一种功能语言,一种面向对象的语言和一种脚本语言(带有偏向字符串处理可接受)。 您选择哪种语言部分是品味问题。我的口味是对那些一个事物的语言(不是像Scala或C ++这样的混合体),因为他们强制你学习了一种新的思维方式。我建议:

  • C

  • Haskell或标准ML

  • Smalltalk(或者可能是Ruby,如果你从脑海中抹去Perlish的起源)

  • 的Lua

这四个人都采取明确的做事方式,其中三人是权力比重的领导者:做得很好的小语言。对于第四部分,遗憾的是,没有简单的函数式语言可以教您使用类型进行编程。

请注意,这些特定语言是个人品味的问题;很多替换都没问题。重要的是你学习通过计算机解决问题的强大方法;语言是实现这一目标的工具,而不是目的本身。

答案 1 :(得分:7)

英语,至少还有一个你的选择。

答案 2 :(得分:3)

总的来说,我会说:

  • 脚本语言,Perl,Python,Ruby
  • 一种“低级”语言,C
  • 一种功能语言,Haskell,Scheme
  • 面向对象的语言,C ++,C#,Java

但这完全取决于一个人会做什么,例如在具有大量数学的科学环境中,了解matlab或R非常重要;在mac环境中,了解Objective-C很重要。

答案 3 :(得分:3)

我认为您必须根据应用领域来决定:

  • “商业”应用程序
  • 游戏编程
  • Web应用程序
  • Algorithmics / Mathematics
  • 数据库处理
  • ...

我认为用C风格的语法(C,C ++,C#,PHP,Perl,Java)来学习语言总是一个不错的选择,因为当你知道一种语言时,更容易理解其他语言(这些都是非常重要)。

作为一种脚本语言,Python相对普及。

答案 4 :(得分:3)

在Windows世界中,C#将是一项不错的投资。它将允许您定位客户端应用程序,服务器端应用程序和Web应用程序(通过ASP.NET)。

对于跨平台Java是一个很好的选择。它已经存在了很长时间,并且拥有一套很棒的库,可以让你做任何你想做的事情。它是C#的跨平台等价物。

了解脚本语言也很好。这些天有很多可供选择,并且不希望启动火焰战,你最好的选择是Python或Ruby。

答案 5 :(得分:2)

Tiobe Programming Community Index可能值得一看:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

用他们自己的话说:

  

TIOBE编程社区索引表明编程语言的流行程度。索引每月更新一次。评级基于全球技术工程师,课程和第三方供应商的数量。流行的搜索引擎Google,MSN,Yahoo!和YouTube用于计算评级。观察到TIOBE索引不是最好的编程语言或编写大多数代码行的语言。   索引可用于检查您的编程技能是否仍然是最新的,或者在开始构建新软件系统时做出关于应采用何种编程语言的战略决策。

答案 6 :(得分:1)

首先,我不是一个“专家程序员”或任何东西,我可以说我还在学习我的第一语言。但很多时候对我来说,进步甚至都没有学习特定的语言,你总能学会更好地使用计算机。我发现我喜欢编写批处理文件来为我做事,并使用命令行做一些事情。

然而,根据我的经验(其中很少): Python是一门非常好的语言。这很简单,功能强大,可以做很多事情,即使我不知道所有这些

Java对我来说学习起来有点困难,但我想我正在忙着学习它。我已经把Java暂停了一段时间。

从我的研究时间和我在其他地方听到的内容来看,听起来像C ++ / Java是绝对必须的,而Python更像是一种有用的语言,你可能不会在日常工作中使用它C ++ / Java类型语言。

另外,感谢您提出这个问题,我试图解决这个问题,但我的问题已经结束:3

希望我和我缺乏经验帮助某种方式:D

答案 7 :(得分:1)

的Python!和C#(不幸的是,大多数工作;不是说C#是一种糟糕的语言,但我希望看到更多的竞争)。

答案 8 :(得分:0)

我建议你确保涵盖所有主要领域。学习C语言,了解一些可以帮助您学习其他更高级语言的基础知识。学习类似计划的功能性语言,即使它只是学习经验。然后当然会选择像C ++或C#这样的东西(取决于你想要的领域)。然后选择一个像python或ruby这样的可靠脚本语言,如果你打算触摸网络,也可以选择javascript。如果您计划进行大量与Web相关的工作,请另外考虑c#或actionscript(分别用于silverlight或flash)。

这应该会给你多样性和广泛的理解,这将使你能够快速,轻松地获得你需要的任何其他东西。

答案 9 :(得分:0)

在任何时候,您都可以查看当地的工作列表,以确定需求。我会看看你想工作的职位发布,看看有什么可用。

除非我想前往一个主要城市,否则本地的所有内容似乎都与ASP / .NET相关。

答案 10 :(得分:0)

就像你说的很多编程语言一样。不同的语言用于不同类型的编程,不同的团队/雇主使用不同的语言。

那么,你的问题的答案取决于“什么样的编程?”和“哪个雇主?”。

即使我可以告诉你最常用的流行语言是什么,仍然不会回答哪一个会让你有竞争力:一个人可能最具竞争力的语言可能是一种相对不受欢迎的语言,有一些需求,但没有或很少有竞争对手。

答案 11 :(得分:0)

Python,Java(或C#),C,JavaScript。

优选按此顺序。那是基础课程。

Python因为它很简单。 Java因为它具有庞大的类库并且教会使用API​​。 C因为这就是它实际运行的原因。 JavaScript,因为你不能在没有它的情况下在2009年生活,而且它是最后一次,因为你要么被宠坏了,要么早先不理解它。

是的,如果没有框架,请不要使用原型。

答案 12 :(得分:0)

Java或C#或C ++。如果您感兴趣的是在稳定的公司内找工作,那么这些语言就是一种语言。

为了好玩,有各种各样的语言可能会或可能不会获得更多的工作量。

现在认真地说,语言只是ceratain编程概念的一种实现。你应该关注的是学习这些概念。在这种情况下,学习一门语言只需要选择synax并查找其标准库。

答案 13 :(得分:0)

我还建议任何业务应用程序程序员学习一些SQL的风格,并强调编写高性能的查询。很少有业务应用程序不依赖于数据库访问。

答案 14 :(得分:0)

你的问题中缺少的是你的能力和愿望是什么,你住在哪里(你有多么愿意搬迁),以及你正在寻找什么。

您可以查看各种职位空缺列表,或者您当地的工作委员会,查看大多数职位的位置。如果你想最大限度地获得现在被聘用的机会,这可能是你最好的选择(尽管你可能会被竞争所愚弄 - 如果每个人都遵循这个计划,那么$POPULAR_LANGUAGE就会出现供过于求的情况,这会更容易被雇用$LESS_POPULAR_LANGUAGE)。这也可能因地区而异。

但是,这并不能保证薪水不错。你将与​​编程基因库的浅层竞争,工资很可能是基于此。不太常见但技术性较强的人可能会提高你的薪水,如果你有能力,你应该找到工作。

这对长期就业也不一定有益。你想在二十年后在哪里?如果你坚持使用当前流行的语言,并且不准备从那里移动,你可能会在未来十年内陷入低工资和沉闷的项目。如果您想尝试面向未来,可以学习更多困难和多样的语言。

如果你对初创公司抱有抱负,可以考虑一下你想做什么,以及什么是最好的。在初创公司中,您必须能够完成大量工作,因此您需要高效率,并且您可以使用您想要的任何语言和环境,特别是如果它是基于Web的方法。

另外,实际上,你有多聪明?你能掌握技术科目并超越你的竞争对手,或者你是平均而且希望生活在牛群中?您喜欢编写软件吗?或者您是否正在寻找向业务主管付出高薪的过渡?

答案 15 :(得分:0)

您应该了解主流语言,例如:C / C ++,C#,Java,XHTML / CSS和SQL

答案 16 :(得分:0)

我非常个人化和偏见的是你应该学习:

  • Java - 语法相当冗长和简单,但对于初学者和必须维护大型企业代码库的任何人来说,这都是一个巨大的优势。它拥有庞大的开源图书馆生态系统,是首屈一指的。你可以获得像Eclipse这样的免费IDE。你可以编写Android应用程序。不管你喜欢与否,它都是业务发展的第一语言,所以你不能在工作中出错。

  • 汇编程序 - 因为最好的程序员应该知道他们的机器是如何工作的。你可能永远都找不到工作甚至写任何特别重要的东西,但它会让你成为一个更好的开发者。在此之后你会非常欣赏更高级的语言....

  • Clojure - 因为它是一个Lisp,每个人都应该有一个适当的Lisp经验。它是一种适合快速发展的动态语言。它是一种现代函数式编程语言。它对并发性很有帮助。这是未来。什么不喜欢?

  • Javascript - 因为在某些情况下,您肯定会想要在网络上做客户端内容。它本身就是一种有趣的语言。而且这是你最有可能做的事情,这会给你的朋友/家人留下深刻印象,他们只想在互联网上看到漂亮的东西。

答案 17 :(得分:0)

我认为您可以尝试一些Python,Ruby,PHP,Java,C,然后选择一个您最喜欢的,并进一步使用它。现在有些公司只使用PHP,有些公司主要使用Java,有些公司只使用Ruby on Rails,所以你只需触摸一些,然后决定你想进一步使用哪一个。如果你很好,无论你使用什么语言,你都可以获得好工作。

答案 18 :(得分:-1)

C#很棒(你可以在linux上使用它也可以使用单声道)也可以在rails和PHP上使用ruby而且可能是F#

相关问题