古人云「十年寒窗无人问。一举成名天下知」,这是中国古代为数不多的读书人的真实写照。大多数读书人仅仅有十年寒窗,却不见得成名。

在软件开发领域有瀑布模式的软件project方法论。它将软开发的几个过程「需求分析,概要设计,具体设计,编码。測试,公布」严格串行起来,仅仅有需求分析清楚后。输出需分析文档,才開始做概要设计,依次类推,直到每一个过程都完毕后才给终于客户公布软件。

但非常多时候出现两方都不愿意看到的结果。那就是交付的产品并非客户所期望的。

这两件事情有相似的地方。那就是它们执行在

封闭的系统。仅仅有内部循环

在实际的工作环境中,技术学习是还有一番景象。项目组安排一个新任务给你。你须要了解问题本身的各种因素,比方为什么会有该问题。假设你对该问题所涉及的技术一无所知,须要求助技术经理。经过一到两天的学习(没错,仅仅有两天时间)将技术梳理清楚之后。拿出可行的解决方式。

然后拿到方案评审会上讨论,评审专对方案按多维度进行“评头论足”,指出该案的缺陷,提出一些建议。

给过这一轮PK之后,对该问题和所涉及的技术了解更深入,然后再想方案。进行评审。经过多轮评审之后,终于得到从技术和交付上都比較适合的方案。整个学习过程可能被K过多次。有种头破血流的感觉,但技术成长非常快。

近期15年流行敏捷软件project方法论,它採用小步快跑的方式将「需求分析,设计,编码,測试,公布」一轮一轮执行,每轮称为一个迭代。需求分析。设计。编码,測试在执行时,每一个过程都对前一个过程进行验收,确保整个团队的理解与客户的想法是一致的,当然每轮迭代出口可交付的软件(即每一个迭代都公布可用的新增功能)。然后由客户进行验收。

整个过程一旦出现理解偏差。立即进行交流和及时修正,达成交付即为客户所须要的。

相同地,这两个事情也有相似的地方,它们执行在:

开放的系统,存在正向反馈

学习规律与软件project中敏捷方法论有异曲同工之巧,它须要经历多次循环(迭代)和正向反馈(考试检查。或者应用解决某个问题)。才干一步步建立「全栈式知识结构」和实现「系统化知识」。

迭代式学习

作家格拉德威尔在《异类》一书中指出:

人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。

1万小时的锤炼是不论什么人从平庸变成超凡的必要条件。

想要成为某个领域的专家。须要达到1万小的专业训练。

假设每天工作八个小时,一周工作五天,那么成为一个领域的专家至少须要五年。这就是一万小时定律。

在这1万小时的学习中。并不每天学习一点。经过5年之后。才将该知识(技术)掌握,而是不断地进行周期性的迭代过程。实际的过程中按例如以下顺序进行:

遇到问题 -> 搜索解决该问的知识(技术) -> 使用已有知识去理解新知识 -> 将新知识融入到知识体系 -> 应该新知识

每一个过程都会产生冲突,学习的过程就是解决这些冲突的过程。

分享学习计算机网络的经历

最早接触计算机网络是在大三的专业课上,当时对计算机网络不感兴趣,仅仅了解一些计算机网络的基本概念,对协议的细节一无所知。结果计算机网络成了我大学唯一一门不合格的专业课。

报考研究生时。阴差阳错地考取了分布式与计算机网络这个研究方向,幸好遇到一本外国经典的计算机网络教材,深入浅出。通俗易懂。结果不到一个月,我就将数据链路层和网络功能的功能看完了。当看完网络层功能时,合上书本,想到了它与实际生活中的运输交通整个网络体系统是相似(事实上与如今发达的物流网络更为相似)。

看完网络层之后。理解完数据是怎样通过网络层进行互联之后,好像任督二脉打通。全部知识点全然连在一起了,剩下的知识都是协议本身的细节,但网络背后的互联协作却一览无余。

第一份工作,居然也是跟计算机网络强相关。我在那个项目里面负责VRP(Virtual Router Protocol)协议的測试工作,对TCP/ICMP/VLAN各种协议行为做了充分的測试,还帮同事一起分析出现的各种奇怪行为。在工作之余,我阅读了RFC协议规范,甚至将VRP开源码改动成多实例模式。

相同在第一份工作。出于对Linux内核的兴趣,将内核协议栈源码,从网卡驱动开发,IP层协议,TCP协议,UPD协议。到Socket的处理,翻了个朝天。

最后还发现一个规律:网络协议栈在实现时,常常使Adpater和装饰模式。原因是协议像水管一样。一层接一层。

加一段水道。就能够烧出热开水,再加一段,就能够煮出咖啡。任君组合

然后,然后是到了我如今供职的公司。工作内容与计算机网络不相关。有次客户遇到了个tcp协议的性能问题。老大不知从哪里收到风,知道我对网络比較了解,决定让我出差到客户那处理这个网络问题。当时和客户那边的网络专家一起。经过一周的分析和数据採集,终于定位到是缓冲区因为内存不足而变小,导到大量链接发送速度下降。

接下来,部门内的网络问题,我都是以重要角度投入攻关,并形成了非常多定位经验。

我就是这样从网络小白,变成计算机网络project师,整个过程不知经历了多少次迭代,多少次实验对知识的修正。从原理。到协议測试。再后来的协议问题定位。每次知识(技术认知)冲突的出现,都是须要解决的问题,一旦解决之后,能力会得到提升,知识体系更加完好。

小结

学习不会是一蹴而就,也不是经历漫长阶段才干将知识学到,而是迭代式的。每一个迭代都有知识进帐,但在多次的迭代学习过程中,才干做到建立「全栈式知识结构」和实现「系统化知识」。

迭代式不习。让你们的知识更系统化,精益求精。


更实时查看文章,请关注我的公众号 「程序猿思维」

转载于:https://www.cnblogs.com/gccbuaa/p/7263407.html

怎样学习(3):迭代学习,精益求精相关推荐

  1. 迭代学习控制方式Simulink建模与仿真

    1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大.1984年,Ari ...

  2. 分享一个简单的迭代学习机器人双臂控制(MATLAB)

    1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大.1984年,Ari ...

  3. 高阶无模型自适应迭代学习控制学习记录

    高阶无模型自适应迭代学习控制 参考文献 "High-Order Model-Free Adaptive Iterative Learning Control of Pneumatic Art ...

  4. 无模型自适应迭代学习控制原理和matlab代码仿真学习记录

    无模型自适应ILC原理及代码实现 这里学习的是很老的一篇论文<基于无模型自适应控制的反馈-前馈迭代学习控制系统收敛性研究>,作者是晏静文和侯忠生,大家有兴趣可以找来看看.这里主要介绍的无模 ...

  5. 【深度学习】深度学习:技术原理、迭代路径与局限

    来源:36氪 作者:何沛宽 本文尝试复盘梳理深度学习目前的技术要点,深度学习中模型迭代的方向,以及改进后存在的局限. 第一部分:深度学习技术基本要素:神经元.神经网络.分类器.可视化框架 在深度学习领 ...

  6. 最新8篇ICML2020投稿论文:自监督学习、联邦学习、图学习、数据隐私、语言模型、终身学习…...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 机器学习顶会 ICML已经 结束了 2020 年的论文投稿,作为最"硬核 ...

  7. 深度稳定学习:因果学习的最新进展 | 清华大学团队 CVPR 研究

    2021-05-02 13:44:18 作者 | 陈大鑫.张兴璇 这都2021年了,对 AI 而言,识别出猫猫狗狗肯定再简单不过了. 可是,可是,AI 真的有那么「丝滑」吗? 并没有--如上图所示,当 ...

  8. 联邦学习 OR 迁移学习?No,我们需要联邦迁移学习

    2020-11-18 13:40:43 机器之心分析师网络 作者:仵冀颖 编辑:H4O 在这篇文章中,作者通过 4 篇论文详细介绍了联邦学习中的联邦迁移学习问题,并探讨了向经典联邦学习中引入迁移学习的 ...

  9. 深度学习未来发展的三种学习范式:混合学习,成分学习和简化学习

    深度学习是一个很大的领域,其核心是一个神经网络的算法,神经网络的尺寸由数百万甚至数十亿个不断改变的参数决定.似乎每隔几天就有大量的新方法提出. 然而,一般来说,现在的深度学习算法可以分为三个基础的学习 ...

  10. 强化学习、联邦学习、图神经网络,飞桨全新工具组件详解

    2019-12-05 14:55:36 机器之心发布 机器之心编辑部 11 月 5 日,在 Wave Summit+2019 秋季深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在 ...

最新文章

  1. 大批量生成假数据,faker.js获得近28k个Star
  2. MapReduce设计模式
  3. 秋招要跪?不怕!领走这份机器学习求职攻略
  4. c#:Reflector+Reflexil 修改编译后的dll/exe文件
  5. mysql 密码 You must reset your password using ALTER USER statement before executing this statement....
  6. 足球 Floyd算法
  7. python3安装pymysql_Python3 MySQL 数据库连接 - PyMySQL 驱动
  8. LNCS用户写作指南【 Springer Computer Science Proceedings 】
  9. Linux开机运行应用程序
  10. 彻底理解SESSION
  11. python 云词库
  12. java 获取远程系统启动时间_从Java中的RuntimeMXBean获取系统启动时间
  13. 在Linux上运行ASP.NET vNext
  14. paip.论.NET体系的优缺点).txt
  15. 用最简单的方法生成代码雨,效果相当的哇塞。
  16. IDA6.1下载符号表时卡死
  17. Mosek学习笔记2:优化
  18. zblog实现评论显示IP归属地方法
  19. l/min是什么单位
  20. Mybatis框架与mysql数据库简单应用

热门文章

  1. 采用python解决实际问题_Python编程语言解决几种常见的实际问题
  2. BZOJ 4278: [ONTAK2015]Tasowanie 后缀数组 + 贪心 + 细节
  3. gif tools
  4. [Cocoa]深入浅出Cocoa之Core Data(2)- 手动编写代码
  5. linux可用机场客户端,Linux系统可用的6款Bittorrent客户端
  6. 网站三级分销数据库如何设计,简单案例
  7. 1、vue 笔记之 组件
  8. C# 列出进程以及详细信息
  9. php分页排序不变化,php – 计算已排序分页的给定记录的跳过值
  10. csv mysql_将csv的数据导入mysql