`

好的程序员应该熟悉的几门编程语言

阅读更多

如果想成为一个好的程序员,甚至架构师、技术总监等,显然只精通一种编程语言是不够的,还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中文还要会英文,甚至还要会德文、俄文一样,其实是每一种语言都给人另一种思维方式,编程语言也一样。

  1. 汇编语言

    每种架构CPU都有自己的汇编语言,如果不涉及很底层的修改,了解X86的即可,理解一下机器语言的工作方式,便于优化核心代码。

  2. C

    几乎适用于各个领域,应该是目前用途最广泛的编程语言(开发人数不是最多,但涉及到的领域、项目数量应该是最多的,目前尚没有数据支撑这一点)。本人接触到的第一门编程语言,除了C++也是最喜欢的一本编程语言,非常美的语言,无论从其语法、编程思想、运行效率、灵活性等都有着无五伦比的优势,虽然没有直接支持面向对象的语言特性,但很多项目也将面向对象的思想应用于C语言应用的开发。C语言出生40余年仍然风糜世界,并被大量应用于各个领域、各种项目,这本身就是一个奇迹,包括后来的C++、Java、C#、Javascript 等等众多主流的编程语言都深受其影响。

    学好C语言本身其实并不难,但C语言是与操作系统近距离工作的一种编程语言,由于其运行环境的复杂性导致了写好它必须先熟悉其环境,所以要求编程者对操作系统乃至硬件都要非常熟悉,所以学C语言的人感觉学好C语言很难,其实是用好C语言太难。比如指针,其实不是指针本身比较难,而是指针用不好会导致系统内存的破坏,破坏运行环境,所以会让程序员感觉指针很难。

  3. C++、

    鉴于它是C语言的超集,基本包括了C语言的所有特性(C99标准),得益于C语言的广泛应用,几乎适用于各个领域,各种操作系统平台,也是个人认为最难的一种编程语言,但一旦精通之后再稍加学习其它语言很容易,基本无敌。其难在于功能强大与灵活,学好它的难度就是:C语言的难度+C++面向对象特性+面向对象编程。C++是本人最喜欢的编程语言,其学习过程是漫长的,但一旦精通了C++,学习其它任何语言都非常快,它贯穿了从硬件到对象的整个过程,学会了很容易让人看透编程语言的所有内幕。

  4. Visual Basic (.Net)、Delphi

    Windows上的快速开发语言,特别是对于界面比较多的应用,开发速度很快。其实C++ Builder也把扩展了一下C++也可用于快速开发,但自从有了C#以后,抢占了很大一部分RAD的市场,用的人也少了。

  5. Java、C#

    二者都可算是比C/C++更高一级的编程语言,一般不直接编译成机器码,需要通过虚拟机或类似虚拟机的运行时来运行,可以实现跨平台。他们与C/C++的不同之处就在于他们的编译过程分为两个阶段:编译和运行时编译,其实第一次的编译并不是直接生成机器码,而是生成一种便于编译成机器码的中间代码,在实际运行的时候再通过所谓的运行时编译器(Just-In-TimeCompiler)根据需要将中间代码编译成机器码并执行,实际上第一次编译更准确一点说是翻译。

    Java运行之广也是无人不知无人不晓,但其缺点在于对UI的支持不太好,无论在哪个平台做的界面都不太好,特别是在Windows上,用Java实现界面的应用很少;C#是微软.Net战略的主要语言,也可以实现与Java一样广泛的应用,包括桌面应用和WEB应用,而且对UI的支持那是刚刚的。虽然C#在Linux阵营也有Mono项目,虽然该项目Novell主持,但开源项目哪能像微软一样给力,实际应用非常少,所以C#的跨平台平不理想,仅限于微软的Windows系列(包括移动应用)。

  6. Javascript、ActionScript

    WEB开发前端脚本,特别是AJAX被作为一个专有名词提出来之后前台脚本已经不单单是进行一些简单的辅助,而成了WEBUI的主要实现形式,并且产生了很多流行的框架项目,如ExtJS、JQuery、Dojo等。这些语言与前面几种编程语言不同之处还在于其弱类型特性,属于动态语言,设计思想与前面几种有些不同,虽然都支持面向对象但其实现方式稍有不同。学习它们会拓宽思路,帮助我们更深刻地理解编程语言。

  7. shell、VB Script、 Python、Perl、Ruby、PHP、TCL

    脚本语言,特别是shell、VSScript属于轻量级的脚本语言,一般只用于批处理(虽然它们可以完成非常复杂的功能),尤其是shell(准确地说shell不是一种编程语言,由于该语言是它专属,暂以代之);特别是shell应用范围最少,而后面的四种除了可用于批处理,还可以用于WEB编程,而且Ruby用于WEB开发已经非常流行。

    其中Python是本人比较喜欢的一种,它把程序的可读性要求提高了一个档次,把代码的缩进列入了语法范畴,这应该也是编程语言的趋势,以后可能将注释的添加也列入注释范围,比如对每一个类、每个函数必须填写相应的注释,否则编译不通过,这样有助于更好地统一、执行一个工程编码的规范。

  8. Lua、Matlab

    属于小众的编程语言,Lua有一个嵌入式脚本引擎,非常轻量级;Matlab的所谓M语言与Lua类似,它是Matlab专用的脚本语言。

    不同的领域都有一些专门的脚本语言,真的希望这些语言能够是一种。

  9. XML、HTML、XSLT、CSS

    这些语言又是另一种类型的编程语言,这些语言通过标记来表示,特别是XML、HTML是一种静态的标记语言。而XSLT则可以有动态之意,属于XML的一种派生语言,可以将XML文档转换成其它格式的文本文档这使得数据的展显非常方便,XML用于表示数据,通过不同的XSLT表现为不同的样式。

    严格来讲CSS不应该算作一种编程语言,但它的确通过与HTML配合可以实现类似XSLT的效果,只是它暂时未从HTML中独立而已。

  10. Verilog、VHDL

    硬件描述语言,用于集成电路设计。它们也是编程语言,只是它编译后的产物不是类似CPU执行的指令那样的程序,而是对执行机构进行改造、重组的方案。

     

  11. LISP、Haskell、Erlang

    函数式编程语言,它们将电脑运算视为数学上的函数计算,并且避免状态以及可变数据,是另一种编程范型,又是一种编程思路。

     

    编程语言远远不止这么多,也并不是一个程序员要精通这里所说的所有编程语言,个人认为每一类都应该熟悉一种,至少了解其编程思路,并达到可以读懂的程度,而对于一些重要的编程语言,应该掌握,不仅要会读还要会写包括:C、C++、Java、C#、JavaScript等,但根据自己的工作领域不同可能的侧重不同,视实际情况选择了解其它编程语言。

  12. SQL

    数据库必备,虽然标准是有,但不同的数据库还是有自己的一些特性,或者实现标准不完整,比如Cybase、DB2、Oracle、MySQL、SQLite、SQL Server等等,但只要掌握了标准的SQL,用其它语言的时候也只需要一个简单的手册而己。

    《程序员修炼之道》里不也建议每年学习一门编程语言嘛,十类编程语言,十年寒窗,程序员的漫漫修炼之路。

后:   

  首先,感谢各位网友的讨论,可能标题为“掌握”不太准确,已经改为“熟悉”。

   这里列的编程语言并不是每种都需要“精通”,那绝对是不可能的,而且我也还从来没有理解什么样的程度叫“精通”。根据每个人的所有领域不同使用的主要语言也不同,工作用的语言肯定是需要“精通”的,除了工作用的语言,必须要掌握的语言有:C++(包括C)、Java或C#、SQL、Javascript,需要熟悉的:perl或python、XML,其它的可以根据兴趣或应用领域选择。
  实际上,掌握了这些语言后已经从一个初级程序员变身为高级程序员,在学习过程中对设计模式、算法、操作系统、微机原理等知识的涉猎基本达到了一个初级架构师的水平,如果自己的沟通能力、创新能力、管理能力等素质够硬还可以做到CTO的职位,这也是本人推荐的程序员的成长技术路线。

  编程语言其实只是个工具,什么时候用哪个工具,如何用好每个工具非常重要,这里蕴含着很多知识、技能、思想。每学习一们编程语言,学习的不是语法,而是编程语言的精髓,解决问题的思维,重在思想。

 

分享到:
评论

相关推荐

    程序员应该掌握和了解的

    11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。 12、面向结构的设计概念。 13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的) 14、软件工程的概念和原理。(如果你...

    Microsoft.NET编程语言.rar

    本书是微软技术培训统编教材之一,对编程语言C#进行了详细的介绍。 C#是基于微软下一代操作平台 .Net的全新的面向对象的程序设计语言。它在保持了C++中熟悉的语法的同时,添加了大量的高效代码和完全面向对象特性,...

    学好C++编程语言需要注意的七大细节:用C++开发亲子小游戏代码的步骤分析.docx

    因此,要学好C++编程语言,必须熟悉运算符重载和多态的使用方法。 5. 熟练掌握函数指针。函数指针是C++编程语言中非常重要的概念,可以让我们更加高效地编写程序。因此,要学好C++编程语言,必须熟练掌握函数指针的...

    程序员面试求职必备模板

    应届生或者刚毕业的程序员在写简历的时候 切记不要写精通某某语言,如果真的学的很好,推荐写熟悉。 但是有的同学可能仅仅使用一些语言例如go或者python写了一些小东西,或者了解一些语言的语法,就直接写上 熟悉...

    java程序员简历模板

    熟练掌握Java编程语言及相关开发工具 熟悉Spring框架和Spring Boot开发 了解并使用过数据库如MySQL、Oracle等 掌握Web开发技术,如HTML/CSS、JavaScript、jQuery等 具备良好的问题分析与解决能力 熟悉版本管理工具如...

    工业机器人编程语言c语言-工业机器人编程语言和编程方式.pdf

    这些语⾔对于⼀些机器⼈专家来说是相当熟悉的,因为他们习惯 FPGAs(FieldProgrammableGateArrays)编程。FPGAs能让你开发电⼦硬件⽽⽆需实际⽣产出⼀块硅芯⽚,对于⼀些开发来说这是更快 更简易的选择。 2、Assembly ...

    Ruby程序设计语言 (涵盖Ruby 1.8和1.9)源代码

    本书详尽但并不拘泥于语言规范,既适合首次接触Ruby的资深程序员,同样也适合那些想要挑战对这门语言的理解并更深入掌握它的Ruby程序员。本书首先通过一个快速指南带您熟悉这门语言,然后彻底解释它的细节,包括: ...

    程序员考试刷题-COMP3071-2015:2015年秋季编程语言课程文件/作业。还包含我在制作编程语言方面的错误尝试

    程序员考试刷题COMP3071:编程语言简介 9月1日 自我介绍 欢迎! 让我们一起破冰船了解彼此。 回答这些问题: 你叫什么名字? 为什么计算机科学是你的专业? 告诉我们房间里没有其他人知道你的事情。 关于本课程 本...

    机器人编程语言python-10大热门机器人编程语言,你掌握了哪种?.pdf

    帕斯卡尔旨在⿎励良好的编程习惯⼩号,并介绍构造,如指针,它⼀个很好的"敲门砖",从普通版使⼀个 更复杂的语⾔。这⼏天,这两种语⾔都有点过时,有利于"⽇常使⽤"。但是,如果要进⾏⼤量的低级编码,或者想要熟悉...

    C++语言导学PDF

    《计算机科学丛书:C++语言导学》作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的...

    程序员简历模板,包括IOS,Android等

    为不同领域的程序员提供一个参考范本,帮助他们更好地展示自己的技能和经验。以下是对每个模板的简要介绍: PHP程序员简历模板: 该模板适用于PHP开发者,主要关注PHP编程语言和相关框架的使用经验。您可以在简历中...

    C#网络应用编程

    本书是一本全面介绍C#编程语言的书。书中详细介绍了各种C#网络类和方法,用大量的范例程序演示这些类和方法在程序中的运用,帮助读者在自己的实际工作中编写出更具专业水准的网络程序。作者采用对比的方法,分析了...

    Java程序员简历模版参考

    熟练掌握Java编程语言,熟悉JVM原理和Java并发编程; 熟悉Spring、SpringMVC、MyBatis等主流Java框架; ...... 自我评价 我是一名热爱技术的程序员,具有扎实的编程基础和深厚的技术积累......

    初级,中级,高级的程序员java简历

    熟悉Java编程语言,具备基本的面向对象编程能力 熟悉基本的数据结构和算法,能够解决简单的编程问题 了解常用的Java开发工具和框架,如Eclipse、Spring等 具有良好的团队合作和沟通能力 中级程序员Java简历资源描述...

    程序员实习报告.docx

    程序员实习报告汇编五篇 程序员实习报告 篇1 一、 实习目的 通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse 开发平台设计库存管理系统项目,以达到充分熟悉开发平台...

    JAVA程序员面试指南

     第二篇(第2章~第13章)介绍了Java程序员涉及的基础知识,内容包括Java语言基础、异常的处理、I/O控制流、面向对象编程、线程、集合以及数据库技术等基本知识点。  第三篇(第14章~第16章)专门介绍了Java开发...

    java程序员刷题知乎-learn-c-programming:学习编程

    它是一种功能强大的通用编程语言。 它快速、便携且可在所有平台上使用。 如果您不熟悉编程,C 是开始您的编程之旅的不错选择。 这是关于如何开始使用 C 编程语言、为什么要学习它以及如何学习它的综合指南。 C 是一...

    Visual.Basic.2008编程参考手册.pdf

    本书是世界级VB专家Rod Stephens奉献给广大程序员的编程心得与忠告,是学习Visual Basic 2008编程绝佳的参考手册。本版对上一版进行了大量的扩充,新增了有关WPF、LINQ、UAC安全、WCF等方面的内容。书中的基础部分...

    Visual Basic 2008编程参考手册

    本书是世界级VB专家Rod Stephens奉献给广大程序员的编程心得与忠告,是学习Visual Basic 2008编程绝佳的参考手册。本版对上一版进行了大量的扩充,新增了有关WPF、LINQ、UAC安全、WCF等方面的内容。书中的基础部分...

Global site tag (gtag.js) - Google Analytics