经验积累的行业有很多,比如医生,换个医院照样看病,只要科室没有换。年龄大的医生看过的病人就是比年轻医生多 。开医院想招一个内分泌科的医生,5 年经验和 15 年经验的两个候选人,就是差了 10 年经验,不可能 15 年经验的待遇少于 5 年经验的待遇,straight forward 。
程序员真的不是。换编程语言相当于医生换科室,这个相对好理解。但同一个编程语言内,在大公司打工的牛马,换公司工作,等于把自己的对业务理解的积累全都扔掉,虽然编程语言没换,开发平台也没换。
最近公司招开发,收到不少在前一家工作 10 年以上的候选人的简历。有的聊一聊就知道这在前司绝对是 tech leader 的角色,但是一旦换工作,除非是被挖来,否则都是进入到繁琐的面试流程,刷题写算法。15 年工作经验的程序员,写算法也不一定能写过 new grad 。就算百里挑一最后拿 offer 入职,对业务的理解又是一个全新的过程,15 年的工作经验,能发挥出来的也就 5 年左右了。
这就有一个 dilemma ,想在一个公司干得好,就必须要精通业务,但是所精通的业务,到另一家公司应聘,可能真的用不上。更不要说,有些要维护的十几年前的软件,技术栈太老,市面上没几个公司再使用了。路子走窄了,越走就越远。
行业积累,本质是业务架构的积累,切换了业务赛道,行业积累基本也就废了
就像,你让一个医生换工作到律师,医生也是要抓瞎的...
业务架构,有点偏产品经理方向了。。。
程序开发是用来支撑产品方案的落地的,然后产品方案的落地,又会往上去支撑一些东西
所以本质上,程序开发的价值只是产品的落地,但是有时候产品的落地并不一定要用程序来支撑
你就不得不不断地去学习上游的知识,然后把方法论整出来。。。
做编程,看上去是技术的能力有经验或者没经验,但这仅仅只是一方面。但其实更重要的是对业务的理解,产品的理解。这和医生有着本质的区别,医生本身从工作那一刻起。就开始积累专业知识和业务经验。复杂的病人就是业务对象。我们再横行对比一下。
但人的结构就那些。现实的业务却无限多!!!如何选到暴富的业务,才是做程序员需要考虑的事儿。绝大部分,都是平凡的大多数。无论程序员还是医生都看个人选择罢了。