热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

一件事情,如果你不能说清楚,十有八九你就作不好

一件事情,如果你不能说清楚,十有八九你就作不好杨军

 一件事情,如果你不能说清楚,十有八九你就作不好  

                                                                  杨军

杨军在 TopLanguage 上也曾分享了三篇非常棒的学习心得的文章,字字珠玑:

[1] 有些事情做起来比想象中容易
[2] 有关读书方法的一点想法
[3] 一件事情如果你没有说清楚,十有八九不能做好

 

关于他在这三篇文章提到的一些经验,深有感触,时刻提醒,不断学习:

 

[1]一个问题,如果不实际动手作,仅仅是从外面看,往往会被一些表面上的困难阻塞住,产生不可逾越的感觉,及至真的动手作了,才会发现未必然 .

     虽然自己现在在编译器设计实现方面仍存在大量的知识薄弱项需要补充,但这并不意味着自己不可以开始着手作一些实际的工作.总是期待达到一个完美的积累状态再去动手实际作,结果可能就是一直陷入积累的状态不能拔出.   

    所以说大部分天才都是逼出来的。小马过河的故事很发人深省啊!

[2]此外,我在学习一个知识点的时候,心中始终抱着一个目标,就是最终要能写出一篇很好的survey,这样一来在阅读思考的时候总是有意无意地在整理知识的结构,并且往深处想。我的实践表明这是一个很棒的技巧。

[3]一件事情,如果你不能说清楚,十有八九你就作不好.我一般也喜欢在头脑中将理论说给自己听,容易理清思路和发现漏洞。在路上走着反正也是走着,不如想点问题

 

 


   记得有一次开会,我的头儿说了标题所写的这句话,自己深以为然。


   有过较多解决问题的经历的人可能会有这样的感觉,很多时候,面对一个问题,我们即使没有完全将之想清楚,也可以基于已有的经验给出一个能够work的解决方案,当然这种情况下给出的方案往往不是最优的。 而即使给出了解决方案,很可能自己都未必能把自己给出的解决方案所基于的推理逻辑,清晰无误地阐述出来. 因为随着人的知识,经验的积累,我们可以越来越多地依靠经验来解决一些问题,这些经验有些是自己身体力行, 实践得来的,有些则是道听途说,经卷纸传,从其他的地方获得的。在获得这些经验的同时,我们的大脑会建立起 这样的一个触发机制:

 
   遇到问题A,经验B会有效。

   遇到问题C,经验D会有效。 

   。。。。 


   至于为什么
经验B对问题A会有效,是不是在所有场景下都会有效,是否还存在更有效的解法,大多数情况下,我们未必会深入去思考挖掘。

 
   于是,在遇到了与自己以前经历过的问题相似,相近的场景时,我们就会条件反射地基于已有经验,设计出一个解决方案,大多数情况下这个方案work得很好。但也有很多情况下,这个方案虽然能work,但并不是最优解,甚至 自己都未必能说得清楚为什么给出这样的方案。 

   最近在工作中,需要为编译器的语法规则设计相应的数据结构,自己就有了这样的感觉, 在作设计的过程中,有的时候,是旧有经验作祟,有的时候,则是因为偷懒的情绪占了上风,自己会满足于浅尝辄止,对某个问题给出一个未经深思熟虑的解决方案,而随着设计过程的推进,暴露出来的信息越来越多,就会发现已有的设计不能很好地满足一些场景的要求,因而对已有的设计进行调整,但是在调整时,自己往往会发现,对于已经作出的设计,为什么当时自己选择那样的接口,定义那样的数据成员,自己并不能给出清晰明确的解释,这就 说明在作出当时的设计的时候,自己并未将问题想清楚,也未将自己给出的设计想清楚,而是基于一些已有的经验,给出了一个差强人意的方案而已。 

 

   在这方面,我的老大作得要比我好很多,对于一个问题,他往往会将之想得非常清楚之后,才会去着手去作。以前的技术讨论会上,凡是他提出的设想和方案,几乎很少会有被我们驳斥倒的,因为只要是他在会议上提出来的东西,几乎方方面面,各种可能,他都已经去思考过了。而在工作过程中经验的积累上,他也经常会作深入的思考和挖掘。一般来说,凡是他解决过的问题,只要不是太detail的,跟他讨论起来,他往往能够对答如流,而能够作到这一点正是因为他在储备这些经验的时候已经作足了功夫。而自己在储备经验的时候则往往不会花费太多精力。一个典型的场景就是我和老大同时遇到一个问题,有的时候,我能更快地给出答案和解法。但是过了一段时间,又遇到了类似的问题,我却可能会忘了当时解决问题的思路,需要重新进行思考,而我的老大往往能够直接从他的经验体系中找出当时的解法思路。遇到一个问题,我往往能较快地给出一个解决方案,但细究起来,我就时有被卡住的场景,而我的老大,虽然给出问题答案需要的时间会较长一些,但一般他给出的答案,往往都经得起推敲。

 
   外人看来,我干起活来很快,效率蛮高,但是自己内心才清楚,这种效率是以损失扎实性为代价的。




推荐阅读
  • 深入解析Apache SkyWalking CVE-2020-9483 SQL注入漏洞
    本文详细探讨了Apache SkyWalking中的SQL注入漏洞(CVE-2020-9483),特别是其影响范围、漏洞原因及修复方法。Apache SkyWalking是一款强大的应用性能管理工具,广泛应用于微服务架构中。然而,该漏洞使得未经授权的攻击者能够通过特定的GraphQL接口执行恶意SQL查询,从而获取敏感信息。 ... [详细]
  • 本报告详细记录了在2018-2019学年网络安全技术课程中的实验过程,重点探讨了PC平台上逆向工程的基本方法和利用缓冲区溢出(BOF)漏洞的技术。通过一系列实验,加深了对计算机系统安全性的理解。 ... [详细]
  • Kotlin 扩展函数详解及其工作原理
    本文详细探讨了 Kotlin 中的扩展函数概念,包括其定义、使用方式以及背后的实现机制,并分析了使用扩展函数时的一些限制。 ... [详细]
  • 个人用户可借鉴的企业级三大安全准则
    在数字时代,个人数据安全变得尤为重要。本文将探讨三个来自企业实践的安全原则,这些原则不仅适用于企业,也能帮助个人用户提升自身的信息安全防护水平。 ... [详细]
  • 自SQL Server 2005以来,微软的这款数据库产品逐渐崭露头角,成为企业级应用中的佼佼者。本文将探讨SQL Server 2008的革新之处及其对企业级数据库市场的影响。 ... [详细]
  • VMware vRealize 平台高危漏洞安全公告
    近期,VMware 发布了关于其 vRealize 平台存在服务器端请求伪造(SSRF)及任意文件上传两个严重漏洞的安全公告。这些漏洞可能导致未授权的远程代码执行,建议用户尽快采取措施进行防护。 ... [详细]
  • WAMP图标显示橙色问题及解决方案
    本文详细介绍了在系统更新后遇到的WAMP图标显示为橙色的问题,并提供了有效的解决方案。 ... [详细]
  • 本文详细介绍了SSH(Secure Shell)的基础知识、应用场景以及如何在不同平台上使用SSH进行安全的远程操作。文章还探讨了SSH的高级用法,如免密登录和其他安全增强措施。 ... [详细]
  • 随着无需安装、即时可用及低资源消耗等特性,微信小程序迅速吸引了大量用户,广泛应用于游戏、餐饮预订和在线购物等领域。据《2018年小程序生态发展报告》统计,至2018年中期,小程序用户总数已突破100万,累计用户达到6亿。然而,小程序的蓬勃发展也伴随着一系列安全隐患。 ... [详细]
  • SonarQube自动化代码扫描的安装与集成实践
    SonarQube是一款强大的开源代码质量管理平台,支持多种编程语言。通过集成不同的开发工具和CI/CD流程,SonarQube能够提供全面的静态代码分析服务,帮助开发者早期发现并修复代码缺陷,从而提高软件质量和安全性。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
  • PHP服务器搭建的重要性及方法
    本文深入探讨了为什么在开发PHP应用之前需要搭建服务器环境,以及如何选择和搭建适合的PHP服务器。 ... [详细]
  • HTTP协议状态码与相关含义 ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
  • 开发笔记:新手DVWACSRF
    开发笔记:新手DVWACSRF ... [详细]
author-avatar
何卫先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有