程序员是做什么的?

简单来说,程序员的工作就是使用编程语言,根据需求写出一个程序。但是,这个过程中,涉及如下几个方面:

1)使用的编程语言

2)需求

3)写程序

1、使用的编程语言

程序员需要选择一门或多门语言来编程,不同的语言适合编写不同的程序,也会涉及到程序员的收入。目前主流编程语言包括,Java、JavaScript、Python、C、C#、C++、php、Objective-C等,每种编程语言适合开发的程序有所不同。

目前,从程序应用分来,可以分为如下几类:

企业应用,主要用于解决企业业务。

互联网应用,面向互联网用户,为互联网用户提供各类服务。比如现在的各类电商系统等。

移动应用,各类在移动端使用的APP,有面向互联网用户的APP,也有面向企业内部的APP。

基本上面三种类型的应用,都包含前台系统、后台系统、数据存储,这三部分会涉及到不同的开发语言。相对而言,在移动应用和互联网应用方面,资本投入比较热的风口,程序员的薪资较高。企业应用,发展了很多年,相对平稳。

2、需求

需求就是编写程序的要求。一个程序要编写成什么样子,具备哪些功能,都是由需求来具体说明。一般需求都用Word文档来编写,里面包含对于功能的具体描述,界面布局的描述,接口规范的说明,数据存储的说明等等。

程序员要需要能看懂需求文档,并且能准确的使用编程语言,根据需求中的要求来编写成程序。程序员编程时,一般不会直接给一篇需求文档,然后就要求编写出程序。企业开发的项目,往往会由该程序的架构师提供一个程序框架,程序员在该框架的规范下进行编程,实现需求的功能,以确保程序的规范、可读,以及可维护性。

顺便说一声,程序员工作能力不断提升后,其偏技术的发展路径为:

程序员->高级程序员->系统架构师->技术总监->CTO

这是一个金字塔形的结构,越往上层,人数会越少。一般程序员技术天赋尚可,通过勤奋和努力,可以比较顺利到系统架构师。但是,要到技术总监,就需要一些机会和运气了。毕竟一个公司的技术总监也就那么几个。如果升到CTO,那就可以算是成功人士了。当然,类似创业公司总共3个人,一个CEO,一个CFO,一个CTO的情况另说。

3、写程序

程序员写程序的一般过程包括,编码(就是写程序)->单体测试->集成测试->用户测试->系统上线->系统运维。

编码过程中,需要符合编码规范。除了编写代码,可能还需要通过接口和其它系统对接,实现系统间的数据交换。

单体测试,是程序员对自己写好的程序单元进行测试,检测这个程序单元数据输入和数据输出是否符合预期等等。测试出来的问题,需要修改正确,然后再测试,直至没有问题。

集成测试,是程序员将自己编写好的全部程序进行联合调试。如果多个人一起开发这个程序,那么就需要团队每个人完成自己负责的部分,然后一起联合调试。这也是一个完整程序的测试。测试过程包括各种边界测试,以确保程序的正常运行。这种测试主要是为了满足功能需求,称之为功能测试。除了功能测试外,还包括压力测试等等。对于测试出来的问题,称之为bug,需要进行修复,然后再进行测试,称之为回归测试。

用户测试,用户就是程序的最终使用者来进行测试,确保开发的程序是客户需要的。用户测试的前提,是程序通过集成测试,已达到一个成品程序的情况下,才能提交给用户进行测试。

系统上线,开发的程序经过用户测试,并通过后,就能正式投入使用了。一般开发和测试都会在测试的服务器上进行。程序正式投入使用时,会被部署到正式的服务器上,并初始化相关数据,这个过程称之为系统上线。

系统运维,系统在正式使用过程中,会需要运维的支持。不同类型的应用,运维的工作量会大不相同,有的程序在使用时,需要大量运维工作支持,有的则只需要保证程序运行稳定,不宕机即可,具体视程序的具体需求而定。

上面过程中,编码、单体测试,这两个环节是需要程序员完全自己完成的。集成测试、用户测试,主要由测试人员、用户完成,程序员主要工作是支持测试人员和用户,并修复测试出来的bug。系统上线一般只需要主要程序员或者系统架构师参与,不太需要每个程序员都参与。系统运维由运维人员完成,有的程序员也会被安排为程序的运维人员。但是一般不需要所有的程序员都参与运维。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180224G0E73G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券