手记

不想做业务的技术控该选什么样的公司?


安老师您好:

我是一名工作了不到2年的java程序员,平时也做一些前端的工作,坐标西安,西安理工大学本科毕业。目前所在的公司偏重业务一些,但我本人是个技术控,乐于接触各种新技术,而且现在公司的发展前景有点堪忧,所以准备跳槽。对新工作有以下几点期望(排序越靠前,是越看重的):

  1. 工作方向前景向好

  2. 工作方向越偏重技术越好

  3. 公司规模越大越好(因为自己还年轻,想着公司规模大的话,对于自己后续的发展更好些)

  4. 能在西安最好

不知道安老师是否可以推荐一些工作方向及公司?



先简单说说技术和业务的关系:

  • 技术的目的,是为了解决业务问题

  • 不存在纯粹的技术性工作,所有技术性工作,最终目的必然是为了解决业务问题

  • 如果有些工作看起来像纯粹的技术,那只是业务分层的需要,这种所谓纯粹的技术,它要实现的业务,是更上层的技术中间层或业务抽象层

  • 技术只有落地到业务,才能获得更好的应用和发展,否则要么消亡,要么藏在深闺无人识

  • 技术的变革可以促进业务的发展

  • 业务的发展也可以引发技术的变革

下面是我画的一张软件分层图,能帮助我们更好的理解业务和技术的关系:



宽泛一点讲,每一层软件都有业务——它的上层。只是我们更多时候所说的业务,是指的应用层业务,即和最终用户需求相关的那部分。

很多人所讨厌的业务,就是应用层业务。这是因为这部分业务变化比较频繁,今天加一个功能,明天删一个功能,今天界面这么设计,明天界面那么设计,今天加一条查询语句,明天添一个存储过程……就这么改来该去,感觉技术没什么长进,成长变缓。

但实际上,开发者的成长,有三个维度:技术、业务、软实力。哪个维度都可以很好的成长,打造出亮点,都可以行走江湖。

只不过,开发者对成长的感知,是分阶段的。

工作 5 年以下的小伙伴,因为工作中往往是执行层面的事情多,是在别人规划好的框架内完成特定任务,所以往往更关心技术。

工作稍久一点,5年、8年,一般都成了团队骨干、Leader,需要带项目、带人,格局更大一些,关注点开始向业务倾斜,因为不了解业务就无法更好的开发软件。与此同时,软实力,比如设计、架构、沟通、协同、组织等等,也开始变得重要,因为要带人带团队从更高层面把握软件,这是必须的。

工作再久一点,成了研发经理、总监,业务和软实力这两个维度的重要性,会大过技术。

扯远了,我们回来,结合前面的软件分层图来看看,假如你确确实实不愿意关心“业务”层面的事情,在找工作时,可以有哪些选择。

答案是明显的,选择提供 1、2、3、4、5 这5层软件的公司,就会远离应用层的业务。如果西安没有这几类的公司,也可以考虑大公司的特定部门。

至于什么样的公司有1、2、3、4、5这几类相关的岗位,招聘网站搜一搜,从JD中就可以看出来。

我曾经写过一篇文章,专门讨论开发和技术的关系:

建议看看。



1人推荐
随时随地看视频
慕课网APP