学习过程反思

    本篇反思总结了一般的学习过程。掌握学习的方法,可以让你更高效地进行学习。这对于天天要学新技术的IT人员来说,是非常重要的。

    本文反思了自己学习WPF过程中出现的一些问题,然后对以后学习的方法进行了重新设计。

    本文的主要内容:

  • 与学习相关的哲学思想 原来的学习方案设计 工具的反思 没学好的原因 新的方案

相关哲学理论

    我之前的文章中,有一些最基本的哲学思想和最抽象的学习过程,见:《方法》。这些基本理论中,与学习过程直接相关的是: 系统论:学习的过程中,切不可一叶障目,要系统、全面地认识你所要学习的东西。

普遍规律与特殊规律相结合:要理解所学事物的特殊性、它的设计理念、与其它同类的异同。

主次分明:所学事物主要解决什么问题,主要的设计理念,主要的解决方法。

透过现象看本质:透过各种实例看到内部的结构、设计原则、设计理念、抽象思维,思考这个事物出现的原因。

认识论:理论要和实践相结合,学习才能事半功倍。这一点在IT技术的学习上,表现得尤为明显。学习是一个迭代的过程,不可能“一口吃成一个胖子”,要“循环往复,螺旋上升”。

量变引起质变:学习是一个持续的过程,平时的一点一滴、对细节的研究,才能做到“深入了解”该事物。

学而不思则罔,思而不学则殆

三省吾身。

    关于学习过程,网上有很多相关的文章,有兴趣的可以看看:

什么是学习过程

原来的框架学习方案

    之前写过一篇《如何学习框架》,里面设计了如何学习一个框架。在学WPF的过程中,在看MSDN的同时,也在不断地总结框架学习方法:

    现在看来,还是有一些缺陷

  1. 帮助文档太细,许多内容重复出现,不适合作为教材。
  2. 由于学习过程是一个持续不断的过程,所以没有必要设计时间占用百分比。
  3. 学习过程没有必要分为轻量/重量两种方案。
  4. 和实践的结合还是太少!

学习工具的反思

    其实之前已经听说过MS Expression的名字,知道专业的WPF界面都是用这个设计器做出来的。但是一直没有去用,主要有几点原因:

  1. 原来学习ASP.NET的经验告诉我,要精通此类“Markup+Code”的编程模式,“只有自己动手写Markup,而不是用设计器生成,才能学得更深”。但是这一个方案在WPF学习的时候并没有发挥多大的作用。WPF的界面元素和代码编写较难,导致以直接学习Markup的方式学习时,障碍重重,寸步难行。这种看不起拖拽控件的方式,违反了“由浅入深”的原则
  2. 未了解工具的实际情况。当时感觉在Visual Studio这个集成的开发环境中,也集成了WPF的界面设计器。而我一直觉得VS功能非常强大,想当然地,觉得集成的设计器应该也很不会弱,不需要再使用其它的工具。在这种情况下,也就一直都没有安装MS Expression。
  3. 懒得去用。虽然VS一直是积极主动地使用最新版本,但是却一直懒得去使用一些其它的新软件,今天更新一下,明天更新一下,烦都烦死。嘿嘿。:) 但是其实使用新的工具只会在开始时多花一些时间,等到熟练以后,使用它可以为自己节省出更多的时间,这个适应过程还是值得的。

    走到前不久,偶然间试用了一下MS Expression Blend 4,发现在上面设计界面非常直接、易用,和VS自带的设计器完全不一样,这个设计器是为专业的设计人员开发的。难怪自己一直都很难做出绚丽的界面!

反思

    没有学精WPF的原因:

  1. 没有向高人请教。
  2. 没有由浅入深
  3. 没有尝试使用界面设计工具。懒得去用。
  4. 和实践结合过少/没有系统的实践。之前学习WPF的时候,花了大量的时间在系统的学习上,但是系统的实践却很少。一是因为现在做的项目中的界面都是自动生成的,没机会应用学到的理论;二是每一个小节后做一些零散的练习,并不系统,没有把这些零散的点结合在一起。

新的方法

    新的学习方法中,对上述问题都进行了考虑。大致分两个阶段进行学习,同时,引入较多的实践环节(实践的量的问题可以现斟酌,如果不是学习IT技术,可以考虑减少一些。)。如下图:

    图中,考虑到了总结对于学习的重要性。另外,在挑选《快速版本》和《完整版本》的系统知识“书籍”时,应该多听听专家的意见。

    总体上来说,整个框架的体系架构、内部的各子系统的设计,还是比较复杂的。在学习整个框架时,参考以下建议

  • 分主次、目标导向:需要分清主次、先后顺序进行学习。(如果全部细致地学习,最后会发现,只有少部分知识是平时会使用到的。)
  • 由表及里:先学习如何基于框架进行开发,并尽量多开发几个示例模块,熟悉后,再学习框架。
  • 先总后分:先大致了解整个架构思想、分层,以及组成部分。再做出框架各组成部分的学习计划,逐个击破。
  • UML图:这个环节相当重要,过程中应该一边了解类结构,一边绘制相应的类图,并可能需要绘制相应的时序图。
  • 忘记细节:一些开发人员在学习内部代码时,总是会提出某段代码写得不好,某段代码性能太差。这往往使得他对于框架本身的设计把握不到位。例如某段代码的性能不好,这种细节的问题,可以在性能问题体现出来时,再进行优化。

尾声

    学习各种框架是开发人员学习过程不可缺少的一项任务。如何能高效地学习,直接影响了技术储备量。

    本文中对我个人出现的问题进行了一些反思,也画了新的学习方案。希望各位园友可以分享一下自己的框架学习经验,也希望能为我指正图中的不足之处,万分感谢。 :)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《OEA - 实体扩展属性系统 - 设计方案说明书》

        这篇设计文档是 12 月份写来参加公司的研发峰会的,自己倒是信心满满,不过最后还是没有入围。现在想想也没啥大用,所以贴出来,期待与园友交流。     文...

    用户1172223
  • OEA 扩展属性系统 - 主要设计类图

    时间有限,简单快速的完成本篇博客……(很多问题在此就不细说清楚了,主要还是记录一下成果。) * 先是整个子系统要完成的需求列表: ? * 然后是对它的分析,以及...

    用户1172223
  • 基于OEA框架的客户化设计(二) 元数据设计

    上篇 已经就客户化的整体方案进行了叙述,这次主要是说明一些细节部分的设计。 类型的视图元数据     基于OEA框架的GIX4项目中,客户化工作主要是对各客户...

    用户1172223
  • 【Andrew Ng 机器学习】Week 1(一):基本概念和线代基础

    木东居士
  • 多伦多大学最新版《机器学习导论》

    机器学习(ML)是一组技术,允许计算机从数据和经验中学习,而不是要求人类手工指定所需的行为。ML在AI的学术领域和工业领域都越来越重要。本课程提供了一些最常用的...

    肉眼品世界
  • AI领域学习路线图:普通程序员如何转向AI方向

      眼下,人工智能已经成为越来越火的一个方向。普通程序员,如何转向人工智能方向,是知乎上的一个问题。本文是我对此问题的一个回答的归档版。相比原回答有所内容增加。

    机器人网
  • 如何快速学习Python?

    上个月我在《程序员如何打造竞争力?》中提到过我选择了学习Python横向扩展自己的技术广度,接下来我就来说说学习体验。

    陈宇明
  • 元学习 – Meta learning

    深度学习:深度学习相比机器学习来说,在复杂问题上的效果更好,但是面对互相影响的问题或者连续问题时就无从下手了,智能处理一对一的映射问题;

    easyAI
  • AI的元学习之路

    人类的智能的一个关键点在于能力多样性 —— 我们能胜任各种各样的任务。而目前的AI系统则擅长掌握单一技能,例如围棋,Jeopardy(美国的一档电视智力竞赛节目...

    人工智能资讯小编
  • 机器学习的基本概念

    我发现,查阅和掌握机器学习基本概念的最佳方法是,回顾机器学习教科书的介绍章节,并观看典型的在线课程视频。

    人工智能资讯小编

扫码关注云+社区

领取腾讯云代金券