❶ 掌握多少门编程语言才能成为优秀程序员
掌握编程语言的数量跟一个程序员是否优秀是没有直接关系的。
但是,优秀的程序员通常都不只懂得一种编程语言。显然只精通一种编程语言是不够的,还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中文还要会英文,甚至还要会德文、俄文一样,其实是每一种语言都给人另一种思维方式,编程语言也一样。
对每一类语言的学习达到一定程度,熟悉:
1) 是什么? 什么类型的语言,有什么特点,适用于什么平台,设计该语言的初目的(设计思想),有什么优缺点,目前的流行情况,能在需要时想到它。
2) 做什么?该语言能干什么,不能干什么,什么情况下比较适合(不考虑人的因素),能够确定它可以不可以。
3) 语法及其特点,需要时能和它。
4) 与其它语言相比,有哪些异同,能够在选择语言时决断,深入地、辩证地认识它。
根据每个人的所有领域不同使用的主要语言也不同,工作用的语言肯定是需要“精通”的,除了工作用的语言,必须要掌握的语言有:C++(包括C)、Java或C#、SQL、Javascript,需要熟悉的:perl或python、XML,其它的可以根据兴趣或应用领域选择。
实际上,掌握了这些语言后已经从一个初级程序员变身为高级程序员,在学习过程中对设计模式、算法、操作系统、微机原理等知识的涉猎基本达到了一个初级架构师的水平,如果自己的沟通能力、创新能力、管理能力等素质够硬还可以做到CTO的职位,这也是本人推荐的程序员的成长技术路线。
编程语言其实只是个工具,什么时候用哪个工具,如何用好每个工具非常重要,这里蕴含着很多知识、技能、思想。每学习一们编程语言,学习的不是语法,而是编程语言的精髓,解决问题的思维,重在思想。
编程是一种非常类似于学习的一种艺术形式或一种运动的技能,通过用心练习,不断地从别人那里学习,才会编写的更好。不断学习,提高代码质量将有助于你成为一个更优秀的程序员。
❷ 程序员要学习哪些知识呢
如果做一个专业的程序员:
1.基础语言知识 :从底层的ASM 到结构化的C,到面向对象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一门
2.基础数学知识: 高等数学(数学分析) 线性代数 离散数学,概率.数理统计等等
3.基础计算机原理:操作系统原理,微机原理,编译原理 数据库原来等等
4.看你感兴趣的学习一个方向:图形学...windows应用程序开发...Linux程序开发,数据库方面 网络编程,等等
----------------------------------------------------------------------
如果只是想快速编软件:
敬告:这样不会成为一个真正的高手!
比如windows平台的编程:<这里仅仅是比如>
学习C语言(熟悉结构化编程)->《windows程序设计》(学习windowsAPI知识) ->可以用API进行编程了。
但是现在用纯API编程几乎绝迹。不是淘汰,因为商业用要尽快成为软件好卖,API开发会消耗程序员大量时间,但是API是基础。
或者
学习C++语言(熟悉面向对象技术)->《MFC程序设计》(学习MFC编程)->MFC开发 -> MFC应用比较广
.net技术我没有接触过。现在正流行这个,等楼下的给你介绍吧!
------------------------------------
相比较而言,用DELPHI最省事。但是你要了解Object Pascal语言,这个编程工具是以这个语言为基础的。Delphi开发也是很不错的。
-------------------------------------
以上只是一个建议,学习不可能简单,而且路子不一样,上边提到的两windows书,是微软出版社,在这个方面最权威的书。
❸ 程序员具体要学什么
如果目的是考个程序员等级证书,那么精通一门语言即可;对数据库知识要达到了解的程度,至少该语言涉及到的编程内容与数据库交互部分要明白;至于网络方面的知识要看该语言与网络之间的关系如何;例如作C/S结构的编程对网络知识稍有了解即可;但若做B/S结构的编程那么对网络的知识了解要多些。
要成为一个程序员,不再于你掌握的编程语言越多越好;而在于你对于所掌握的语言了解的越精越好,哪怕你只透彻地明白一门语言即可。
❹ 好的程序员应该熟悉的几门编程语言
如果想成为一个好的程序员,甚至架构师、技术总监等,显然只精通一种编程语言是不够的,还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中文还要会英文,甚至还要会德文、俄文一样,其实是每 ...如果想成为一个好的程序员,甚至架构师、技术总监等,显然只精通一种编程语言是不够的,还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中文还要会英文,甚至还要会德文、俄文一样,其实是每一种语言都给人另一种思维方式,编程语言也一样。
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)、DelphiWindows上的快速开发语言,特别是对于界面比较多的应用,开发速度很快。其实C++ Builder也把扩展了一下C++也可用于快速开发,但自从有了C#以后,抢占了很大一部分RAD的市场,用的人也少了。
5.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系列(包括移动应用)。
6.Javascript、ActionScriptWEB开发前端脚本,特别是AJAX被作为一个专有名词提出来之后前台脚本已经不单单是进行一些简单的辅助,而成了WEB UI的主要实现形式,并且产生了很多流行的框架项目,如ExtJS、JQuery、Dojo等。这些语言与前面几种编程语言不同之处还在于其弱类型特性,属于动态语言,设计思想与前面几种有些不同,虽然都支持面向对象但其实现方式稍有不同。学习它们会拓宽思路,帮助我们更深刻地理解编程语言。
7.shell、VB Script、Python、Perl、Ruby、PHP、TCL脚本语言,特别是shell、VS Script属于轻量级的脚本语言,一般只用于批处理(虽然它们可以完成非常复杂的功能),尤其是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执行的指令那样的程序,而是对执行机构进行改造、重组的方案。