程序员要考虑的大事
身边有不少优秀的程序员整天埋头手上工作,在一个位置长期得不到发展。遇到这种情况,我都会劝说他要做好自己的职业生涯规划。因为在职场上你不仅要把工作做好,还要让自己的成果能被公司和领导认可,你要积极主动的为自己的职业生涯负责。
无意间看到了Easy的系列文章:关于程序员职业的《程序员跳槽全攻略》。感觉很不错,就将其中阅读有感触的一些地方记录一下。
1.
在公司内你的收入可能和你牛不牛没关系,而和你能为雇主提供多少价值有关。如果你在一家建做网站的公司上班,精通机器学习和编译原理的你可能没有会JS写出完美动画的同学收入高。
所以选择适合你能力的最有价值赛道很重要,不仅有利于你能力的发挥,也能让你获取丰厚的收入汇报。正如古典老师说的职场赛道理论,选择不同的赛道你最终的成就也不同,选择做汽车还是飞机,你在单位时间内能达到的距离也大不相同。
注意培养自己技能的稀缺性。
永远不要因为「现在很差」而跳槽,要因为「未来更好」而跳槽。只有这样才能保证你一直往上走。
如果你工作最重要的目的是挣钱,那你要知道挣钱这件事,至少有四种形式:帮别人挣钱(打工);为自己挣钱(SOHO);雇别人挣钱(企业主);让钱自己挣钱(投资)。
你需要知道衡量挣钱与否不应该只看年薪而要看时薪,一个人的时间有限,想办法提高自己的时薪才是硬道理。
2.
一般人毕业后都在E象限,在稳定后应该考虑做些副业比如做业余项目等,然后结合自己实际情况看是去S象限还是B象限发展,甚至去I象限发展。
3.
分享的目的是让别人能理解、重用我们的劳动成果,进而体现我们的价值。如果只是上传代码,没有说明和注释,可能就打不到分享的目的。
充分的分享交流不但会扩大你的影响力,更会聚集各种有意思的想法,往往让你喜出望外,获得新的启示。
既然选择分享,就一定要把它做好,否则帮不了别人也浪费自己的时间精力。
比起技术能力,做好开源项目更多的是要【来自真实的需求】和【持续更新的能力】。
找自己项目中遇到的费时小细节做好,然后开源就可以了。比如iScroll这个项目,它其实只是处理滚动条的小Tip而已,技术上没特别的难度,代码量也不大,但由于大家都不想在这种细节上花太多时间,反而让iScroll大规模流行,最后苹果和微软甚至雇佣过它的作者做兼职。
DRY不做重复的事,把常用的功能抽象成库,把重复的代码重构为可重用的框架模块,坚持这样做,你会发现自己抽象和架构能力飙升。
保持功能正交性,【功能和功能之间尽可能的不相互干扰】,尽可能的减少功能间的依赖,如果有,规则一定要明确。
总之,个人职业规划是每个程序员都要经常考虑、认真对待的事。尤其是哪些长期得不到发展、迷茫焦虑的程序员更需要做好这些事。因为你的未来你做主,你的未来你负责!