怎样成为高级程序员(怎么能成为程序员)

http://www.itjxue.com  2023-02-02 00:12  来源:未知  点击次数: 

如何成为高级程序员?

1.随便提一个问题,你能够写程序解决。那是程序员。

2.你写的程序,效率和风格到达一定境界,那是高级程序员。

3.你整天不写程序,然后想出一个美好的框架让别人写,那是比尔·盖茨。

如何成为一个C++高级程序员

不可否认,它的学习难度都比其它语言较高。而它的学习难度,主要来自于它的复杂性。现在C++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替C++。但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏、高效的服务器。现在学习java、C#等语言的人数远远高于C++,主要是C++的入门门槛太高,可能学习了一段时间后还做不了什么东西,导致信心大受打击,进而放弃。我想把我自己的经验分享给大家,希望帮助新人少走些弯路。在此我们不讨论具体的技术细节,只说我们应该学习什么东西。一、技术能力1.语言我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习,而学习语言最关键的莫过于选好一本书,学校的教材就算了,根本没有写得好的。在此隆重推荐《C++ Primer》,这本书很厚,内容也很丰富,对知识的讲解不仅仅停留在表面。如果这本书能有耐心看完,语言方面基本就没有什么大问题了,对以后的学习也打下了一个很好的基础。(编注:这本书的第四版还配有解答:《C++ Primer习题解答》。)2.GUIC++方面的GUI库有很多种,比如MFC、WTL、wxWidgets、QT。这些GUI库都各有自己的特点,其实我们只要先了解一种就可以了,只要深入了解了一种GUI库,需要的时候再学习其他的就够了,本质上都差不多,很快就可以上手了。MFC虽然设计上有很多问题,但是作为入门还是不错的,而且学习资料很多,碰到问题也好解决。3.数据结构和算法很多人都忽视了数据结构和算法方面的知识,尤其是一些编程语言的库做得非常好,几乎不需要自己去实现一些数据结构和算法,导致现在很多程序员不重视甚至忽略这方面的知识。但是,当我们想让我们的程序跑的更快、内存占用更少的时候,这些知识就非常非常重要了。很多程序员都是刚开始的时候不重视这些,但是工作几年后又来补习这些知识。最开始可能不需要学习的太深入,但是基本的数据结构和算法一定要知道。推荐《数据结构(C语言版)》,在数据结构和算法的学习中,最好不要去关心面向对象方面的技巧,就用C语言来实现,这样能更关注于算法本身的内容。4.数据库学习数据库的基础知识,并且掌握一种数据库使用,推荐使用mysql,而且最好不要用一些封装好的接口,而应该直接用mysql提供的数据库api,可能对数据库了解的会更深入。5.并行cpu主频已经不能遵循摩尔定律了,现在cpu发展的趋势是多核心。无论是多线程,还是多进程,都是为了更好的利用cpu的性能,提供更好的用户体验。这就要求我们如果要写出高效的应用程序,必然要涉及到并行计算。多花些精力在并行计算上吧,一定会有丰富的回报。6.网络编程这里所指的网络编程是指socket编程。现在C++的应用很多都是在做服务器开发,如何开发一个高并发、大吞吐量、高稳定性的服务器就是我们要考虑的了。7.设计模式设计模式不是具体的技术,更多的是如何让代码更容易阅读、更好扩展、更容易使用。8.库的使用C++标准库仅仅提供了一些很基本的功能,所以我们经常会引入一些第三方库。最著名的恐怕就是被称为准标准库的boost库,它提供了我们编程中用到的各方面的技术,文本处理、算法、网络、多线程、图像处理等等,几乎无所不包。其它也有一些专著于某一方面的库,比如ACE是网络通信方面的,TinyXML是解析xml的,OGRE是图形渲染方面的。9.操作系统的知识程序员需要了解的操作系统知识和普通用户是不一样的,一个高手是需要深入了解操作系统的方方面面,而不是停留在使用层面。至于应该了解哪些知识,windows上的去看《windows核心编程》,linux的去看《深入理解linux内核》,应该可以知道自己应该学什么了。二、项目经验以上的内容如果都精通了,也算是个比较厉害的程序员了。但是对程序员来说,项目经验更加重要。一个好的项目可以让你把各种技术进行综合运用,并且能学到一些新的知识。比如说做游戏的就需要学习图形方面的知识,做播放器的要学习编解码器方面的知识。很多程序员会忽略项目的经验,而单纯的谈技术能力,这是错误的。其实这就是理论和实践的关系,技术就是理论知识,做项目就是实践,理论对实践有知道作用,实践能加深我们对理论的深入理解。三、沟通能力沟通能力是一个高级程序员要具备的软实力。我这里想说的沟通能力并不是一般说的能说会道,夸夸其谈,说话天花乱坠。而是建立在技术基础之上的沟通能力。

大学生 怎么样才能做到高级程序员

如果你有志于软件行业发展(不仅仅是编程),我建议毕业之前你做一个自我检查:

1 具备系统的计算机学科理论基础,包括体系结构、操作系统、网络原理、数据库原理、编译原理、软件工程、算法及程序设计、多媒体等诸多基础。

2 熟悉至少一门面向对象程序设计语言(C++/Java/C#...)及一门面向过程语言(Pascal/C...),熟悉常见算法实现及一般程序控制,深刻理解面向对象思想。

3 具有较强的软件工程理念,熟悉软件开发流程,善于把握软件开发之需求,能认识到软件设计高于编程的客观性,具有较好的文档编写能力及优秀的代码风格。

4 熟悉标准SQL的使用,善于改善SQL的效能,熟悉多种平台数据库的实际应用(读书期间最多的就是SQL Server2000及MySQL)。

5 具有较好的英语、日语等基础,能正常阅读或检索外文原版资料,具有较强的专业思维概念,能有效检索信息,

6 善于交流和沟通,具备团队协作能力。

或许,这样看来,已经像一个招聘广告的要求了,不错,有时候你从报纸上的招聘广告上可以看到自己的欠缺和优点,趁还在学校的时候,加油!

怎样才能成为高级软件工程师

转一个经典回答:

程序员的七种武器

信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。

信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。

虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。

第一种武器:开发工具

至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

第二种武器:数据库

为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。

第三种武器:操作系统

当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。

第四种武器:网络协议TCP/IP

在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。

第五种武器:DCOM/CORBA/XML/WEB Services

随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。

第六种武器:软件工程与CMM

现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。

第七种武器:强烈的好奇心

什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。

北大青鸟java培训:怎样才能成为一名高级java软件工程师?

从低级java程序员专注java技术路线发展,可以成为一个令人敬仰的高级java工程师,当然java高级工程师也不是那么容易练就的,java课程介绍java程序员该朝哪些方向努力向高级java工程师发展?怎样成为一个高级java工程师?怎样成为一个高级java工程师?1、需求分析能力一个高级java工程师除了自身拥有高超的java技能之外,需求分析能力是必不可少的。

往往高级java工程师必须对客户或者对上级对市场提出的需求有很强的分析能力,才能把研发任务完美完成,使代码编程完美运行,达到甚至是超出预期的效果。

2、出色的项目实践能力一个高级java工程师往往项目经验是异常的丰富,并且也需要出色的项目实践能力才能称得上是高级java工程师,比如在项目评估上就必须全面长远考虑而不能只顾当下,这是非一朝一夕能做到的,所以在平常的项目操作中就必须不断拓展自己的眼界,并且还得掌握多种项目设计方法,能够预知项目研发的效果,抉择出最佳的方案。

3、java开发技术跟框架要熟练运用其实这个对于一个高级java工程师来说真的是算不上什么,但是对于你想要成为一个高级的java工程师而言,那么你就得都提升你相关的能力,比如熟悉Java、Servlet、JSP、EJB等开发技术,熟练使用Eclipse或jbuilder等java开发工具,最好掌握至少一种数据库的开发和设计等等。

怎样成为一个高级java工程师?以上只是简单的介绍,当一个高级java工程师还得有出众的团队管理能力等等,还有更多关于java工程师相关的讯息,欢迎你到北大青鸟官网查看,惊喜多多,收获多多。

学java,就到北大青鸟来吧。

(责任编辑:IT教学网)

更多