一、背景

前一段时间有朋友说“学习的最好方式就是创造”,即想学某个源码,就自己写一套。
果真如此吗?
今天读《编程的原则》有讲到,可以为了学习的目的而创造。
下面是其中一个节选:

二、学习的原则

2.1 循序渐进

万事万物无非是两个维度,一个是时间维度,一个是空间维度。
从时空维度来讲,学习通常需要循序渐进、先易后难、先整体后局部(先局部后整体)。

日本剑道有一个非常有名的原则 “守、破、离”

守」,一切盡量遵守教條,練習基本功夫直到熟練。這個階段專心學習一種實務,比學習各種理論重要。
「破」,開始打破一些規範限制,可以因地制宜靈活運用。這個階段開始思考理論,也會參考看看其他門派是怎麼做的。
「離」,超越所有規範的限制,自創一格,達到無招勝有招的境界。

这和所谓的“循序渐进”的思想差不多。


这里的学而思其实和 PDCA 理论很相似

你想你的能力就在这里了,你想提高注定就要和现在有些不一样,肯定要改缺点提高优点,那你怎么找到缺点不对的地方,就需要反思(思考)

这个和机器学习算法调优差不多,如果没有实验结果的检查,怎么知道好坏

很多牛逼的人要不然善于思考 要不然喜欢读书 甚至二者皆有

要不然就说程序员就靠着 Google 百度 StackOverflow
就像编程的时候很多你需要的库,人家也遇到过,都已经有开源的了

就像很多人写(研究生)论文,你会发现哪个领域几乎都有牛逼的人,好的算法,虽然写一个新的很厉害,但是大多数也就改改参数,几个算法综合一下,能有一点点改进就可以发不错的论文了


实际学习和工作中技术不好的主要原因有两个方面:学而不思、思而不学。

还是孔子那句话:学而不思则罔,思而不学则殆 真的是经典
很多人就是TL说怎么设计就怎么设计 学而不思 面试的时候问你为啥这么设计就凉了

还有些人是思而不学,想的挺多的 但是基础不扎实 或者懒 导致无法落地 或者想的脱离实际

2.2 以终为始

有些人会说你“从设计者的角度学代码” 是帮助自己学习和理解的一个好方法 。
但是这不是目的!
学习的目的还是学以致用 能够在工作中灵活运用源码的技巧 思想

三、总结

总之学技术要遵循规律,循序渐进、先易后难,然后学而思。

《编程的原则》重新发明车轮感悟之循序渐进相关推荐

  1. 【笔记】编程的原则:改善代码质量的101个方法

    代码必然被修改 Code will be changed 代码不是写完就结束了,它在日后必然会被修改.没有写完就扔的一次性代码. 在编写代码的时候,我们应将"代码会被修改"这一点作 ...

  2. 小学生学习编程1年,发明自动烫毛肚机和卡路里计算器?

    四川人爱吃火锅估计全国人民都知道了,这不是什么稀罕事,吃火锅自然少不了毛肚,烫毛肚的时间是决定毛肚口感的关键,成都一位4年级的小学生学习编程才一年,居然自己发明了自动烫毛肚机. 这下可真的是彻底解放双 ...

  3. 掌握这 7 个编程设计原则,想做菜鸟都难

    编程的工作同石匠的工作相类似,即是技术活,也是体力活,而编写优秀的软件,算是一件比较难的事. 你写的代码好不好,其实没有一个标准能判断,即使团队的伙伴发现你的代码写得差,也不好意思有理有据地指责你,反 ...

  4. java并发编程:设计原则与模式_java编程设计模式一——策略模式

    定义: 策略模式定义了算法族,分别封装起来,让它们之间相互替代.此模式让算法的变化独立于使用算法的客户. 问题描述: 建立一个鸭子Duck的父类,它有很多子类,Duck都会游泳,但是有鸭子会飞,有的鸭 ...

  5. 面向对象编程 - 六大原则

    在做面向对象程序设计时,我们通常会在为如何设计一个类而烦恼.这里简单介绍面向对象编程的几个原则,根据这些原则去设计类以及类与类之间的关系,从而使得程序满足高可维护.可复用等条件. 面向对象编程与面向过 ...

  6. 编程之余对人品的感悟

    由于郭神lite pal非常好用,我也是如他在第一行中对lite pal的开篇介绍中说的一样:用了lite pal你恐怕再也不想碰sqlite了,导致我在年少轻狂的时候,沉迷于框架.随着能力的渐渐提升 ...

  7. 如何学编程,我的一些学习感悟

    入坑已经有一年之久,今天来谈谈自己的学习心得也希望能帮到更多的人,如果有讲的不好或者不准确的地方还请各位大神指正,本文仅仅针对于想要入行的朋友说的. 废话不说现在进入正题,对于如何学习有以下三点要说 ...

  8. 《编程的原则》读书笔记(一):编程的前提和准则

    ✏️写作:个人博客,InfoQ,掘金,知乎,CSDN

  9. 模块化编程设计原则:高内聚,低耦合

    高内聚,低耦合 高内聚:一个C文件里面的函数只有相互之间的调用,而没有调用其他文件里面的函数,这样可以视为高内聚.尽量减少不同文件里面函数的交叉引用. 低耦合:一个完整的系统,模块与模块之间,尽可能的 ...

最新文章

  1. Allan方差分析方法的直观理解
  2. ontological 词根词缀_英语中最常见的词缀(一)之 re
  3. CreateBindGroupNode.txt
  4. Linux测试端口的连通性的四种方法
  5. 三维GIS开发——WorldWindJava入门
  6. CMD下查询Mysql中文乱码的解决方法
  7. 域名的MX设置及校验方法
  8. 一网打尽中文编码转换---6种编码30个方向的转换
  9. 自动提示_EXCEL2013版突然打不开,自动修复提示1907错误
  10. 【BZOJ2049】【codevs1839】洞穴探测,LCT练习
  11. cmd更改分辨率_快速切换Mac电脑的屏幕分辨率
  12. Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍
  13. 心得2-类图、关联关系介绍.doc
  14. mysql操作SQL语句
  15. 英特尔驱动程序下载_如何修复英特尔计算机上的“此计算机未验证正在安装的驱动程序”...
  16. PWM整流器仿真。 在simulink中搭建了PWM整流器,采用电压电流双闭环控制,实现了网侧电压与电流同相位,单位功率因数运行
  17. 简单聊聊01世界中编码和解码这对磨人的小妖儿
  18. 今晚8:00 | 杜克大学计算进化智能中心(CEI Lab)—— 高效鲁棒深度学习专题!...
  19. Unity内截屏实现
  20. 网络诈骗有哪些防范措施

热门文章

  1. CVPR 2021 | 北大MSRA提出CPS:基于交叉伪监督的半监督语义分割
  2. API接口实战演练,参考示例说明
  3. 使用Safari获取手机UDID,对.mobileconfig文件进行签名加密
  4. Linux让root@bogon变回localhost
  5. 商机来了!日本市场Starday跨境电商迎来发展新阶段!
  6. Linux less 命令用法详解
  7. speedoffice表格中如何随意拖动表格
  8. 产品设计:基于二维码与打印业务的校园推广方案
  9. 分布式系统中的FLP不可能原理、CAP理论与BASE理论
  10. 将一个数组中的值按逆序重新存放,编写C语言程序