扩展编程技能的语言建议(对于半经验的软件开发人员)

时间:2010-01-13 17:11:56

标签: php c++

我很少(<1年专业)经验

  • 的Perl
  • 的Groovy / Java的

我有限(<2年专业)

  • C

我有很好的经验(&gt; = 6年专业)

  • PHP
  • SQL

我有

的爱好经验

所以我的问题是我接下来可以用什么语言(在我的空闲时间)给我一些关于编程和一般问题解决的新见解 - 我看着也许LISP - 这会是对我来说很陌生。我想从上面列出的语言中解决一些非常非常不同的内容。

编辑:我想我会调查Haskell - 感谢您的反馈!也许可能是Erlang,我真的很喜欢Adrian Kosmaczewski关于雪豹Mac App的想法。

12 个答案:

答案 0 :(得分:5)

Haskell,不久之后是Python。

答案 1 :(得分:2)

尝试函数式编程语言

  • F#
  • Lisp的
  • Haskell

答案 2 :(得分:2)

你可以尝试的两种非常不同的编程语言是Haskell和Prolog。

Haskell是一种纯函数式语言,您可以使用其他函数作为参数并修改它们。它使你的思绪更加清醒; - )

Prolog是一种逻辑语言,您可以在其中指定一组应该为true的条件,然后prolog可以找到合法的解决方案。该语言已被用于人工智能研究。

答案 3 :(得分:2)

我也投票支持功能语言:

  • Erlang 非常有趣,因为它是一种不断发展的语言,明确针对并行编程;
  • LINQ,它使用函数式编程概念将.NET语言扩展为做一些非常酷的事情;
  • JavaScript - 它很有趣它不在你的列表中,但它是Crockford所说的最容易被误解的语言,但它也是有史以来最常用的函数式语言。
  • 既然您已经了解ObjC,请尝试使用blocksGrand Central Dispatch为Snow Leopard创建一个Mac应用程序......这可能会让您大吃一惊:)

鉴于the free lunch is over,跳到这个范例是一项很好的投资,恕我直言。

希望这有帮助!

答案 4 :(得分:1)

红宝石。 Ruby很棒,从那里你可以学习Rails,这是一个了不起的框架。

答案 5 :(得分:1)

Prolog,学习逻辑编程。 这可能会教你很多,但我认为这是一种爱好,因为我个人不知道任何非教育应用程序。

Haskell,或Erlang,用于函数式编程。

答案 6 :(得分:1)

这是用于学术或专业发展吗?如果是后者,请查看您想要工作的区域,并查看他们要求的语言。他们很可能是主流,例如C ++,C#或Ada(取决于域名),但如果这是为了学术兴趣,一些更深奥的语言可能会引起埃菲尔,Forth,Smalltalk和其他人提到的所有那些

对于专业发展,你可能会成为万事通,无所不能,我建议你可以更垂直思考并考虑学习设计和建模语言,如UML和相关分析/设计方法和模式。这些技能可以跨语言移植,语言的选择应该始终位于良好的规范和设计的第二位。

答案 7 :(得分:1)

我会说如果你对一种新的,非常“不同”的语言感兴趣并且考虑了几种选择,你应该首先查看社区。看看新闻组是多么活跃,如果人们看起来很好并且拥有良好的氛围。调查那种流行的项目是否倾向于引起你的兴趣。

Haskell似乎是个不错的选择。功能语言很重要,并且在解决问题方面表现出不同的一面。我一直在看Erlang,但还没有写任何东西,所以除了共同的好奇心之外我不能谈论它。

链接|标志

添加评论


Psssst ......在这里! Shhhhh!不要引起注意!我们清楚了?你确定没有人关注你吗?

所以你想“彻底改变你对编程的看法”,是吗?人们可能告诉你,你想要进行思维扩展的方法是去CS学校的功能性编程,或者像这样的东西。是的,我知道我说的是什么......关于“社区”的斗牛......那是为了让温和的警察放下我的背,老兄!

事实是我在这里得到了“心灵扩张”......编程的可卡因:[Rebol]

第一次免费。但如果有人问你从哪里得到它,那不是我!我们从未见过......我不存在。你有那个!??

:P

答案 8 :(得分:0)

的Clojure。你不会后悔的

答案 9 :(得分:0)

Javascript和python。

Javascript 世界上最容易被误解的语言。但是不要接受克罗克福德的建议。拥抱它的缺点。不要在他们周围工作。请注意它们。 例如,不要为对象创建关闭。拥抱基于原型的继承。这很酷。

答案 10 :(得分:0)

基于您的简历,我建议您处理Python,因为它将为您提供一个很好的机会来处理一些CS基础知识,如OOP和函数式编程。 Python是一种很好的通用语言,可以在您的工具箱中使用,它可以用于各种各样的应用程序(Web,实用程序,脚本,服务器等),并且很容易学习并在短时间内提高工作效率

答案 11 :(得分:0)

LISP和FORTH是认真思考的好选择。

如果您真的想要伸展自己,请获取一份Abelson&amp; amp;苏斯曼的“计算机程序的结构和解释”,以及麻省理工学院计划系统的副本,并开始通过本书。 Scheme是LISP的一种方言(但你可能已经知道了。)(关于这个主题,请从麻省理工学院的Open Courseware下载课程6.001的副本。)

如果你想学习一种不同的心态,那将以有趣的方式为你提供良好的服务,谷歌和snarf一份Leo Brodie经典的“Starting FORTH”,然后选择一位FORTH翻译来玩。 (这本书是为polyFORTH编写的,FORTH,Inc。已不再提供,FORTH系统现在并不常见。)然后阅读同一作者的“Thinking FORTH”。