持续学习——程序猿的军备竞赛

  “持续学*”是几乎所有大神都会给菜鸟们的建议之一,这个概念也不是最*被提出来的,早在两千多年前古希腊哲学家梭伦就提出“活到老学到老”,这可算最早的“持续学*”。*些年来持续学*在IT领域里又不不断被提及,程序猿们成为持续学*最大的一群实践者,我从没看到过那个其他行业的普通员工要像程序猿一样学*那么多东西(也可能是我少见多怪)。

究其原因,我觉得有这样几点。

技术涉及面广
  有些人在公司承担着很大的责任,可能什么Spark、数据库、网络、linux……都得懂一些,要知道这随便一个方向,都有耗费一个人几个月甚至几年的能力。但幸运的是其实你不用知道太深,够用就好了。但这个“够用”可能是实际工作中够用,但面试中不够用。

轮子多

  这点貌似在前端领域尤其明显,像前端框架有什么react、angularjs、vue……,每个框架目的都是为了简化前端的开发,但在具体实现上各自不同,而且各自有各自的优势,缺少一个集大成者的框架。了一个原因是计算机行业细分领域比较多,有些领域比较新,缺少一种工具,然后有人就会跳出来开发一个。另外可能会有人觉得这个工具不好,再开发一个,需要经过长期的技术迭代,才会逐渐有个比较成熟的工具和框架。

技术迭代快
  计算机行业一直在追热点,10年11年比较时髦的物联网,后来的大数据与云计算,区块链、机器学*,深度学*,AI,AR,然后今年的5G…… 还有很多比较小众的热点。有些确实是炒作出来的热点,啥实质性的东西也没留下,有些确实给整个技术行业带来的变革。但是追上了某个热点,对于程序猿来说就是加薪 加薪……。毫无疑问,这些热点都是技术快速迭代的产物,要想追上这些热点就意味着你得学*。

行业竞争压力大
  计算机行业的高压力很多人都有耳闻,996是经常的事,996ICU几个月前还火了一把。但依旧有好多人拼命往计算机行业里挤,而且之前网络统计,计算机专业成为了高考考生的新宠,为什么? 其实就是因为程序猿的工资高啊,之前看数据某国内top10院校毕业生5年后的平均薪资,可以被一个渣本院校刚毕业的程序猿秒掉,就这样,大家当然想做程序猿了。但大批人的涌入,各个公司对程序猿的要求也水涨船高,你不学新东西,如果有一天你被裁,你连其他公司面试都过不了。之前在油管看某个硅谷大佬的视频,几年前leetcode你随便刷100-200题,基本上硅谷哪些公司可以随便选,现在远远不够了。 国内在以宇宙条为代表的公司不懈的努力下,刷leetcode的军备竞赛已经逐渐开始了。

  互联网行业,随着大家学*的热情越来越高,线上培训也越来越多。像之前,好多人遇到技术问题都是上网查博客,查官方文档,有想法的人还会在问题解决之后写个博客,方便其他人。现在不行了,好多人都等不到问题发生的时候,都想着在问题发生前学会问题的解决方案。这当然是个好事,未雨绸缪,等到问题真正发生时从容应对,但有些不良商家或者个人借机牟取私利,借机推出一些《为什么程序猿都该懂点xxx》之类的课程,赚取你的血汗钱。要知道报班就像办健身卡一样,你是为了提升自己,但公司只是为了赚钱,如果你报了一次都不去,你这钱不就是打水漂了吗。我敢肯定,肯定有好多人报班和办健身卡一样,报了就没下文了。

  抛开那些一开始就放弃的人,那些人肯定很难提升自己。我们来说说那些坚持下来的人。你以为你自己把课程里的内容仔仔细细看一遍,你就会了?too young too simple, some time naive!还差的远呢。就拿最*很火的极客时间为例,我感觉好多课程都是在以一种科普的形式来给你讲述某个东西,当然我不是说这种方式不好,但这种方式有个缺点就是可能会有些浅显。所以意味着你学了也许只是学了表面一些花里胡哨的东西,而内功毫无提升。

  当然我不是diss极客时间的课程,其实里面有好多好课,我个人已经买了20多个课程了(如果内容质量差我是不会买这么多的)。说下我的感受,有些课程我学的比较轻松,比如《linux性能优化》《计算机网络》,因为我之前做过两年的运维,好多问题是我曾经实际遇到过的,当时我解决不了别人解决了的,但这个问题曾经我心中盘踞了好久的,这些课程给了我曾经苦苦思索好久的答案。我之所以学的轻松,除了老师讲的好之外,比较重要的一点是我理解这些问题之后的背景,我已经有足够的基础了。

  当然我肯定也买一些对我毫无用处的课程,比如《机器学*40讲》《go语言核心36讲》…… 很多都没看,都是一时冲动买下来的。因为目前我也不从事这些领域,虽然感兴趣但没有什么精力去学。但是如果我以后有时间精力还是会回过头来看下这些内容的。发表下我对极客时间课程的感受:你能很轻易看懂的不一定是好课,因为你可能很多都会了。你很难看懂的不一定是坏课,可能你基础不够。但是能启发你思考,给你实践带来指引的,一般都是好课。

再回到“报班”这个话题上,首先大家理性报班,不要被标题软文一忽悠就乖乖掏钱,你得评估自身需求,合理规划自己的时间精力之后再报。另外现在在线培训机构课程众多,内容质量良莠不济,做选择时要擦亮自己的眼睛,选择一些口碑平台比较好的课程。

  说了这么多,再来说下持续学*的负面。没错“持续学*”,一个积极向上,非常正能量的词,也是有负面的。很多程序猿都会在业余时间刷下脉脉匿名圈,圈子里除了哪些秀offer、秀收入让人很酸的内容外,还有一些是对面试的吐槽。其中比较有名的有那次关于头条面试手写红黑树的吐槽了,现在已经演变成头条自带红黑树buff的梗了。除此之外,还有很多面试都是问的绝大多数人实际工作中完全不会用到的东西。如果所有的面试都这样,再加上*年来各种裁员、996的的新闻,越来越多的程序猿势必会以面试为导向提升自己,可能会花费大量时间精力学*一些完全无用的技能。“面试造火箭,入职拧螺丝”这一说法也不是空穴来风。
  
  为什么越来越多的公司会在面试上来难为应聘者?我简单分析下并谈谈我的看法。

求职者越来越多,其中不乏滥竽充数之人
  当竞争越来越激烈的时候,坑就那么多,当然得提升通过的门槛。拿什么来筛,肯定不能用有些人人都能快速学会的东西筛啊,所以好多面试官都会选择用算法题,或者有些框架的细节来面试,这些都是需要大量时间积累大量的练*才能学会的。

喜欢炫技的面试官
  首先我觉得这是为人的问题。这种面试官的都是拿自己擅长的冷门知识点去面别人,比人上面说的头条的手写红黑树,我猜测可能就是出自这种人。如果遇到喜欢炫技的面试官,除了自认倒霉外,可以尝试翻转主动权,要让对方绝对你比他牛逼(瞎说的),实在遇到人品不行的,可以反怼回去。

不合格的面试官
  有些公司有些团队可能都比较年轻,资历尚浅,不懂的挖掘出候选者背后的潜力。他们常用的面试方式是拿自己会的去面别人,相当于拿自己所在的知识圈去圈候选者的知识圈。人人都有自己的知识盲区,都有自己的擅长点,如果面试官这样面,最后看到的肯定只有交集那部分,很可能会错误估计候选者的能力,错失人才。当然如果面试官的知识圈足够大,这样也没问题,怕就怕面试官自己都能力不够。所以让新人去当面试官,除了对候选人的不尊重外,也可能会得出错误的面试评估。

对候选人不合理的要求
  上招聘网站随便找个岗位看下职位要求,我相信他们组内很多人都达不到,这些要求可能就是想让这个岗位显得高大上一些,当然也增加了面试的难度。

  如果你想跳槽,你肯定得考虑到上面这些问题。你不可能改变面试官,你能改变的只有自己。面试官不合格,你只能尽可能释放出更多的光辉让他看到。所以努力学*吧,去刷leetcode,去看框架源码,你只要学的比别人多,你肯定能脱颖而出。但是你也别忘记了,别人也在学,所以这就是一场知识的军备竞赛,谁停下来谁死、谁慢谁死、谁低效谁死。

  持续学*的人,除了真正想提升自己的,除了面向面试学*的,还有一波面向自我安慰学*的,这些人学*只是为了缓解自己的知识焦虑。我相信大多数人都有一颗上进的心,但很少有人真正有上进的执行力,这些人可能觉得看一篇博客、看一本书就会有提升,以为简单付出就会有收获,所以持续学*成了他们的安慰剂,缓解了他们的知识焦虑。最可恨的是还有好多人靠贩卖知识焦虑来挣钱。

  最后,理性看待持续学*,不要随波逐流,不要随意追热点,不要轻易放弃。我刚毕业那会儿,因为技术太差,而且缺乏正确的指引,所以一直啥都想学,当时是做运维,就学linux、python,后来学docker,再后来学java,而且曾经还花时间学过机器学*,没一个学精的,都是略懂皮毛。转开发之后,主力学java,现在也能算是一个合格的java工程师了。学了这么多,最大的体会就是自己的时间精力有限,要学会合理分配利用,还有一点是基础东西才是最优价值的,比如什么正则表达式、gc都在《编译原理》(龙书)里有介绍,感觉编译原理会为你铲除很多技术的学*门槛。

posted @ 2019-08-02 12:22  xindoo  阅读(978)  评论(7编辑  收藏  举报