`

好的程序员应该掌握的几门编程语言

阅读更多

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     

  19. LISP、Haskell、Erlang

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

 

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

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

分享到:
评论

相关推荐

    程序员应该掌握和了解的

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

    编程语言快速记忆手册

    掌握编程语言英语单词,是学习好编程语言的基础,一个不懂编程语言英语单词的程序员,很难把编程语言学好。 编程就是:编程英语单词和算法的关系:编程英语单词是算法的基础; 是编程提高的关键。如果编程语言里面...

    程序员如何掌握计算机英语(PDF格式)

    干程序员是一项很辛苦的工作要成为一个高水平的程序员尤为艰难这是因为计算机软件技术更新的速度越来越快而这些技术大多来源于英语国家我们在引进这些技术时往往受到语言障碍的制约严重影响到对新技术的理解和消化...

    C语言高级程序员编程指南

    本书是广大程序员和编程自学者学习和掌握C/C++/C#编程的优秀指南。 第一章 C语言入门 第二章 宏与常量 第三章 字符串 第四章 函数 第五章 键盘操作 第六章 数学 第七章 文件、目录和磁盘 第八章 ...

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

    C++是一种面向对象的编程语言,因此要学好C++编程语言,必须掌握类与对象的理论知识。比如,要掌握类的定义、对象的创建、成员变量与成员函数等概念。 4. 熟悉运算符重载以及多态。C++支持运算符重载和多态特性,...

    七周七语言:理解多种编程范型.pdf

    从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。 Bruce...

    Python编程无师自通-专业程序员的养成.zip

    Python编程无师自通-专业程序员的养成 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一。...本书不仅教读者如何使用Python语言编程,还会介绍其他书中所忽略的、编程初学者应该了解并掌握的其他所有知识点。

    C++与Java混合编程

    现在的程序员,不再像以前一样,掌握一种编程语言就可以混得有模有样了,现实的情况是,真实的项目中,通常是涉及多种编程语言,举几个简单的例子,一个软件为了快速开发,可能是使用Delphi或VB作为界面开发首选语言...

    汇编语言编程:掌握这些命令,让你的计算机跳起广场舞!.zip

    通过掌握这些汇编语言常用命令,应聘者不仅能够在面试中展示出扎实的编程功底,还能在日常工作中更加高效地进行程序开发和数据处理。这些命令涵盖了内存操作、数据传输、逻辑运算、中断处理、子程序调用、位操作等多...

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

    机器⼈编程语⾔python-10⼤热门机器⼈编程语⾔,你掌握了 哪种? 原标题:10⼤热门机器⼈编程语⾔,你掌握了哪种? 哪种编程语⾔最适合进⾏⼈⼯智能机器⼈研发?可能⼀百个攻城狮会有⼀百个答案?因为每种语⾔对机器...

    《Go语言程序设计 (新锐编程语言集萃)》萨默菲尔德(作者)mobi

    书中从如何获取和安装Go语言环境,以及如何建立和运行Go程序开始,逐步介绍了Go语言的语法、特性以及一些标准库,内置数据类型、语句和控制结构,然后讲解了如何在Go语言中进行面向对象编程,Go语言的并发特性,如何...

    C#语言教程:掌握.NET下的编程艺术

    C#(读作“C Sharp”)是一种功能强大的、类型安全的、面向对象的编程语言,它是由微软公司开发并作为.NET框架的一部分而推出的。C#语言结合了C++的强大功能和Java的易用性,同时增加了许多创新的特性,例如LINQ...

    编程语言学习 - Go语言精通 - 从入门到高级 - 编程技能提升

    自我学习:提供一条清晰的学习轨迹,帮助个人自学者逐步掌握Go语言。 技术提升:供在职程序员提高专业技术水平,尤其是在并发编程和系统设计方面。 项目开发:指导开发者如何在实际项目中应用Go语言,特别是在构建高...

    C++在编程语言界的地位如何?学好C++可以做些什么?.docx

    C++在编程语言界的地位如何?学好C++可以做些什么? C++是一种非常重要的编程语言,它在计算机领域得到广泛的应用。C++是C语言的一种扩展,它不仅保留了C语言的基本特性,还增加了许多新的特性,如类和模板等,使得...

    java程序员简历模板

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

    七周七语言 mobi

    内容简介: 从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随...

    七周七语言

    内容简介:, 从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的...

    YAMAHA smt贴片机离线编程培训教程课

    YAMAHA smt贴片机离线编程培训教程 教你smt贴片机编程怎么学,smt贴片机编程培训教程 很快掌握YAMAHA smt贴片机离线编程的方法和步骤

    《C、C++实践进阶之道:写给程序员看的编程书》-陈黎娟,带章节书签

    这是一本C/C++语言应用能力...内容丰富,集开发技巧、成长经验和学习资料于一体,具有很高的实用性和可读性,对于初级程序员和学习编程语言的大学生大有裨益,可以帮助其掌握C/C++语言精髓,提高自己的程序设计水平。

    Java程序员面试宝典

    《Java程序员面试宝典》主要内容简介:目前许多开发者对Java语言及其底层原理掌握不牢固,在面试过程中经常漏洞百出,无法取得好成绩。而招聘单位为了得到高素质的员工往往使出浑身解数,采用各种形式的面试考察求职...

Global site tag (gtag.js) - Google Analytics