Ⅰ 如何成为一名合格的程序员
如何成为一名合格的程序员?一般来说,合格程序员要具备多方面的知识素养与能力,下面由北大青鸟云南计算机学院http://www.kmbdqn.cn/老师为你分析一下。
程序员分类与素质要求:
程序员一般分为网络程序员、游戏程序员、数据库程序员等。网络程序员主要以开发动态页面为主,例如电子商务网站的购物程序、论坛和BBS等。游戏程序员作为新军,目前在IT市场上非常红火。一般游戏程序员可以分为图形程序员、声音程序员、人工智能或游戏关卡程序员、物理程序员。而数据库程序员的工作很大一部分就是管理数据,这其中有一门专业的技术叫做数据挖掘,有许多公司都相当重视数据挖掘并且从中获得了经济效益。
1.创新能力
做程序员千万不要小看创新能力,本身计算机就是一个发挥创意的好地方。举个例子,ICQ这个知名聊天软件是由以色列Mirablis公司开发的。1998年6月,AOL以2.87亿美元买下了Mirablis以及该公司所有的ICQ互联网聊天技术。由此可见,将创意应用到工程项目中,其中所含的经济价值将不容小视。
2、团队合作精神
在软件公司,团队精神是非常重要的。在软件开发过程中,往往都采取项目运作方式。任何个人的力量都是有限的,在大型商业软件的开发工作中,一个成功的软件来源于团队的精诚合作。团队精神正是程序员应该具备的最基本的素养。
如何成为一名合格的程序员?参加职业培训也是一个不错的学习途径,例如北大青鸟ACCP软件工程师培训,是不错的课程。如果你时间不多,可以考虑一下通过网校进行学习,学习成本比较低廉,适合在职人士学习。
Ⅱ 如何成长为一个真正合格的程序员
优秀程序员都是很努力的
一个真正合格的程序员,除了要有扎实的理论基础和代码能力,还要有诸多的综合素质。除非你只是一个纯粹的码农,除非你只是想做一点平淡的代码工作,否则如果你想有更好的发展,那就必须“学习”。从我自己的发展经历来讲,其实我只是一个半路出家的程序员,我没上过高中,只是师范毕业,学的还不是计算机,而是美术专业,从参加工作那天起开始自学计算机,花了半年学会了VB程序设计,写了第一个vb程序,一个校园的自动播音系统,实现了校园铃声、升旗、课间操等定时音乐的自动播放,免费提供给学校使用,给学校带来极大方便,从此我爱上了编程。后来为了宣传单位的形象开始自学ASP脚本语言,一个月时间写出了第一个ASP网站,在这个过程中学习了网页前端布局,知道了前端可以有JS控制,知道了域名是什么,知道了http协议,知道了WEB服务的发布。从那时起,我觉得网站建设就是一个商机,从此开启了我的网站建设之路。其实也就是程序员发展之路,至此,我在这条路上一发不可收拾。
在这期间我开始接一些网站建设的活儿,一开始,在网上搜索一些开源的代码进行修改,满足客户需求,但是很快发现一些问题,大多数代码都是预先挂了一些广告在里面,如果对程序不熟悉,等你网站发布出来,你就只能看到满山的网站,客户当然就不满意了,最后你还不知道这些广告从哪里冒出来的,甚至有些网站留了很多漏洞和后门,让你防不胜防。所以,想想还是自己写一套CMS系统,我只自己使用,只放在自己的服务器上,这样的话安全性高了很多,至少被攻击的几率少了多,也不担心莫名其妙冒出来的广告。于是,我开发了第一套产品,属于我自己的CMS,期间我可以说学到了更多的知识,累积了不少的产品开发经验。所以这里我总结一条,要成为一个合格程序员,最好完整的做一个项目吧。哪怕是项目的前端不懂,数据库不懂,逼迫自己去学习,去了解,最终产品虽然不够完善,至少你了解一个项目需要什么,和什么技术有关联,这样对你自己所擅长的东西就很有帮助。
不断学习,与时俱进。我喜欢一句话叫万变不离其宗。虽然程序语言有很多,但是基本原理还是相通的。我做了第一个ASP的CMS以后,很快发现ASP的程序网站已经不能适应项目开发的需求,需要更加高效的脚本语言来实现更多的功能。这个时候php就成了我首先研究的语言,因为我发现很多第三方开放的APi提供的都是PHP的,这让我们使用更多其他第三方功能的时候开发会更加方便快捷,所以我花了一个周,学习了基本语法和函数,我发现从ASP迁移到PHP其实是很简单的事情,只是语法不同,程序结构也是一样的,条件格式、逻辑判断、条件分支、循环处理也都差不多。经过学习很快掌握了这个语言,开始了项目开发之路。可见不断的学习,也就是自我成长的一个重要的过程。
良好的思维能力,这是一个程序员必须具备的技能。思维能力就是一个能够让代码在你头脑中执行一遍的能力,也就是说你在写代码的时候你的脑海里就能呈现出代码运行以后的结果,呈现给用户的界面,把抽象的逻辑代码转成具体形象的能力。良好的思维还体现在,一个程序的处理其实都离不开计算机运行的本质,那就是数据输入(数据从哪里来),到数据处理(获取的数据需要怎么加工处理或者转换为另一种形式),最后到数据输出(给用户呈现一个结果,图像的、文字的、视频的、声音的或者是多媒体的)。程序整体是这个理念,分解到很多细小的模块也是这样,所以只要有这些核心理念,你的思维能力就不会有问题。
通过我的学习和发展,我总结了,要让自己成长为合格程序员,离不开学习,离不开项目实践,离不开思维的创新,更离不开努力勤奋和汗水,愿有志青年都想有所成,学有所收,成就自我!
Ⅲ 程序员的基本要求是啥
程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类.
岗位职责
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
职业要求
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
Ⅳ 成为一名优秀的程序员需要什么品质
么是优秀的程序员?
自从我工作以来,一直不是很明确什么是一个优秀的程序员?是及时完成任务?是提交高质量的代码?还是谁写的代码多、修改的Bug多?
对于程序员的考核也是一个业界的难题。这篇Blog关注的是程序员自己感觉是否是优秀的。呵呵,有点中国传统文化中的“内圣外王”的味道。
让程序员知道自己应该做什么事或者是一个指导性的原则,对于降低沟通成本、成长程序员以及开发高质量的产品都有重大意义。
优秀程序员的标准:
1. 准确地评估你的工作。(估算你的工作量,管理用户的期望值)
2. 第一时间提交有质量的工作。
3. 建立快速的反馈循环。
4. 确保代码在离开你的时候比来之前更健康。(比如:重构)
让大脑处于敏捷状态的一个重要特点就是:您始终会尝试利用现有的时间和资源来达到最佳的效果。
Ⅳ 一个初级程序员应该具备哪些素质
作一个真正合格的程序员,应该具有的素质。
1:团队精神和协作能力
团队精神和写作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
2:文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
5:模块化思维能力
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员、项目经理。
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质:
1、 需求分析能力
2、 整体框架能力
3、 流程处理能力
4、 模块分解能力
5、 整体项目评估能力
6、 团队组织管理能力
Ⅵ 做一名优秀的程序员需要什么条件
(1).要喜欢上写程序,如果没有喜欢上,那就要学会去培养。程序员需要整天趴在电脑前,经常没日没夜的,非常辛苦,而且工作来不得半点虚假,少写一个标点符号都不行。喜欢的人,日子过得非常开心,每写一行代码,都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起。不喜欢的人,坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改bug生气。个人深有体会!这个“喜欢”就要大家在学习的过程中去体会。
(1).程序员应该是有感情的,程序员的程序最终是由用户来评价的,而不是老师,或者我们的BOSS。设计程序时,要讲究贴心,境界:我们也是Composer!
(2).程序员应该讲究团队协作,分配给团队的大项目,不是一人之力能够应付的,请尊重别人的代码,以及设计,彼此需要全心全力配合
(3).有坚韧不拔的精神,我们编的不是程,是寂寞。爱上程序设计,靠编程潜移默化性格,大多数成功的程序员都是相信自己的人,所以,多多鼓励自己一定是最好的。
一、优秀程序员的标准
1. 能够准确地评估你的工作。
2. 第一时间提交有质量的工作成果。
3. 建立快速的反馈循环。
4. 确保代码的准确性与后续跟进的协调性。
二、态度生活方面
1.踏实的工作态度;认真负责,少犯错误。
2.充满热情,努力工作;有团队合作精神,能善于和别人相处。
3.有预见性,预先感测未知因素预估风险或后果。
Ⅶ 作为一名优秀的程序员,要具备哪些基本功
程序员(英文Programmer)是从事程序开发、维护的专业人员。
作一个真正合格的程序员,需要具备:
1:团队精神和协作能力
团队精神和协作能力是作为一个程序员应具备的最基本的素质。
2:文档习惯
文档是一个软件系统的生命力。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
4:需求理解能力
程序员要能正确理解任务单中描述的需求。
5:模块化思维能力
作为一个优秀的程序员,其思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
6:测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
7:学习和总结的能力
程序员是很容易被淘汰的职业,所以要善于学习总结。
Ⅷ 一个程序员要具备的基本素质是什么
团队精神和协作能力 :
把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。
文档习惯:
作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
规范化,标准化的代码编写习惯:
作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
需求理解能力:
作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。
复用性,模块化思维能力:
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。
测试习惯:
软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
学习和总结的能力:
善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。
Ⅸ 要成为一名计算机编程员需要什么条件
【怎么样】随着计算机对于社会各个领域的不断渗透,客户对于一些专门的应用软件需求量大增,所以对于程序员的需求也在不断增加,虽然现在中国的程序员数量已经相当可观,但是还是处于求大于供的状态,尤其对于一些技术熟练、有很好的编程习惯的优秀程序员,市场需求量还是很大的。而且程序员的发展空间很大,可以经过努力升级为软件设计师、系统分析员、项目经理等。不过程序员有事工作相对繁琐,有时需要经常加班,技术更新快,所以压力也很大。
【谁能做】①
大专以上计算机相关专业学历,至少熟练掌握两到三种开发工具的使用,同时对于数据库和操作系统有很深入的了解,有一定的英语水平,有相关的数据结构等方面的知识;
②
通过初级或者高级程序员考试或者拿到一些国际、国内认证的证书,有一年以上相关经验;
③
软件结构设计/分析能力,出色的编程能力,掌握了几种软件的开发技巧,同时需要有严格的软件工程思想;
④
较强的逻辑思维能力,团队精神和协作能力,强烈的好奇心和学习精神,具有永攀高峰的精神。