尼古拉斯·达内:有很多定义方式。首先,代码是使机器运行的程序。如果没有代码,我们的电子设备包括电脑、手机就没有生命。代码是让我们接近机器灵魂的方式,使机器能根据我们的需求而运作。它是一些通过算法来自动完成任务的句法。这是个定义。
但是代码也可以被定义为一种语言。因为它基于数学算法,我们过去倾向于认为它只是一个属于数学家和工程师的领域。但实际上,许多语言学者已经对编码和发明新的编程语言产生兴趣。有些人甚至用代码写诗!斯坦福大学的学生就创立了一个俱乐部,将诗歌和编程融合在一起。代码完全可以被视为一种说话和表达方式。
从某种意义上说,学习代码和学习一门外语相似:开始会很艰难,但渐渐地,我们开始理解语言的逻辑性——每个人都有能力掌握它,因为说话谁都会。
从机器语言、到面向对象语言,编程代码的演进历史就是不断地抽象。这一路上我们还在操作系统的作用下得以开发出更好的基础设施。大家很快意识到自己可以在这些基础设施之上编写出更复杂的程序,然后继续开发出更复杂的软件架构。
在机器学习的推动下我们现在进入了软件开发的新时代。IBM 的 Watson 和 Google 的 AlphaGo 已经证明数据>算法。或者更地说,数据就是算法。但是现在你需要非常特殊的技能才能开发出机器学习解决方案。工程师和数据科学家仍然需要对机器学习算法进行编程,但终同样的系统会教它们学会如何通过分析自己的代码来改进自己。
代码,其实重要的用途就是编程来解决我们生活中的问题,所以不同的编程语言应用于不用的领域,它们并没有高低贵贱之分,只不过有些应用于商业化,有些应用于教学领域。而贯彻始终的重要的就是编程思维,编程思维是我们解决问题的一种方法,就是能够利用我们已有的知识和工具,将自身的思路转化成逻辑运算的步骤,从而完成复杂的任务。