市价 vs 身价
程序员是否有必要持续不断的提高自身的技术水平?
政治正确的说法当然是: 学无止境,技术人员自然应该坚持不懈的提高自己的技术水平啦。
但是,一般情况下,一个技术岗位对于从业人员的要求会有两个方面: 技术能力和业务知识。大多数情况下,业务和技术是分离的,而且会争夺资源。
此处,我们先提两个概念: marketing value和paper value。
前者是指一个人作为劳动力,在劳动力市场中的“市价”,通常以业内同等职位平均薪水为代表。
后者则是指这个人在一个特定岗位上所收获的报酬,一般包括职衔和薪水两部分。 也就是通俗意义上的“身价”。
技术、市价和身价的关系
技术,尤其是通用技术,和marketing value是直接绑定的。 而paper value,很多情况下并不和marketing value成正比。
对于一个特定职位而言,paper value有相当大比例的业务相关性,同时,paper value也不乏和资历挂钩的情况。
对于已经是全职员工的人来说,保持对前沿技术的敏感性是很重要的。 但是如果一心学习前沿技术,一则各种技术更迭不断,另一方面也会占用深入研究和学习业务的时间。
而且,学到的技术不应用,终归流于粗浅。 既不能达到很好提高marketing value的目的,还会影响paper value。
而如何只专注业务,则无异于将自己绑定在现有单位的现有产品经营上,不要说企业本身倒闭之类,就是业务调整,也会使得这个员工在忽然之间丧失全部value。 一旦他/她做的业务被裁撤,这个员工也就可以走人了。
核心价值何在?
其实,说白了,技术也好,业务也罢,都是表面现象,真正的价值在于解决实际问题的能力。
实际当中的问题是千差万别的,如果处理每个问题都仅仅“就事论事”,只会用这项技术解决那个业务问题,那么也只能是把自己绑定在某些技术细节和领域知识上。
所以,在工作中提高自身价值的最佳途径是结合现有工作,深入学习相关技术,进而在抽象层面形成对于现实问题的提取、解决、体系架构的设计。
只有经过提炼到抽象层次的问题解决能力,才可能迅速在不同领域之间切换,达到触类旁通、融会贯通。要达到这样的水平,切入点很关键,技术人员至少需要在一个领域达到深入的程度,否则根本连面对真正问题的机会都没有。
此处的一个 关键点 就是: 学习和实践相结合,以问题为驱动,不断向下挖掘研究 。
警惕“清闲陷阱”
在工作中,往往隐藏着一个陷阱。就是,一个部门,甚至一个公司,在一段不短的时间内,很清闲,没什么事情做。
这种事情看来互联网企业很少见,以前的传统软件企业有一些。遇到这种情况的时候,如果有个人因为觉得没事情做而有些惴惴不安,往往会被人骂:有福不会享。
或者,有些人会劝说,时间这么充裕,闲得慌可以自己学东西嘛,想学什么都可以啊。
也许不同的人意见不同,个人意见:这种情况下学的东西,即便是行业前沿,最热门的技术,如果不在短期内就拿去外面面试的话,最终不过是几张背诵过的纸,扔掉就算了。
因为这种情况下学的,都是没有实践的。没有现实问题驱动的学习,终归难以深入。
从实际观察的结果来看,那些分外清闲的部门,很难涌现出人才(虽然看起来有大把的时间可以学习)。原本的牛人,要么离去,要么归于平庸。
这就是现实,指望利用工作的空闲学习,对于普通人来讲,基本等于自杀。所以,在工作中提高的最关键就是: 找寻能够遇到问题的工作机会 。
获取“输入”
学习的捷径
假设你已经找到了一个能够遇到问题的工作,那么为了最高效的提升自己,在工作中有什么需要注意的地方呢?
或者更直接一点:就学一样技术而言,采用下列哪种方式收获最大最快?
A) 上培训班B) 读资料书籍C) 看代码 D) 请教会的人
显然D收获最高效。
当然BC也是必不可少的,但是BC在任何情况下都可以做,D的话是你身处在一个team当中,周围有比你有经验且优秀的员工时特有的资源。
很多读书读很多天,代码看几万行也搞不懂的问题,问人家,可能十几分钟就搞定了,人力资源,是最最难得的。所以,从效率的角度来讲,请教他人,是一条捷径。
捷径之下的陷阱
但是注意,在捷径之下又有个陷阱: 到底请教谁?
比如,我有个技术问题,甲乙丙都能回答,但甲的技术最好,乙最和气,丙和我职级一样(甲乙都比我高),那我问谁呢?
这个问题,其实并没有标准答案。 但大部分技术人有,都有种技术为王的思想,崇拜的是技术大牛。 所以,在初入职场的时候,总是去找组里技术最好的牛人问题。
作者自己就曾经是这样:
多年前在某公司时,一有技术问题,我就去team里技术最好的同事。
然而,我问他所有的技术问题,他只给过我两个答案——他心情好的时候说: 不知道; 心情不好的时候说: 滚一边去。
后来,多年以后,我问他问什么这样回答我。 他终于说了一句话,这句话让我反思到现在。 他说: 因为你没有独立思考能力。
这话什么意思? 这话的意思是,我问他的问题太简单了。
有些问题是可以搜索到的,还有一些问题,即使不能搜索到,也可以自己推导求证出来,去run code嘛。
或者,我可以去问组里别的人,其实当时就有不止一个人,能够并且愿意回答我。
这段经历就是想说明: 1.技术最牛的那个未必是肯帮你的; 2.无论对于谁,都不应该用初级问题打扰他人。
有些问题,比如这个team里这个项目的repository怎么同步,怎么编译部署,虽然是很简单的问题,但因为有很多参数和路径,肯定要问人才能解决。
这种问题,最好去问知道的人中资历最浅,事情最少的。 即使对于资历最浅的,也要保证只问一次,人家告诉你就好好拿笔记下来,不要没完没了去问。
其他问题,能搜索到的去搜索,在stakeoverflow之类的网站找找。 实在通过这种方式解决不了,再去问人。
另外,能不能请教别人实际上和公司文化有巨大关系——
有些公司KPI任务特别紧,有些搞末位淘汰,还有些整体文化就是“教会了徒弟饿死了师傅”谁会点什么都藏着掖着……
如果遇到这样的环境,通过求教他人来解决问题基本上就别想了。
所以说,能否利用到“人力资源”,和公司文化有直接关系。 这也就是为什么大多数人都会追求一个文化开放积极的环境。
当然,如果在工作环境的不到直接支持,通过社区来向“活人”请教,也是一个方法。
但无论向谁请教,核心都一样: 不要浪费他们人时间,给别人有深度、有挑战性的问题,真正的高手才可能有兴趣回应 。
提供“输出”
只有输入,没有输出也是不行的。互联网时代,“酒香不怕巷子深”的古训已经失效。你的成绩和能力需要自己去彰显。
如果你 经 常感到被无视,无法体现 存在感,那么试试下面这些方法吧:
1. 做能够直接产生商业影响力的项目。
明确项目对公司的商业影响,争取成为项目中重要的角色,让你的工作对公司的目标直接产生影响。
当然,获得这样的机会往往需要承担风险,走出舒适区。 争取有压力的机会,你的潜力才能够被发掘。
2. 主动展现你的技术能力。
具体方式是争取展示能力的任务或活动机会,比如技术分享,宣讲等。要自己开口去说,否则别人怎么知道你会做什么。
当然,要能够做到持续的技术分享,需要紧跟技术潮流。 让你的主管知道你想要学习掌握的技术,并制订相应的目标。 同时也可以看看公司是否愿意支持你去发展相应职业机会。
3. 寻找具有影响力的导师。
导师可以针对的你的职业发展和公司文化给予建议和指导,而赞助人则能够帮你提高存在感,让受惠于你的工作的组织内成员得悉你的存在。
4. 构建一个强有力的关系网络。
可以通过参加跨职能,跨组织的项目,以此来扩展自己的知识和技能。
在有了一定的技术和项目积累后,可以考虑自己也承担内部导师的角色,去辅导别人。 回报是让你本人变得更加职业也更具领导力。 另外,辅导他人的经历也可以写到年终评定的总结里,让别人看到你的贡献。