如果想成为一个好的程序员,甚至架构师、技术总监等,显然只精通一种编程语言是不够的,还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中文还要会英文,甚至还要会德文、俄文一样,其实是每一种语言都给人另一种思维方式,编程语言也一样。
- 汇编语言
每种架构CPU都有自己的汇编语言,如果不涉及很底层的修改,了解X86的即可,理解一下机器语言的工作方式,便于优化核心代码。
- C
几乎适用于各个领域,应该是目前用途最广泛的编程语言(开发人数不是最多,但涉及到的领域、项目数量应该是最多的,目前尚没有数据支撑这一点)。本人接触到的第一门编程语言,除了C++也是最喜欢的一本编程语言,非常美的语言,无论从其语法、编程思想、运行效率、灵活性等都有着无五伦比的优势,虽然没有直接支持面向对象的语言特性,但很多项目也将面向对象的思想应用于C语言应用的开发。C语言出生40余年仍然风糜世界,并被大量应用于各个领域、各种项目,这本身就是一个奇迹,包括后来的C++、Java、C#、Javascript 等等众多主流的编程语言都深受其影响。
学好C语言本身其实并不难,但C语言是与操作系统近距离工作的一种编程语言,由于其运行环境的复杂性导致了写好它必须先熟悉其环境,所以要求编程者对操作系统乃至硬件都要非常熟悉,所以学C语言的人感觉学好C语言很难,其实是用好C语言太难。比如指针,其实不是指针本身比较难,而是指针用不好会导致系统内存的破坏,破坏运行环境,所以会让程序员感觉指针很难。
- C++
鉴于它是C语言的超集,基本包括了C语言的所有特性(C99标准),得益于C语言的广泛应用,几乎适用于各个领域,各种操作系统平台,也是个人认为最难的一种编程语言,但一旦精通之后再稍加学习其它语言很容易,基本无敌。其难在于功能强大与灵活,学好它的难度就是:C语言的难度+C++面向对象特性+面向对象编程。C++是本人最喜欢的编程语言,其学习过程是漫长的,但一旦精通了C++,学习其它任何语言都非常快,它贯穿了从硬件到对象的整个过程,学会了很容易让人看透编程语言的所有内幕。
- Java、C#
二者都可算是比C/C++更高一级的编程语言,一般不直接编译成机器码,需要通过虚拟机或类似虚拟机的运行时来运行,可以实现跨平台。他们与C/C++的不同之处就在于他们的编译过程分为两个阶段:编译和运行时编译,其实第一次的编译并不是直接生成机器码,而是生成一种便于编译成机器码的中间代码,在实际运行的时候再通过所谓的运行时编译器(Just-In-Time Compiler)根据需要将中间代码编译成机器码并执行,实际上第一次编译更准确一点说是翻译。
Java运行之广也是无人不知无人不晓,但其缺点在于对UI的支持不太好,无论在哪个平台做的界面都不太好,特别是在Windows上,用Java实现界面的应用很少;C#是微软.Net战略的主要语言,也可以实现与Java一样广泛的应用,包括桌面应用和WEB应用,而且对UI的支持那是刚刚的。虽然C#在Linux阵营也有Mono项目,虽然该项目Novell主持,但开源项目哪能像微软一样给力,实际应用非常少,所以C#的跨平台平不理想,仅限于微软的Windows系列(包括移动应用)。
- Javascript、ActionScript
WEB开发前端脚本,特别是AJAX被作为一个专有名词提出来之后前台脚本已经不单单是进行一些简单的辅助,而成了WEB UI的主要实现形式,并且产生了很多流行的框架项目,如ExtJS、JQuery、Dojo等。这些语言与前面几种编程语言不同之处还在于其弱类型特性,属于动态语言,设计思想与前面几种有些不同,虽然都支持面向对象但其实现方式稍有不同。学习它们会拓宽思路,帮助我们更深刻地理解编程语言。
- shell、VB Script、Python、Perl、Ruby、PHP
脚本语言,特别是shell、VS Script属于轻量级的脚本语言,一般只用于批处理(虽然它们可以完成非常复杂的功能),尤其是shell(准确地说shell不是一种编程语言,由于该语言是它专属,暂以代之);特别是shell应用范围最少,而后面的四种除了可用于批处理,还可以用于WEB编程,而且Ruby用于WEB开发已经非常流行。
其中Python是本人比较喜欢的一种,它把程序的可读性要求提高了一个档次,把代码的缩进列入了语法范畴,这应该也是编程语言的趋势,以后可能将注释的添加也列入注释范围,比如对每一个类、每个函数必须填写相应的注释,否则编译不通过,这样有助于更好地统一、执行一个工程编码的规范。
- Lua、Matlab
属于小众的编程语言,Lua有一个嵌入式脚本引擎,非常轻量级;Matlab的所谓M语言与Lua类似,它是Matlab专用的脚本语言。
不同的领域都有一些专门的脚本语言,真的希望这些语言能够是一种。
- XML、HTML、XSLT、CSS
这些语言又是另一种类型的编程语言,这些语言通过标记来表示,特别是XML、HTML是一种静态的标记语言。而XSLT则可以有动态之意,属于XML的一种派生语言,可以将XML文档转换成其它格式的文本文档这使得数据的展显非常方便,XML用于表示数据,通过不同的XSLT表现为不同的样式。
严格来讲CSS不应该算作一种编程语言,但它的确通过与HTML配合可以实现类似XSLT的效果,只是它暂时未从HTML中独立而已。
- Verilog、VHDL
硬件描述语言,用于集成电路设计。它们也是编程语言,只是它编译后的产物不是类似CPU执行的指令那样的程序,而是对执行机构进行改造、重组的方案。
- LISP、Haskell、Erlang
函数式编程语言,它们将电脑运算视为数学上的函数计算,并且避免状态以及可变数据,是另一种编程范型,又是一种编程思路。
编程语言远远不止这么多,也并不是一个程序员要精通这里所说的所有编程语言,个人认为每一类都应该熟悉一种,至少了解其编程思路,并达到可以读懂的程度,而对于一些重要的编程语言,应该掌握,不仅要会读还要会写包括:C、C++、Java、C#、JavaScript等,但根据自己的工作领域不同可能的侧重不同,视实际情况选择了解其它编程语言。
《程序员修炼之道》里不也建议每年学习一门编程语言嘛,十类编程语言,十年寒窗,程序员的漫漫修炼之路。
分享到:
相关推荐
### 一个Java程序员应该掌握的10项技能详解 #### 1. 语法 作为Java程序员,必须熟悉Java语言的基本语法。在实际编程过程中,能够根据集成开发环境(IDE)提供的错误提示信息迅速识别出语法错误,并且知道如何进行...
11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。 12、面向结构的设计概念。 13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的) 14、软件工程的概念和原理。(如果你...
掌握编程语言英语单词,是学习好编程语言的基础,一个不懂编程语言英语单词的程序员,很难把编程语言学好。 编程就是:编程英语单词和算法的关系:编程英语单词是算法的基础; 是编程提高的关键。如果编程语言里面...
以上各个题目均是程序员基础能力的重要体现,涵盖了编程语言的基本语法、数据结构、算法、逻辑推理等多个方面。通过解答这些问题,程序员不仅可以巩固基础,还能锻炼解决问题的能力,提升编程思维。附带的答案更是...
词典中包含了常见的编程语言如Java、Python、C++、C#、JavaScript、Go等,对每种语言的关键特性、语法结构、编程范式进行了详尽阐述,帮助程序员掌握不同语言的编写技巧和最佳实践。 二、数据结构与算法 数据结构是...
为了提升工作效率,程序员需要快速查找和应用各种编程语言及工具的知识。因此,一套全面、系统的速查表成为了程序员的宝贵资产。程序员速查表(涵盖所有编程语言cheat).rar这一资源,作为众多编程资料的精华集成,...
西门子PLC的几种编程语言 西门子PLC的编程语言是PLC技术的核心组件之一,它们之间的异同是PLC开发者需要掌握的基本知识。西门子PLC提供了多种编程语言,满足不同的应用需求和开发人员的编程习惯。 1. 顺序功能图...
《IT学习资料》是程序员鱼皮精心打造的一套编程学习资源,旨在为初学者和有经验的开发者提供一条清晰的编程学习路径。...通过跟随鱼皮的编程宝典,学习者可以系统地掌握编程技能,逐步成长为一名熟练的开发者。
《Perl程序员应该知道的事》是一本专门为Perl程序员编写的书籍,内容以食谱形式展开,旨在帮助读者快速掌握Perl编程语言的基础知识,并能将所学知识应用于实际编程中。本书的编写方式并非采用冗长枯燥的说教,而是...
### PLC标准编程语言之一ST语言 #### 一、概述 结构化文本(Structured Text, ST)作为IEC 61131-3标准中定义的一种编程语言,为自动化控制系统提供了一种高级语言的编程方式。相较于传统的梯形图语言,ST具有更高...
### 游戏程序员编程方向知识点解析 #### 一、游戏程序员学习方向概述 ...综上所述,游戏程序员需要具备广泛而深入的技术栈,不仅要精通编程语言本身,还要不断学习新的算法和技术,以便能够应对游戏开发中的各种挑战。
汇编语言是一种面向机器的编程语言,它可以直接利用计算机硬件特性并能通过汇编指令直接控制机器硬件。因此,使用汇编语言可以编写出在时间和空间上效率最优的程序。然而,汇编语言的学习并不是一件容易的事,它需要...
这里,我们将深入探讨如何有效地学习和掌握这些编程语言。 首先,理解基础是至关重要的。C语言是许多其他语言的基础,它教会我们如何直接与计算机硬件交互,理解指针、内存管理和结构化编程概念。学习C时,应重点...
Java编程语言作为世界上最受欢迎的编程语言之一,是许多软件开发者的基础技能。对于想要在Java领域深化职业发展的程序员来说,掌握特定的关键技能至关重要。这个压缩包文件"一个Java程序员应该掌握的10项技能.rar...
《RPG编程语言中文参考》是一部详细阐述RPG Ⅳ语言特性和应用的指南,旨在帮助程序员理解和掌握这种编程语言的核心概念。 首先,我们要了解RPG中的"符号名"。符号名在RPG中扮演着变量的角色,它们可以存储数据并被...
这些变化预示着Java平台开发者的技能要求在不断提高,他们需要掌握多种编程语言,而不是仅仅依赖于单一的语言和框架。 Java语言本身并不会消失,因为有大量的API库是用Java编写的,并且全球有数以百万计的Java...
要成为优秀的程序员,不仅要掌握编程语言的语法,更要理解编程思想,这是通过不断实践、观察、分析和总结才能逐步积累的。 理解编程的基本概念,如变量、函数、条件语句和循环语句,是学习编程的基石。深入理解这些...