现在的位置: 首页 > 综合 > 正文

学习技巧总结

2017年10月23日 ⁄ 综合 ⁄ 共 12225字 ⁄ 字号 评论关闭

      学习一样新的东西,最怕就是没有条目,盲目杂乱地学习,或许你可以使用部分知识开发出应用来,但是当需求改变时你是应该怎么修改既有的代码呢,所以掌握部分还是不行的,必须系统全面的学习一门新知识.知道新知识的各个知识点,你可以不深入,但必须知道这个知识点的缺陷及其优点.为你选择技术提供强大的保障.

      学习一门新知识,虽然可以看视频进行快速全面的进行掌握,但是记忆的短暂的,要把技术记住,还是需要记下来,以便日后遗忘是进行查看,所以推荐大家写博客.

_________________________________

写博客和看视频之间也是有技巧的:

      看视频,不用看从头到位完整看一遍,毕竟视频也讲不全面,但是可以从视频中获取学习的方向和学习的知识点,和一些问题及使用技巧.有了知识点之后你就可以查互联网进行全面系统的学习,也可以翻阅相关的书籍或者api或者文档,源码当然是最好的方式了.

      一个一个知识点进行总结后,这门技术就才可以说入门了,要想掌握还得在项目实战上所遇到的各种问题解决的过程中深度掌握

      学习的核心是掌握各种技术的原理及其概念,然后再是配置和使用(自己总结)

_________________________________

java学习重点:

      额,这个嘛,你自己想哪个方向呀,Java的现在主要是做web,会hadoop的话可以做大数据,测试开发一般要会python和shell哦 哦,大公司比较重基 大公司一般有自己的框架,比较注重基础 础哦,算法这些,还有就是你开源代码的阅读,Java的话数据库也问得比较多 ssh感觉问得不多 嗯,比如jdk的源码,像集合,线程那些你可以试着读一读(感谢冉佳璐学姐指点)

_________________________________

钻JVM应该怎么学?钻研Java应该学哪些东西?

目前JVM的种类很多,而且各有不同。一般来说,可以看看周志明写的深入理解理解JVM这本书,还有IBM一些专家的技术文章(http://www.ibm.com/developerworks/cn/)。主要这两方面。

钻研Java的话,我觉得分为两个方面:JDK部分,重点开源框架源码。每个方面抓住一些主要的东西去学习收获比较大。(师傅指点)

_________________________________

学习的过程?

但是我有点疑问:这些转载的内容,你是否真正的掌握了?技术的学习过程是:发现知识->获取知识->理解知识->整理知识->复习知识->再次理解和整理,尤其后面两步要反复进行很多次,最终纸上的知识才成为自己的大脑知识,才能转换为个人能力。所以我希望你获取知识之后,还要不断的复习不断的理解,最后成为自己的东西。
因为每一个人对知识的理解角度是不一样的,从最初的看别人的内容到真正成为自己的内容需要经历很长的过程,希望你还要不断的复习,不断的修改,添加自己的认识。(师傅指点)

_________________________________

框架的学习重点与使用重点?

不要简单是熟悉框架,要多加入深刻的内容。使用框架的时候,多注意使用高级的技能,这样对提高技术很有帮助的。比如设计的电子商务类项目,可以在添加缓存和定时更新的功能。例如:网站启动的时候,将一部分数据加载到缓存,程序正常运行之后,每隔一分钟刷新一下缓存,可以使用quartz框架。另外可以使用eventbus(一个消息处理机制。你将数据变成消息,然后放到eventbus里面,eventbus自动就把消息传递到处理消息的函数上,这样可以实现同步处理和异步处理的。当然,前提是处理函数要注册到eventbus上面。)实现异步处理的。你不需要做非常复杂的应用,但是你要把重点的知识应用起来就行了。(师傅指点)

_________________________________

java的学习过程与学习周期?

Java四大组成部分:
语言
JVM:机制,思想,实现。
类库
三方类库

先把所有关键字全部弄懂,会运用,再把常用的三方框架,类库学会、接着研究高并发和JVM。你不会用这些(比如,Spring,SpringMVC、Tomcat,MyBatis之类的。),你去学高并发,学网络,学JVM,这些就很吃力。个人觉得费力不讨好。
第一基础是JavaSE,第二基础是这些框架。会了这些你再去研究高深的知识。有效时间,6-10个月基本上可以学一遍。(群成员指点)

_________________________________

怎么拿高薪呢?

不难学,很容易上手了,怎么和其他人区分开来?你能解决的问题换个人都能解决,你怎么拿高薪呢?不吃苦怎么可能有好职位等着你?不吃苦就只有增删改查的岗位等着你。。。运气好,肯拍马屁,或许会有个管理岗位赏给你。把经验变成不可替代性。
更擅长归纳事物本质的程序员渐渐都成了构架师, 而剩下的人完成了项目80%的工作却领到20%的报酬.(群成员指点)

_________________________________

反射的应用?

反射属于高级内容,但是不是java中最重要的内容。一般情况下,我们使用反射的机会不多,因为我们平时的开发中都是为了完成任务开发的,如果你要想开发一个框架或者开源工具类,我想你必须要掌握反射的。大家如果读过开源框架的话,那么会有深刻的印象:到处都是反射。(师傅指点)

_________________________________

系统学习数据库?

要系统的学习sql语句的话,韩顺平的oracle教程很不错的,你可以了解下,另外对于以后实际运用,Hibernate
iBATIS 等持久层框架选一款好好学学

(群成员指点)

_________________________________

native方法?

太细的东西是不需要了解的。都封装到dll文件和操作系统文件了。(师傅指点)

_________________________________

好学校和一般学校的区别?

先说一下好学校和一般学校的区别吧。在好的学校不会比一般学校有更好的硬件条件,也不会说有更好的老师教授知识,最大的区别就是好学校的同学想的高。在好的学校,学习好的同学整天想的是进入百度,腾讯,阿里这些高大上的企业,而这样也带动了学习一般的学生,他们也会努力的学习,也会努力的拼搏进入好的企业。而在一般的学校,很少有人会为进入名企而奋斗,就连说出去,都会遭到别人的讥笑。所以,在一般的学校,大家把目标放的很低,不是他们没有能力进入名企,而是他们不敢想,更不敢做的。(师傅指点)

_________________________________

简历?

一般简历会分成:掌握的技能和实习/项目经历这两部分。另外针对不同的职位可能准备不同特色的简历。(师傅指点)

_________________________________

网站建设?

这个网站建设,很多有开源的,所以建设一个站基本是零要求的,非计算机专业的人也可以很快学会的。主要的目标是扎实Java开发。(师傅指点)

_________________________________

关于做笔记和复习?

最好的方式就是好好善待自己的笔记,做好技术笔记,以后多复习。复习一遍,就会在原有的基础上添加东西,这样复习多边之后,你会发现笔记里面的东西越来越多,自己对知识的理解也是越来越深。

网上的,书上的,还有我写的,都是按照自己的思考和认识组织知识点的,这种形式不一定适合你,所以我建议大家,按照自己的认识来组织知识点形成笔记,这样才能学得扎实。(师傅指点)

_________________________________

如何写博客?为什么写博客?

一是, 我不再那么乐于去学新的注定不会成为体系的东西了, 因为它除了能展示一下小聪明, 时间回报率特别小.
二是, 如果我决定去深究一个东西, 我一定要完全搞懂, 并认真总结一篇博客让我以后能在短时间拾起来 ( 因为不搞懂你很难写一篇半年后还能理解的博客 ).

三是,很多情况下,我是通过阅读大量的相关文章,然后汇总起来,修改一下其中的错误或者添加些自己的理解写出来的。

在程序员跳槽的代价里, 标价最高的一条便是: 你需要重新证明自己. 每次初到一个环境, 不管ceo是你的同学还是以前的老板, 你必须在短时间里证明自己的能力, 因为第一印象决定了很多. 不管在上级,下级,还是平级同事里, 它都影响着你的工作或收入.

让自己变得牛逼, 让别人知道你牛逼. 我通过写博客来让自己更擅长归纳和抽象, 也通过写博客来让别人知道我能胜任一工作.

转自:http://www.cnblogs.com/jhzhu/p/3893297.html

_________________________________

Java能做什么呢?

Java能做什么呢?围绕这个话题我想给大家说一说。
第一部分:web开发
(1)web开发的方向。
网站的类型主要有:网上商店,保险类,银行类,企业网站,石油化工类的网站。
一个典型的的开发团队就是:一个CSS前端,一个js前端,一个图片编辑,一个java后台开发,一个运维,一个dba,一个产品,一个推广。
一般的开发流程就是:产品设计出一个流程,比如说准备推销一款饮料,需要设计出用户参与的每一步流程,每一步流程所对应的页面效果,这是需要文稿的。设计出活动路程之后,产品找到图片编辑,将自己的想法告诉图片编辑,图片编辑设计出绚丽的图片效果。图片编辑把设计好的图片提交给css前端,css前端设计出整体页面的html布局格式,如有动画效果,则让js前端添加页面效果。至此,一个html的静态页面就做好了,然后提交给后台java开发。java开发写好数据脚本,提交给dba负责审核一下,看看效率如何,然后执行这些数据库脚本(建表,修改字段等等)利用数据操作,java开发人员使用spring框架,struts框架,mybatis框架可以从数据库中读出数据,然后通过一个struts标签,例如if标签,iterator标签等等,融入到前端提交的html页面,将html页面变成jsp页面。
(2)web开发的特点
对于大多数人来说,web开发属于比较有意思的事情,因为它与实际的生活密切结合,你可以在开发累的时候,去看看抽个奖,或者看看新闻。因为这些功能也行就是你周围的同事开发的,你在娱乐的过程中,可以发现产品的问题,甚至提出自己的建议,这个在公司中是受到鼓励的。做web开发的待遇还是不错的,一般本科生应该是7000-8000的是水平。
做web开发的行业,就业范围比较广,容易找工作。
(3)web开发的弊端
做web开发,如果进入一个小的公司,那就有点惨了。小的公司要求员工会js,会css,会ps,会html5,会sql,会mysql,会oracle。但是,千万别觉得这是最惨的情况。因为,凡是遇到了遇到了问题,你都可以去网上找到答案。相对来说,虽然需要学习的内容多,任务重,但是靠着网络这个神奇的工具,很多问题我们都会很快的解决。
第二部分:c/s开发
(1)c/s开发的方向
c/s开发就是桌面开发,这类开发设计的业务比较强,在开发的过程中与业务联系的非常紧密。常见的工作职位有:华为,中兴等企业生产出设备之后,通过Java程序来管理这些设备。
这些开发需要非常深的通信背景,而且每一个程序的流程背后都是一个通信公式在支撑着。很多时候,读上半个月的代码,直到把脑袋读的冒烟,也不知道代码在做什么。上网查询,什么也搜索不出来,因为这种商业机密不可能会流传到网上的。所以,在开发中使用的面比较窄,就是swing和xml处理,但是晦涩的专业知识,足以折磨死成百上千的脑细胞。
(2)c/s开发企业文化特点
使用桌面开发的企业,一般的都是比较传统的公司,这类公司的文化氛围比较传统,人事关系比较复杂,或者说有些官僚主义作风,没有做web开发那样的自由和开放。一般来说,在这类企业做工作,时间越久越吃香,对于初来的新人而言,有点压抑。如果能遇到一个不错的上级,那么是幸运。如果遇到一个比较强势,比较有心计,有权利欲望的上级,那除了巴结他以外,否则很多地方都会被挑错。
(1)c/s开发的发展前途
c/s开发面窄,在一个较小的领域,还是有一些公司在使用,跳槽的话,只能在类似的公司之间轮换。当然,你也可以专向web开发,不过有点困难。

(师傅指点)

_________________________________

对于算法的认识?

从某种意义上来说,算法这些东西,作为一个普通的 Code者,在程序上基本很少会用到多高深的算法问题。但是一定要了解一些基本的。比如说二分法查找,冒泡排序 等等,我就不一一罗列了。

高深的算法,在游戏领域会用的更多些。我们不能为学算法而学算法,那只是一种逻辑思维,或者说习惯。在程序中我们不能生搬硬套。在没必要的情况下,在程序中加上算法,好像这样做显的自己有多高深似的。这是一个愚蠢的做法。

一个算法的优劣可以用空间复杂度与时间复杂度来衡量,你写的程序/代码,又快占内存又小,就是可以说你用到的算法好,当然啦,所有的程序/代码都要保证是正确的,健壮的,才去考虑好坏。

当然每个人对算法的理解不一样,在我看来算法什么时候都在用,按照基本的运算和步骤解决一类问题。这就是算法。

没必要说是用到了很多数学领域的东西,才叫算法。要知道,那只是一种考虑问题的逻辑思维,角度, 仅此而已。(群成员指点)

_________________________________

eclipse插件的认识?

必须用插件来解决的问题,就是你们的路走错了。(别用插件。)

_________________________________

有个万(wu)能(lai)
的面试技巧,你可以问求职者,这个背后的思想是什么,你理解他的原理吗?

GC 有哪几种,  
每个JDK版本中有什么区别,  
哪几种算法比较好,  
适合什么情况,  
其回收的思想是什么,  
怎么实现的,  
优缺点是什么、  
你要如何调优。。。(群成员指点)

_________________________________

Java基础知识:集合类,eclipse,resin,JDK部分源码,目的是:扩展眼界,培养正确是Java思想

Java高深知识:jvm调优,类的加载,线程,并发包,设计模式,反射,目的是:进入名企,成为高级开发程序员

Java框架知识:servlet标准,struts2源码分析,mybatis源码分析,spring 源码分析,memcache源码分析,目的:锻炼系统能力,提高工作能力。

这是我把Java的学习过程大致的描述了一些,大家可以参考看看。(师傅指点)

_________________________________

对框架的认识?

各个服务端框架不一样,底层的本质和Servlet没有区别。

一直以来,在项目开发中都使用各种开源框架,比如SSH(Struts
+ Spring + Hibernate),基于页面技术的Dwr,ExtJs,JQuery等等。公司经常会召开周会(每周五下午)各予其见,头脑风暴畅所欲言的发表自己的意见,经常听到这样一些声音,比如"现在的struts 框架版本太低,需要从Struts1.0升级到Struts2.0"。也就是说有些同事太依赖于框架,没有这些框架就干不了活。好像工作做的不好,干活速度慢都是怪框架版本太低。其实对于一个软件开发人员,过度依赖框架最自己是不利的,或者说对自己以后的发展都是不利的。可能对开始刚入门时提高开发速度却有有立竿见影的效果。但是几年以后?要知道开源框架层出不穷,这辈子都学不尽。
开源框架是什么?其实框架就是一个工具而已,所有的开源框架都是基于某种技术的基础之上进行封装的。比如Hibernate是基于JDBC封装的。JDBC原理,在往数据库中插入一条记录时需要获取连接,打开会话,插入数据,提交事务,关闭会话,关闭连接等一系列动作,需要手动去编程。而如果用Hibernate ,只需要手动编程插入数据这一个动作,其它的动作Hibernate都帮我们自动做了。还有比如Jquery源代码其实就是一堆封装了的JavaScript。所以说框架的使用确实给编程带来了方便,但是也使工程师变的越来越傻瓜,经常使用拷贝,粘贴,一个功能只需要把配置文件配置好了,功能基本上都成形了。对于复杂的问题,报个错误都束手无策。
所以工程师要想成为技术高手,必须把内功练好,开源框架只是一个辅助工具而已。真真需要的是学习框架的思想,查看它的源代码,然后把框架后面的东西摸透,比如jdbc,javaScript。对于一个毕业一到三年的工程师,需要修炼的内功有哪些呢?我认为有如下几点:
(1)、用户体验,在实际的项目开发过程中,主题功能开发时间只是很小一部分,大部分时间都花在了对需求的细化和对用户体验的细化上面。所以在开发的过程中,不仅仅是把基本功能实现好,当然基本功能这个是必须要努力,完整的实现好的,因为这是项目的基本骨架,这是客户的最低底线。然后如何去细化哪些用户体验方面的东西,需要下功夫。使用户用起来方便,舒服。
(2)、程序扩展性,功能在实现的时候一定要有扩展性,而不能把一些东西在程序里面写死了,客户的需求总是在变,功能在不断增加,程序有好的扩展性,能很好的应付这些变动。比如一个扩展的功能需要加进来,好的程序只需要增加一些接口,或者重用原有程序的方法,只需在这个方法里面再新增一些额外的代码而已。
(3)、程序健壮性,任何代码都必须经的起超级变态测试人员(不是骂人,而是说这个测试人员很尽责)的测试 。在被别人测试之前,首先要自己测试,比如单元测试,功能测试。这样给别人测试的时候自己才有底气,才自信,而测出来的bug也是最少的。
(4)、代码重构,当代码或者说这个类的属性,方法随着需求的增加急剧膨胀的时候,我们是时候要考虑重构了。重构也就是对膨胀的类进行分解、划分成多个类,使类之间保持继承或者依赖关系。对膨胀的方法进行划分成多个方法,使每个方法实现单一的功能然后在不同的地方调用。

_________________________________

程序员的出路?

一直以来,在项目开发中都使用各种开源框架,比如SSH(Struts + Spring + Hibernate),基于页面技术的Dwr,ExtJs,JQuery等等。公司经常会召开周会(每周五下午)各予其见,头脑风暴畅所欲言的发表自己的意见,经常听到这样一些声音,比如"现在的struts 框架版本太低,需要从Struts1.0升级到Struts2.0"。也就是说有些同事太依赖于框架,没有这些框架就干不了活。好像工作做的不好,干活速度慢都是怪框架版本太低。其实对于一个软件开发人员,过度依赖框架最自己是不利的,或者说对自己以后的发展都是不利的。可能对开始刚入门时提高开发速度却有有立竿见影的效果。但是几年以后?要知道开源框架层出不穷,这辈子都学不尽。
开源框架是什么?其实框架就是一个工具而已,所有的开源框架都是基于某种技术的基础之上进行封装的。比如Hibernate是基于JDBC封装的。JDBC原理,在往数据库中插入一条记录时需要获取连接,打开会话,插入数据,提交事务,关闭会话,关闭连接等一系列动作,需要手动去编程。而如果用Hibernate ,只需要手动编程插入数据这一个动作,其它的动作Hibernate都帮我们自动做了。还有比如Jquery源代码其实就是一堆封装了的JavaScript。所以说框架的使用确实给编程带来了方便,但是也使工程师变的越来越傻瓜,经常使用拷贝,粘贴,一个功能只需要把配置文件配置好了,功能基本上都成形了。对于复杂的问题,报个错误都束手无策。
所以工程师要想成为技术高手,必须把内功练好,开源框架只是一个辅助工具而已。真真需要的是学习框架的思想,查看它的源代码,然后把框架后面的东西摸透,比如jdbc,javaScript。对于一个毕业一到三年的工程师,需要修炼的内功有哪些呢?我认为有如下几点:
(1)、用户体验,在实际的项目开发过程中,主题功能开发时间只是很小一部分,大部分时间都花在了对需求的细化和对用户体验的细化上面。所以在开发的过程中,不仅仅是把基本功能实现好,当然基本功能这个是必须要努力,完整的实现好的,因为这是项目的基本骨架,这是客户的最低底线。然后如何去细化哪些用户体验方面的东西,需要下功夫。使用户用起来方便,舒服。
(2)、程序扩展性,功能在实现的时候一定要有扩展性,而不能把一些东西在程序里面写死了,客户的需求总是在变,功能在不断增加,程序有好的扩展性,能很好的应付这些变动。比如一个扩展的功能需要加进来,好的程序只需要增加一些接口,或者重用原有程序的方法,只需在这个方法里面再新增一些额外的代码而已。
(3)、程序健壮性,任何代码都必须经的起超级变态测试人员(不是骂人,而是说这个测试人员很尽责)的测试 。在被别人测试之前,首先要自己测试,比如单元测试,功能测试。这样给别人测试的时候自己才有底气,才自信,而测出来的bug也是最少的。
(4)、代码重构,当代码或者说这个类的属性,方法随着需求的增加急剧膨胀的时候,我们是时候要考虑重构了。重构也就是对膨胀的类进行分解、划分成多个类,使类之间保持继承或者依赖关系。对膨胀的方法进行划分成多个方法,使每个方法实现单一的功能然后在不同的地方调用。

转载自:http://blog.csdn.net/cdl2008sky/article/details/5843064

_________________________________

程序员需要的综合素质?

(1) 技术:技术是根本,是今后前途支柱之一。但不是最大的支柱。
(2) 综合素质:综合素质高手才前途无量包括管理,沟通,协调和攻关能力。
(3) 朋友圈子:不要都是工程师。三教九流都行,了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,
(4)知识面:除了专业知识,金融,财会,进出口,税务,法律都要涉猎。

_________________________________

程序员如何提高自己的竞争优势?

竞争优势其中有一条就是通过高壁垒把竞争者阻挡在外面。作为一个软件工程师,竞争优势已经不在是写出漂亮的代码,记得刚来银河长天的时候对于一些开源框架一点都不了解。工作几个月以后发现那些东西太傻瓜了,找个刚毕业的大学生或者高中毕业生教几天肯定也能做系统。靠时间就能累积经验,这种想法害死人,三年做同样的事情累积的经验可能还不如一年做那样的情,因为三年中你损失了时间,而且重复工作会让你变得懈怠。困惑期间很难受,相当难受,而更大的困难在于,你得先找出自己行业或者职业的竞争优势在哪里,然后才能提高它。增加自己的价值到底是什么?还需要自己去摸索。随着时间的推移,想法会发生变化的。
暂时的想法是:要想增加自己的Value就是把事情做好,做精细。提高基本功底和素质。

_________________________________

重复解决问题,如何积累这些问题?
我们应该建立自己的代码库和问题解决方案的方案库,这样可以避免我们走重复的路,一个问题解决三遍才能记住,所以建立这样的库是很有必要的,因为这样我们可以让我们在工作中不断1+1,2+1,3+1的积累,而不是1,1+1,1+1这样我们的做起事情来就会事倍功半。所以在工作中养成良好的习惯是非常重要。

转自:http://blog.csdn.net/qiulongtianshi/article/details/17032047

_________________________________

自学能力及技巧?

能靠官方文档解决的决不去问Google,能Google出来结果的绝不去问人。有事没事可以加个技术群,逛逛技术论坛,还是有好处的。

_________________________________

Memcached和Redis?

在基于关系型数据库的Web应用需要提高性能时,使用缓存是绝大多数架构师的第一选择,自然,Memcached和Redis通常是优先选择。

_________________________________

工具的使用?

能用工具解决的,决不用手。敲代码什么的,都是码农干的事,程序员应该把精力放在思考和学习上,而不是干苦力。

_________________________________

可以只学Java吗?

只会Java自然只能拿Java的工资。但是把Java用灵活了,搭配其他武功,自然就是解决方案专家。Java专家也有市场,但是总需求肯定有限。

_________________________________

看视频可以学到什么?

不看视频的学生,就是会缺少很多有用的普通知识。

_________________________________

提高自己的手段?

初学者看视频。入门以后写代码,熟练以后看书,更熟练就看英文版,高手自己思考.
这都是提高自己的手段。

_________________________________

程序员基础?

作为一个程序员,有三大块,你怎么学都可以:
1. 编程语言,比如Java,Java基础, Web,中间件,Spring等等
2. 数据库, 比如 MySQL,Redis,Hadoop等等
3. 网络基础, 如 HTTP,TCP,路由,负载均衡,Linux ,LVS,存储等各种技术

_________________________________
抽象和特例化?
事实上我们在软件开发的过程中总是:遇到问题,解决问题,这么一个 简单的过程。处理一般类似问题的时候,我们经过抽象,有的提取算法,有的提取结构,有的提取流程等等,这样的过程可以简单理解为就是抽象。然而问题是多种多样的,我们不可能碰到的都是相同的问题,所以不可避免的我们会面临特殊情况,相对的就有新的算法,新的结构,新的流程。这就是特例化。
_________________________________
现在我刚开始工作不到半年,在工作的同时想学习一些知识提高自己,但是不知道从哪里入手,学习的东西很杂,一会儿是关于网站并发类的,一会儿是基础类的学习,感觉学习太慢。就在前几天群里的一个群友说工作好几年了,换工作时面试官说他的基础不行。我是想提前把你们过来人容易
遇到的瓶颈提前的学习,尽量将来能突破常见的瓶颈,望赐教?(工作与学习的矛盾,学习的方向)
第一:“学习的东西很杂”,这是大多数人的通病,我也不例外。有的时候,因为某事引发了我兴趣,我就看几天struts框架,后来又因为某事引发了我的关注,我就看几天mybatis源码,最终的结果是:顾此失彼,整天忙忙碌碌的,但都没有深入,最终效果很差。
第二:“学习的东西很杂”,这不能怪你,因为外界环境给你提供了过多使你分心的因素。你既想工作好,又想自学收获多,这本来就是一个矛盾体,如何才能正确的 处理这个矛盾呢?我个人的做法是:制定一个长久并且专注的自学计划。这样才能真正的深入学习,否则,框架,基础知识这些内容都是蜻蜓点水,都是泛泛而至, 最终那个方面都没有学好。例如,我会拿出3,4个月甚至更多的时间去学习一个类别的知识,比如说集合类,基础语法等等。因为平时业余时间不多,虽然按照计 划进度比较慢,但是我感觉学到的东西非常多。这个我个人的做法,推荐你试一试。
第三:“学习太慢”,也许是因为你工作忙业余时间比较少,也许是因为你“学习的东西很杂”,战线太长,导致进度慢。前者无所谓,毕竟工作是权重是最高的;后者就需要纠正了,要制定一个专注的计划。
第四:“基础不行”,是因为没有入门,枉学习了这么多年,所以学习知识还是要踏实一点,把眼光放低点,从缝隙里发现基础。什么是基础知识,这个内容非常多,而且与经验和对java的热爱程度有关,主要还是个人感悟。
_________________________________
读书?
读书其实主要学习两种内容:一曰道,一曰术。道是本,术是末;道是思想、是方法,术是技能;道让你知道你该如何学习、该选择什么学习、该坚持什么、该放弃什么,术就是学习具体的技艺了。
_________________________________
要想做为一个合格的程序员,我个人认为需要具备的最基本的能力包括下面四点 :
(1)细心。细心是可以培养的。从生活小事抓起,比如很多人看了一遍群规,最后改名的方式就各式各样,其实,这一件小事就反应了一个人编程能力的高低和自身的潜力。细心习惯,在于积累,量多而质变,平时要有意培养自己的细心习惯。
(2)要有函数思想。程序本身就是函数,解决一个问题就是构思了一个大函数,在这个大函数里面,要划分成不同的小函数,有些是public的,而有些是private的,这个思想多看看jdk源码就能体会出来了。划分函数的思想体现了一个人思考的条理性,也提高了程序的扩展性和灵活性。
(3)会积累知识,能多思考知识。知识分为两类:工作需要用到的实际知识,JAVA自身知识与开源框架等这些理论知识。前者要多积累,重在于用心。后者在于思考,多琢磨,提高自己的理论水平。
(4)与人为善。保持耐心,保持谦逊,保持团队精神。这一点非常重要,没有这一点,上面三点再好,也很难发展起来。
注意:这些是最基本的能力,仅仅适用于初学者,要想成为一个高手,并不适用于。
_________________________________
链式学习和闭环学习?
“链式学习”则不一样,它是这样做的:我通过搜索引擎搜索到样例完成工作后,我会问自己很多问题:样例中的api每个参数都是什么含义,有哪些注意事项,还有其它API么?为了解决这些问题,我就可能去找本书看,某个编程语言的socket编程;
“闭环学习”则不一样,它是这样做的:了解整个功能或者业务的全流程实现,涉及了哪些模块和系统,每个模块和系统主要负责什么功能,涉及到什么技术,性能怎样,有什么注意点。
_________________________________

...待补充

抱歉!评论已关闭.