学习啦>学习方法>通用学习方法>学习经验>

如何正确有效的学习好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年提出,学习的时候,复习要隔开一段时间,会学得更好。

  “如果你学了之后不练,研究表明,中间隔的时间越长,你忘的就越多,”比约克说。但有趣的是:如果你学了之后,隔一段时间再学,这时候你隔的时间越长,复习的时候你学到的东西就越多。

  比约克表示:“当我们从记忆中提取信息的时候,我们做的不只是说它在那里就行了。记忆不仅仅是回放。我们这次取出来了的东西,下次要取的话,取起来就会变得更容易。我们每次取的过程越难、涉及的东西越多,整个记忆就越有效。”

  注意这里所说的是 “我们这次取出来了的东西”(没取出来是没有用的)。所以, 从学完到你开始复习的时间,应该是你刚刚好要开始忘记的时候。这样,你越是拼命地回忆之前学过的东西,你复习的效果就会越好。如果你学完之后马上复习,就没有这个效果了。

  同理,比约克还建议说,笔记最好下课之后才开始记,以强迫自己回忆课上讲过的东西;而不是在课堂上记,黑板上有啥抄啥。你必须下苦功才行。你花的工夫越多,你学到的就越多,你当然也就越牛。

  遗忘对记忆有帮助

  “赶紧忘掉你知道的‘遗忘’的定义吧,”比约克说,“人们通常认为,学习就是在记忆里面修东西,而遗忘呢,则是把你修起来的东西给拆了。但在某些方面,反过来说才是对的。”

  这么说吧,只要是你学过的东西,其实是一直待在你记忆里不会忘的。你还记得你儿时好友的电话号码吗?记不得了?那好,比约克说了,如果这时候提醒你一下,那么你回忆起这个电话号码的速度和印象,会比让你重新记一个新的号码要迅速和清晰得多。所以这个旧的电话号码不是被你忘记了——它一直待在你脑海里的某个地方——只是把它取出来有点儿麻烦就是了。我们一直把遗忘当成是学习的死对头,这也算是冤案一桩。学习和遗忘的关系有点儿像是共生,实际上遗忘对记忆还有帮助作用。

  “人脑有无限的存储量,要是什么都回忆得起那就糟了,” 比约克说, “试想一下,你记得你住过的所有地方的所有电话号码,每当有人问你电话号码的时候,你必须把这一长串电话号码都给理一遍才行。”我们忘记旧的电话号码,或者把它们埋于记忆深处,回忆够不到的地方,方便我们迅速提取出现在使用的那个电话号码。被你狠得牙痒痒的敌人,其实更像是默默守在一旁的伙伴(吐槽:防止你因为一直忘不掉以前的糗而自绝于寰呀!)。

猜你喜欢:

1.java面向对象学习心得

2.java web学习心得范文

3.如何才能有效的学习程序设计

4.如何有效地提高学习效率

5.java培训心得体会(7篇)

    3766763