程序员之路

大学就像一个笼子,跑得快的人拖着笼子跑,跑得慢的人被笼子拖着跑,他们之间最大的差距,顶多只有笼子的长度那么大。但等到一毕业,笼门一打开 ,跑得快的人很快就把跑得慢的远远甩在后面。有人不到 30 岁就升到了阿里 P8,有人 35 岁了还为拿个 P7 Offer 在拼命。
为什么几乎同样的起点、差不多的资质,有些人在职场发展得这么好,一路顺风顺水,而有些人却总是觉得怀才不遇,领导不行?今天,我们就来聊一聊,程序员怎么才能让自己走得更高、更远?
技术、业务、能力是立命之本
我觉得,不管哪个行业,混得好的人都要有两把刷子。对于程序员来说,我觉得这两把刷子包括技术、业务和能力这三方面。很多人担心出现 35 岁中年危机,觉得自己能干的事,刚毕业一两年的人也能干得了。我觉得这主要还是因为没有在这三个方面积累出竞争壁垒。
我觉得,技术方面的竞争壁垒主要来自,在一个细分技术领域长期、深入的积累。
如果要想在技术上形成壁垒,我们就要从事一些有技术难度、技术挑战的岗位,比如基础架构、中间件、数据库等偏底层的开发,又或者是人工智能算法等入行门槛比较高的细分领域。在这些领域,你需要较长时间的经验积累,才能成为这一领域的专家,别人无法在短期内超过你,这就是技术竞争壁垒。
对于大部分业务开发工程师来说,很多人平时都是使用框架、工具,翻译业务代码,工作没有太多技术含量,技术上可能很难形成竞争壁垒。这个时候,你也不用苦恼,我们在业务上也同样可以形成竞争壁垒。
实际上,技术驱动的公司很少,即便像 Google 这样公认的技术驱动的公司,里面 90% 的项目都是业务、产品驱动的。真正高精尖的技术也只集中在某一小撮项目中。你可能会说,Google 的很多产品的用户、访问量都很高,这些高性能、高并发的要求不是很考验程序员的技术吗?实际上,这些有挑战的技术问题,都是比较有共性的,大部分都通过底层系统解决了,比如 MapReduce、BigTable、GFS 等。业务研发工程师只需要恰当地使用这些高精尖的系统来实现业务就可以了。
在业务驱动的项目中,特别是一些业务比较复杂的下项目,比如,金融系统、银行系统、财务系统、清结算系统、物流系统等,我们还可以积累一些业务壁垒。如果你之前的工作都是从事偏向业务系统的开发,靠技术只能面到阿里 P7 这个层级。如果想面到阿里的 P8、P9,靠的就不仅仅只是技术了,还需要对某个业务的深入积累。实际上,很多领导之所以能做领导,不是技术牛逼,而是对业务熟悉。
不过,并不是所有的业务系统开发,业务都有足够的复杂度,可以让你积累竞争壁垒。对于技术没有太大挑战,业务也不复杂的项目开发,我们可以多积累自己的能力。
这里所说的能力,指的是成事能力、解决问题的能力。实际上,很多问题的解决,即便是技术问题的解决,靠的都不是技术,而是一个人最基本的解决问题的能力。这其中就包括分析总结能力、逻辑思维能力、沟通协调能力、自我驱动能力等等。
比起固定的技术和业务知识,这种成事能力、解决问题的能力,我觉得对于混职场来说可能更加重要。在职场中,职位越高,这种成事能力就越重要,毕竟企业最终还是看结果的,而不是看你技术有多好。
学历、项目、履历是入场门票
经常听人吐槽,面试造火箭,入职拧螺丝。也经常听人抱怨,有些公司太看重学历,因为学历拒掉了我,却招了一个技术比我差的前同事,仅仅因为他是 985 名校毕业。
现在,学 IT 的人越来越多,招聘市场也逐渐从卖家市场变成了买家市场。很多公司开始提高招人要求,不仅加大面试难度,为了提高招聘效率,还会在学历、过往是否有大公司经历等方面,先过滤掉一批候选人。
你可能会说,学历高的不一定技术好,学历低的也有技术很好的。你说得没错。但一般来讲,虽然都说做技术学历不重要,但好学校的学生对计算机基础知识掌握得更好,学习能力、逻辑思维更强,相对要聪明一些,而且在工作中,我们也发现,成绩好的同学往往在工作中表现出很强的执行力和快速交付能力,在工作中的表现普遍也更优秀。站在公司整体招聘的角度来说,通过学历来过滤候选人是一个比较高效的手段,毕竟公司也不在乎因此漏掉一两个优秀的候选人,或者错招一两个不优秀的候选人。
实际上,比起短短的 1 个小时的面试,我个人也更倾向于通过学历、项目(项目经历是否有技术难度)、履历(是否有知名公司的工作经历、以及职位高低),这些过去的能够证明能力的经历来判断一个候选人。特别是对于一些中高端的岗位,好的学历、项目、履历基本上有碾压性的优势。我自己做面试官多年,基本上在看完候选人的简历之后,对符不符合我们招聘要求,心里就有个八九不离十的判断了。在面试开始的前 10 分钟,我基本上已经决定要不要录用他了。后面的面试只是为了进一步证实自己刚刚的决定而已。
如果说技术、业务、能力是程序员的立命之本,它们决定了你能不能在职场这场比赛中胜出,那学历、项目、履历就是入场门票,决定了你可以选择哪个比赛赛道,是 Google、Facebook,还是 BAT,又或者是完全不知名的小公司。
所以,在夯实技术、业务、能力的同时,你也要学会“面向简历打工”“面向跳槽打工”,提前做一些职业规划,把自己的履历弄好看点,比如,学历太低的就去考个好点的学历,在公司内部努力去选择做一些有技术含量的项目,跳槽去一些知名点的互联网公司等等。
不要让职场软技能成为短板
在职场中,我常常听到有人抱怨说,旁边的同事明明技术一般,却升到很高的职位,而自己技术很好,却发展一般。实际上,怀才不遇大多数都是因为忽视了职场软技能。这些人的特点大多是性格耿直、脾气暴躁、眼里容不了沙子、斗天斗地斗空气。而且,大部分情况下,他们都会觉得自己做得很好,领导不识货,同事都没他强。
职场不是学校,影响你向上发展的因素很多,肯定不是单靠技术,所以,学生思维要不得。在上学的时候,学得好坏,一份试卷见分晓。要想成绩好,闷头学就行了,你也不需要什么团队合作。但是,毕业之后,技术的好坏、代码写得好坏、活干得好坏,就没有那么容易客观评价、量化评价了。所以,这就会出现你自己觉得工作做得很好,而领导却不这么认为的情况。
而且,技术好其实并不代表贡献多。我也见过很多技术好的人,比较爱自嗨,成天鼓捣些高精尖的技术。实际上,不管是从短期还是长期看,这些技术都没有给团队、公司带来收益。当然,我也并不是完全摒弃个人成长,让你完全奉献给公司。我只是觉得,作为员工,要学会跟公司共同成长。只有你的成长为公司的成长贡献了力量,为公司、为领导解决了问题,公司才愿意为你的付出买单,你才有升职加薪的机会。
总的来讲,要想职场混得好,一些必须的沟通、协作、总结汇报等软技能还是不能忽视的,当然,我也不是推崇,纯靠“耍手段”上位。我只是觉得,这方面起码不能成为你的短板,不要让这些非技术、非能力的因素,阻碍了你职场的发展。
感谢小争哥,句句扎心
来源极客时间:https://time.geekbang.org/column/article/257513

程序员怎么才能让自己走得更高、更远?相关推荐

  1. 程序员感悟----路该怎么走

    有一句话我一直记得很深,"当人深处迷茫之中时早已不再迷茫".很绕很矛盾的话,也可能有人听到后会马上跳脚喊,我一直迷茫怎么还是迷茫呢?呵呵.静一下想一下再喊. 大家都这么大了,路该怎 ...

  2. 程序员怎样才能达到编程的最高境界

    程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界.即使是这样的高手,那也都是无知者 ...

  3. 菜鸟程序员如何才能快速提高自己的技术

    导语:很久没有这么悠闲的在家撸一篇文章了,最近也在思考怎样才能写一些对程序员帮助非常大的文章,怎样去运营好我们这个移动开发者聚集地的公众号:非著名程序员.当初弄这个公众号的本意就是为广大的开发者提供各 ...

  4. 快七夕了,程序员怎么样才能找到女朋友?

    一直以来程序员都给人高智商低情商的印象. 不懂浪漫不会哄女生. 心中的浪漫只有:编译原理,图形学,操作系统. 但有一个程序员却写下了这样的句子: "你好哇,李银河.告诉你,一想到你,我这张丑 ...

  5. 程序员怎样才能写出一篇好的技术文章

    来源:http://droidyue.com/blog/2016/06/19/how-to-write-an-awesome-post/ 首先,这算是一篇回答知乎问题 程序员怎样才能写出一篇好的博客或 ...

  6. 如何在程序员这条道路上走得更远

    在外企呆了1年半了,经常反思自己为何那么失败,该是进行一个总结的时候了,出发点是思考如何让自己在程序员道路上走得更远. 为何选择程序员行业? 如今各种各样的编程语言都出现了,出现了不同计算机语言的程序 ...

  7. 女性程序员的职场现状,00后女生更愿意成为程序员!

    女性一直是程序员职场的"稀缺物种",不过情况正在发生变化. 10月24日程序员节当天,腾讯课堂联合猎聘正式发布<中国女性程序员职场力大数据报告>,报告显示程序员领域不再 ...

  8. 小白程序员怎么由量变到质变写出高质量代码

    小白程序员怎么由量变到质变写出高质量代码?很多老程序员从事开发多年,有这样一种感觉,查看一些开源项目,如Spring.Apache Common等源码是一件赏心悦目的事情,究其原因,无外两点: 1.代 ...

  9. 程序员面试第一步:如何让你的简历更受青睐,阿里面试官总结了四点

    本文转载自:程序员面试第一步:如何让你的简历更受青睐,阿里面试官总结了四点 简历是面试的敲门砖.除非你是内推,或者知名大佬,招聘人员仔细了解你,一般是从读简历开始的. 简历在以下两个场景中有关键作用: ...

最新文章

  1. 基于Python的MORSE音频的波形和频谱
  2. Android调试的必杀技——反汇编
  3. j2ee html5,HTML5+J2EE实现文件异步上传
  4. SIGIR 2019 开源论文 | 结合答案信息的重复问题检测方法
  5. selenium-入门与安装-0223
  6. 关于wamp5中(apache)设置虚拟主机
  7. 可视化数据展示工具ChatSQL
  8. 【WPF】WPF 命令
  9. 电脑右下角音量键打不开,调不了音量大小的解决方法
  10. 搭建自己的框架WedeNet(五)
  11. 【媒体聚焦】“我们为什么要为景安点赞”——记景安网络十四年峥嵘岁月
  12. 传感器与检测技术基础 复习提纲 考试不挂科专用版
  13. 气象数据分析之EMD方法介绍及python的实现
  14. jQuery删除元素---remove()与empty()
  15. # HNOI2012 ~ HNOI2018 题解
  16. 计算机辅助审计学心得,计算机审计学习心得体会范文
  17. LeetCode算法刷题-URL化和重新排列字符串
  18. 【Java 数据结构 算法】宁可累死自己, 也要卷死别人 12 红黑树
  19. Roslyn 编译C#代码
  20. Crytek CryEngine 3新特性完全详解

热门文章

  1. AHCI,SATA,NVME
  2. 平板时代即将到来,写在即将发布Win8 Surface平板和iPad Mini之际
  3. 单词拆分(动态规划)
  4. 产品经理与工程师的换位思考
  5. 无人机飞控技术最详细解读
  6. 中国智能农业行业市场供需与战略研究报告
  7. 华为路由模拟器3.0参考实验8----单臂路由无法ping通问题分析
  8. 2.Collection、Iterator迭代器、泛型、斗地主案例
  9. 全闪存存储、混合闪存存储
  10. 谈谈养老保险的那点猫腻 我愤怒了!