本文想告诉大家如下两个观点。

很多IT小公司的技术总监,论能力其实也就是相当于大公司的高级程序员。

程序员在职业发展过程中,绝对应该优先考虑进大厂或好公司。如果仅仅停留在小公司,由于小公司可能无法接触到值钱的技术,所以哪怕做到小公司的技术总监,依然可能会遇到大龄危机。

我见过不少小公司,比如某软件园里有很多栋楼,有些软件公司可能也就占一个或多个楼层,甚至只占了几个房间,这种公司一般也就十几号开发,顶两天也就一百多个开发,这类公司的不少技术总监,能力上和一般的开发有什么差别呢?

  1. 一定是非常熟悉业务,比如公司做的一个电商物流系统,技术总监一定会知道每个模块的边边角角细节,不过熟悉某个公司的业务知识在跳槽时对自己的帮助并不大。
  2. 熟悉各种项目管理和测试工具,比如git,maven,gradle,postman,同时知道项目在开发完成后如何确保质量,如何发布到产线上。这些技术点可能不少大厂程序员不会认为什么,但在不少小公司里,能做熟这些工作的人并不多。
  3. 知道各种组件的基本用法,比如知道微服务组件或容器的各种用法,但相比于大公司,这些小公司的技术总监真有不少只会用api,只知道基本的配置。
  4. 大公司的技术总监,往往需要架构方面的技能,比如能根据业务,搭建能应对高并发,能确保高可用的系统架构,同时需要搭建监控系统确保系统能正常运行,如果出了问题,大公司的技术总监往往要兜底,即别人排查不了的问题自己要顶上。但小公司的技术总监更多的职责是管人,即会多承担项目经理的角色。

下面我就说说我见到的不少小公司技术总监的一些情况。

本人的一个朋友,在某软件园开了一个接外包单子的公司,开发人数是20多号人。这个公司用的技术是spring boot系列,比较偏重于单机版,不怎么用到分布式组件。

其中的技术总监,平时的工作时和客户去谈需求,然后把需求拆分成若干个模块让手下人开发,由于小公司的技术栈并不复杂,也就用到spring boot+数据库,外带些logback写日志等的组件,所以一些刚毕业的程序员,只要在大公司里呆个2,3年,都能达到这个程度。

本人也见过在一个某开发区公司的技术总监,这个公司是做外贸业务的,开发人员大概有10个20个人,用到的是java技术栈。

这位技术总监,平时更多的承担的是产品+项目经理的角色,论java技术,一些比较普遍redis集群或spring cloud alibaba组件集群,他都认为很高深。给本人印象比较深的是,当时本人给他们系统搭建了一个基于nacos双节点的服务治理集群,一个节点失效了另一个节点能顶上去,这位技术总监就认为这是很稀奇的事情了。

某个开发区内某小公司的技术总监,要搭建公司的业务架构,本人参与了一些,也了解了小公司里搭建架构的具体做法。

具体包括,先搭建好git代码环境,然后为每个机器安装好IDEA+Gradle环境,找个服务器搭建Oracle数据库,同时确保每个开发人员都能用客户端连到数据库上。业务架构层面,就用spring boot控制器+service+repo层,同时写了些通用性的方法,比如连数据库和写日志的通用方法。

当然必要时再会引入redis和kakfa等组件,是先找个服务器安装好组件,然后写一些通用性的方法告诉底下人怎么用。在项目开发好以后,这位技术总监还要负责把产品部署到服务器上。

从上述的描述里大家可以看到,不少小公司的技术总监,平时干的更多是产品+管人+系统部署维护+日常修bug的活,或者说更多干的是打杂的事情。要说干的活里包含多少技术含量,这倒也未必。不过这些技术总监可能虽然在当下公司不可或缺,甚至是威风凛凛,但如果要跳槽,会发现自己真可能缺乏必要的竞争力。

  1. 按21年22年的行情,我见过的不少小公司技术总监,年薪基本没有过40w的,一般也月入3w就不错了,毕竟小公司盈利能力有限,抗风险的能力也有限,一般给不了高薪,但如果去大公司,一个30岁的程序员要个月薪3w问题不大。
  2. 要做到技术总监,哪怕是小公司,一般也要35岁左右了,这样的年纪再去跳槽,技术上又没核心竞争力,虽然掌握些管人和产品方面的技能,但要去大公司真不容易。
  3. 再说这些技术总监跳槽时能展示什么技术呢?大公司所要的云,容器,高并发或集群等,由于小公司基本上没有必要花钱使用,所以有些小公司的技术总监论技术真没什么竞争力。

写到这里,本人想说的是,程序员在职业发展过程中,固然要走技术路线,比如要多掌握架构或其它方面的的值钱技能。但是如果只在小公司之间辗转,薪资也能会提升,职位也可能会慢慢累积到技术总监的级别,但如果只在小公司发展,薪资和发展空间一定会受限。原因也好理解,小公司未必有值钱技术的使用机会,而小公司更加会偏重业务。

所以,比如有3年工作经验的程序员,当下公司的规模不大,在跳槽时,如果遇到小公司高级职位和大公司低级职位的选择时,应当毫不犹豫地选大公司,甚至在选跳槽公司时,应当目标就该定位大公司。至于怎么选,怎么准备大公司的面试,怎么过大公司的面试,本人有太多的文章,这里就不想继续展开了。

本人最后想说的是,大龄程序员,比如35岁以上的程序员,跳槽时对方优先看大公司经历,再看值钱技术在项目里的使用情况,再看有没有值钱技术(比如集群架构云等)的排查问题搭建环境方面的能力。而哪怕在大龄时做到了一些小公司的技术总监,如果缺乏些大公司的经历,遇到本公司有变故时,跳槽找工作时真可能不仅仅是薪资大减的问题,真可能是连简历都没人收了。