随着移动互联网的发展,人们对手机的使用已高度普及,对于服务端开发工程师的要求也就越来越高,不仅仅是开发运行于服务器端的程序,还要具有业务分析、产品设计、架构设计、技术攻关、团队协作、文档编写、系统维护的能力。更具体一些的说法是需求分析、抽象建模、系统设计、数据设计、非功能性设计、编码实现以及发布运维,服务端的开发工程师会在其过程中扮演着重要的角色。
现如今业务复杂已不像以前只是进行简单的CRUD,在技术设计时便要根据业务需求选择适合的设计方案,比如中间件的选型、服务器操作系统的选择、数据规模的预估、运维及安全方面等因素需要考虑。
单单从技术栈的选型上考量,便会涉及到语言、工具、框架、数据库、持久层存储、中间件、OS、应用部署、监控等知识体系。

编程语言的选择也是很重要的,截止到2023年9月编程语言排行榜如下图所示,最新流行的语言就是这些,Java已跌出前三,但是不意味着java语言的落寞,选择合适的语言用在合适的地方,比如引擎使用C或C++,算法使用python,应用层使用java等编写。
如何做选型呢?
(1)尽可能的选择常用的、成熟的语言进行开发,这样既方便开发、又方便维护,在人员流失后能够及时补充。
(2)尽可能选择生态丰富的语言,遇到坑之后能够尽快的解决问题,毕竟效率第一,高效完成降低成本是公司的诉求。
工具俗话说“工欲善其事必先利其器”,就像一个工人在工作前要穿好工作服,按照工单拿好扳手去工作,在工作结束后,服务器端程序员所需的工具分为哪几类呢?有哪些工具是常用工具呢?
(1)开发集成环境(VSCode、JetBrains)
(2)代码管理工具(git、svn)
(3)建模工具(Visual Paradigm)
(4)项目管理工具
(5)数据库可视化工具(navicat)
先从编程语言和编程工具两个方面讲述了服务器端工程师的职责,后面再分别讲述关于服务端程序员的其他方面的职责。