你们这些程序员,真得每天都在读代码吗?
点击上方“
CSDN
”,选择“置顶公众号”
关键时刻,第一时间送达!
近日,外媒上的一篇文章震惊了我,它赤裸裸地写道:你们这些程序员们,真得每天都在读代码吗?多数人阅读代码的数量远远不够。
文中提到,在Peter Seibel撰写的“Coders at Work”一书中描述了这样一个矛盾的现象:“几乎所有的程序员都建议他人通过多读代码获得乐趣,但自己却往往做不到。”甚至他还直接向麻省理工学院计算机科学系教授 Hal Abelson寻求答案:
“我想更深入了解一下。像很多人一样,您也常常建议程序员应该多读代码。然而,当我问到您是因为读了哪部分代码而受到启发或感到娱乐时,您同其他人一样,回答说‘是因为您阅读了学生的代码’,而这是您的工作,‘在谷歌review代码’,而这同样是您的工作。从头到尾,这都听起来不像是您在某个夜晚心情愉悦地读一段代码的样子。”
为了搞清楚这种现象产生的原因,Seibel几人展开一番讨论,并给出了精彩见解,不过,或是由于过于聚焦“读”这个词,使得他们的思考局限于某一个框架,考虑的问题跟着带跑偏了。
实际上,我们都读过代码,但基本是需要编辑的时候才会选择读代码,
而只有当遇到复杂问题时,读代码这件事才变得异常重要。毕竟,有程序员就曾抱怨:“一坨几千行的代码,整个业务逻辑都放在里面,注释也不写全,谁能看懂?”而为了养成这种读代码的好习惯,作者
Kartik Agaram从另外一个角度给出了自己的见解——破解程序法读代码。
这种破解程序法比“被动地”、“线性”阅读能产生更好的理解,且基本满足以下三个特点:
主动探索:
当你想要破解一款程序时,你最终希望要对代码库进行修改,恰恰是这个欲望引导着你一步一步读着代码;
大幅修改:
同样,此时你会根据想要进行的修改对现有代码进行评估。决定用什么和删除什么迫使你
对现有系统
保持一副排斥的态度。而如果你以线性的思维读代码,你会发现:你基本无法批判性地检查代码;组合:
为了改变你想要的程序,你可以将新代码与现有代码进行组合。
通过破解程序的方式学习代码,还可以调用某一个代码库的自然结构。一本好书就是通过一系列问题和答案来引导读者的,而代码库本质上是非线性的,像地图一样,你可以不停地向地图寻找答案,但你不能指望地图告诉你要问什么问题,因为从左到右、从上到下地线性读取地图是没有意义的。
此外,过度沉迷于干净代码和整洁界面的讨论,使得我们忽略了一件事:对不熟悉的代码愈加避而远之。对于程序员而言,整洁,意味着有据可循,但如果我们想要另辟蹊径时,反倒是累赘。
所以,或许只有当你再也听不到老大review代码的声声抱怨时,就说明已经你已经进步了~
快来投票
参考链接:http://akkartik.name/post/comprehension
招聘
新的一年已经到来,「CSDN」公众号的目标更加明确,有更多的想法需要落地,不过目前对于小姐姐来说是“现实跟不上灵魂的脚步”,因为缺人~~
所以,「CSDN」公众号要壮大队伍啦,
现招聘业界与技术资深编辑记者、资深新媒体运营,有意者请将简历投至:
tangxy@csdn.net
,期待你的加入!如果你暂时不能加入我们的队伍一起并肩战斗,也欢迎加入「CSDN」作者大家庭,与所有「CSDN」的朋友们分享你的精彩文章,投稿邮箱:
yangli@csdn.net
除了以上两项,如果你热爱技术分享,想要获得更广的视角和更前沿的技术探索,你还可以加入「CSDN」的译者群,利用业余时间,在尊重版权的前提下,翻译对中国开发者极有价值的文章,有意者请将简历投至:
guorui@csdn.net
————— 推荐阅读 —————
点击图片即可阅读
- 你老了吗?这些变化是你提前衰老的佐证
- 你有每天早上有坚持一个鸡蛋吗?身体会出现这些变化
- 身体缺少这些东西,最容易长白发,别再傻傻染头发了
- 血管一堵会要命,生活中坚持2戒且不能吃这些食物
- 高龄怀孕,是用命在博!光这些妊娠病,就够“磨人”了
- 女人来大姨妈,这些食物一定要多吃,排出子宫污血,身体更健康
- 别再坐凳子了!站起来利用凳子做做这些动作,帮你健身
- 今年960万人将死于癌症 这些习惯让越多中国人患癌
- 手上什么会长小水泡?这些细节千万要注意!
- 健身只能练皮肉?肺活量有什么用?这些问题也很重要!