转:掌握编程

转自:https://www.oschina.net/translate/mastering-programming,有删改

文章目录

    • 时间
    • 学习
    • 超越逻辑
    • 风险

通过对优秀程序员的多年观察,我观察到了他们工作流程中的某些常见模式。通过对所职教的熟练程序员的几年,我观察到他们缺失这些模式。我已经看到了引入这些模式的不同之处。
(:从内容看,是对工作模式和原则的思考,也不仅仅针对编程)

时间

  • 分片。完成一个大项目时,将其分割为小的切片,并重新排列这些切片以适合你的场景。我总是可以更好地分割项目,我总能找到满足不同需求的切片的新排列。
  • 一次做一件事。我们如此专注于效率,以致于我们在一次降低开销的尝试中减少了反馈周期的数目。这导致难以调试的情况,其预期成本大于我们所规避的周期开销。
  • 使它运行,确保其正确,使其快速。(一次做一件事、分片和简单改动的例子)
  • 简单的改动。当面对困难的改动时,首先要简化之(警告,这可能会很难),然后完成简单的改动。(例如分片、一次做一件事,集中,隔离)。分片的例子。
  • 集中。 如果你需要改动多个元素,请首先重新排列代码,以便只需要在一个元素中进行改动。
  • 隔离。如果你只需要改动元素的一部分,则提取该部分以使整个子元素发生改动。
  • 基线测量。通过衡量当前世界状况来启动项目。这违背了我们开始修正错误的工程本能,但是当你测量基线时,你实际上会知道你是否在修正什么。

学习

  • 表明想法。在运行代码之前,准确预测会发生什么。
  • 实际猜测。当程序行为不正常时,在做出改变之前,准确地阐明你认为错误的部分。如果你有两个或更多猜想,请予以鉴别区分。
  • 删除无关细节。在上报错误时,请找到最短的复现步骤。在隔离错误时,找到最短的测试用例。在使用新的API时,请从最基本的示例开始。“所有这些东西都可能不重要”,在它是错误的时候,这是一个代价很高的假设。
    • 例如,查看手机上的一个bug,可使用curl复现
  • 多维度。在不同维度间自由穿梭。也许这是一个设计问题,而不是测试中的问题。也许这是一个人的问题,而不是技术问题[骗人,这总是对的]。

超越逻辑

  • 对称性。几乎相同的事物可以分为相同的部分和明显不同的部分。
  • 美学。美丽是一种强大的攀登阶梯。它也是一种对蔑视的解放之阶梯(例如将一堆函数内联成一个巨大的集合)。
  • 韵律。等到合适的时刻可以节省能量并避免混乱。在行动之时快速行动。
  • 权衡。所有决策都需要权衡。知道决策取决于什么比知道今天选择哪个答案(或者昨天你所选择的答案)更重要。

风险

  • 兴趣列表。当次要的想法出现时,请记录之并快速恢复继续工作。当你到达停靠点时重新阅读此列表。
  • 喂养想法。想法就像受惊的小鸟。如果你吓跑了他们,他们就会停止造访。当你有一个想法,喂它一点吃的。尽可能快地证明其错误性,但需要基于数据而不是出于缺乏自尊。
  • 80/15/5。将80%的时间花在低风险/合理报酬的工作上。将15%的时间花在相对高风险/高回报的工作上。无论收益如何,将5%的时间花在让你愉悦的事情上。教导下一代完成你80%的工作。当有人准备接任时,你的15%实验中的一个(或者,不那么频繁,你5%实验中的一个)将获得回报,并将成为你的新80%。重复这一过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对抗学习在NLP中的应用

本文主要串烧了FGSM, FGM, PGD, FreeAT, YOPO, FreeLB, SMART这几种对抗训练方法,希望能使各位大佬炼出的丹药更加圆润有光泽,一颗永流传 简介 对抗训练是一种引入噪声的训练方式,可以对参数进行正则化,提升模型鲁棒性和泛化能力…

阿里P8架构师谈:Docker容器的原理、特征、基本架构、与应用场景

什么是容器? 一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软…

中国电网招聘 计算机岗位

1.解密2018国家电网校园招聘,院校、专业、待遇盲区统统扫除! 2018国家电网校园招聘国家电网作为国内乃至世界知名的企业集团,是令无数求职者心仪的工作单位。那么如何才能进国家电网工作呢?国家电网的待遇究竟有传说中的那么好吗&…

系统设计:github上学习如何设计大型系统的项目

https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md 系统设计是一个很宽泛的话题。在互联网上,关于系统设计原则的资源也是多如牛毛。这个仓库就是这些资源的组织收集,它可以帮助你学习如何构建可扩展的系统。

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

谈到并发编程就不得不提到NIO,以及相关的Java NIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及Java NIO框架选型。 高并…

论文浅尝 | 基于神经网络的推理(DeepMind Relational Reasoning)

本文转载自公众号:徐阿衡。论文:A simple neural network module for relational reasoning(2017)github代码: https://github.com/siddk/relation-network这篇回顾下 DeepMind 2017 年发表的关系推理方面的工作,Relational Networks(RNs)。关…

拒绝无脑试错:写给萌新的“科学炼丹”入门手册

近期在订阅号后台和文章评论区review了一下大家的问题,发现很多小伙伴现在已经把机器学习、深度学习的理论基础打好了,但是真正要解决一个现实中的算法问题的时候经常两手抓瞎,一顿毫无目的乱试,甚至认为模型表现不好一定是调参不…

箱线图和散点图叠加图形的绘制——R language

前几日偶然从科学网上看到了一副特别漂亮的统计图形,如下图(摘自博文:http://blog.sciencenet.cn/blog-397960-456174.html)所示:感觉美翻了都,刚好在学习R,又遇到课题组有一些数据要处理,就花了大约一天的…

企业战略咨询方法:学习SWOT分析

文章目录概述分析目标分析内容分析步骤几个例子1. Mbalib网站的SWOT2. 复杂的、全面的SWOT分析3. 一个SWOT矩阵4. 另一个SWOT矩阵5. POWER SWOT分析法概述 SWOT分析是企业战略咨询常用的方法。然而,仔细搜索比对网上资料和各类管理咨询书籍,分析的目标、…

肖仰华 | 知识图谱与认知智能

本文转载自公众号:知识工场。肖仰华教授1万5千字雄文带您深度剖析知识图谱与认知智能,对知识图谱技术与落地应用中的一系列关键问题做了系统梳理与解答。肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识…

Spring Cloud的核心成员、以及架构实现详细介绍

微服务架构系列 高并发架构系列:服务注册与发现的实现原理、及实现优劣势比较 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别 阿里P8架构师谈:微服务技术架构、监控、Docker、服务治理等体系 阿里P8架构师谈:Dubb…

调参侠的自我修养——深度学习调参秘籍

这是一篇写给萌新的“科学炼丹”手册 前言 近期在订阅号后台和文章评论区review了一下大家的问题,发现很多小伙伴现在已经把机器学习、深度学习的理论基础打好了,但是真正要解决一个现实中的算法问题的时候经常两手抓瞎,一顿毫无目的乱试&am…

NLP通用模型decaNLP诞生,一个模型搞定十大自然语言常见任务

然而近日,Salesforce发布了一项新的研究成果:decaNLP——一个可以同时处理机器翻译、问答、摘要、文本分类、情感分析等十项自然语言任务的通用模型。Salesforce的首席科学家RichardSocher表示:我们的decaNLP就好比NLP领域的瑞士军刀&#xf…

咨询报告生成:使用python生成pptx格式的报告

已经有人做了,思路和自己想做的一个模式差不多,见模式一: 先做好ppt模板用python计算数据,生成图形用python调用模板,将图形插入pptx页面中,生成分析报告 模式二与模式一的差别在第三步:使用R…

产品技术人必备干货:产品开发流程(完整版)

产品技术开发流程 “ 产品开发流程涉及的人员从产品经理到设计师、前端、后端等等一系列人员,这篇文章主要关于产品开发的完整流程,希望对产品技术人员有一定的参考价值。 一:产品概念设计:MRD 产品开发流程步骤第一步&#xf…

论文浅尝 | 用异源监督进行关系抽取:一种表示学习方法

Citation: Liu, L., Ren, X., Zhu, Q., Zhi, S., Gui, H., Ji, H., & Han, J.(2017). Heterogeneous Supervision for Relation Extraction: A RepresentationLearning Approach. Retrieved from http://arxiv.org/abs/1707.00166动机现有的关系抽取方法严重依赖于人工标注…

SQuAD文本理解挑战赛十大模型解读

教机器学会阅读是近期自然语言处理领域的研究热点之一,也是人工智能在处理和理解人类语言进程中的一个长期目标。得益于深度学习技术和大规模标注数据集的发展,用端到端的神经网络来解决阅读理解任务取得了长足的进步。 转载:https://blog.cs…

万字长文,知识图谱构建技术综述

文章来源:丁香大数据 前言 知识图谱,即一种特殊的语义网络,它利用实体、关系、属性这些基本单位,以符号的形式描述了物理世界中不同的概念和概念之间的相互关系。为什么说知识图谱对于信息检索、推荐系统、问答系统中至关重要,我…

查理·芒格:分享12个顶级思维模型

网络资料整理,另见:https://blog.csdn.net/UFv59to8/article/details/79695476

技术如何转型产品经理

我知道很多做技术的朋友在积极寻找转型的机会,从程序员转型到产品经理,或者程序员转型到运营、市场等。 怎样转? 转型前后的心态等?有没有具体的方法或者步骤?也许本文能帮你理清不少思路。 做技术出身的朋友很多,最…