Answers:
对于“常规”编程和算法:
改变思想的经历:
破坏了您的思想并跨越了帕达万和绝地大师之间的界线:
不要忘记Javascript。
它具有的OO功能不是您通常的OO功能。它非常适合于高阶函数和闭包,您通常会使用它们。它允许许多功能编程技巧。它非常灵活。
这是实用的,因为每个认真的浏览器都有它。
(当然,它也有许多令人不快的怪癖。很少有实用的语言没有)
我建议方案。
这是一种从Lisp派生的功能编程语言(实际上大多数人认为这是一种方言)。与Common Lisp的主要区别在于,它的方法非常简单- 极为如此。例如,在Scheme的正态分布(任何小于R5的方案,或者Mit / GNU / Scheme)中,您将找不到循环实现:您必须使用尾部递归来制作自己的循环。
它确实具有表达能力,并且它的语法非常适合学习编程方面的新知识,例如:只需看一下代码,您就会知道编译器/解释器将如何工作。
此外,它还附带有史以来最好的编程书籍,《计算机程序的结构和解释》,可从MIT网站免费下载。
我希望这里有一些视频课,希望您立即对这种迷人的语言感兴趣-演讲者是SICP的作者:http ://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman- 讲座/
放手,我会说Haskell。有两个原因:
没有明确的目标,您将无法正确学习任何编程语言。知道要使用它的功能之后,您就可以决定哪个程序适合您的需求。
例如,假设有关c#。
C#可以执行Web程序,控制台程序,独立的可执行文件,游戏程序,Silverlight程序和移动程序。虽然语法几乎在每种情况下都是相同的,但在每种情况下其工作方式都不同。例如,一个独立的可执行文件会保留其信息,直到其被卸载或该程序完成为止;而在Web程序中,每次加载页面时该信息都将被销毁,而在Silverlight中,您将花费大部分时间,在一个xml文件。
其次,不要将时间花在外来语言上(例如,Haskel),从企业来讲,很少有值得您努力的程序:java(山丘之王),c#/ vb.net,php和sql。