这是真的:程序员的思维方式与其他人不同。
并不是说程序员必然比其他人更聪明、更符合逻辑或更理性,正如人们通常所说的那样。但是科学家最近开始研究程序员的大脑,并得出了一些有趣的结论。
正如艺术可以以各种方式塑造你的思维一样,计算机编程也会影响你的大脑和你的思维方式——也许是以你意想不到的方式。
先学哪种编程语言重要吗?对
这似乎有点不公平,不是吗?毕竟,我们大多数人是在学校第一次接触编程的,我们无法选择哪种语言会被强加给我们。我从C开始。那些比我年长的人可能是从FORTRAN、COBOL或BASIC开始的。你们这些新人呢?您可能是从Java或Python开始的。
毫无疑问:编程语言的设计塑造了你的思维方式。Edsger Dijkstra,历史上最有影响力的计算机科学家之一,当他说:
"The tools we use have a profound (and devious) influence on our thinking habits, and, therefore, on our thinking abilities."
他接着说:
"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence."
以及:
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
哎哟
从某种意义上说,所有编程语言都具有同样的能力,因为它们都是图灵完备的。但从另一个意义上讲,掌握一种语言会导致另一种语言的毁灭。Java程序员和Python程序员是两种不同的野兽,他们以两种完全不同的方式进行编码。
换句话说,您的第一种编程语言的范例和习惯用法影响甚至决定了您对数据结构、算法等的看法。
事实上,完全可以根据任务的处理方式和代码的编写方式来确定谁编写了匿名代码。任务越难,“去匿名化”就越容易
请参阅这篇关于代码测光术[不再提供]的论文和这篇代码测光术讲座成绩单:
"Programmers can obfuscate their variable or function names, but not the structures they subc***ciously prefer to use or their favorite increment operators."
在英语中,我们有一句谚语用一种简单易懂的方式概括了这一点:“当你只有一把锤子时,一切看起来都像钉子。”同样,一旦你学会了如何以某种方式编程,你就会很容易用这种方式思考所有问题。
因此,在选择编程语言时,要聪明小心!
人们常说大脑就像一块肌肉,如果你想保持敏捷,就需要锻炼它。这是真的吗?如果是这样,编程算不算是心理锻炼,足以影响大脑健康?
1991年的一项元研究考察了“计算机编程对认知结果的影响”,发现有计算机编程经验的学生在认知能力测试中的得分比没有计算机编程经验的学生高16个百分点。
1999年一项更大的研究发现并证实“智力参与活动有助于缓冲个体的[认知]衰退”,但也指出认知衰退可能导致较少参与智力参与活动。
2009年一项更大的研究得出了类似的结论,表明“晚年从事大脑**活动的人可以降低患老年痴呆症和其他类型痴呆症的风险[甚至延迟发病。”大脑**活动包括阅读、写作、拼图、棋牌游戏和玩音乐。
最后,2013年发表的一项研究发现,只有某些类型的心理参与才能真正培养出更敏锐的大脑,即高需求的认知活动,包括学习和智力困难。
当然,还需要做更多的研究,但很难想象有哪种认知活动比编程要求更高、更以学习为中心。
此外,尽管这些研究都没有表明智力活动能让你变得更聪明或更有能力,但它们确实表明,高要求的认知任务至少能延长你目前的大脑健康,并显著防止神经退化。
我们之前已经说过,开始学习如何编码永远都不晚,这些研究只是为了巩固我们的立场。编程对你的心理健康有好处!
根据2014年的一项研究[PDF],当程序员试图理解代码片段时,使用功能磁共振成像扫描观察大脑活动,大脑的五个不同区域参与理解源代码:
这意味着通过源代码工作主要使用大脑中通常与语言处理、记忆和注意力相关的部分。
值得注意的是,大脑中通常与数学和计算相关的区域几乎没有被记录下来——即使在理解涉及循环、条件、算术和其他算法操作的代码片段时也是如此。
当然,这项研究有点不完整,研究人员也承认:
但以下是我们可以解决的问题:
我们知道程序员经常检查源代码,无论是自己编写的还是属于其他人的代码。我们还知道,与从头开始编写新代码相比,程序员通常花更多的时间修复和重构代码。
因此,这项研究并非毫无意义。编程不仅仅是一种“左脑活动”,甚至有人可能会认为右脑程序员在这方面具有优势。
编程技能来之不易,但如果你坚持练习,它们会来的。查看我们掌握任何编程语言的技巧、我们关于编程日志的好处的文章,以及我们为自学成才的程序员提供的最喜欢的课程。如果您想尝试使用特定的编程语言,那么处理项目是一个好主意。检查如何学习C编程与这个初学者项目。
最后,我建议观看这些TED程序员演讲,其中包括各种可能对您有所帮助的提示、想法、灵感、动机和历史。
Join our newsletter for tech tips, reviews, free ebooks, and exclusive deals!
Click here to subscribe
通过这些TED关于编程的讨论,您将不会学习如何编程,而是如何成为一名程序员。知道如何编写代码只是编程的一个方面,坦白地说,这是一个较小的方面。懂得思考是关键。 ...
...教育方式。通过每天接受小规模的课程,你可以处理诸如编程、设计、应用程序开发、产品管理等主题。一个快速的网络搜索应该可以帮助你找到一个滴滴式的学习版本,无论你在寻找什么教育自己。 ...
...染。这不仅导致大量细胞死亡,而且被感染的细胞被重新编程,产生更多的寨卡病毒拷贝。研究作者认为,这些实验最终可以帮助医生找到新药,阻止病毒对未出生婴儿的伤害。 这项研究首次揭示了寨卡病毒如何导致孩子出...
...格,并给每个斑点分配了一个字母。然后,他们将各个点编程成绿色,按照顺序拼出《哈姆雷特》和《****》的文本,这些光点引导猴子按原始形式出现的顺序按下“字母”。这些猴子不用触摸鼠标或键盘,就可以一个字母一个...
...弄一个质疑一切的人,包括质疑自己嘴里说的话。以下是如何知道什么时候你可能错了,以及该怎么做。了解你的大脑我们倾向于认为真理是某种可测量的绝对真理,但事实是,两个人对同一事件的体验完全不同,不仅因为他们...
...莓皮、Arduino还是别的什么东西上,你至少需要知道一点编程知识。Hackster.io发布了一项调查,以找出人们认为最适合学习的三种语言。这项调查由来自世界各地的3000多人填写。他们绝大多数地把C和C++作为语言来学习,如果你从...
你知道睡眠不足不好,但你知道有多糟吗?这张信息图解释了所有可怕的副作用,如愤怒、渴望,以及每晚睡眠不足可能带来的不必要的风险。利用《神经科学杂志》、疾病控制中心和加州大学伯克利分校沃克睡眠实验室提供的...
...有的偏见。好消息是什么?如果你能掌握大脑的自然机制如何破坏你的思维,你就可以避免一些相当愚蠢的网上争斗。我不能不先说一个坏消息就继续说下去:读这篇文章的人可能不需要(而你们这些读巨魔的人可能不会因为这...
...识(这是我们在科学领域喜欢做的事情),那么这些预先编程的、专门化的系统是不够的。他们将被局限于知识,可以放在他们,所以这是很难真正发现新事物,创新或创造。因此,任何需要创新、发明或某种灵活性的任务——...
科学与科学主义的主要区别在于,科学是研究自然事物的性质和行为以及通过它们获得的知识,而科学主义则认为只有科学才能呈现关于世界和现实的真理。 科学是通过观察和实验对物理世界和自然世界的结构和行为进行系统...