程序员的各个职业发展方向,了解一下

其实一个企业内部都是做开发的,不管是薪资还是职业发展方向,都会大相径庭。为什么呢?岗位不同,未来方向差很多倍。

首先本文把开发岗位分类为:

  • 客户端程序员
  • 服务器端程序员
  • 数据库程序员
  • Web开发人员以及脚本编写

这四类开发者擅长解决的问题和使用的工具侧重都不一样。

客户端程序员

大部分程序员都属于客户端程序员,要做的包括Office在内、电子表格处理程序还有游戏APP等等。

初级客户端程序员的任务在于应用层功能的新增和改进,bug的追踪。制作应用层界面部分的程序,负责资源打包和整理。高级一些程序员负责联合测试,研发应用层的新增功能,还会培训公司新人,还要写应用层的范例和测试,应用层架构的编写和测试。

客户端的程序员一般工作职责会非常清晰。依赖的就是服务器端数据。

服务器端程序员

简单说下服务器划分基于的原则:分离游戏中占用系统资源较多的功能,独立成服务器。在同一服务器架构下的不同游戏,尽可能复用某些服务器(这是进程级别的复用)。以多线程并发的编程方式适应多核处理器,宁可在服务器之间多复制数据,也要保持清晰的数据方向。

在互联网高速发展的时代,构建系统是离不开各个服务器系统和进程之间的接口转、数据传输和同步工作的。这些内容均在服务器端程序员的职责之内。

数据库程序员

从事数据库端的开发,也是分初中高级的。初级程序员大体知道优化器氛围逻辑优化和物理优化,了解一些逻辑优化的方法,知道执行计划的来源。中级程序员是能够根据自己对优化器的了解,调整出优化器所喜爱的SQL语句。并且对产生的执行计划可以分出优劣。高级程序员是对优化器每一个细节都非常清楚,写出一个SQL语言直接,就可以知道优化器优化的过程。

很多互联网大厂会专门培养数据库程序员,比如阿里在Oracle时代就培养了很多优秀的DBA。

Web开发或者其他脚本编写

Web开发一般都是前端的三件套(HTML+CSS+JS)和脚本解释语言(PHP、JavaScript)。

目前来说web端开发要掌握的是用户端的内容,不管是PC端还是H5或者是小程序。简单来说前端就是指的用户这一端也是云端。

其实除了岗位的划分有不同的职能之外,程序员也有不同的类型,大致可以分为:

  • 系统工程师/架构师
  • 系统程序员
  • 应用程序员
  • 非真正意义上的程序员

不管是哪种程序员,都应该在踏入这个岗位的时候给自己一个目标。

第一,写出的程序员不要格式化也非常标准,太多程序员连空格都没有。字符混乱至极,过三个月之后都看不懂自己的代码。

第二,写的程序员一堆没有用的代码,其他人来评审的时候还找不到无用代码。这种情况非常多。

第三,可读性也没有效率就更别说了。一般我们首先考虑的是可读性,但是对于频繁执行的部分,可以牺牲可读性保证效率。需要写很多注释,注释可以不用说用途,而是写代码的思路。

这是一个技术方向发展的程序员应该首先要考虑的,那么管理方向的程序员应该注意什么?

我见过一位开发者,很明确自己的目标,就是在核心业务上做技术管理。五年时间就成功做到了。管理岗位要培养自己的业务思路,说大点就是商业思维。另外就是培养自己的沟通表达能力。还有自己的文档能力以及项目管理能力。