`
bianku
  • 浏览: 70332 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

程序员需要具备的基本技能

阅读更多

软件开发是一个跨度很大的技术工作,在语言方面,有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等等。
重构代码 每个程序员都需要有最基本的能力去重构目前已有的代码,使代码达到最优但却不能影响任何的已有的功能。有一本书叫《软件的重构》,每个程序员都应该读一下。
自动化编译 程序员需要使用一个脚本,其能自动化编程所有的工程和代码,这样,整个开发团队可以不停地集成代码,自动化测试,自动化部署,以及使用一些工具进行静态代码分析或是自动化测试。

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

 

相关文章

分享到:
评论

相关推荐

    未来五年程序员应该具备的基本技能(电子书)

    未来五年程序员应该干的事,值得大家一看。

    面试感悟–一名3年工作经验的程序员应该具备的技能

    这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。  简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,...

    程序员能力矩阵教材.pdf

    程序员能力矩阵教材 程序员能力矩阵是衡量程序员能力的重要指标,它涵盖了计算机科学、...程序员能力矩阵涵盖了计算机科学、软件工程、程序设计、交流和代码组织等多个方面的知识点,要求程序员具备广泛的知识和技能。

    程序员必备简历模板(适用于所有程序员)

    技能与能力:列举了程序员所具备的技能和能力,如编程语言、操作系统、数据库等,并对每个技能和能力进行了简要描述; 项目经验:列举了程序员参与过的项目,包括项目规模、职责、所用技术和所取得的成就等; 个人...

    PHP程序员基本要求和必备技能

    昨天在图书馆看书,看到《电脑报》上的一篇文章,题目为《30岁不是程序员的终点》,(详情可参看《电脑报》2010年第19期,G14版数字职场的文章...必须具备的基础知识: 1、LAMP技术(加强):Linux+Apache+Mysql+PHP,是P

    程序员面试攻略+第2版

    在程序设计技能方面,本书介绍了作为一名程序员必须具备的一些知识并以简洁实用的方式介绍程序员的基本功。强调沟通方法是本书的亮点,本书包括如何编写一份重点突出的个人简历,如何与猎头公司和人力资源代表打交道...

    程序员面试攻略 绝对第2版 绝对中文.part1

    在程序设计技能方面,本书介绍了作为一名程序员必须具备的一些知识并以简洁实用的方式介绍程序员的基本功。强调沟通方法是本书的亮点,本书包括如何编写一份重点突出的个人简历,如何与猎头公司和人力资源代表打交道...

    程序员个人简历范文3.doc

    该简历的电脑水平部分为优秀,表明该求职者具备良好的电脑操作技能。 (五)外语水平 该简历的外语水平部分为英语,外语水平为良好,表明该求职者具备良好的英语语言能力。 (六)教育历程 该简历的教育历程部分...

    php试题用于解答程序员的疑惑

    试题是一套有,预评价一个程序员到的具备的一些基本的技能。

    人力资源-简历-程序员-模板

    人力资源—简历—程序员—模板,主要从人员基本信息、教育背景、校园经历、工作经历、个人技能及自我评价方面进行展示,内容中特别突出了与JAVA相关的信息例如:1.熟悉Spring、SpringMVC、MyBatis、Springboot等开发...

    软件开发工程师(程序员)的就业前景如何?.pdf

    随着技术的进步,编程的思维和模式、方法也会发生翻天覆地的转变,现在思路跟三五年前相比可能就会大不相同,现在做项目需要的是新的、巧的设计思想, 所以程序员必须要提高系统设计的能力,否则永远出不了头;...

    程序员简历模板.docx

    这是一个程序员的简历模板,包括基本信息、教育背景、工作经历、技能清单、个人项目和自我评价。该程序员具有Java、Spring Boot、MySQL和Git等技能,曾经参与多个重要项目的设计和开发工作,并开发了一个在线商城...

    互联网行业-程序员简历模板

    技能特长:列出你具备的技能和特长,例如语言能力、计算机技能、沟通能力、领导能力等。 证书和荣誉:列出你获得的证书和荣誉,以及相关的时间和颁发机构。 个人爱好和兴趣:展示你的个人爱好和兴趣,例如参加过的...

    程序员最新版数据结构与算法实战 走上编程大师之路必备数据结构与算法课程

    经验丰富的程序员,希望升级他们的数据结构与算法技能。 所有渴望成为编程大师的人。 课程要求: 虽然没有严格的先决条件,但我们建议学员具备以下基础知识: 基本的编程经验,不限于特定编程语言。 对计算机科学...

    HM程序员最新版数据结构与算法实战 走上编程大师之路必备数据结构与算法课程

    经验丰富的程序员,希望升级他们的数据结构与算法技能。 所有渴望成为编程大师的人。 课程要求: 虽然没有严格的先决条件,但我们建议学员具备以下基础知识: 基本的编程经验,不限于特定编程语言。 对计算机科学...

    C语言程序的理解与编译优化.pdf

    C语言程序的理解和编译优化需要程序员具备深入的理论基础和实践经验,需要了解C语言的基本语法和语义结构、编译器的工作原理和优化技术、计算机体系结构和操作系统的基本概念等。只有具备了这些知识和技能,程序员...

    teste:开发者应具备的基本技能

    被许可人必须具备技能才能成为程序员! Participe哒努沙 O / 德萨菲奥 后端的sum的sédesafioécriar或! 要求: Rotas daaplicação: [POST] / obras:一位轮换的收录人,编辑,照片和需要的自动文件。 Ao ...

    程序员求职的简历模板.docx

    ③ 技术技能与求职意向:求职者熟练掌握Java开发环境、项目构建,熟悉MVC模式下的项目开发,具备一定的框架应用经验,同时掌握多种Java开发工具。 ④ 项目经验:简历中列出了两个项目,分别是OA自动化办公系统和电子...

    DirectX游戏开发终极指南

    开发计算机游戏充满了挑战性,需要开发人员具备大量的技能,富有奉献和创新精神。本书向读者介绍了如何将自身的技能与一些基本的c++编程技能结合起来,开发出自己的游戏。本书涵盖了游戏开发过程和方方面面,书中以...

Global site tag (gtag.js) - Google Analytics