简单来说,程序员的工作就是使用编程语言,根据需求写出一个程序。但是,这个过程中,涉及如下几个方面:
- 使用的编程语言
- 需求
- 写程序
1、使用的编程语言
- 程序员需要选择一门或多门语言来编程,不同的语言适合编写不同的程序,也会涉及到程序员的收入
- 目前主流编程语言包括,Java、JavaScript、Python、C、C#、C++、php、Objective-C等,每种编程语言适合开发的程序有所不同
- 目前从程序应用分来,可以分为如下几类:
2、需求
- 需求就是编写程序的要求。一个程序要编写成什么样子,具备哪些功能,都是由需求来具体说明。一般需求都用Word文档来编写,里面包含对于功能的具体描述,界面布局的描述,接口规范的说明,数据存储的说明等等。
- 程序员要需要能看懂需求文档,并且能准确的使用编程语言,根据需求中的要求来编写成程序。
- 程序员编程时,一般不会直接给一篇需求文档,然后就要求编写出程序。企业开发的项目,往往会由该程序的架构师提供一个程序框架,程序员在该框架的规范下进行编程,实现需求的功能,以确保程序的规范、可读,以及可维护性。
- 顺便说一声,程序员工作能力不断提升后,其偏技术的发展路径为:程序员->高级程序员->系统架构师->技术总监->CTO。这是一个金字塔形的结构,越往上层,人数会越少。一般程序员技术天赋尚可,通过勤奋和努力,可以比较顺利到系统架构师。但是,要到技术总监,就需要一些机会和运气了。毕竟一个公司的技术总监也就那么几个。如果升到CTO,那就可以算是成功人士了。当然,类似创业公司总共3个人,一个CEO,一个CFO,一个CTO的情况另说。
3、写程序
- 程序员写程序的一般过程包括,编码(就是写程序)->单体测试->集成测试->用户测试->系统上线->系统运维。
- 编码过程中,需要符合编码规范。除了编写代码,可能还需要通过接口和其它系统对接,实现系统间的数据交换。
- 单体测试,是程序员对自己写好的程序单元进行测试,检测这个程序单元数据输入和数据输出是否符合预期等等。测试出来的问题,需要修改正确,然后再测试,直至没有问题。
- 集成测试,是程序员将自己编写好的全部程序进行联合调试。如果多个人一起开发这个程序,那么就需要团队每个人完成自己负责的部分,然后一起联合调试。这也是一个完整程序的测试。测试过程包括各种边界测试,以确保程序的正常运行。这种测试主要是为了满足功能需求,称之为功能测试。除了功能测试外,还包括压力测试等等。对于测试出来的问题,称之为bug,需要进行修复,然后再进行测试,称之为回归测试。
- 用户测试,用户就是程序的最终使用者来进行测试,确保开发的程序是客户需要的。用户测试的前提,是程序通过集成测试,已达到一个成品程序的情况下,才能提交给用户进行测试。
- 系统上线,开发的程序经过用户测试,并通过后,就能正式投入使用了。一般开发和测试都会在测试的服务器上进行。程序正式投入使用时,会被部署到正式的服务器上,并初始化相关数据,这个过程称之为系统上线。
- 系统运维,系统在正式使用过程中,会需要运维的支持。不同类型的应用,运维的工作量会大不相同,有的程序在使用时,需要大量运维工作支持,有的则只需要保证程序运行稳定,不宕机即可,具体视程序的具体需求而定。
- 上面过程中,编码、单体测试,这两个环节是需要程序员完全自己完成的。集成测试、用户测试,主要由测试人员、用户完成,程序员主要工作是支持测试人员和用户,并修复测试出来的bug。系统上线一般只需要主要程序员或者系统架构师参与,不太需要每个程序员都参与。系统运维由运维人员完成,有的程序员也会被安排为程序的运维人员。但是一般不需要所有的程序员都参与运维。