`
xitong
  • 浏览: 6189322 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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


转载自:

http://coolshell.cn/articles/428.html

分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

    程序员面试攻略+第2版

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

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

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

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

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

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

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

    程序员简历模板.docx

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

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

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

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

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

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

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

    DirectX游戏开发终极指南

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

    好程序员分享参加Java培训能学到哪些实用技能

    很多想要学习Java的人都会面临这样的选择,是自学还是还是参加培训班。自学虽然不需要花费很多的...学习Java其实也不需要具备多强的英语基础,基本的语法、变量、执行语句背过就可以,此外,逻辑思维也可以在基础学习

    软件开发这点事儿 邵志东著

    本书给出了学习软件编程的整体框架和蓝图,详细介绍了程序员所应该具备的各种技能。  开发者的工具书。本书基本囊括了软件开发过程中所涉及的各种开发工具,从实用的角度、以“Step by Step”的方式帮助让开发人员...

    软件测试工程师应该具备哪些素质?

    现在从事程序员的人有很多,做测试工程师的人少点,工作压力不太大  测试工程师应该具备的三项基本素质[1]很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?...

    用Chat GPT快速做Excel乘法表

    最近ChatGPT大火,也颠覆了大家对人工智能的认知,它不再仅仅是小度还是天猫精灵,它是完全可以完成一些你...不是每个孩子都要成为程序员,但孩子需要具备一些基本的计算机技能,包括使用计算机、了解编程、读懂代码等

    C++游戏开发 源码

    本书系统介绍使用C++进行游戏编程的概念、方法、技巧、实例以及综合...本书是游戏编程的入门级读物,不要求具备计算机编程的基本知识。既适合作为有志于成为游戏程序员的读者的基础读物,也可用作游戏程序员的参考书。

Global site tag (gtag.js) - Google Analytics