`

先思再行 闭着眼睛编程

阅读更多

摘要:解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。

你会花多少时间思考如何编写代码?

乍看这是一个引人思考的深层次问题,在编程专业中常有这样的误解,软件开发就是写代码。软件开发实为一门艺术,而代码仅仅是通往艺术之门的工具。好比燃料和画布是画家的工具一样,代码的目的是实现某种策略和思路。对程序员来说,他的目标是开发出完整的软件系统,按照需求完成各个功能模块或许是某种无形的思路、特性。比如一个深思熟虑的架构、明确的内部组织和代码质量,最后将这些进行整合。画家每隔一小段时间会停下来重新评估进展和绘画,看看是否达到自己的要求,程序员也一样,必须定期审查代码、查看进展、检查思路是否实现。

那么你平时是如何工作的呢?是否确定工作区后就埋头苦干?什么都无法阻止你的前进呢?如果这个描述很适合你,那么你做的一切都有可能是错的。

所有好的软件都有共同之处——他们都设计精良。同样,大多数失败的案例也会有相同之处——缺乏结构和视觉上的盛宴,最终导致崩溃。软件开发是一项智力活动,这一切都归结于实现的结构和在混乱中找到开发软件的最佳理念

我做过一个非常有趣的观察。在我第一年的编程生涯中,我设法在规定的时间里开发出大量的代码。结果大多数代码都需要重新开发、设计甚至是丢弃。速度提高了,而效率却明显下降了,欲速则不达。随着的时间推移,我学会一小步一小步前进,在开发前进行仔细分析思考,然后再开始开发编码。结果发现代码生成速度下降了好几倍,而成功率几乎达到100%,是不是有点戏剧性。我越来越多采用这种策略进行编程,我没有坚持把时间直接转换成代码量。事实上,我经常每天只写几行代码甚至有些时候会再删除几行。反而让我的代码从整体上更加简洁、效率更高。

许多程序员都体验过这种黑暗感觉,当你看到许多大大小小的缺陷都掺杂在一起的那种混乱,当走到这一步再回头重新修改设计代码,你会意识到为时已晚并且是毫无意义的,因为你继续下去的工作本质上已经是被丢弃的。

对此,你还能做什么?

事实上,你可以!学会把更多的时间用来思考并且减少代码输入。我发现长时间的盯着屏幕并不会帮助你找到解决问题的方式。当思绪被卡住的时候,我会放弃继续工作,离开电脑和所思考的问题。当我漫步在公园和一些安静的场所时,常常会想到一些非常棒的思路和理念。实际上你可以试着闭着眼睛编程,灯光和周围的一切都不会影响到你,片刻的休息会给你带来轰动的、突破性的思路。 我最喜欢的地方是浴室,它可以让人放松和平静下来,听到照亮内心的那些非常安静的想法和灵感。

解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。

分享到:
评论

相关推荐

    Online Judge(编程猫)

    ### Online Judge(编程猫) #### 一、在线评测系统(OJ系统)概述 在线评测系统(Online Judge,简称OJ)是一种用于自动接收、评测并反馈程序代码正确性的网络平台。这类系统广泛应用于计算机科学教育及编程竞赛领域...

    通过提取excel人员信息,再行随机选取后,通过电子邮件,给其发送选中通知

    标题中的任务是“通过提取Excel人员信息,再行随机选取后,通过电子邮件,给其发送选中通知”。这个过程涉及到两个主要的知识点:一是如何在Excel中操作和处理数据,二是如何利用邮件发送工具实现自动化的邮件发送。...

    乐华2025烧屏工具

    如果首次编程失败,可尝试清空MCU后再行尝试。 通过上述分析,我们可以看出,乐华2025烧屏工具的使用涉及到软件安装、程序写入、驱动板升级以及特定型号的ISP编程等多个环节,每个环节都有其特定的操作流程和技术...

    二次开放肾盂成形术术后复发再行机器人辅助腹腔镜肾盂成形术1例报告.pdf

    二次手术通常意味着更高的技术难度和更高的风险。 4. 机器人辅助腹腔镜肾盂成形术(RAGLPP):这是一种使用机器人手术系统进行的微创手术,能够在很小的手术创伤下完成复杂的肾盂成形术。与传统的开放手术相比,...

    阿松进程卫士

    自中国人周鸿祎发明流氓软件这一词汇以来,流氓软件疯狂地占据了互联网和用户的电脑。 2010年的一场3Q大战又诞生了一个新的历史性名词——流氓...如遇无法兼容的情况,建议先删除你已安装的流氓杀毒软件后再行安装。

    颅内动脉瘤夹闭术.ppt

    【颅内动脉瘤夹闭术】是一种神经外科手术,用于治疗颅内动脉瘤,这是一种脑动脉局部扩张形成的瘤状结构,可能导致严重的健康风险,特别是破裂出血。动脉瘤破裂是引起蛛网膜下腔出血的常见原因,且具有高致死率和致残...

    labview宝典

    褐色书签则是当前无需关注的内容,待未来需要时再行学习。 由于文档通过OCR扫描可能存在识别错误或者漏识别的情况,因此在阅读时需要读者自行校对与理解,以确保阅读内容的准确性。 总而言之,《LabVIEW宝典》不仅...

    矩阵的翻转旋转等各种操作

    2. 对于90度顺时针旋转,需要先列翻转再行翻转。 例如,一个2×2矩阵: ``` a b c d ``` 逆时针旋转90度后: ``` d b a c ``` 顺时针旋转90度后: ``` c a d b ``` **实际编程中的矩阵操作** 在实际编程中,我们...

    系统管理软件WIN7版-包含大部分系统常用小工具(易语言编写)

    系统管理软件在日常计算机操作中扮演着至关重要的角色,它们提供了丰富的功能,帮助用户更有效地管理和优化系统。本篇将详细介绍一款专为Windows 7设计的系统管理软件,该软件由易语言编写,包含了大量常用的小工具...

    复合先天心脏病介入治疗策略程晓曙程应樟PPT学习教案.pptx

    对于年龄小于3岁的大型VSD合并PDA,可以先处理PDA,待年龄稍大后再行VSD封堵。 3. VSD合并PS(肺动脉狭窄):处理方式类似,可能需要先处理PDA或PS,以简化后续的外科手术,缩短心脏停搏时间。 这些策略旨在最大化...

    团队冲突管理讲义.pptx

    四、先思再行:对冲突的评估 在解决冲突之前,应先进行评估,考虑冲突的根本原因、涉及的人员、潜在的影响以及最佳解决途径。这有助于防止草率决策导致更多的问题。 五、冲突误区:冲突处理的五个敌人 在冲突管理中...

    黑龙江省中等职业学校技能大赛数控技术技能比赛规程.doc

    - 数控机床装调与维修、焊工的比赛时间待国家出台规范后再行公布。 3. **竞赛规则**: - 参赛选手需按规定时间到达赛场,携带参赛证、学生证和身份证,迟到15分钟将取消资格。 - 非工作人员和非领队指导老师不得...

    b-w-chess.rar_chess

    当新棋子放下后,可以翻转被夹在中间的对方棋子,直至棋盘填满或双方都无法再行棋为止。游戏结束时,拥有最多棋子的一方获胜。 在VC++环境下开发这个游戏,开发者需要掌握以下几个关键知识点: 1. **图形界面设计*...

    百度关键字分析工具 站长工具

    1、本软件是一款根据百度实时数据进行关键字等相关关键字分析的SEO工具,主要是收集数据、整理数据、分析数据、、综合建议等搜索引擎优化网站的必备工具。该软件产生的数据全部来自于百度,实时准备可靠。...

    STM32之启动文件详解

    在嵌入式应用程序开发过程里,由于使用C语言编程,基本很少涉及到机器底层寄存器的执行过程,一般都会直接在main函数里开始写代码,似乎main成为了理所当然的起点,尽管从C程序的角度来看程序都是直接从main函数开始...

    基于PLC的控制系统触点竞争与冒险问题初探

    然而,PLC控制系统也面临着一系列的挑战和问题,比如触点竞争与冒险问题。触点竞争是指在PLC控制系统中,当多个输入信号需要同时对同一个输出产生影响时,由于输入信号到达的先后顺序不同,可能导致输出结果不确定;...

    非常好用的绿色屏幕取色工具

    值得注意的是,为了保障电脑安全,用户在使用未知来源的软件时,应先进行病毒扫描,确认无害后再行使用。 总的来说,"非常好用的绿色屏幕取色工具"是一款为用户提供方便、快捷颜色选取服务的软件,其简单的操作方式...

    TXT文本批量空行去重工具

    需要注意的是,为了保证系统的安全,使用任何未知来源的exe文件前,应当先进行病毒扫描,确认无恶意代码后再行使用。 总的来说,“TXT文本批量空行去重工具”是针对文本处理需求的专业软件,通过其批量处理、自动化...

    VirtualBox安装增强功能时报错:未能加载虚拟光盘 到虚拟电脑

    1,先根据提示路经找到VBoxGuestAdditions.iso,添加到光盘。 2,根据网上找的资料,需弹出光盘,再行安装增强功能。 这一步走了弯路,因为网上提示是鼠标右击光盘图标弹出,我这里犯了难,右击没有反应。 3,突然...

    EA汉化程序

    · 汉化包内有“原版安装文件”以及“汉化程序”,需先安装“原版安装文件”,然后再行安装“汉化程序”。 · 汉化包安装过程中涉及到对系统注册表的操作,如安全软件(360安全卫士等)提示允许即可。 · 由于...

Global site tag (gtag.js) - Google Analytics