学习过程反思

简介: 本篇反思总结了一般的学习过程。掌握学习的方法,可以让你更高效地进行学习。这对于天天要学新技术的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图:这个环节相当重要,过程中应该一边了解类结构,一边绘制相应的类图,并可能需要绘制相应的时序图。
  • 忘记细节:一些开发人员在学习内部代码时,总是会提出某段代码写得不好,某段代码性能太差。这往往使得他对于框架本身的设计把握不到位。例如某段代码的性能不好,这种细节的问题,可以在性能问题体现出来时,再进行优化。

 


尾声

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

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

目录
相关文章
|
6月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
167 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
6月前
|
芯片
2023年的技术总结和工作反思
一、回顾2023年 回顾自己的2023年,还是发生了很多的变化。在大学毕业,就来到了芯翼参加工作,在这里也遇到了很多的前辈和小伙伴,收获工作的同时也收获了友情。但是,随着公司发展战略的变化,公司的人员架构也变额很多,对于我们刚毕业的大学生也变得越来越不友好,其实我也清楚这就是社会的发展现状。 其实,这不是我最终产生离职想法的结果,最终让我决定离职的是公司新来的人事主管十分的不理解我们,总是处处针对我们,这对于专心搞技术研发的我们来说,无疑是一个定时炸弹,让我们觉得自己的工作没有意义,甚至是没有成绩和结果,总是挂在嘴边的KPI考核也是越来越严格,总是觉得刚毕业的大学生的能力不行之类的,话说谁
|
2月前
|
项目管理
技术探索的心得与反思
在技术的海洋中,每一次深入都如同揭开未知领域的神秘面纱。本文将分享一些个人在技术领域探索中的感悟和反思。
|
5月前
|
算法 程序员
程序员必知:XGB算法梳理
程序员必知:XGB算法梳理
29 0
|
6月前
|
存储 算法 Python
学习编程是一个逐步积累的过程
【4月更文挑战第30天】学习编程是一个逐步积累的过程
44 2
|
6月前
|
算法 C语言
关于技术面试一些有用的经历
关于技术面试一些有用的经历
40 0
|
数据采集 Web App开发 程序员
成长的路上,谁不曾反复自我怀疑
大多数人在入门之后,都会遇到一个比较大的“瓶颈期”:这个阶段,你已经了解了编程语言的基本语法,可以看懂入门书上的所有例子,但是合上教程却又无法写出一个完整的代码,对于接下来的学习又缺少方向。以至于对编程这件事情感到迷茫,甚至自我怀疑。
谈谈讲清楚这件事的重要性
如何讲清楚一件事我相信很多人都很困惑也很无助,尤其是在晋升场合,在向上汇报或者是做大范围分享的时候,恨不得找个地缝钻进去。很多时候我们常常是这样安慰自己,我是实干派技术人,不需要那些花里胡哨的东西,我技术过硬比什么都重要。曾经一度我也是这样认为,最后改变我这个想法的是一句话:如果你讲不清楚多半是想不清楚,如果你都想不清楚如何能够带领更多人拿到结果?
1597 6
|
测试技术
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
软件测试面试题:软件测试的过程的V模型,说出它的缺点?
185 0
|
分布式计算 前端开发 Java
3 个方法,教你提升程序员的自我价值
3 个方法,教你提升程序员的自我价值
278 0