在您看来,程序员最重要的语言是什么?我说的是概念,而不是语言的实用程度.
列出语言和原因.例如,用于函数编程的Lisp,用于基于原型的OOP的JavaScript等.
必须知道:
1)C(系统编程,理解机器架构)
2)Perl或Python或Ruby(实际的日常任务)
3)Java或C#或C++(OOP,这些天找工作非常重要)
非常重要:
1)Haskell或ML(函数式编程;改变你的想法)
2)Lisp或Scheme(宏的力量)
好的附加:
1)Forth(非常低级,显式堆栈操作+编写自己的解释器的快乐)
2)汇编语言(了解CPU的工作原理)
3)Erlang(并行处理)
4)Prolog(逻辑编程)
5)Smalltalk(真正的OOP和真正的交互式开发)
您可以通过低级知识学习多种芯片的汇编语言.
C学习更多关于低级工作的实用知识,因为几乎所有语言都是用C语言实现的.
面向对象编程的C++基于C的低级优点.
Pascal学习如何使用强类型.
Java,看看你如何能够保护自己免受低级别的关注.
Perl学习正则表达式,弱/动态类型和其他好东西.
Python看到强/动态/鸭子打字.
Ruby可以看到面向对象如何在Perl-esque弱/动态类型之上工作.
这个功能性启示的Common Lisp.
方案的重点放在递归.
Emacs Lisp所以你可以扩展Emacs.
Haskell看到纯正的函数式编程正确完成.
APL让你学习如何不编写代码.
COBOL所以你可以疯狂地维护遗留代码.
Erlang真正了解并发性.(感谢Pete Kirkham纠正我.)
Scala用于JVM上的函数编程.
Clojure是JVM上类似Lisp的函数式语言.
Prolog了解逻辑编程.
D所以你可以看到为什么所有D狂热分子总是如此亲D.
C#所以你可以为.NET(和Mono)编程.
F#所以你可以在.NET上进行函数式编程.
第四为基于堆栈的语言.
PHP,这样你就可以看到如何不创建一种语言.(开个玩笑.学习PHP,因为它对Web开发非常有用.)
JavaScript因为它基本上是客户端Web脚本的语言.
bash是一种优秀的通用脚本语言.
Visual Basic所以你可以阅读老板写的代码.=)
INTERCAL为"有趣".
brainfuck所以你可以折磨你的朋友.
LOLCODE让你可以说服他们在你受到脑力劳动之后仍然是你的朋友.
...等等.
C用于理解如何实现大多数其他语言(实现)和操作系统
我认为最能将编程概念的实用性和覆盖范围结合起来的三种语言将是
C
蟒蛇
使用Javascript
从这些语言中,您可以学习低级系统编程,指针和内存管理,静态类型,动态类型,高级脚本,事件驱动编程,面向对象编程,函数式编程.
显然你不会像Haskell那样获得函数式编程的简单介绍,但是你可以在Python和(特别是)Javascript中学到很多概念.
它不是语言而是您应该知道的范例:
程序性的(如C,Pascal)
面向对象的(如Java,C++,Smalltalk)
功能性(如Lisp,ML,Scala)
如果您在一种语言中理解这些范例之一,则可以轻松地在同一范例中学习另一种语言.还有更多领域需要特别支持的语言才能理解:
并行性(在Erlang或Scala中)
声明性模板(例如在C++或Prolog中)
动态语言(例如JavaScript)
最后你应该总是知道引擎盖下发生了什么,所以你最好看看汇编程序.