博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快看|程序员的大脑有什么不同?
阅读量:5784 次
发布时间:2019-06-18

本文共 1845 字,大约阅读时间需要 6 分钟。

hot3.png

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。

21世纪是程序员的世纪。对程序员的需求比大部分岗位的需求都要高。那么程序员需要掌握哪些技能呢?程序员的大脑跟一般人有什么不同呢?菜鸟和专家 程序员的大脑又有什么不同呢?如何才能提高程序员的能力呢?​

为了做好劳动力储备以应对此需求,大家开始考虑如何对编程技能进行分类。特定类型的人会不会更有可能在编程的角色取得成功呢?​

关于软件开发,我们所知道的是它需要若干重要的核心技能:

分析——开发者必须分析需求然后做出满足这些需求的解决方案。

创造力——软件开发者必须能够设计软件组件和系统,并且让这些东西共同满足需求。

沟通——软件开发者必须能写出易于理解的软件,给软件写文档,并就软件功能与同事及潜在用户进行沟通。

人际技巧——软件开发者频繁地以小组的方式一起工作,需要跟若干其他开发者就系统展开协作,要跟经理或者客户进行沟通,还要跟视觉设计师进行交流等……

学习——技术的变化之快令人眼花缭乱。软件开发者必须成为专家级的学习者,要能够适应不熟悉的框架,并且迅速形成生产力。

面向细节——开发者必须考虑周到,既要考虑快乐路径或者说理想情况下的用户交互,又要照顾到连接失败、预期之外的输入等情况

面向大局——开发者必须能够把控好应用的整体架构:确保不同组成部分拼凑到一起能够运作和交互。

数学与抽象——软件开发者必须对抽象和计算模型感到舒服。功能代表了一切,数学公式、网络通信、屏幕显示,还要处理用户输入。

逻辑——开发者必须能读写可能很复杂的逻辑,对切换和流控制进行处理。

考虑到沟通和人际技巧对于软件开发者来说是重要技能,再考虑到事实上“语言”也属于“编程语言”的一部分,所以在对计算机科学专业的学生在阅读代码过程中发现他们的大脑语言中心被自己激活也就不足为奇了。​

研究发现,大脑跟语言处理、工作记忆以及注意力相关的特别区域被激活了。而尽管阅读代码涉及到数学、迭代以及条件分支,但是大脑通常跟数学和逻辑相关的区域并没有被激活。​

专家大脑与菜鸟大脑​

专家大脑和新手的大脑通常是很不一样的。比方说,菜鸟钢琴手开始学习一段新乐谱时,他更多要考虑的是怎么弹——这项任务主要就是把琴键按对就行。

而 专家级钢琴家在弹奏已经转化为肌肉记忆的曲目时,乐曲几乎到可以自行弹奏的地步了。这有点像学骑自行车跟有经验的骑手来一次急转的区别。菜鸟自行车骑手会 担心摔倒而努力保持平衡。而有经验的自行车骑手知道,只要轮子还在转并且身子重心还保持在车上,车子基本上就不会倒。可以说基本上他们已经进入了自动驾驶 模式,并且很可能根本就不会考虑平衡或者摔倒的事情。

随着你学习新技能,你的大脑就会发生改变,可以适应新的挑战,并且学会重新调整自己,以便迎接这些挑战的同时少费一些功夫。​

音乐家的大脑与软件开发​

音乐家的大脑

前面我们说过,计算机科学专业学生阅读源代码的时候会激活大脑与工作记忆相关的区域。有研究表明,音乐家的大脑强化了工作记忆能力。​

那有没有可能音乐人的大脑已经组织成了正好有利于软件开发者的形式?科学家对音乐家的大脑进行了功能磁共振成像研究,结果发现演奏乐器可以让大脑得到最好的认知练习,效果比研究过的大部分其他活动都要好。

演奏乐器激活了大脑的许多区域,并且在大脑的不同区域建立起了更强的联系,包括左脑(负责逻辑、分析、语言等)与右脑(负责创意、想象、直觉、可视化等)之间的连接,而高效软件开发就需要左右脑的配合。

考虑到软件开发者需要不同的认知技能,我们开始发现,弹奏乐器也许是练习大脑的很好方式,可以有利于你的软件开发工作。​

结论

程序员的大脑是不是跟别人不一样?有很好的迹象表明,程序员强化了自身的工作记忆能力,提高了语言处理技能,增强了分析技能,可能还强化了海马体能力(这个区域我们还需要大量新研究来验证这些猜想)。​

好消息是,同样也有很好的迹象表明,神经可塑性、练习以及训练对于软件开发者的认知能力强化是有帮助的——未必需要遗传素质(尽管这很可能也扮演了一定角色)。​

只要加以练习,你的大脑就会强化并且重新组织自己来为你的工作提供火力支持。​

如果你想了解更多Java资讯,希望从事技术相关的岗位和领取Java学习资料,欢迎关注“北京尚学堂”微信公众号​

更多猛料!欢迎扫描上方二维码关注北京尚学堂官方微信公众号 ( 资料领取验证消息:156)

转载于:https://my.oschina.net/u/2947706/blog/775952

你可能感兴趣的文章
Tasks and Back stack 详解
查看>>
关于EXPORT_SYMBOL的作用浅析
查看>>
成功的背后!(给所有IT人)
查看>>
在SpringMVC利用MockMvc进行单元测试
查看>>
Nagios监控生产环境redis群集服务战
查看>>
Angular - -ngKeydown/ngKeypress/ngKeyup 键盘事件和鼠标事件
查看>>
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Python version 2.7 required, which was not foun...
查看>>
context:annotation-config vs component-scan
查看>>
exgcd、二元一次不定方程学习笔记
查看>>
经典sql
查看>>
CSS3边框会动的信封
查看>>
JavaWeb实例设计思路(订单管理系统)
查看>>
source insight中的快捷键总结
查看>>
PC-IIS因为端口问题报错的解决方法
查看>>
java四种线程池简介,使用
查看>>