Java自学心得

一、修身先修心,学习编程前的心理建设问题。

学习编程的道路和学习其它任何一项技能一样,都是充满了枯燥、孤独、无助甚至绝望,但它又不太一样,计算机是个“可靠系统”,在一定的条件下输入一定的内容,它的返回永远不变,所以反馈的实时性和稳定性保证了我们练习的有效性。我们的程序写的对或不对,马上就能出结果。理论上,这种及时反馈能最大限度地提高学习效率,试错成本被降到最低,每次尝试只需要不到0.1s的时间,不到1k的内存,不到1kwh的电力和一台笨重的电脑就可以了,我们没有理由学不会的,耗费的只是时间和注意力而已。

但对于一部分人来说,这却是最大的障碍,每次看到屏幕里跳出来一串串红色的报错,都像是人帝在对我们进行审判,一个嘲讽的冷笑就能让我们的尊严扫地,然后,我们就只能硬着头皮在网上查,结果翻了十几页,发现根本驴唇不对马嘴,自己彻底崩溃,觉得自己根本不适合学写代码。

但你要知道,所有人都要从笨拙到熟练,从错误到正确,一点一点挨过来的,写代码从来都是一种创作,是一种用代码写的诗,所以它就和写作,谱曲一样,伟大的作品都是从错误,从失败中孕育的,所以心平气和地去接受开始时笨拙的自己,你慢慢地就会做的更好。

二、对于学习资料的选择问题。

2019年,我们生活在一个网络世界极大丰富,资料随处可得,信息快速传播的时代。每个人都被各种各样的书籍、网站、消息包裹挟持。这个时候,我们要学习,要烦恼的就不是无书可读了,而是选择,而选择的终极意义不是得到,而是失去,你选择了A方法,那就意为着要放弃B/C/D,但人性的本质是厌恶失去的,因此,我们就很容易陷入纠结的状态,最终这种纠结成了我们学习路上最大的拦路虎。

我的建议是,与其在不同的学习路线,学习方法中来回摇摆,总想找到最优解,倒不如找一条路,先实践起来,遇到问题再来想办法。

三、主动、主动再主动。

学习一定要主动,什么叫主动学习?这两个字是我们从小听到大的,但很多人都没有理解它的精髓。

要带着一种强烈的求知欲,这种求知欲不是外在的压力,也不是自己装模作样的做作,而是对自己能力提升的渴望,想清楚学习编程为了什么,找到心中那团火,很多小问题都不再是问题。

不能拘泥于别人的学习方法,尤其学习Java的帖子,五花八门,有的人是看书党,有的人是看视频党,有的人是看官网党,还有各种各样的政治正确、鄙视链,这种帖子如果看多了,你可能就自乱阵脚了。

对于我来讲,需要理解的,稍有难度的内容,我就会选择看视频,因为我知道,在上学的时候,我就是听讲党,如果上课听得好,我一道作业都不用做,就能考满分,但如果我上课睡着了,下课再怎么看书,也只能理解个大概。但一些技巧,细节,我喜欢看书,结合网络资源来学习,再加上实践练习,这样的效果很更好。那这个方法就需要你在学习过程中慢慢总结。

要自己掌握进度和精力分配,学习的过程中,要不停地“观察自己”,哪个地方是我一直记不住的,哪个地方是我一看就会了的,就像背单词一样,有的单词对别人很难,但你可能看了一遍就记住了,但另外一些看起来很简单的,你可能每次的犯错,这就要时刻总结,想各种办法搞定这些。

观察自己的精力,上学的时候可能有大量的时间和精力来专心学习,还好一点,但如果你是上班族,工作的时候又不能摸鱼,那就必须在有限的学习时间内提高效率,如果你是晚睡星人,那你就熬夜的时候去攻克最难的课程,如果你是早起族,那早上5点,喝完水,就赶紧打开电脑开始写昨天没做出来的算法题吧。

与学习路线相比,这些不起眼的细节,有的时候就能决定你能否坚持下来,游到河的对岸。

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

原答案:

话不多说,推荐一个网站、两本书:

How2J 的 Java教程

现在,我正在这个网站中学习,可以说,这是目前为止,国内最好的Java学习网站。

「Java 核心技术」,「Effective Java中文版」。

本文一共分为三个部分,新手入门Java编程的误区、市面上教材的问题、正确的学习思路是什么样的。

一、新手入门编程四大误区

1.一定要找到最优路线

与上一代程序员相比,我们这一代程序员真是生活在天堂里,随处可得的都是经验,教程。但这也给很多新人造成了不少的困扰,哪一个学习路线是最好的呢?好不容易找到一个视频教程,看了两天,就看不下去了,又回去搜『怎么学习Java』、『有哪些适合Java新手看的书』、『最好的Java教材是什么』。其实,没有所谓最好的一条路,你走的那条,就是最好的。

2.拿到书,从第一页开始看,一个字一个字地看

学生思维中,最需要改变的就是这一点。编程书籍浩如烟海,每一本都是大部头,如果每一本书,都从第一页开始,一个字一个字的看,没有三五个月,你是啃不下一本书呢,可以到了三分之一的时候,你可能就已经到了崩溃的边缘了,放弃,只是早晚的事。

3.眼高手低,不重视练习

认为看懂了就是会了,这是编程新手很容易犯的错误,看懂了不算会,理解了不算会,只有你能写出来了才能算会。很多新人着急赶进度,每个知识点都是囫囵吞枣,看起来会了就过了。xdite老师曾说过,傲慢才是学习路上的天敌。放弃你的傲慢,重视练习,你才能获得最扎实的基本功。

请记住,慢就是快。

4.编程很难,我学不会

不要神化编程,好像只有古怪的程序员才能看的懂,学得会。编程其实就是和计算机交流,孰能生巧罢了。

二、市面上教材的问题

1.罗列知识点

知识点摆出来,就叫做教材。但这样的教材还不如让我直接去看官方的文档呢,没有分析讲解,类比,再多的文字只能让人昏昏欲睡。

2.太重视细节和原理

有些国外的教材,又太过啰嗦,没有重点的讲细节。按照这样的教材去练功,很容易走火入魔,不顾读者成本和基础地讲解细节和原理,是极其不负责任的,这样的教材就像一个高手,功德圆满了,下山来秀花招,中看不中用。

3.缺少练习,练习缺少梯度

我在学习的过程中,就有这样的困惑,感觉学了很多知识点,却找不到用武之地,找不到合适的练习题,大部分书上的练习题都是互相抄抄,就像大学考试的题目一样,不实用,而且最重要的是梯度设置很有问题,要么太简单,一看就会,要么又太难,超过了知识点的范畴。

网上的大部分练习都是针对面试的算法题,太注重于各种复杂奇怪的算法,对于语法,编程基础的练习作用实在有限。

4.没有项目,无法串连知识点

如果说好练习题少,那可用的练习项目,可以说是几乎没有。缺少了实际项目的检验,我们所学的知识点就好像都漂浮在空中,没有落地,没有办法得到整合。零散的知识是不容易被大脑记住的,如果能有一个完整的串连项目,那就像在大脑中建立一个图书馆,各类图书分门别类,整理妥当,工作中真正需要的时候,我们就可以信手拈来了。

三、正确的思路

1.快速突破基础知识

其实学习Java编程和学习任何其实知识都一样。

知识点+练习+总结

看知识点,看实例,做练习。这个过程中是以练带学的过程。不要死记硬背知识点,把知识点用起来,才能记得住、记得准、记得牢。

重点来了,如果你在我推荐的how2j网站学习,做练习的正确思路,一共5步:

java 练习题,共计 194 道

1. 自行完成练习

根据练习目标尽量自己实现代码效果,期间会碰到疑问,难题,和自己不懂的地方,这些都是必要的过程

2. 带着疑问查看答案

完成过程中,碰到无法解决的问题,带着疑问,查看答案,分析答案的解决思路

3. 查看答案讲解视频

依然有不明白的地方,点开视频讲解,带着疑问,听视频讲解有问题的部分

4. 再做一遍

理解后,再从头做一遍,把有疑问的地方都捋清楚

5. 总结

最后再总结一边,总结思路,总结解决办法,以后遇到类似的问题,怎么处理

2.排列组合,搞清框架整合

对于框架学习来讲,搞清楚Hibernate、Struts、Spring、Mybatis的使用方法是第一步。

真正工作的时候基本上都是两个或三个联合使用。因此,把构架的整合思路理清楚,会为后面的项目学习打下很好的基础。

整合Struts和Hibernate教程

Spring+Hibernate 整合步骤

Struts+Spring 整合步骤

SSH 整合Struts+Spring+Hibernate 逐一配置的步骤

SSM Spring+Sping MVC + Mybatis 三大框架整合详细步骤

3.结合项目,整合所学知识点与框架

其实在学习Java编程的过程中,这一步不一定是最难的,但是市面上的资料很少,无项目可做,是很多初学者找不到成就感,不能形成正反馈,最终选择放弃最重要的元凶。

我现在正在学习的就是这个模仿天猫的完整项目。而这个项目一共分为了三个实现版本,一个J2EE版、一个SSH框架版和一个SSM框架版。这样,一个项目,三种实现,既能完整地复习前面练习的知识点,利用到大部分的知识点,又能前后对比,了解到框架的用法和好处。

JAVA WEB 项目教程-模仿天猫整站 J2EE版

JAVA WEB 项目教程-模仿天猫整站 SSH版

JAVA WEB 项目教程-模仿天猫整站 SSM版

Springboot 项目教程-模仿天猫整站 Springboot 版

4.结合两本书,查缺补漏

这个时候,我们才提到最前面提到的两本书,你应该常备案头,以备查阅。真正的好书,要像一个朋友,遇到问题的时候,你去问他,他总能帮你解决。但你学习的时候,又好像不需要他的存在,这就是君子之交。

总结

今天我所说的,都是自己的学习过程中的体会和总结。how2j网站中大部分内容都是免费的,但有一部分需要付费购买。如果说学习是一项投资,那金钱绝对不是最大的成本,它需要你的时间,你的耐心和你的决心。

【补充】

这一年的时间外部环境出现了很多变化,很多公司出现了裁员风波,作为我们来说,唯一能做的就是不断地学习,把自己的翅膀练得更硬一点儿,以不变应万变。

我们学习,要有目标,不能为了学习而学习,应该是有针对性的学习。开发人员学习的目标,简单地说,就是找一个好工作。

那么一个薪资不错的工作,有什么需要呢? 随手翻开一个招聘网站,像15k-20k 这样的工作,还是有一定吸引力的。 像如下截图的这份工作: 高级Java 开发工程师

很多同学,在工作中很少能接触到这些内容,没有相关经验,出现工作年限与能力不匹配的现象,跳槽时很被动,在网上找的帖子要不就是点到为止,要不就是很零碎,不成体系,很难找到突破口。

与基本知识和传统框架相比,学习新技术有一些新的困难,比如,经典书籍缺位严重,视频质量良莠不齐,网络课程体系混乱,学习路线曲径通幽,总是让人头昏脑涨,又找不到方向,得不到成就感。但这些内容又是互联网公司面试的大头,如果你想侥幸绕过去,那只能说你太天真了,所以很多人在网上搜索各种面经,笔经,想想蒙混过关,但自己学没学过,做没做过,还是会在面试中有所体现,就算在面试中涉险过关,在实际的工作中,也要重头再来。

面对这样的问题,你需要紧跟时代,在你把基础打牢,框架也能用个七七八八的时候,要做好最后一步,所谓行百里者半九十,我们要再上一个台阶,把自己的技术栈,从中等水平拔高到顶尖水平,打好卡位战,只需要领先半个身位,就能把最大多数的竞争者甩在后面,况且这些所谓的新技术就是一层窗户纸,拿出些时间来,把它们从头到尾实践一遍,把常见的坑踩平,你就再也没有后顾之忧了。

天猫整站Springboot系列教材

完整的 Springboot 模仿天猫项目,使用Springboot 、Vue.js、shiro、redis、elasticsearch等一整套技术栈, 从无到有涵盖全部129个知识点,564个开发步骤, 充实 Springboot 项目经验,为简历加上一个有吸引力的砝码

除了我原帖中极力推荐的网站以外,我还想介绍几个程序员必备的网站。

1.刘意基础班视频

有的同学更喜欢系统的内容,我的建议是视频可以作为how2j网站的补充,网站就像一个简明地图,让你快速地在黑暗中探索出一条道路,帮你克服恐惧,找到感觉,而当你想深入的了解每一个知识点时,刘意老师的讲解会让你明白这一切。

链接:

https://pan.baidu.com/s/138bim6hl1M6otb3AMNri6g

密码:8aih

2.Learn Git Branching

Learn Git Branching

Git是一大利器,但很多自学的朋友意识不到它的重要性,因为你是一个人,没有团队的合作需求,自己对版本的管理也还算清楚,但当你真实地参与到开发工作时,git是你武器库中决不可少的。

但git的概念入门还是有一点难度的,这个网站是一个游戏,当你通关了,git就被你纳入囊中了。

3.牛客网

牛客网- 互联网求职神器和备考学习平台

牛客网是主要面向毕业生的网站,有很多面试真题,基础的练习题,还是算法题,可以说是一站式的解决方案,有事没事泡在上面,可以看到各路牛人,每道题,也会有大家的讲解,当你看到大家都在奋斗的时候,你就不会感到寂寞了。

刷算法题,是求职的必过的一关,很多小伙伴认为,算法都是很成熟了,我们在工作中只要搞定框架,然后调包就可以了,但我认为,刷题是个一举多得的过程,锻炼了你的思维能力,无形之中,提高你写代码的能力。

4.牛客网算法视频

我自己和很多小伙伴一样,在刚开始刷题的时候,非常受打击,拿到题目,根本无从下手,觉得自己一无是处,然后就开始怀疑自己的智商,认为自己根本不适合做程序员,但你要知道这一切都是正常的,你需要的是一个导师,算法导师,而牛客网的左神,就是最完美的导师之一,不过他在牛客网上的教程很贵,小几千的样子,这里有一个我自己分享的链接,大家自取吧。

链接:

https://pan.baidu.com/s/1Fla5yOA1KEU5YEEeN7icpA

密码:azcx

5.Java工程题面试突击第1季

消息对列,分布式搜索引擎,redis,分布式缓存,dubbo,分库分表,高可用架构,这些知识点是2-3年工作经验的程序员很难深入了解的内容,很多同学在跳槽面试一两次后,就发现,这些问题在面试过程中,经常以连环炮的形式出现,经常是一到两个问题就败下阵来,信心全无。其实大家应该相信,大家都差不多,在面试之前,这个视频可以帮到你。

链接:

https://pan.baidu.com/s/1oYkVv7FHbRqYEbVFlPCgfQ

密码:05qf

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

光勤劳是不够的,蚂蚁也非常勤劳。你在勤劳些什么呢?有两种过错是基本的,其他一切过错都由此而生:急躁和懒惰。--by 卡夫卡

如果大家喜欢的分享,欢迎点赞支持!

一、修身先修心,学习编程前的心理建设问题。

学习编程的道路和学习其它任何一项技能一样,都是充满了枯燥、孤独、无助甚至绝望,但它又不太一样,计算机是个“可靠系统”,在一定的条件下输入一定的内容,它的返回永远不变,所以反馈的实时性和稳定性保证了我们练习的有效性。我们的程序写的对或不对,马上就能出结果。理论上,这种及时反馈能最大限度地提高学习效率,试错成本被降到最低,每次尝试只需要不到0.1s的时间,不到1k的内存,不到1kwh的电力和一台笨重的电脑就可以了,我们没有理由学不会的,耗费的只是时间和注意力而已。

但对于一部分人来说,这却是最大的障碍,每次看到屏幕里跳出来一串串红色的报错,都像是人帝在对我们进行审判,一个嘲讽的冷笑就能让我们的尊严扫地,然后,我们就只能硬着头皮在网上查,结果翻了十几页,发现根本驴唇不对马嘴,自己彻底崩溃,觉得自己根本不适合学写代码。

但你要知道,所有人都要从笨拙到熟练,从错误到正确,一点一点挨过来的,写代码从来都是一种创作,是一种用代码写的诗,所以它就和写作,谱曲一样,伟大的作品都是从错误,从失败中孕育的,所以心平气和地去接受开始时笨拙的自己,你慢慢地就会做的更好。

二、对于学习资料的选择问题。

2019年,我们生活在一个网络世界极大丰富,资料随处可得,信息快速传播的时代。每个人都被各种各样的书籍、网站、消息包裹挟持。这个时候,我们要学习,要烦恼的就不是无书可读了,而是选择,而选择的终极意义不是得到,而是失去,你选择了A方法,那就意为着要放弃B/C/D,但人性的本质是厌恶失去的,因此,我们就很容易陷入纠结的状态,最终这种纠结成了我们学习路上最大的拦路虎。

我的建议是,与其在不同的学习路线,学习方法中来回摇摆,总想找到最优解,倒不如找一条路,先实践起来,遇到问题再来想办法。

三、主动、主动再主动。

学习一定要主动,什么叫主动学习?这两个字是我们从小听到大的,但很多人都没有理解它的精髓。

要带着一种强烈的求知欲,这种求知欲不是外在的压力,也不是自己装模作样的做作,而是对自己能力提升的渴望,想清楚学习编程为了什么,找到心中那团火,很多小问题都不再是问题。

不能拘泥于别人的学习方法,尤其学习Java的帖子,五花八门,有的人是看书党,有的人是看视频党,有的人是看官网党,还有各种各样的政治正确、鄙视链,这种帖子如果看多了,你可能就自乱阵脚了。

对于我来讲,需要理解的,稍有难度的内容,我就会选择看视频,因为我知道,在上学的时候,我就是听讲党,如果上课听得好,我一道作业都不用做,就能考满分,但如果我上课睡着了,下课再怎么看书,也只能理解个大概。但一些技巧,细节,我喜欢看书,结合网络资源来学习,再加上实践练习,这样的效果很更好。那这个方法就需要你在学习过程中慢慢总结。

要自己掌握进度和精力分配,学习的过程中,要不停地“观察自己”,哪个地方是我一直记不住的,哪个地方是我一看就会了的,就像背单词一样,有的单词对别人很难,但你可能看了一遍就记住了,但另外一些看起来很简单的,你可能每次的犯错,这就要时刻总结,想各种办法搞定这些。

观察自己的精力,上学的时候可能有大量的时间和精力来专心学习,还好一点,但如果你是上班族,工作的时候又不能摸鱼,那就必须在有限的学习时间内提高效率,如果你是晚睡星人,那你就熬夜的时候去攻克最难的课程,如果你是早起族,那早上5点,喝完水,就赶紧打开电脑开始写昨天没做出来的算法题吧。

与学习路线相比,这些不起眼的细节,有的时候就能决定你能否坚持下来,游到河的对岸。

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

本文转自知乎

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容

  • 转载自:http://blog.csdn.net/anlidengshiwei/article/details/4...
    Ricardo_Lee阅读 363评论 0 5
  • 小小男子汉 入的鳄鱼园 左手鳄鱼尾 右手向我挥 笑脸给了谁 观众已沉醉 掌声响鼎沸 留影好珍贵 儿子像妈妈 人小胆...
    付朝兰阅读 595评论 1 14
  • Luck is a dividend of sweat. The more you sweat, the luck...
    沈家人Ver阅读 223评论 0 0
  • 枫子塬是一个遥远的村庄,枫子塬是一段尘封的记忆!与它相关的几个主人公都不在人世了,可枫子塬永远在我的脑海中存活着,...
    端阳香草阅读 401评论 1 2
  • 什么是转念 转:改变;念:想,思量;转念,简单说就是转变自己的想法,让自己觉悟。 为什么要转念? 我们看到的世界,...
    日更飘阅读 252评论 0 0