http://blog.csdn.net/ljy1988123/article/details/7782700本文涉及到的编程语言:C、C++、Java、C#、Prolog、VB、Scala、Clojure、Haskell、Ada、Python、Ruby、Pascal(Delphi)、Fortran、Lisp、matlab、Perl、Erlang、Boo、Tcl、Bash、C shell、Objective-C、PHP、PL-SQL、Transact-SQL、ASP、JSP、Lua、smalltalk、R、Djavascript
涉及到的工具:sed、awk、grepphp
咱们如今学一门语言,大部分是要用到了才学(基本上是中国的公司用什么咱们学什么),基于兴趣的很少。前端
好比,大头确定是C++和java,由于这个最容易混饭吃。最近多玩用了Erlang,还有很多公司跟风上了Erlang,让这个沉默了很久的语言突然被明星了。java
大公司通常除了C++外,都会招Java,事实上,互联网公司,Java占了半壁江山(固然,没选java架构的除外,有很多.net族的)。因此,生活在贫困线上的广大中国程序猿不多有人会去看看诸如scala之类的玩意。不过做为胶水,python、perl仍是有必定的用户量的。python
彷佛,咱们生活中只有这么几种语言。。。linux
貌似,遇到一个问题,咱们该选择什么语言呢?虽然每一个语言本质上都是图灵完备的,可是能用prolog写出来的东西,若是用别的语言写,会无比痛苦。这就是不一样语言存在的缘由:不一样的问题,不一样思考方式(编程范式)。程序员
例如,汉诺塔、地图着色、数独问题、八皇后问题等这种考验智商,而且须要从已知规则中发现模式的问题。拥有一大堆已知案例的应用(例如大部分的人工智能状况)正则表达式
这也是大部分软件公司遇到的状况。通常有几种没办法分出高下的解决方案:C++,Java,C#,VB。固然,这里面能够有CLR和JVM的不一样衍生。例如,理论上,你也能够用scala来代替(不过估计大型公司不会冒这个险)。仍是在理论上,你也能够用函数式编程的Clojure和Haskell来作(估计没人会那么傻)。仍是在理论上,也能够用Ada这种强悍的通用语言,但估计没人愿意接收比C++还复杂的编程语言。理论上(基本只能在理论上),不嫌弃的话smalltalk也行。仍是在理论上,python、ruby等配合必定的图形界面库也能够胜任(但项目大到必定的程度是,你会欲哭无泪)。sql
可是,我另起一行。有个语言:D语言。我我的不认为不能够列入首选名单。可是貌似知名度不行啊。。。。企业支持少啊。。。。。确实是门优秀的语言。C++太尾大不掉,须要一种语言,让C++成为纯粹的C++。shell
稍小一点规模的,没法接受面向对象的程序员,有很多用C的。虽然OOP程序员看他们像是不开化的人,可是他们有他们的哲学(我从嵌入式开发过来,至关长时间内也摆脱不了C,总本能的排斥OOP)
曾经不少人用Pascal(包括扩展的Delphi),曾经不少人用Fortran,可是都明显在退步。大型通用语言(C++、Java、C#)代表了他们在各类环境的适应能力。lisp系列也在一些问题上展示出古老的魅力。(但这个语言远没有《黑客与画家》的做者给咱们描述的那样神奇,我的认为。不过个人C++风格思想占了主导,可能没办法公正的评价lisp,可是据个人使用lisp经验,在大部分状况下,我最后仍是放弃了它。由于大部分状况下我总能找到用C++(或其余OOP语言)更好的缘由)
另外,读研的通常都用过matlab。这个工具,两个字:强大!不过仅指科学计算方面。脱离了这个方面,就得考虑合不合适了,毕竟固定的矩阵思惟不是啥状况都有效的。我用matlab最多的是神经网络,图片和信号处理。绝不夸张的说,matlab活脱脱一个photoshop啊。。。(固然,你得会用。。。)不过matlab的神经网络确实不行,作的太差了,小规模的网络能够,3层不用BP的F网,几十个就挂掉了。有这个需求的用ANN吧。(仍是C++,偷笑)
首选利器是Perl,不过若是你习惯了sed、awk、grep,也能很方便的完成相同的功能,但perl是吸取三家所长作的。
其次是C++,别拍我。诸位用过regex吗?就是boost里的那个,最近被并入C++11啦。有了正则表达式的C++,处理字符,无敌了不少哇。固然,Java程序员别拍我,我知道这种库一个大型的通用语言都会有。我提C++,通常顺带着不否认Java和C#能以类似的代价完成相同的功能。
首选是python。俩字:精简(呀,这么说一个强大的语言有点过轻浮了,但比起ruby,确实简单呐。。。)(另外Boo在.net是能够用来取代python)
其次是ruby。俩字:复杂
毕竟,没有rails,ruby根本火不起来。事实证实,python的哲学很对。固然两种语言有不少细节的不一样,甚至在编程范式上不一样(真想不明白白ruby支持多种范式怎么多是个优势?市场证实了python的纯粹)
这个确定是C了。操做系统,驱动,底层软件,大部分都是C写的,调用API,若是不用微软的Activex之类的技术,仍是得老老实实用C API的。