如何快速学习

简介: 这是一位新同事和我关于如何快速学习的邮件对话,重新进行了整理。现在有个困惑,之前你说在公司要快速的学习,可能之前接触java不是很多,在进行项目开发时,发现好多框架的代码看不懂,所以也就无从下手,感觉好多东西要学,而又不知道先学哪个,这样就又陷入了学习看书的情景,工作就耽搁了。

这是一位新同事和我关于如何快速学习的邮件对话,重新进行了整理。

现在有个困惑,之前你说在公司要快速的学习,可能之前接触java不是很多,在进行项目开发时,发现好多框架的代码看不懂,所以也就无从下手,感觉好多东西要学,而又不知道先学哪个,这样就又陷入了学习看书的情景,工作就耽搁了。比如今天在写代码时看到ModelAndView使用方法,如果要理解这个方法就又涉及到反射机制等知识,所以。。。。

=====================================================================================================================================

其实关于学习,要在不同的时候采取不同的方式。

一种是根据当前项目要求,掌握做什么,迅速切入项目,暂时放弃为什么;另一种是从书面知识入手,逐步深入学习,然后再应用到实践中。

在公司里一般会采取第一种。就像当前的项目,你有好多不会的东西,如果都要搞清楚,估计两个月就过去了,时间上显然是不允许的。这个时候你可以下面的步骤来快速切入项目:

  1. 了解项目的背景。了解当前项目主要的功能是什么,分配给自己相关功能的主要流程以及关键点是什么。另外,最好可以了解和你相关的模块的负责人都是有谁,这样便于后面的沟通。
  2. 了解开发流程和主要工具的使用方法。了解了流程以后,就会搞清楚要完成一个功能开发大概需要经过哪些步骤,在这些步骤都要应该做什么以及使用什么工具。
  3. 搭建开发环境。这一步就进入实战阶段,根据当前已有的代码基础,在本地搭建一套开发环境。搭建完成后,要确保所有配置都处于正常状态:数据库可以正常登录、执行SQL语句,IDE可以编译、运行和调试,SVN/Git可以正常更新、提交,等。
  4. 熟悉代码结构。在这一步就要掌握完成一个新功能所需要的步骤、所涉及的文件、代码以及这些代码的意义。
  5. 挑一个相对比较容易入手的功能,对上面学到的东西进行实践。

这种学习可能有点别扭,不过是比较快的。

在采取第一种方法的过程中,你就会有很多疑问,那么业余的时间就是要采取第二种方式解决这些疑问的时候了。在解答这些疑问的时候,就要有刻苦钻研的劲头,搞清楚问题的源头。

看你今天买了本子,建议你记录遇到的问题和解决方法。每一个问题可以分为三部分: 问题现象或者出错信息,问题原因,以及解决方法或步骤。

另外,你还要提高逻辑思维能力。就像之前我说的: 回去的路上想一想,身边的这些信息系统逻辑是什么样的、可能包括几部分、如果你来实现你怎么做,反复思考,不断强化。

另外,关于看书。我个人比较反对看这些快餐类的书书籍。我十分明白你的想法,因为我在学校时也希望有完整的例子可以指导我。但是技术发展太快,而很多书中的例子根本也不实用,所以很多情况是,一本书看完了,还是什么都没有掌握。我还是建议阅读官方文档以及官方的示例。关于搜索工具上,建议还是使用Google吧。

软件开发是一门实践性学科,所以要实践!实践!!实践!!!。


目录
相关文章
|
程序员
学习学习再学习
学习学习再学习
110 0
|
机器学习/深度学习 设计模式 算法
|
存储 数据库
pmq再学习三
前面我们已经了解了在做好基础数据的准备工作后,启动测试的时候,会做一个注册消费组的工作,完成后,我们就可以执行生产者发消息操作了。发消息的操作是:发送消息完成后,由于其采用的拉模式,我们可以看到消息在经过发送,存储到数据库之后,会做一个通知拉取数据操作,然后执行拉取。拉取完成后,进行响应。此时会进行消费操作,而这个过程的处理关键是handleData操作,从代码中,我们可以看到其是执行的线程操作是一个batchExcute批量执行操作,可以看到其里面有一个重要方法:threadExcute方法,从而进一步看到我们想看到的方法doMessageReceived
123 2
pmq再学习三
|
程序员 编译器 C++
C++学习——前进(三)
C++学习——前进(三)
91 0
C++学习——前进(三)
|
存储 缓存 监控
pmq再学习一
这个过程首先是创建主题,有了主题,创建消费组,然后基于消费组这个大前提,执行订阅操作,订阅需要进行消费的主题信息,然后在订阅的基础上,进行队列的分配。在这个过程中会执行元数据的变更和重平衡操作。而这些可以从审计日志中获取打印日志中可以看到很清楚。 下一篇,我们来看生产者和消费者的细节。生产者和消费者在执行操作前会执行一个操作init初始化操作,而这个初始化操作会将信息注册到将信息注册到MqClient中,因为只有将其进行统一管理的时候,在创建客户端对象的时候才会方便管理,同时方便调用,此时会启动心跳服务,此时少不了还有一个重要的操作就是注册消费组,同时需要关注一个点就是长轮询操作。
142 0
pmq再学习一
|
弹性计算 Linux 虚拟化
选择正确,不断学习
对于学计算机的,对于我的专业,学习并掌握Linux操作系统是必须的,但是一开始在自己的电脑用VMware在自己的电脑搭建虚拟机学习,但是这样会导致自己的计算机变得很卡,因为会占用主机很大的内存。在我的老师的引荐下,认识了阿里云服务器,而且他推荐我们去参加“飞天加速计划,高校学生在家实践活动”,那样可以先体验阿里云服务器ECS,看看是否适合自己。于是我便去完成了练习和答题拿到了体验资格。
|
JavaScript 前端开发 网络架构
JavaScriptEs6学习
JavaScriptEs6学习
|
弹性计算 Java 关系型数据库
学习介绍
解压tomcat压缩包 tar -zxvf apache-tomcat-8.5.70.tar.gz。 解 在idea将下面打包成war,通过命令传到服务器的tomcat里面,传进去后将会自己解压 通过这次的云服务器ECS的使用,我收获颇丰,第一次将项目放到了服务器上进行访问,在过程中,因为我目前使用的springboot,所以在tomcat上面使用较少,遇到大多数问题是部署到云服务器上端口以及连接的错误和Linux指令的不熟悉,我经常通过网络找各种解决办法,配置端口,删除重新解压一下,最后才能使用,将这次的心得体会写下来,以后再次使用阿里云服务器的时候,我看看通过这个文章,可以更快的部署服务器
fbh
|
前端开发
less 学习
koala 前端编辑less神器,下载,不需要安装less直接使用,拖拽式使用,可以直接在本地编译出文件css,否则需要安装less,node,以方便less 使用。
fbh
1088 0
如何学习一个新的知识
1为什么需要A 2.如何学习A 3.怎么使用A 4需要注意的问题 5.A的应用领域 6.A的优缺点
644 0