一、修身先修心,学习编程前的心理建设问题。
学习编程的道路和学习其它任何一项技能一样,都是充满了枯燥、孤独、无助甚至绝望,但它又不太一样,计算机是个“可靠系统”,在一定的条件下输入一定的内容,它的返回永远不变,所以反馈的实时性和稳定性保证了我们练习的有效性。我们的程序写的对或不对,马上就能出结果。理论上,这种及时反馈能最大限度地提高学习效率,试错成本被降到最低,每次尝试只需要不到0.1s的时间,不到1k的内存,不到1kwh的电力和一台笨重的电脑就可以了,我们没有理由学不会的,耗费的只是时间和注意力而已。
但对于一部分人来说,这却是最大的障碍,每次看到屏幕里跳出来一串串红色的报错,都像是人帝在对我们进行审判,一个嘲讽的冷笑就能让我们的尊严扫地,然后,我们就只能硬着头皮在网上查,结果翻了十几页,发现根本驴唇不对马嘴,自己彻底崩溃,觉得自己根本不适合学写代码。
但你要知道,所有人都要从笨拙到熟练,从错误到正确,一点一点挨过来的,写代码从来都是一种创作,是一种用代码写的诗,所以它就和写作,谱曲一样,伟大的作品都是从错误,从失败中孕育的,所以心平气和地去接受开始时笨拙的自己,你慢慢地就会做的更好。
二、对于学习资料的选择问题。
2019年,我们生活在一个网络世界极大丰富,资料随处可得,信息快速传播的时代。每个人都被各种各样的书籍、网站、消息包裹挟持。这个时候,我们要学习,要烦恼的就不是无书可读了,而是选择,而选择的终极意义不是得到,而是失去,你选择了A方法,那就意为着要放弃B/C/D,但人性的本质是厌恶失去的,因此,我们就很容易陷入纠结的状态,最终这种纠结成了我们学习路上最大的拦路虎。资料免费下载扣扣群:927296445
我的建议是,与其在不同的学习路线,学习方法中来回摇摆,总想找到最优解,倒不如找一条路,先实践起来,遇到问题再来想办法。
学习一定要主动,什么叫主动学习?这两个字是我们从小听到大的,但很多人都没有理解它的精髓。
要带着一种强烈的求知欲,这种求知欲不是外在的压力,也不是自己装模作样的做作,而是对自己能力提升的渴望,想清楚学习编程为了什么,找到心中那团火,很多小问题都不再是问题。
不能拘泥于别人的学习方法,尤其学习Java的帖子,五花八门,有的人是看书党,有的人是看视频党,有的人是看官网党,还有各种各样的政治正确、鄙视链,这种帖子如果看多了,你可能就自乱阵脚了。
对于我来讲,需要理解的,稍有难度的内容,我就会选择看视频,因为我知道,在上学的时候,我就是听讲党,如果上课听得好,我一道作业都不用做,就能考满分,但如果我上课睡着了,下课再怎么看书,也只能理解个大概。但一些技巧,细节,我喜欢看书,结合网络资源来学习,再加上实践练习,这样的效果很更好。那这个方法就需要你在学习过程中慢慢总结。
要自己掌握进度和精力分配,学习的过程中,要不停地“观察自己”,哪个地方是我一直记不住的,哪个地方是我一看就会了的,就像背单词一样,有的单词对别人很难,但你可能看了一遍就记住了,但另外一些看起来很简单的,你可能每次的犯错,这就要时刻总结,想各种办法搞定这些。
观察自己的精力,上学的时候可能有大量的时间和精力来专心学习,还好一点,但如果你是上班族,工作的时候又不能摸鱼,那就必须在有限的学习时间内提高效率,如果你是晚睡星人,那你就熬夜的时候去攻克最难的课程,如果你是早起族,那早上5点,喝完水,就赶紧打开电脑开始写昨天没做出来的算法题吧。
与学习路线相比,这些不起眼的细节,有的时候就能决定你能否坚持下来,游到河的对岸。
话不多说,推荐两本书:
现在,我正在这个网站中学习,可以说,这是目前为止,国内最好的Java学习网站。
「Java 核心技术」,「Effective Java中文版」。
本文一共分为三个部分,新手入门Java编程的误区、市面上教材的问题、正确的学习思路是什么样的。
三、新手入门编程四大误区
1.一定要找到最优路线
与上一代程序员相比,我们这一代程序员真是生活在天堂里,随处可得的都是经验,教程。但这也给很多新人造成了不少的困扰,哪一个学习路线是最好的呢?好不容易找到一个视频教程,看了两天,就看不下去了,又回去搜『怎么学习Java』、『有哪些适合Java新手看的书』、『最好的Java教材是什么』。其实,没有所谓最好的一条路,你走的那条,就是最好的。
2.拿到书,从第一页开始看,一个字一个字地看
学生思维中,最需要改变的就是这一点。编程书籍浩如烟海,每一本都是大部头,如果每一本书,都从第一页开始,一个字一个字的看,没有三五个月,你是啃不下一本书呢,可以到了三分之一的时候,你可能就已经到了崩溃的边缘了,放弃,只是早晚的事。
3.眼高手低,不重视练习
认为看懂了就是会了,这是编程新手很容易犯的错误,看懂了不算会,理解了不算会,只有你能写出来了才能算会。很多新人着急赶进度,每个知识点都是囫囵吞枣,看起来会了就过了。xdite老师曾说过,傲慢才是学习路上的天敌。放弃你的傲慢,重视练习,你才能获得最扎实的基本功。
请记住,慢就是快。
4.编程很难,我学不会
不要神化编程,好像只有古怪的程序员才能看的懂,学得会。编程其实就是和计算机交流,孰能生巧罢了。
四、市面上教材的问题
1.罗列知识点
知识点摆出来,就叫做教材。但这样的教材还不如让我直接去看官方的文档呢,没有分析讲解,类比,再多的文字只能让人昏昏欲睡。
2.太重视细节和原理
有些国外的教材,又太过啰嗦,没有重点的讲细节。按照这样的教材去练功,很容易走火入魔,不顾读者成本和基础地讲解细节和原理,是极其不负责任的,这样的教材就像一个高手,功德圆满了,下山来秀花招,中看不中用。
3.缺少练习,练习缺少梯度
我在学习的过程中,就有这样的困惑,感觉学了很多知识点,却找不到用武之地,找不到合适的练习题,大部分书上的练习题都是互相抄抄,就像大学考试的题目一样,不实用,而且最重要的是梯度设置很有问题,要么太简单,一看就会,要么又太难,超过了知识点的范畴。
网上的大部分练习都是针对面试的算法题,太注重于各种复杂奇怪的算法,对于语法,编程基础的练习作用实在有限。
4.没有项目,无法串连知识点
如果说好练习题少,那可用的练习项目,可以说是几乎没有。缺少了实际项目的检验,我们所学的知识点就好像都漂浮在空中,没有落地,没有办法得到整合。零散的知识是不容易被大脑记住的,如果能有一个完整的串连项目,那就像在大脑中建立一个图书馆,各类图书分门别类,整理妥当,工作中真正需要的时候,我们就可以信手拈来了。
五、正确的思路
1.快速突破基础知识
其实学习Java编程和学习任何其实知识都一样。
知识点+练习+总结
看知识点,看实例,做练习。这个过程中是以练带学的过程。不要死记硬背知识点,把知识点用起来,才能记得住、记得准、记得牢。
1. 自行完成练习
根据练习目标尽量自己实现代码效果,期间会碰到疑问,难题,和自己不懂的地方,这些都是必要的过程
2. 带着疑问查看答案
完成过程中,碰到无法解决的问题,带着疑问,查看答案,分析答案的解决思路
3. 查看答案讲解视频
依然有不明白的地方,点开视频讲解,带着疑问,听视频讲解有问题的部分
4. 再做一遍
理解后,再从头做一遍,把有疑问的地方都捋清楚
5. 总结
最后再总结一边,总结思路,总结解决办法,以后遇到类似的问题,怎么处理
六.排列组合,搞清框架整合
对于框架学习来讲,搞清楚Hibernate、Struts、Spring、Mybatis的使用方法是第一步。
真正工作的时候基本上都是两个或三个联合使用。因此,把构架的整合思路理清楚,会为后面的项目学习打下很好的基础。
七.结合项目,整合所学知识点与框架
其实在学习Java编程的过程中,这一步不一定是最难的,但是市面上的资料很少,无项目可做,是很多初学者找不到成就感,不能形成正反馈,最终选择放弃最重要的元凶。
八.结合两本书,查缺补漏
这个时候,我们才提到最前面提到的两本书,你应该常备案头,以备查阅。真正的好书,要像一个朋友,遇到问题的时候,你去问他,他总能帮你解决。但你学习的时候,又好像不需要他的存在,这就是君子之交。
总结
今天我所说的,都是自己的学习过程中的体会和总结。如果说学习是一项投资,那金钱绝对不是最大的成本,它需要你的时间,你的耐心和你的决心。
最后小编给正在学习的小伙伴分享一些Java学习资料,免费自行下载,QQ群——927296445