`

程序员必备的基本技能

 
阅读更多

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

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

分享到:
评论

相关推荐

    C++程序编码规范(程序员必备)

    该文档是C++编程规范是C++程序员必备的基本技能。该文档可以帮助你写出漂亮的代码。

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

    程序员必备简历模板是一份专门为程序员设计的简历模板,旨在帮助程序员在求职过程中更好地展示自己的技能和经验。该模板包括以下内容: 个人信息:包括姓名、联系方式、地址等基本信息; 工作经历:详细记录了在...

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

    大致内容是采访一位30岁的PHP高级程序员,他讲了一些关于PHP程序员必备知识,感觉很是受用,于是做了些笔记: 一名PHP程序员的基本要求: 1、精通html、CSS、JS等网站前端技术。 2、掌握PHP编程技术。 3、了解Linux...

    STL经典标准库算法的基本使用

    其内容以项目实例为基础,介绍了STL的基本使用,,STL的基本使用,内容涵盖STL历史、容器、算法、迭代子

    计算机编程成功的十项必备技能

    作为一个正在用C#和XML语言编程的技术文档工程师,我认为掌握计算机语言需要一些基本技能。毫无疑问,今天的计算机编程已经和以前大不相同,因此不管是正在学习新的编程语言来提高自己的程序员,还是正在钻研一两门...

    Java中最基本编绎错误的英语解释

    根据编对器的报错信息,我们能快速修改代码中的语法错误,这是一位程序员必备技能之一。 很多初学者编程时,苦于无法看懂编绎器的报错信息,会走不少弯路,浪费很多时间。 该文档旨在引起初学者对编绎器报错信息的...

    东软代码规范编写大全

    有关代码的规范编写,一个出色的程序员所必备的基本技能,相信能帮你成为高手!

    python编程技术讲解(1).docx

    作为一种高级编程语言,Python在科技领域、互联网和AI领域有着非常广泛的应用,已经成为程序员必备技能之一。那么,如何学习Python编程技术呢?下面将分步骤介绍: 1. 准备工作 在开始学习Python编程技术之前,我们...

    Java编程中必备的十种技能

    作为一个语言编程技术文档工程师,我个人认为掌握计算机语言需要一些基本技能。以下这几点相信能够帮你翻越Java计算机编程这座山。  1、读编程手册。无论是Java或者c++程序员常常和负责系统设计的架构师一起工作,...

    Java-Interview-Tutorial:建议star持续更新ing!!!BAT华为工程师四年磨一剑精心编排【Java高级工程师及架构师技能&面试宝典】:数据库、缓存、大数据、机器学习、设计模式、Docker、K8s、RPC、分布式微服务架构相关框架中间件原理及电商互联网下的业务实践

    全方位详细深入阐述从入门到高级Java程序员必备的知识技能。按照现有计划,主要研究如下方面知识点: Java SE重难点、包含但不限于集合、多线程、泛型、反射、I/O; Java Web重难点,包含但不限于Servlet、JSP、...

    vc++调试基础,调试技术学习

    调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。 这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。 ...

    cc++程序员面试宝典-switch语句

    switch**C/C++程序员面试宝典-Switch语句:零基础面试者的必备指南** **内容概要:** 本文为零基础的面试者提供了C/C++中switch语句的全面指南,旨在帮助他们掌握面试中可能遇到的switch语句相关问题。内容涵盖了...

    elasticsearch:通过elasticsearch进行文件搜索

    Elasticsearch 在开源搜索引擎中基本处于垄断地位,也成为Java程序员的必备技能之一。 这个项目的目的是为了让Elasticsearch学习者轻松、愉快的掌握核心知识点。 搜索客户端 elasticsearch-rest-high-level-client ...

    如何成为软件高手系列之一

    这篇作为这一系列的序言,总体介绍一下我认为初学者成为软件高手需要掌握的必备技能,这些不是充分条件而是必要条件。 1. 一门语言的语法,SDK的常用API,算法与数据结构 有了上面的知识,再加上一点实践,再从...

    架构师必备技能指南:SaaS(软件即服务)架构设计

    上世纪70年代中期,随着个人PC机的爆炸式增长以及程序员的崛起,让计算机的计算能力得到了大跨越的提升,个人PC机上可以运行非常复杂的应用程序。进入上世纪80年代,随着BulletinBoardSystem(简称:BBS)电子公告板...

    The Art of Computer Programming, Volume 1 Fundamental Algorithms 1997 PDF

    本书是多卷丛书中的第一卷,整个丛书旨在培训读者掌握程序员必备的各种技能. 在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定读者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要...

    The Art of Computer Programming, Volume 1 Fundamental Algorithms 1997

    本书是多卷丛书中的第一卷,整个丛书旨在培训读者掌握程序员必备的各种技能. 在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定读者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要...

    程序员面试刷题的书哪个好-my-test:我的测试

    程序员面试刷题的书哪个好 webpack 4.x 常用配置汇总 webpack 是什么 webpack 的核心价值就是前端源码的打包,即将前端源码中每一...的常用配置、常用优化方案是必备的技能 —— 这也正是本文的内容。另外,webpack 的

Global site tag (gtag.js) - Google Analytics