2022年,学点技术管理(九)

104 阅读2分钟

每个工程师都应该了解的:大数据时代的算法。

白板理论认为:婴儿是一块白板,可以通过后天学习和训练来提高智力。AI 的先驱图灵认为,只要能用机器制造一个类似于小孩的 AI,然后加以训练,就能得到一个近似成人智力,甚至超越人类智力的 AI

自学成才的 AlphaGo Zero 最大的突破在于实现了“白板理论”。

算法比所谓的计算或数据量更为重要。一个合格的程序员,必须掌握算法。

学习算法的用处

  1. 算法是面试的敲门砖。

    算法要熟悉到能够现场短时间内写出正解。

  2. 编程时用到的更多时算法思想,而不是写具体的算法。

    实际工作中真正需要使用算法的机会,应该在 10% 左右。

    更多的是对业务逻辑的理解,对程序语言各种特性的熟练使用,对代码风格和模式的把握,各种同步异步的处理,包括代码测色、系统不是是否正规化等等。

    但是熟悉基本算法的好处在于:如果工作需要读的一段代码中包含一些基本算法思想,会比不懂算法的人更快理解代码含义。读到一段烂代码的时候,知道为什么烂、烂在哪、如何去优化。

    当真的需要在程序中设计算法的时候,熟悉算法会给出一个更为完备的方案,对程序中出现的算法或比较复杂的时间复杂度问题会更敏感。

    熟悉算法还可以成为一个更优秀的面试官,和别的工程师聊天是不被鄙视。

  3. 不精通算法的工程师永远不是好工程师。

    我们每天接触到的各种技术中,算法无处不在。

    对算法本身的理解和把握,永远是深入了解系统不可或缺的一环。

小结

  1. 在大数据时代,数据和算法同等重要,甚至算法比计算能力或数据更为重要。
  2. 如何学习算法:读经典著作、做题,然后在实践中阅读和使用算法。
  3. 算法是面试的敲门砖,有助于得到一份自己喜欢的工作。
  4. 写程序中用到的更多是算法思想,而不是写具体的算法。
  5. 只有对各种相关算法有详尽理解,才有可能做出最优的方案。