简单来说,程序员的工作就是使用编程语言,根据需求写出一个程序。但是,这个过程中,涉及如下几个方面:
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。系统上线一般只需要主要程序员或者系统架构师参与,不太需要每个程序员都参与。系统运维由运维人员完成,有的程序员也会被安排为程序的运维人员。但是一般不需要所有的程序员都参与运维。
领取专属 10元无门槛券
私享最新 技术干货