前言:可能是最近一直在想怎么成为一个优秀的程序员,程序员职业生涯如何可持续发展,从而引发了这一次的思考。
引子
一个经验丰富,技术精湛的程序员(老鸟)离职,公司需要另一个程序员来补位。
有时,招来的甚至是刚毕业的大学生(小白),经过一年半载的磨炼,似乎也比较 NO PROBLEM。
可是,之前为老鸟支付的工资可能 DOUBLE 小白,那么,问题来了,老鸟体现的哪些价值能够让人愿意为他付相对较高的工资呢?
销售工作可以根据销售额来判断一个人的能力,技术工作呢,比如怎么判断一个程序员更优秀?
思考
职场中可以被替代是必然的,若是某人离职之后项目就进展不下去,那就是人事部门、技术主管的责任。而且,如果没有某人就不行,那他可能会累死,而且,万一他想走,又怎么能安心的甩手离开?
第一,能用新人替代,是不是因为老鸟做的事还是不够有技术含量,没有体现出足够的价值?
有时,公司的安排确实不怎么合理,老鸟可能一直也觉得自己没有做有挑战的工作,既没发展前景(价值没有足够体现,工资自然无法水涨船高),也学不到东西。
工资可能是技术水平 + 工作经验(资历) + 学历(不同学历下,同工不同酬也比较常见) + 谈判,共同得出的,对于日常工作中体现的部分,反倒没有那么被重视。
公司管理层面上可能有以下问题:
- 直接负责的技术领导没有足够的发言权,真正有权力的却完全不懂技术。
即便懂技术,也经常不会去注意到下面所有人的发展。 - 有些岗位被公司认为是没有创造足够价值,不是核心价值的部分,所以不被重视。
当然也有可能,虽然工作可以做,但是工作质量的好坏,其实还是在那里的。
哪些地方能够体现一个程序员工作的质量呢,或者说:
第二,程序员的工作能体现出什么核心价值,让 BOSS 愿意付钱的点?
正好,上网一搜,收到知乎上的这个问题:程序员的核心竞争力是什么?为什么?
我是比较赞同排第一的、姚东的回答,比较符合我一贯的态度,其中提到:
- 学习能力(自学能力)
离开学校之后的所有技术积累,都只能靠自己耐住寂寞的用心专研。
再也不会有很多朋友一起陪你上晚自习了(一起 dota 倒是可能)。 - 动手能力
尤其赞同,不能整天专研书上的名词解释,绝不能 “说什么什么懂,做什么什么不会”。
我比较赞同:用实践推进理论学习。Talk is cheap,show me the code - 耐心、毅力
任何精湛的技艺都离不开无数次乏味的练习,我完全无法想象一个人靠所谓兴趣和热情做成一件事情。 - 表达能力(沟通与待人接物)
有人的地方就有江湖。不会准确地表达自己的意思,不会与人相处,怎么做成一件事情?
要微笑,要会开玩笑,要控制住坏脾气(不要在心情不好的时候随意发泄)。
还有提到了一点:“现任老板不可能给出让你满意的工资,下一任老板才会。”,有一定道理。
以上几点就很好了,但是我还是想补充两句:
- 善于借力,善于经营。
资源协调好了,没有什么做不成。
要善于经营自己的资源,比如时间、声誉(技术品牌)、人脉。 - 敢于承担,敢于挑战。
大部分时候,真正的问题是你不敢面对问题,其实,办法总比问题多,找办法,不找理由。 - 乐于分享。
现实中,很多人主张 “总要留一手”,其实意义不大,真正的竞争者是那个不好的自己。 - 工作是为了更好地生活。
第三,我自己有哪些地方还需要注意?
- 态度要好,要更好,做人的态度、做事的态度。
- 坚持每天花一点时间用来提升技术。
即便是想偷懒,不想努力,那也不要用 “用空(假期)学习” 这个借口麻醉自己。 - 要想清楚,发展方向,然后从粗到细,指定一个可行的计划,然后,重点是:执行!
不要贪多,坚持才重要,等在一个方向(绝对要和工作有关)上取的突破,有一定积累之后,其他方向也一定可以一以贯之的。