程序员须要具有的基本技能

软件开发是一个跨度很大的技术工做,在语言方面,有C,C++,Java,Ruby等等等等,在环境方面,又分嵌入式,桌面系统,企业级,WEB,基础系统,或是科学研究。可是,不论是什么的状况,老是有一些通用的基本职业技能。程序员

这些最基本的职业技能一般决定了一个程序员的级别,可否用好这些技能,直接关系到了程序员的职业生涯。不少程序新手也是由于缺乏、达不到或是不熟悉在这些基本技能,因此,他们须要有老手带,须要努力补齐这些技能。而高级程序员应该很是熟悉这些基本技能,并且有能力胜任并带领其余经验不足的程序员。面试

下面这些基本职业技术能够用来作为对一个程序员的评估,很明显,下面的这些技能均可以用来作面试。虽然,还有不少非技术的因素,但对于评估一个程序员的技术能力来讲,其应该是足够的了。编程

下面是程序员所应该具有的基本职业技能:架构

基本技能 技能描述
阅读代码 这个技能须要程序员可以具有读懂已经存在的代码的能力,这样的能力可让程序员分析程序的行为,了解程序,这样才能和开发团队一块儿工做,继承维护或是改进现有的程序。
编写程序 编写程序并不包括程序设计。不要觉得编程是一件很简单的事情,不少程序员都认为编程只须要懂得程序语言的语法,并把设计实现就能够了。可是这离编写程序还远远不够,使用什么样的编码风格成为编写程序员最须要具有的基本技能。可否使用很是良好的编程风格直接决写了程序员的级别。
软件设计 这一能力直接决定了须要吏用什么样的代码技术达到怎么样的功能,而系统架构设计直接决定了软件的质量、性能和可维护性。并非全部的程序在这一方面都很是优秀,但每一个程序员都须要或多或少的明白和掌握这一基本技能。
熟悉软件工程 每一个程序员都应该明白软件工程是什么东西,都应该知道,需求分析,设计,编码,测试,Release和维护这几个阶段。固然,几乎全部的人都知道这些东西,但并非每一个人都很清楚这些东西。如今不少高级程序员都会混淆“需求规格说明书FS”和“概要设计HLD”。另外,程序员还须要知道一些软件开发的方法论,好比:敏捷开发或瀑布模型。
使用程序库或框架 一个程序员须要学会使用已有的代码,不管是标论的程序库,或是第三方的,仍是本身公司内部的,都须要学会作。好比:C++中,须要学会使用STL,MFC,ATL,BOOST,ACE,CPPUNIT等等。使用这些东西,可让你的工做事半功倍。
程序调试 程序调试是分析BUG和解决问题最直接的能力。没有人可以保证程序写出来不用调试就能够运行正常,也没有人能够保证程序永远不会出BUG。因此,熟练使用调试器是一个程序员须要具有的基本技能。
使用IDE 学会使用IDE工具也会让你的工做事半功倍。好比,VC++,Emacs,Eclipse等等,并要知道这些IDE的长处和短处。
使用版本控制 必定要学会使用版本控制工具,什么叫mainline/trunk,什么叫tag,什么叫branch,怎么作patch,怎么merge代码,怎么reverse,怎么利用版本控制工具维护不一样版本的软件。这是程序员须要明的的软件配置管理中最重要的一块。
单元测试 单元测试是每一个程序都须要作的。不少单元测试也是须要编码的。必定要学会在xUnit框架下进行单元测试。好比JUnit, NUnit, CppUnit等等。
重构代码 每一个程序员都须要有最基本的能力去重构目前已有的代码,使代码达到最优但却不能影响任何的已有的功能。有一本书叫《软件的重构》,每一个程序员都应该读一下。
自动化编译 程序员须要使用一个脚本,其能自动化编程全部的工程和代码,这样,整个开发团队能够不停地集成代码,自动化测试,自动化部署,以及使用一些工具进行静态代码分析或是自动化测试。

固然,还有不少的基本技术也是很是重要的,好比,与人的沟通能力,语言的表达能力,写做能力,团队协做能力,适应变化的能力,时间管理能力,多任务处理能力,自我学习能力,故障处理能力,等等,等等,这里只是列举了和技术相关的能力,这些是程序最最最基本的能力,只要是程序员就必须要有的能力。框架

相关文章
相关标签/搜索