本文作者仅代表个人观点。狗万官方
马克·扎克伯格写给威尔。是啊,似乎每个人都拥护过学习代码的重要性。这是一件很棒的事情。然而,学习如何编写代码并不仅仅是为了懂c++, Java和Ruby而是改变你的思维方式。
在斯坦福大学(Stanford),年轻的玛丽莎•梅耶尔(Marissa Mayer)最终放弃了医学预科的抽认卡,选择了计算机科学,因为她想学一些能让她成功的东西“批判性地思考,成为一个伟大的问题解决者。”
这是一个被称为计算思维的概念,由卡内基梅隆大学的Jeannette Wing推广开来2006年。Wing认为计算思维和阅读、写作和算术一样重要。抽象、模式识别和分类等解决问题的技能可以让你的日常生活更有效率。比尔·盖茨对此表示赞同他说:“学习写程序可以拓展你的思维,帮助你更好地思考。”
翼引用这是一个专业音乐家和计算机科学家的例子,他使用排序来找到表演所需的图表。他没有像其他同事那样一个一个地浏览这200张图表,而是先按字母顺序排序,然后再抽出标题。他比乐队成员早完成了比赛。
计算思维超越了算法和递归。它包括一些一开始看似显而易见的技能,但却能让程序员拥有正确的心态,成为更强的问题解决者:
问正确的问题。程序员提出问题以确保他们完全理解问题。2006年的一项研究揭示了程序员在软件发展过程中提出的44种不同类型的问题。
十几岁时,梅耶尔参加了一个科学夏令营,在那里她被一位客座讲师解决谜题和脑筋急弯的能力所折服。她逐渐意识到,他之所以如此与众不同,是因为无论你向他提出什么情况或问题,他最终都会“提出正确的问题,做出正确的观察”。
向梅耶尔学习,不要害怕提出问题。正确的问题将帮助你确定你需要采取的步骤来解决一个重大项目。澄清涉众的需求可以帮助您确定解决方案。
寻找低效率。程序员常说他们是地球上最懒的人。他们总是在寻找一种更简单、更有效的方法来做事。当你给一个非程序员和一个程序员同样的10个小时的任务时,非程序员会花10个小时手动完成任务。程序员将花费10个小时编写代码,只需点击一个按钮即可完成任务。
1975年,当盖茨坐下来编写微软BASIC时在比赛中,他一直处于紧张状态,试图让比赛变得越来越快。他一直在寻找效率低下的地方,坚称他不会“让那些东西悄悄进来”。
同样地,你应该总是批判性地思考你的业务。在效率方面,总有可以改进的地方。当你停止寻找改进的时候,你的业务就会变得低效。
抽象思维和划分。程序员总是着眼大局,必须抽象地思考。在一次采访中,盖茨表示,编程中最困难的事情是“在脑海中模拟程序将如何工作”,以及“完全掌握程序的各个部分如何协同工作”。
在某种程度上,你需要像电脑一样思考。确定输入(需求)和输出(问题)。然后找到一种方法来计算(连接)这两者。这个计算被进一步分解为更小的迭代,使您更接近输出。
就像程序员所做的那样,您可以将项目分解为更小的、易于理解的块。即使你处理的不是数千行代码,划分过程更容易管理。
如何开始思考。即使你不是程序员,只要学习基础知识就能让你处理问题的方式大不相同。最好的入门方法就是开始编程。有很多在线资源比如Codecademy和可汗学院。花点时间——甚至每天20分钟——开始钻研代码。
只要记住,掌握一门又一门的语言并不重要。而是要改变你的思维方式。