我是一名已经编程了几年的新手.有许多编程语言用于不同的目的.在陈述理由的同时,为了在当今的环境中保持竞争力,学习哪些语言是很好的.
我会尽我所能正确地标记这个问题,因为这不是直接的编程问题.
注意:阅读一些评论后.这不是什么是最好的编程语言问题.C++可能比javascript更强大,但它有更高的需求?
目前尚不清楚"这种环境"是什么意思,或者你们的竞争意味着什么.知道当前流行的语言集合(例如,可能包括C#,Java,PHP和Ruby)从不会受到伤害.
如果你想在任何环境中找到一份好工作并具有竞争力,那么这就是我在潜在雇佣中所寻求的:
他们了解C,特别是成本模型吗?当程序执行时,他们真的知道寄存器和内存会发生什么吗?如果一个人声称C++而不是C作为理解程序如何在机器级工作的基础,他们能解释模板,虚拟成员函数等发生了什么吗?
他们可以递归地解决问题吗?他们可以在不使用可变数据结构的情况下解决问 他们可以通过编写纯函数来解决问题吗?好的指标是在Haskell,ML,Caml或F#等语言中取得成功.Scheme,Lisp和Clojure也是可以接受的.
他们可以使用类型来帮助理解和创建程序吗?好的指标是在Haskell,ML,Caml或F#等语言中取得成功.
他们是否理解使用函数或对象的高阶编程?
他们可以使用别人设计的类库吗?好的指标包括Smalltalk,Ruby,Modula-3,Java或C#.
他们真的可以设计自己的类层次结构吗?这需要深入理解Small中使用Smalltalk,Ruby,Modula-3,Java中的编程方法.
他们可以结合简单的Unix命令有效地将脚本,使用一种语言一样sh
,ksh
,bash
,AWK,Lua中或Python?
他们能否使用Lua,Icon,awk,Python或Ruby等语言快速编写好的字符串处理程序.(我不是Perl的粉丝,因为它似乎不会在其用户中促进清晰的思考.)
因此,要成为我的团队的一个强有力的雇员,你必须很好地了解四种语言:C,一种功能语言,一种面向对象的语言和一种脚本语言(偏向字符串处理可接受). 你选择哪种语言部分是品味问题.我的口味是向那些语言的一个事情做好,因为他们(不混合动力车比如Scala或C++),迫使你学习一种新的思维方式.我建议:
C
Haskell或标准ML
Smalltalk(或者可能是Ruby,如果你从头脑中删除了Perlish的起源)
LUA
所有四个人都采取明确的做事方式,四个人中有三人是权力比重的领导者:做得很好的小语言.对于第四个,遗憾的是没有简单的函数式语言也会教你用类型编程.
请记住,这些特定的语言是个人品味的问题; 很多替换都没问题.重要的是你学习通过计算机解决问题的有效方法 ; 语言是实现这一目标的工具,而不是目的本身.
英语和至少一个你的选择.