这是一位新同事和我关于如何快速学习的邮件对话,重新进行了整理。
现在有个困惑,之前你说在公司要快速的学习,可能之前接触java不是很多,在进行项目开发时,发现好多框架的代码看不懂,所以也就无从下手,感觉好多东西要学,而又不知道先学哪个,这样就又陷入了学习看书的情景,工作就耽搁了。比如今天在写代码时看到ModelAndView使用方法,如果要理解这个方法就又涉及到反射机制等知识,所以。。。。
=====================================================================================================================================
其实关于学习,要在不同的时候采取不同的方式。
一种是根据当前项目要求,掌握做什么,迅速切入项目,暂时放弃为什么;另一种是从书面知识入手,逐步深入学习,然后再应用到实践中。
在公司里一般会采取第一种。就像当前的项目,你有好多不会的东西,如果都要搞清楚,估计两个月就过去了,时间上显然是不允许的。这个时候你可以下面的步骤来快速切入项目:
- 了解项目的背景。了解当前项目主要的功能是什么,分配给自己相关功能的主要流程以及关键点是什么。另外,最好可以了解和你相关的模块的负责人都是有谁,这样便于后面的沟通。
- 了解开发流程和主要工具的使用方法。了解了流程以后,就会搞清楚要完成一个功能开发大概需要经过哪些步骤,在这些步骤都要应该做什么以及使用什么工具。
- 搭建开发环境。这一步就进入实战阶段,根据当前已有的代码基础,在本地搭建一套开发环境。搭建完成后,要确保所有配置都处于正常状态:数据库可以正常登录、执行SQL语句,IDE可以编译、运行和调试,SVN/Git可以正常更新、提交,等。
- 熟悉代码结构。在这一步就要掌握完成一个新功能所需要的步骤、所涉及的文件、代码以及这些代码的意义。
- 挑一个相对比较容易入手的功能,对上面学到的东西进行实践。
这种学习可能有点别扭,不过是比较快的。
在采取第一种方法的过程中,你就会有很多疑问,那么业余的时间就是要采取第二种方式解决这些疑问的时候了。在解答这些疑问的时候,就要有刻苦钻研的劲头,搞清楚问题的源头。
看你今天买了本子,建议你记录遇到的问题和解决方法。每一个问题可以分为三部分: 问题现象或者出错信息,问题原因,以及解决方法或步骤。
另外,你还要提高逻辑思维能力。就像之前我说的: 回去的路上想一想,身边的这些信息系统逻辑是什么样的、可能包括几部分、如果你来实现你怎么做,反复思考,不断强化。
另外,关于看书。我个人比较反对看这些快餐类的书书籍。我十分明白你的想法,因为我在学校时也希望有完整的例子可以指导我。但是技术发展太快,而很多书中的例子根本也不实用,所以很多情况是,一本书看完了,还是什么都没有掌握。我还是建议阅读官方文档以及官方的示例。关于搜索工具上,建议还是使用Google吧。
软件开发是一门实践性学科,所以要实践!实践!!实践!!!。