摘要:解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。
你会花多少时间思考如何编写代码?
乍看这是一个引人思考的深层次问题,在编程专业中常有这样的误解,软件开发就是写代码。软件开发实为一门艺术,而代码仅仅是通往艺术之门的工具。好比燃料和画布是画家的工具一样,代码的目的是实现某种策略和思路。对程序员来说,他的目标是开发出完整的软件系统,按照需求完成各个功能模块或许是某种无形的思路、特性。比如一个深思熟虑的架构、明确的内部组织和代码质量,最后将这些进行整合。画家每隔一小段时间会停下来重新评估进展和绘画,看看是否达到自己的要求,程序员也一样,必须定期审查代码、查看进展、检查思路是否实现。
那么你平时是如何工作的呢?是否确定工作区后就埋头苦干?什么都无法阻止你的前进呢?如果这个描述很适合你,那么你做的一切都有可能是错的。
所有好的软件都有共同之处——他们都设计精良。同样,大多数失败的案例也会有相同之处——缺乏结构和视觉上的盛宴,最终导致崩溃。软件开发是一项智力活动,这一切都归结于实现的结构和在混乱中找到开发软件的最佳理念。
我做过一个非常有趣的观察。在我第一年的编程生涯中,我设法在规定的时间里开发出大量的代码。结果大多数代码都需要重新开发、设计甚至是丢弃。速度提高了,而效率却明显下降了,欲速则不达。随着的时间推移,我学会一小步一小步前进,在开发前进行仔细分析思考,然后再开始开发编码。结果发现代码生成速度下降了好几倍,而成功率几乎达到100%,是不是有点戏剧性。我越来越多采用这种策略进行编程,我没有坚持把时间直接转换成代码量。事实上,我经常每天只写几行代码甚至有些时候会再删除几行。反而让我的代码从整体上更加简洁、效率更高。
许多程序员都体验过这种黑暗感觉,当你看到许多大大小小的缺陷都掺杂在一起的那种混乱,当走到这一步再回头重新修改设计代码,你会意识到为时已晚并且是毫无意义的,因为你继续下去的工作本质上已经是被丢弃的。
对此,你还能做什么?
事实上,你可以!学会把更多的时间用来思考并且减少代码输入。我发现长时间的盯着屏幕并不会帮助你找到解决问题的方式。当思绪被卡住的时候,我会放弃继续工作,离开电脑和所思考的问题。当我漫步在公园和一些安静的场所时,常常会想到一些非常棒的思路和理念。实际上你可以试着闭着眼睛编程,灯光和周围的一切都不会影响到你,片刻的休息会给你带来轰动的、突破性的思路。 我最喜欢的地方是浴室,它可以让人放松和平静下来,听到照亮内心的那些非常安静的想法和灵感。
解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。
分享到:
相关推荐
在Excel中读取专家的E-mail地址实现群发\在Excel中读取专家信息,随机选取后,通过jmail实现给其发送选中通知。
#资源达人分享计划#
自中国人周鸿祎发明流氓软件这一词汇以来,流氓软件疯狂地占据了互联网和用户的电脑。 2010年的一场3Q大战又诞生了一个新的历史性名词——流氓...如遇无法兼容的情况,建议先删除你已安装的流氓杀毒软件后再行安装。
C语言行优先和列优先的问题深入分析 摘要 本文主要探讨的是“行优先”原则和“列优先”原则的问题。 1. 背景 首先了解“行优先”和“列优先”的知识,这两种方式在数学上的直观描述如下,给定如下矩阵: ...
大家在使用Python的时候...PyCharm可以说是Python最好的伙伴,希望大家能在学习的过程中喜欢上这款软件,编程开发人员尽量使用英文版软件,遇到不懂的地方可以搜索了解一下,如果不喜欢的也可以去下载汉化包再行使用。
1、调用Excel直接打开导出结果 2、直接用块的方式写入Excel,提高了性能 3、数字型、日期型的数据能自动识别 4、设置单元格的格式用先列再行的方式,上万行记录也轻松对付。
1、本软件是一款根据百度实时数据进行关键字等相关关键字分析的SEO工具,主要是收集数据、整理数据、分析数据、、综合建议等搜索引擎优化网站的必备工具。该软件产生的数据全部来自于百度,实时准备可靠。...
在嵌入式应用程序开发过程里,由于使用C语言编程,基本很少涉及到机器底层寄存器的执行过程,一般都会直接在main函数里开始写代码,似乎main成为了理所当然的起点,尽管从C程序的角度来看程序都是直接从main函数开始...
为了能够将datagrid表格中的数据打印出纸质的表格,可以先将表格中的数据导出到Excel再行打印……
1,先根据提示路经找到VBoxGuestAdditions.iso,添加到光盘。 2,根据网上找的资料,需弹出光盘,再行安装增强功能。 这一步走了弯路,因为网上提示是鼠标右击光盘图标弹出,我这里犯了难,右击没有反应。 3,突然...
C#计算器完整代码 需要再行调试 可能会有些bug
· 汉化包内有“原版安装文件”以及“汉化程序”,需先安装“原版安装文件”,然后再行安装“汉化程序”。 · 汉化包安装过程中涉及到对系统注册表的操作,如安全软件(360安全卫士等)提示允许即可。 · 由于...
提醒各位MM们亲自当着快递的面清点确认无误,再行签 收,避免不必要的损失。 3.江浙沪快递5元( 其他地区8元以上不等,按实收)。 4.有任何疑问欢迎旺 旺询问店主,请尽量不要使用站内信件和店铺留言,这样...
能够用密码读取各种文件夹加密软件加密隐藏的文件和私人密盘的内容,能够帮你瞬间找回因文件夹加密而丢失的文件。...”的Unicode文件,请先将其重命名为合法文件名后再行保存,重命名 功能并未更改文件的真实名称。
CDH6相对于CDH5是一次各个组件的大版本升级,要理解大版本更新,这里先解释一下Hadoop相关组件的版本说明。比如版本号是x.y.z,z代表的一般是Maintenance Version或Patch Version,这种版本升级主要修复bug,不改动...
明智的用户,是先初步了解某款软件,做过判断之后,再行安装。而不明智的用户,则是先安装,后了解。采取慎重的态度,既节约时间,也有利于软硬件安全。 真正的软件高手,所使用、安装、查看过的软件,其数量呈...
可以方便下载到不同级别的遥感影像图像,不用自己再行拼接
(二)出差人凭核准的"出差申请单"向财务部暂支相当数额的旅差费,返回后一周内填具"出差旅费报告单",并结清暂支款,未于一周内报销者,财务应于当月工资中先予扣回,等报销时再行核付。 第三条 出差的审核决定权限...
LED显示屏的基本工作原理是动态扫描。显示控制的过程是先从数据存储器读得字模数据,再通过单片机的串行口或并行口将数据写给LED点阵片,然后再行扫描。
”的Unicode文件,请先将其重命名为合法文件名后再行保存,重命名功能并未更改文件的真实名称。 4、该压缩文件下有两个版本:3.51为Driver Rescue内核特别版,不支持NTFS分区格式;2.51是支持NTFS的版本。