如何正确有效的学习好java
Java语言的学习开始,很多同学都不知道应该从哪入手?想知道如何从零开始学Java吗?请看下文,以下是学习啦小编分享给大家的有效学习好java的方法,希望可以帮到你!
有效学习好java的方法
1明确面向对象的范畴
我们必须明确一个大方向,也就是说现在面向对象的编程范畴。尽管人工智能曾经有所浪潮(看看Borland为什么有Turbo Prolog),但未来5-10年工业界广泛承认并接受的将是面向对象式的编程。
工业界目前最流行的面向对象编程语言就是C++和Java。所以基本上锁定这两个方向就可以了。而且完全可以同时掌握。
2掌握Java的精华特性
掌握Java的精华特性的同时,一定要知道为什么。比如,Interface和multi-thread。用interface是更好的多继承的模型,而多线程则是设计到语言一级的重要特性。要完全理解interface是为什么,用多线程又有几种常用的编程模型。
3开始进行设计
理解了语言的特性是为什么了之后,就可以试着上升到设计这个层次,毕竟学习语言是要用的。目前比较好的开发模式是采用自定向下的面向对象的设计,加上MVC的模式(你可以看一下我介绍的关于MVC的内容)。首先要找出最顶层的对象(这往往是最难的),然后一层一层往下递归,记住每次应符合7+/-2的原则,因为我们人的短记忆就是这样。一般有图形用户界面的应从界面开始设计。
4学习设计模式
有了基本设计模型后,可以学一些设计模式(Design Pattern)。这是目前证明很有效的。比如体系结构模式(Layering分层,Pipe/Filter管道或过滤器),设计模式(有很多,比如对象池Object Pool、缓冲池Cache等),编程模式(比如Copy-on-Write)。
懂了这些模式之后,就会对系统的整体结构有很好的把握,而学术上也有倾向一个系统完全可以由各种模式组合而成。前面提到的MT实际上就有好几种模式,掌握后就不用自己花很多时间去试了。另外一个很重要的领域就是并行和分布式计算领域,大概有20种左右。
5进行编程实践
接下来就不能纸上谈兵了,最好的方法其实是实践。一般教科书上的例子并不能算是实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能是你自己越来越迷糊。
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的,比如在我的实践当中,我曾经学习过一个很经典的例子就是用Java实现的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我记不大清楚了。好象是个网站,上面有原代码和一些基本设计的文档。
另一个来源可以到是个不错的文档基地。从HotDraw上我学到了什么是Framework,以及如何用rolemodel的方式来构造,这样我就可以应用到其他的地方。顺便说一句,这个例子你绝对不会觉得小,只会觉得大,并且他还是真正的商用的Framework。
6学习修改经典例子
结合前面学到的设计模式你就可以很好的理解这些经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
好象以上谈的跟Java没什么关系,其实我们早就应该从单纯的学习语言到真正的学习好编程的领域。学习技术是没有止境的,你学习第一种语言可能要半年时间,以后每种语言都不应该超过两个月,否则你会觉得学习语言是包袱,是痛苦。
7学以致用
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。
有效学习好java的建议
1. 刻意练习适合较成熟的领域
书中提到的适合的合理发展行业或领域,指的是这个行业,最杰出的从业者已达到一定的程度的表现水平。包括音乐、舞蹈、体育、棋类等有固定评分标准的领域。而那些没有客观标准来评价卓越绩效的领域,如销售、园艺、企业管理等,不太适合刻意训练。
实际上,我们看到这个领域也像认知范围一样在不断扩大,如文案写作,现在也有一整套有效的培训和训练的方法。随着新兴领域不断崛起,专业化分工越来越细,会沉淀出越来越多的科学方法,形成刻意训练的基础。
2. 刻意练习需要好的导师或教练
这一点书中多次表达得比较充分。
练习的早期,大量的反馈来自于导师或教练,随着时间的推移,学习者要学会自我监测,自我调整。
对于初学者,导师的要求没有那么高,他有足够熟练的技能即可。如果你已训练了好几年,那就需要找一位更能干、权威的导师。
现在很多人学习利用得最多的是: 网络,
1) 学习资料、资源极大的丰富。视频学习资料可以更好地帮助入门。
2) 在线学习的社群,找到学习的氛围。
不过对于绝大多数学习者来说,找到一位好老师还是非常重要。好的老师能给予及时有效的反馈和学习监督,这也是很多自学、在线学习无法提供,造成完成率非常低的原因。编程开发经过3~4个月的培训学习,就可完全达到一个入门工作的要求。
在经济条件允许的情况下,优先找导师学,尤其是在“入门的初级阶段”,不然在这个阶段,很可能你的对新知识、新技能的渴求和热情会在掌握之前就会消失殆尽。
3. 刻意练习发生在舒适区之外
刻意练习需要付出近乎最大限度的努力。一般来说,不是令人心情愉快的。
人的身体偏爱稳定性,舒适区的正面作用是心理安全,自我情绪稳定,维护自我形象。负面作用就是“温水煮青蛙”,松懈倦怠保守,不思进取、固步自封。
刻意练习的过程是痛苦的,兴趣和喜悦来自于成就感。
4. 刻意练习要有准确的目标和切实的计划
特定的目标需要量化,目标要能分解成计划来执行
要想取得进步,必须完全把注意力集中在任务上
关于目标和计划,有很多原则和实施方法,如SMART,这里不展开。
5. 刻意练习需要有效反馈
即时反馈包括:练习时在哪些方面不足,怎么会存在这些不足,以及现在离目标还有多远。
对比很多自学没有效果的原因,是无法给学习提供一个有效的反馈系统,学了多少,是什么样的问题,学到哪里了,这些对于一个还没有入门的人还说,是很难把握的。当然考试也是一个有效的反馈机制。
有效学习好java的注意事项
交换着学更有效
一开始,比约克问我说,当我面前堆了一摞书要啃的时候,我会怎么办。
“人通常会一块儿一块儿地整,” 比约克说,“干完这个再干那个。”
正确的学习方法,应该是交换着学,学会儿这个,再学会儿那个。好比你要练网球的发球,你不应该花一个小时的时间苦练发球,而应该把反手击球、截击、扣杀和步法,结合起来交换着练。“这就增加了难度,”比约克说,“而人们往往容易忽略这些不是立竿见影的效果。”
专注地练一段时间能让你的发球水平有一个明显的提高,而交换着练习则能够使你在很多技能上,都往前迈出小小的一步,你几乎无法察觉自己有所提高。然而,随着时间的推移,这些小小的进步累积起来,将会比你花同样多的时间,去一项一项单独掌握每一个技能所获得的提高多得多。
对此,比约克表示,交换练习用得好的话,能让你把各项技能都相应的 “座”到位。“把一个知识点跟记忆中的其他东西联系起来学,这样的学习会更加有效,”他说。需要注意的一点是:交换着练习的这些小技巧,要同属于一个大的技能才行。如果你想学打网球,那么你交换着练习的应该是发球、反手击球、截击、扣杀和步法,而不是发球、花样游泳、背诵欧洲国家的首都和学习用Java 编程。
同样,只在一个固定的地方学习当然很好,前提是你只需要在那个地方才会用到你学的那些东西。如果你想在宿舍、办公室或者图书馆二楼自习室等等以外的地方,也能回忆起你所学的知识,比约克建议,不妨在几个不同的地点换着进行自习。
无论你是学数学、学法语,还是学社交舞步,交替着学和换着地点学都将适用。
不要马上复习
类似的还有一个叫做“时间间隔效果”(spacingeffect),这一概念最初由赫尔曼·艾宾浩斯(Hermann Ebbinghaus)在1885年提出,学习的时候,复习要隔开一段时间,会学得更好。
“如果你学了之后不练,研究表明,中间隔的时间越长,你忘的就越多,”比约克说。但有趣的是:如果你学了之后,隔一段时间再学,这时候你隔的时间越长,复习的时候你学到的东西就越多。
比约克表示:“当我们从记忆中提取信息的时候,我们做的不只是说它在那里就行了。记忆不仅仅是回放。我们这次取出来了的东西,下次要取的话,取起来就会变得更容易。我们每次取的过程越难、涉及的东西越多,整个记忆就越有效。”
注意这里所说的是 “我们这次取出来了的东西”(没取出来是没有用的)。所以, 从学完到你开始复习的时间,应该是你刚刚好要开始忘记的时候。这样,你越是拼命地回忆之前学过的东西,你复习的效果就会越好。如果你学完之后马上复习,就没有这个效果了。
同理,比约克还建议说,笔记最好下课之后才开始记,以强迫自己回忆课上讲过的东西;而不是在课堂上记,黑板上有啥抄啥。你必须下苦功才行。你花的工夫越多,你学到的就越多,你当然也就越牛。
遗忘对记忆有帮助
“赶紧忘掉你知道的‘遗忘’的定义吧,”比约克说,“人们通常认为,学习就是在记忆里面修东西,而遗忘呢,则是把你修起来的东西给拆了。但在某些方面,反过来说才是对的。”
这么说吧,只要是你学过的东西,其实是一直待在你记忆里不会忘的。你还记得你儿时好友的电话号码吗?记不得了?那好,比约克说了,如果这时候提醒你一下,那么你回忆起这个电话号码的速度和印象,会比让你重新记一个新的号码要迅速和清晰得多。所以这个旧的电话号码不是被你忘记了——它一直待在你脑海里的某个地方——只是把它取出来有点儿麻烦就是了。我们一直把遗忘当成是学习的死对头,这也算是冤案一桩。学习和遗忘的关系有点儿像是共生,实际上遗忘对记忆还有帮助作用。
“人脑有无限的存储量,要是什么都回忆得起那就糟了,” 比约克说, “试想一下,你记得你住过的所有地方的所有电话号码,每当有人问你电话号码的时候,你必须把这一长串电话号码都给理一遍才行。”我们忘记旧的电话号码,或者把它们埋于记忆深处,回忆够不到的地方,方便我们迅速提取出现在使用的那个电话号码。被你狠得牙痒痒的敌人,其实更像是默默守在一旁的伙伴(吐槽:防止你因为一直忘不掉以前的糗而自绝于寰呀!)。
猜你喜欢: