学习过程反思

简介: 本篇反思总结了一般的学习过程。掌握学习的方法,可以让你更高效地进行学习。这对于天天要学新技术的IT人员来说,是非常重要的。     本文反思了自己学习WPF过程中出现的一些问题,然后对以后学习的方法进行了重新设计。

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

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

    本文的主要内容:

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

 

相关哲学理论

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

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

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

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

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

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

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

三省吾身。

 

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

什么是学习过程
学习方法概述-学习过程
学习过程的分析


 

原来的框架学习方案

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

image

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

  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技术,可以考虑减少一些。)。如下图:

image

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

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

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

 


尾声

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

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

目录
相关文章
|
3月前
|
芯片
2023年的技术总结和工作反思
一、回顾2023年 回顾自己的2023年,还是发生了很多的变化。在大学毕业,就来到了芯翼参加工作,在这里也遇到了很多的前辈和小伙伴,收获工作的同时也收获了友情。但是,随着公司发展战略的变化,公司的人员架构也变额很多,对于我们刚毕业的大学生也变得越来越不友好,其实我也清楚这就是社会的发展现状。 其实,这不是我最终产生离职想法的结果,最终让我决定离职的是公司新来的人事主管十分的不理解我们,总是处处针对我们,这对于专心搞技术研发的我们来说,无疑是一个定时炸弹,让我们觉得自己的工作没有意义,甚至是没有成绩和结果,总是挂在嘴边的KPI考核也是越来越严格,总是觉得刚毕业的大学生的能力不行之类的,话说谁
43 1
|
7月前
|
算法
算法分享三个方面学习方法(做题经验,代码编写经验,比赛经验)
算法分享三个方面学习方法(做题经验,代码编写经验,比赛经验)
37 0
|
8月前
|
SQL 前端开发 Java
分析解决问题的经验
分析解决问题的经验
|
测试技术
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
146 0
谈谈讲清楚这件事的重要性
如何讲清楚一件事我相信很多人都很困惑也很无助,尤其是在晋升场合,在向上汇报或者是做大范围分享的时候,恨不得找个地缝钻进去。很多时候我们常常是这样安慰自己,我是实干派技术人,不需要那些花里胡哨的东西,我技术过硬比什么都重要。曾经一度我也是这样认为,最后改变我这个想法的是一句话:如果你讲不清楚多半是想不清楚,如果你都想不清楚如何能够带领更多人拿到结果?
1561 1
|
测试技术
软件测试怎么学 两种学习方式总有一个适合你
近几年随着国内互联网的快速崛起,IT行业也兴起了一个新的行业,叫做软件测试,因为各大企业越来越重视软件的测试了没,所以越来越多的人开始加入了测试大军中,但由于软件测试在我国的发展时间并不长,所以大家都想要知道如果要从事软件测试行业,该怎么学习呢?
136 0
软件测试怎么学 两种学习方式总有一个适合你
|
分布式计算 前端开发 Java
3 个方法,教你提升程序员的自我价值
3 个方法,教你提升程序员的自我价值
231 0
|
前端开发 数据可视化 JavaScript
汤尧:走最难的路,看最好的风景
成长一种修炼,借事修人,从项目中探索成长之路,走最难的路,看最好的风景。
汤尧:走最难的路,看最好的风景
|
测试技术
10分钟通读《软件测试》理论
计算机行业流行一个笑话: 有三样东西在制造过程中是永远看不见的, 它们是 法律, 香肠和软件 ! 软件测试工程师 工作的职责: 尽可能早一些找出软件缺陷, 并确保它得以修复 软件周期和所处的阶段 构思 分析 设计 开发 测试 最...
1103 0

相关实验场景

更多