zoukankan      html  css  js  c++  java
  • 2018第52周日&技术人员如何面对裁员?

    2018的最后一周,看了汽车的两个趋势,纯电动车和自动驾驶,两个现在很火但还有很多问题要解决的方向,尤其是自动驾驶。虽然它因为一些问题当前不能完全被克服,但因它而生的各种辅助驾驶技术却被用的越来越多,比如自适应巡航控制ACC,尤其是全速自适应巡航,人只要控制方向盘,而启停加减速汽车可以自动控制,但人的操作还是高优先级的,比如在ACC模式时踩刹车就会自动退出。


    回顾过去不到一个月的时间里,爆出裁员的互联网公司有多少?京东裁、去哪儿裁、知乎裁、美团裁、微博裁、锤子倒……当然以上所有消息都被官方辟谣,但……你懂的。
    就像管道工一样,他们获得报酬,是因为他们了解自己所使用的工具,并知道如何使用它们让设备运转起来,而不是让他们重新发明技术,或者花 80 个小时去优化只有 5% 的用户会用到的东西。

    中小型企业很少会去处理与规模扩展或优化相关的问题——一部分原因是硬件变得越来越便宜,一部分原因是基础的开源软件已经做得很好了。

    所以,企业一方面想网罗最优秀的人才,以便在重大的时间节点、关键时刻能够物尽其用(但通常没有这种情况),另一方面只派给这些优秀人才以增删查改的日常工作,最终那个优秀的小王都成了 Crud Boy。
    当我们聊技术实力的时候,我们到底在聊什么?

    有的人认为:技术实力就是指算法和数据结构很厉害……

    有的人认为:研究过 Linux 内核源码和看懂《深入浅出 MFC》的才是技术牛逼的人……

    有的人认为:会写 C++ 的才是真正的技术高手,因为 C++ 的对象初始化有 N 种写法……

    有的人认为:技术高手必须对业务很熟悉……

    有的人认为:贡献了开源项目代码的才是技术牛人……

    有的人认为:只有架构师才是技术大牛……

    其实简单来说,判断技术实力的一个总的原则就是:技术实力就是指解决问题的能力!
    问题是和领域相关的,技术是用来解决问题的,因此技术也是领域相关的,不存在放之四海皆准的技术。
    当我们聊技术实力的时候,我们到底在聊什么?

    有的人认为:技术实力就是指算法和数据结构很厉害……

    有的人认为:研究过 Linux 内核源码和看懂《深入浅出 MFC》的才是技术牛逼的人……

    有的人认为:会写 C++ 的才是真正的技术高手,因为 C++ 的对象初始化有 N 种写法……

    有的人认为:技术高手必须对业务很熟悉……

    有的人认为:贡献了开源项目代码的才是技术牛人……

    有的人认为:只有架构师才是技术大牛……

    其实简单来说,判断技术实力的一个总的原则就是:技术实力就是指解决问题的能力!

    1)不存在放之四海皆准的技术

    简单来说,问题是和领域相关的,技术是用来解决问题的,因此技术也是领域相关的,不存在放之四海皆准的技术。

    有网友说:高斯林来做 iOS 开发,分分钟秒杀现在所有的 iOS 开发人员,因为目前 iOS 经验最丰富的开发人员,经验也不过 10 年。我认为这是不可能的,iOS 开发领域面临的问题,和开发 Java 编程语言面临的问题差异很大,当然,如果高斯林真的做上几年 iOS 开发,确实可能超过很多 iOS 开发人员,但一开始就秒杀哪些做了 7~8 年的 iOS 程序员,这个是不可能的。

    2)技术要能解决具体问题才有价值

    技术只有能够解决某个领域的问题才有价值,否则光知道某个技术没什么用;掌握了某个技术但在当前的领域用不上,这个技术对当前领域来说也没有价值。

    当然,确实存在某些技术可能在当前看起来对当前领域没有用,但后面可能会用到,因此技术人员需要自己储备一些当前暂时没有用的技术以拓宽技术视野,例如当前大火的人工智能和区块链技术,但要注意“可能”这个词,这需要技术人员自己进行判断和平衡,不能拿技术储备作为托词一股脑的什么都储备,例如数据库开发工程师至少在这几年是不需要储备 VR 知识的。

    3)问题的复杂度决定技术实力的高度

    问题的复杂度不同,复杂度越高,解决起来越困难,相应的技术实力要求也越高。

    打个比方,很多面试官喜欢让面试者现场手写冒泡排序、快速排序、链表之类的代码,以此来判断面试者的技术实力,但我们用这个原则去分析一下就可以发现,这样并不能考核技术实力,假如招聘了一个会手写快速排序的面试者,招进来后你会让他用自己写的快速排序解决什么问题?貌似绝大部分场景下都不可能让一个新来的员工自己写个快速排序来解决某个问题吧?

    我们该如何自处?

    我们生活在一个大多数“软件工程”基本上就是管道作业的世界里。我们该怎么办?这对于我们的职业生涯来说意味着什么?现金流会一直持续下去吗?

    1、用更少的资源构建更多有价值的东西。

    首先,我们应该认识到并接受这样的一个事实,即我们可以用更少的资源构建更多的东西。也就是说,我们工作中不是那么有价值的部分可能进行自动化,或者构建工具,让业务人员为我们做这些工作。例如,每当我的团队中有人想要修改自动电子邮件副本时,我就要去修改代码。而现在,他们只需要在可视化编辑器中编辑模板,我甚至都不知道它们被改过了。

    2、充分考虑系统的复杂性,尽量不重复造轮子,解决真正的问题而不是重复解决已解决过的问题。

    其次,我们在设计系统时需要考虑到系统的复杂性。如果有现成的解决方案,那么就用它,不要再从头开始构建。我们要学会组装零件,这样就可以比那些每次在启动项目时都要自定义构建框架的软件工匠更高效、更快、更好。

    3、降低期望值,很多时候你没有自己想象的那么重要,完成远胜于完美。

    第三,我们应该设定切合实际的期望。大部分编码工作都只要求 CS 学位,而这些工作所涉及的内容可能只比知道如何导入库和了解 HTTP 原理多那么一点点。不过确实有些工作需要进行微优化,但这类工作可能很少,而且离我们很远。你的软件可能没有你想象的那么特别。

    4、持续学习,加强知识的广度和深度。

    最后,不要陷入了舒适区而不能自拔。这并不是软件工程师的普遍看法,但我相信在这个领域里,有很多人拿到的报酬已经远远超出了他们所从事工作的难度。有时候是因为他们是这个领域唯一知道怎么做这些事情的人,有时候是因为他们所在的公司无法从人才市场上招到更好的人,有时候是因为其他工程师故意过度设计,这样初级开发人员就需要花费很长时间才能理解它。无论如何,如果我们想要保持高薪和不被踢出局,就不能停止学习。加强知识的广度和深度,并学会如何将炒作从真正的突破性技术中过滤掉。

    来源:InfoQ(ID:infoqchina)

  • 相关阅读:
    springmvc 方法参数自定义的解析
    numpy生成随机数组,超几何分布与连续分布
    机器学习笔试知识点
    梯度下降(Gradient Descent)小结
    numpy傅里叶变换
    numpy奇异值分解,广义逆矩阵与行列式
    numpy求解特征值和特征向量
    Scrapy简单介绍
    python异步库twisted
    同步,异步,阻塞和非阻塞的通俗理解
  • 原文地址:https://www.cnblogs.com/doit8791/p/10199067.html
Copyright © 2011-2022 走看看