你们这些程序员,真得每天都在读代码吗?
点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
近日,外媒上的一篇文章震惊了我,它赤裸裸地写道:你们这些程序员们,真得每天都在读代码吗?多数人阅读代码的数量远远不够。
文中提到,在Peter Seibel撰写的“Coders at Work”一书中描述了这样一个矛盾的现象:“几乎所有的程序员都建议他人通过多读代码获得乐趣,但自己却往往做不到。”甚至他还直接向麻省理工学院计算机科学系教授 Hal Abelson寻求答案:
“我想更深入了解一下。像很多人一样,您也常常建议程序员应该多读代码。然而,当我问到您是因为读了哪部分代码而受到启发或感到娱乐时,您同其他人一样,回答说‘是因为您阅读了学生的代码’,而这是您的工作,‘在谷歌review代码’,而这同样是您的工作。从头到尾,这都听起来不像是您在某个夜晚心情愉悦地读一段代码的样子。”
为了搞清楚这种现象产生的原因,Seibel几人展开一番讨论,并给出了精彩见解,不过,或是由于过于聚焦“读”这个词,使得他们的思考局限于某一个框架,考虑的问题跟着带跑偏了。
实际上,我们都读过代码,但基本是需要编辑的时候才会选择读代码,而只有当遇到复杂问题时,读代码这件事才变得异常重要。毕竟,有程序员就曾抱怨:“一坨几千行的代码,整个业务逻辑都放在里面,注释也不写全,谁能看懂?”
而为了养成这种读代码的好习惯,作者Kartik Agaram从另外一个角度给出了自己的见解——破解程序法读代码。
这种破解程序法比“被动地”、“线性”阅读能产生更好的理解,且基本满足以下三个特点:
主动探索:当你想要破解一款程序时,你最终希望要对代码库进行修改,恰恰是这个欲望引导着你一步一步读着代码;
大幅修改:同样,此时你会根据想要进行的修改对现有代码进行评估。决定用什么和删除什么迫使你对现有系统保持一副排斥的态度。而如果你以线性的思维读代码,你会发现:你基本无法批判性地检查代码;
组合:为了改变你想要的程序,你可以将新代码与现有代码进行组合。
通过破解程序的方式学习代码,还可以调用某一个代码库的自然结构。一本好书就是通过一系列问题和答案来引导读者的,而代码库本质上是非线性的,像地图一样,你可以不停地向地图寻找答案,但你不能指望地图告诉你要问什么问题,因为从左到右、从上到下地线性读取地图是没有意义的。
此外,过度沉迷于干净代码和整洁界面的讨论,使得我们忽略了一件事:对不熟悉的代码愈加避而远之。对于程序员而言,整洁,意味着有据可循,但如果我们想要另辟蹊径时,反倒是累赘。
所以,或许只有当你再也听不到老大review代码的声声抱怨时,就说明已经你已经进步了~
快来投票
scrolling="no" frameborder="0" class="vote_iframe js_editor_vote_card" data-display-style="height: 504px;" data-display-src="/cgi-bin/readtemplate?t=vote/vote-new_tmpl&__biz=MjM5MjAwODM4MA==&supervoteid=450663733&token=134550035&lang=zh_CN" data-src="/mp/newappmsgvote?action=show&__biz=MjM5MjAwODM4MA==&supervoteid=450663733#wechat_redirect" data-supervoteid="450663733" allowfullscreen=""/>
参考链接:http://akkartik.name/post/comprehension
新的一年已经到来,「CSDN」公众号的目标更加明确,有更多的想法需要落地,不过目前对于小姐姐来说是“现实跟不上灵魂的脚步”,因为缺人~~
所以,「CSDN」公众号要壮大队伍啦,现招聘业界与技术资深编辑记者、资深新媒体运营,有意者请将简历投至:tangxy@csdn.net,期待你的加入!
如果你暂时不能加入我们的队伍一起并肩战斗,也欢迎加入「CSDN」作者大家庭,与所有「CSDN」的朋友们分享你的精彩文章,投稿邮箱:yangli@csdn.net
除了以上两项,如果你热爱技术分享,想要获得更广的视角和更前沿的技术探索,你还可以加入「CSDN」的译者群,利用业余时间,在尊重版权的前提下,翻译对中国开发者极有价值的文章,有意者请将简历投至:guorui@csdn.net
————— 推荐阅读 —————
点击图片即可阅读
你们这些程序员,真得每天都在读代码吗?相关推荐
- 程序员真香!IT 业 2020 年平均工资最高
整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 5月19日,国家统计局发布2020年平均工资数据,随后,相关话题便冲上微博热搜. 程序员真香! 据国家统计局发布的数据显示,20 ...
- OSChina 周五乱弹 ——程序员睡不着都在想啥
2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @斑马_ :早早早,分享首歌曲给你们.南城. <南城>- ...
- 我猜,每个程序员对着电梯都想过调度算法吧
转载自 我猜,每个程序员对着电梯都想过调度算法吧 传统电梯调度算法 1.1 先来先服务算法(FCFS) 先来先服务(FCFS-First Come First Serve)算法,是一种随即服务算法,它 ...
- 为什么大学计算机老师不去大公司当程序员说出来你都很难敢相信
大学中的老师,人们的印象一般都是学识渊博.谈吐优雅的儒士,其实他们也是为了名利奔波,忙忙碌碌的.既然是为了赚钱,大学里面的计算机老师为什么不去大公司去做一名程序员呢?这样的话,赚的钱一定会比大学那点工 ...
- 程序员们逢年过节初一十五都应该祭拜哪些神仙?
程序员们逢年过节初一十五都应该祭拜哪些神仙? 发信人: RosejQue (苦人), 信区: Programming 标 题: 全球最杰出的14位程序员 发信站: 水木社区 (Thu Dec 18 ...
- 全世界的程序员们,为什么都不在意“穿衣”这档事?
戳蓝字"CSDN云计算"关注我们哦! 十月份我去北京出差,来到后厂村走了一圈,想看看现实中的北京程序员是否真的像之前刷屏的<互联网公司时尚穿搭指南>中所述,存在&quo ...
- 哎呦,最近流行校内体哦--每个用 power shell 的程序员,上辈子都是折翼的天使
话说最近流行这种校内体,请看: 每个用 power shell 的程序员,上辈子都是折翼的天使. 他们说,请珍惜用 awk 写脚本的程序员. 到处是 goto 的程序员,你伤不起! 长期在 Windo ...
- 招聘java是什么意思_java程序员,一般招聘都要求些啥
原标题:java程序员,一般招聘都要求些啥 java程序员,一般招聘都要求些啥?某位企业领导说,他不能确认什么样的人一定是他想要的,因为优秀的程序员精通的点并不完全相同,项目也千差万别,但至少要有几个 ...
- 程序员真香定律:我永不加班!困扰了程序员20年的10大难题
程序猿最艰巨的任务跟编写代碼没得几个关系.编码是逻辑构思的一种实践,这跟程序猿日常工作中的其他任务比起来相对简单.如果你觉得自身還是1个技术水平普通的程序猿,在你真正的能进入到顶尖高手行列前,请保证你 ...
最新文章
- Java -Inverse covariance
- spring-wind 搭建过程问题记录
- xshell有大量打印时,显示信息不全
- ad域管理与维护_AD域管理员账号下发
- 【OS学习笔记】十六 保护模式四:进入保护模式与在保护模式下访问内存的汇编代码
- iOS开发人员不容错过的10大工具
- 架构设计 | 异步处理流程,多种实现模式详解
- delete请求怎么传参数_postman第2讲-核心功能一:Request(请求)
- 【kafka】Kafka leader -1
- 基于Spring Security的认证授权_WEB授权_Spring Security OAuth2.0认证授权---springcloud工作笔记132
- php object 对象不存在。增加对象_PHP开发自己的框架,这些知识点不能错过
- Codeforces Round #565 (Div. 3) B
- java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解
- 古董电脑室:2019日记簿(一)
- HTML5 drag属性
- ToneChip反馈降噪抑制器的UI设计
- win10误删的注册表能还原吗_教你手动还原Win10注册表?
- idea+win10+chrome+jAceJump的快捷键使用
- 任天堂3D掌上游戏机3DS正式发布
- 计算机类SCI与EI收录的外文期刊
热门文章
- anaconda环境中使用sudo python报错
- 中国水溶性PVA薄膜行业市场供需与战略研究报告
- 中国双槽超声波清洗机市场趋势报告、技术动态创新及市场预测
- 2021年中国仪表球轴承市场趋势报告、技术动态创新及2027年市场预测
- oracle last_day比较,Oracle的LAST_DAY函数
- 在 Web 级集群中动态调整 Pod 资源限制
- kaggle比赛语言java_Kaggle调查:2018年数据科学家最常用(和最推荐)的编程语言榜单...
- 从内存布局上看,Rust的胖指针到底胖在栈上还是堆上?
- 假如我来发明编程语言
- 春运能不能抢到票就看他了!开源的Python抢票神器