`
dwljd
  • 浏览: 6096 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

学习技术三部曲

阅读更多
今天在iteye上看到一篇关于学习的博文,觉得很好,特地转载过来。
博文地址:http://coffeescript.iteye.com/blog/1771267
以下是原文:

近几天有些网友在邮件里面问我关于学习的问题。有好几个人觉得工作了几年,也学会了不少的类库、框架、甚至语言,但是感觉自己的能力没有太大的提高。因此今天来说一下我个人对这方面的体会,希望对大伙儿(尤其是新手)有帮助。

先声明一下,本帖子讨论的三部曲是指你已经选定了某个技术方向之后,该如何学习;至于如何选定技术方向,则属于另一个话题,不在今天的讨论之列。

我把学习归类为三个步骤:What、How、Why。经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段。下面我把这三个步骤解释一下。

第一步:WHAT

所谓的“WHAT”,就是搞清楚某个东东是什么?有什么用?有什么语法?有什么功能特性?......
  
举例如下:对于学习语言(比如C++、Java、Python),大部分人都能够掌握基本的语法和标准库,然后用它写一些小程序(诸如二分查找、冒泡排序、简单文件操作等)。
  
对于学习类库(比如JDBC类库),大部分Java程序员都能明白JDBC主要包含哪些类,也能够用JDBC进行简单的数据库查询和增删改操作。由于这个步骤是最基本的,假如你连这都做不到(可能你的理解力不够好),也别在IT界混了。

但是光会What是不够的。仅仅停留在这个步骤,导致了很多程序员只知其然,不知其所以然。这就是目前大部分开发人员的现状。

第二步:HOW
  
所谓的“HOW”,就是搞清楚某个东西内部是如何运作的?实现机制如何?等一系列相关问题。
  
举例如下:假如你在学习C++语言,你是否搞明白函数传参数的实现机制?虚函数是如何实现?抛出异常时的栈回退是怎么回事?......
  
假如你在学习Java语言,你是否搞清楚GC如何实现?反射是如何实现?
假如你在学习JDBC库,你是否清楚JDBC Driver的4种类型?不同游标类型的实现机制?事务的机制?
  
在这个阶段,你必须多想想类似这些问题。然后通过各种途径(参见“关于自学能力”的几个方法),把问题彻底搞清楚。自然而然,你的提高就会比较明显。而且如果碰到一些深层次的问题(比如性能优化),也就知道该如何去解决。
  
完成这个阶段之后,你基本上就属于该技术领域最优秀的20%的人(根据二八原理,80%的人不会去思考HOW的问题)。

第三步:WHY
  
一般来说,只有你把HOW的问题想清楚,才开始考虑步骤WHY。所谓的“WHY”,就是搞清楚某个东西为什么设计成这样?为什么不是另外的样子?这样的设计有什么讲究?
  
说实在的,善于问“为什么”有一定的天赋成分?好像某个科学大牛曾经说过“提出问题有时候比解决问题更难”。一般来说,只有当你深刻理解了某个东西,才能够针对这个东东的设计问出一些问题。所以,我前面强调过,要先把HOW的问题搞清楚,再来考虑WHY的问题。
  
举例如下:对于C++语言:为什么C++没有类似Java的finally关键字?为什么C++当初没有考虑GC?......
  
对于Java语言:为什么Java没有类似C++的类析构函数?为什么Java要同时提供String和StringBuffer两个似乎冗余的类?......
  
对于Python语言:为什么Python不提供类似C++/Java的访问控制机制?......
  
如果你能够自己问出诸如上述的“为什么”问题,并且能够通过各种途径找到解答,那你基本上已经吃透这个技术了,并且你已经有可能自己去设计一个类似的玩意儿了。到这时,你已经踏上了通向技术高手的康庄大道。

由于本博客偏重IT方面,所以今天举的这些例子多半都是IT相关的,但是这个三部曲在IT以外的行业/领域其实也能适用,就看读者自己的领悟了。
分享到:
评论

相关推荐

    机器学习三部曲,让你从小白到大神

    机器学习是现代信息技术领域的重要分支,它涉及到统计学、计算机科学和人工智能等多个学科的交叉,旨在使计算机系统通过经验自我改进,实现从数据中自动学习和推断的能力。本资源包提供了从入门到深入的机器学习知识...

    spark大数据商业实战三部曲源码及资料.zip

    《Spark大数据商业实战三部曲》是一套深度探讨Apache Spark在商业应用中的实践教程,涵盖了Spark的核心技术及其在数据处理、分析和应用开发中的实际运用。这套资源包含了书中的源码和相关资料,旨在帮助读者深入理解...

    gwtext学习三部曲

    《gwtext学习三部曲》是一份专为GWT初学者设计的教程资源,它涵盖了gwtext和GWT Ext的相关知识。gwtext是Google Web Toolkit (GWT) 的一个扩展库,提供了丰富的用户界面组件和样式,使得在GWT平台上构建复杂的Web...

    PLC实验教学三部曲.pdf

    综上所述,PLC实验教学三部曲是针对PLC教学过程中的理论学习、实验操作和实践应用而设计的,能够帮助学生循序渐进地掌握PLC控制系统的设计和编程,是一种具有指导意义的教学模式。通过实际的案例分析和详细的实验...

    Spark大数据商业实战三部曲_内核解密_商业案例_性能调优 实例源码

    《Spark大数据商业实战三部曲》是一套深度探讨Spark技术在商业环境中的应用、内核解析及性能优化的实例源码集合。这份压缩包包含了丰富的实践案例和代码,旨在帮助读者深入理解Spark的核心机制,掌握大数据处理的...

    裸奔三部曲(全书)

    《裸奔三部曲》是一套专为新手设计的ARM开发学习资料,旨在帮助初学者快速掌握ARM架构的S3C2440芯片开发技术。这套资源包含了丰富的理论知识和实践案例,使得学习过程更加生动有趣。在本文中,我们将深入探讨其中的...

    程序员修炼三部曲之单元测试

    《程序员修炼三部曲之单元测试》是一本深入探讨软件开发中单元测试技术的重要书籍,尤其对于.NET、AJAX、C#、Java和VB.NET等技术领域的开发者来说,更是不可多得的参考资料。单元测试是软件开发过程中的一个重要环节...

    S3C2440裸奔三部曲

    通过《S3C2440裸奔三部曲》的学习,读者将能够掌握裸奔编程的核心技术,为开发嵌入式系统打下坚实的基础。这个过程不仅需要理论知识,更需要实践操作来加深理解。每个章节都应结合实际动手实验,以巩固所学内容。

    2020人力资源协同三部曲:HR与业务协同篇.rar

    《2020人力资源协同三部曲:HR与业务协同篇》是一份深入探讨人力资源管理与企业业务如何高效协作的专题资料。这份压缩包中的核心文件《2020人力资源协同三部曲:HR与业务协同篇.pdf》包含了丰富的理论知识和实践案例...

    物联网巧妙引领 三部曲高效学习.zip

    通过这三部曲的学习,你可以全面了解物联网的概念、技术、架构以及安全问题。不仅能够掌握物联网的基本原理,还能提升分析和解决实际问题的能力。在实际应用中,可以利用物联网技术推动智能家居、智能交通、智能医疗...

    裸奔三部曲之《三天学会ARM9无OS版》

    《裸奔三部曲之《三天学会ARM9无OS版》》是一本专注于ARM9处理器架构及其实现无操作系统环境编程的学习指南。ARM9是ARM公司设计的一种高性能、低功耗的RISC(精简指令集计算)处理器,广泛应用于嵌入式系统,如移动...

    物联网巧妙引领 三部曲高效学习.pdf

    "物联网巧妙引领三部曲高效学习"这一主题文件探讨了物联网技术如何高效地应用于教育领域,通过具体的教学实例展示了物联网技术与课堂教育的结合,以及其带来的积极影响。 首先,文件强调了“引领”与“推动”在教学...

    spark商业实战三部曲

    基于*的Spark2.2.X版本,分为内核解密篇,商业案例篇,性能调优篇,共31章,学习过程中有任何疑问,可加入群,有专业人员答疑解惑。 目 录 上篇 内核解密 章 电光石火间体验Spark 2.2开发实战... 2 1.1 通过RDD...

    C语言学习三部曲.pdf

    标题《C语言学习三部曲》介绍了马赞玮在其工作中对于C语言教学改革的探讨与实践。文章强调了在教学过程中,不仅仅要传授编程语言的知识,更重要的是培养学生利用计算机程序解决实际问题的能力。为此,作者提出了一个...

    C#入门经典教程三部曲

    本教程“C#入门经典教程三部曲”旨在为初学者提供一个全面且深入的学习路径,从基础到高级,帮助你掌握C#的核心概念和技术。 第一部曲:“C#完全手册”作为入门经典,主要涵盖了以下几个关键知识点: 1. **C#语法...

    Python学习三部曲之一:Learning Python 4th Edition

    《Learning Python 4th Edition》是Mark Lutz编写的一本关于Python编程语言的书籍,作为Python学习三部曲的第一部,这本书旨在帮助读者从零基础入门学习Python,并逐步深入到更高级的技术应用。这本书不仅适合作为...

    vtk使用三部曲

    标题与描述中的“vtk使用三部曲”指向的是关于如何使用VTK(Visualization Toolkit)的一系列教程或指南。VTK是一种开源的、跨平台的软件系统,用于三维计算机图形学、图像处理和可视化。以下是对VTK使用三部曲涉及...

    15天JQUERY三部曲

    《15天JQUERY三部曲》是一套全面而深入的学习资源,旨在帮助读者在短短15天内掌握jQuery的核心技术和应用。jQuery是一款强大的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。...

    vc 数据库开发 三部曲 教学

    总的来说,"VC 数据库开发 三部曲 教学" 提供了一个全面的学习路径,涵盖了从基础到高级的VC++数据库开发技术。通过这个教程,开发者可以有效地提升自己的数据库编程技能,更好地应对各种数据库驱动的应用程序开发...

Global site tag (gtag.js) - Google Analytics