北京一位资深程序员大牛给予Java初学者的学习路线建议

java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。

在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。

如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。

一、Java基础首先去找一个Java的基础教程学一下,这里推荐慕课,菜鸟,学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容以后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

二、Web开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。

你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频,因此推荐给大家。

当然了,我本人并没有看过他的视频,所以不好说的太绝对,如果大家自己有更好的选择,可以坚持自己的,不要被我干扰。原本我也是打算出教学视频的,但是由于时间问题,还是决定放弃了。最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

三、开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。

但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

关于学习SSM框架的地址给大家推荐一个,这里面有视频,大家可以去观看。四、找工作当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你最重要的老师。

第二部分:对于参加工作一年以内的同学。恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月。正常速度的话,应该可以在半年左右看完。我这里不要求过高,只要你在一年以内把这本书看完即可。当然了,我所说的看完,是充分吸收,而不是读一遍就完事了,因此有些内容你可能会看不止一遍。总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。

第二部分:对于参加工作1年到2年的同学。这部分时间段的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。我当时看的是《大话设计模式》这本书,并且写了完整版的设计模式博客。因此,我要求大家,最多在你工作一年的时候,必须开始写博客,而设计模式就是你博客的开端。

请记住,我所提的基本都是最低要求,因此不要有任何松懈的心理,否则五年后,你不要去羡慕别人高于你的工资,也不要去羡慕别人进入了某公司。这一年,你必须对于设计模式了如指掌,《大话设计模式》可以作为你的开端。此外,设计模式并不是你这一年唯一的任务,你还需要看一些关于代码编写优化的书。比如《重构 改善既有代码的设计》,《effective java》。总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。

第三部分:对于参加工作2年到3年的同学有的同学在这个时候觉得自己已经很牛逼了,于是忍不住开始慢慢松懈。请记住,你还嫩的多。这个阶段,有一本书是你必须看的,它叫做《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一。在我眼里,这本书的重要性还要高于《Java编程思想》。这本书的内容是帮助你全面的了解Java虚拟机,在这个阶段,你一定已经知道Java是运行在JVM之上的。所以,对于JVM,你没有任何理由不了解它。

另外,在过去2年的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识,而这部分内容,我比较推荐《Java并发编程实战》这本书。只要你把这本书啃下来了,并发的部分基本已经了解了十之六七。与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。

因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且我很负责的告诉你,我在这个阶段的时候,所学习的东西远多于这里所罗列出来的。

因此千万不要觉得你已经学的很多了,我所说的这些都只是最低要求,不光是我,很多人在这个时间段所学习的内容都远超本文的范围。如果你不能跟上节奏的话,若干年后,如果不是程序猿市场还不错的话,你很可能不仅仅是工资比别人低,公司没别人好,而是根本就找不到工作。总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。另外,还有一种学习的方式,在2年这个阶段,也应该启用了,那就是造轮子。不要听信那套“不要重复造轮子”的论调,那是公司为了节省时间成本编造出来的。重复造轮子或许对别人没有价值,因为你造的轮子可能早就有了,而且一般情况下你造出来的轮子还没有现存的好。

但是对别人没有价值,不代表对你自己没有价值。一个造轮子的过程,是一个从无到有的过程。这个过程可以对你进行系统的锻炼,它不仅考察你的编码能力,还考察你的框架设计能力,你需要让你的轮子拥有足够好的扩展性、健壮性。而且在造轮子的过程中,你会遇到各种各样的难题,这些难题往往又是你学习的契机。当你把轮子造好的时候,你一定会发现,其实你自己收获了很多。所以,这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的轮子。

第四部分:参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,

这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。而且在研究一门新技术时,切忌朝三暮四。有的同学今天去整整大数据,搞搞Hadoop、hbase一类的东西。过不了一段时间,就觉得没意思,又去研究分布式缓存,比如redis。然后又过不了一段时间,又去研究分布式计算,比如整整Mapreduce或者storm。结果到最后,搞得自己好像什么都会一样,在简历上大言不惭的写上大数据、分布式缓存、分布式计算都了解,其实任何一个都只是浮于表面。到时候面试官随便一问,就把你给识破了。

一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。

所谓优秀,即能别人所不能。而你前三年所学习的内容,是很多做过几年的Java开发都能够掌握的。那么为了让自己有差异性,你就需要另辟蹊径,找一个方向深入研究下去,以期在将来,你能够成为这个领域的专家,比如分布式计算领域的专家,大数据领域的专家,并发领域的专家等等。此外,你除了建立你的差异性之外,还要去弥补你基础上的不足,直到现在,我都没有提及基础知识。原因是基础是很枯燥无味的,学的太早不仅容易懵逼,而且懵逼的同时还容易产生心理阴影,以至于以后再不想去研究这些基础。但基础又是你深入研究一些领域时所必须掌握的,比如你去研究分布式计算,你不懂算法你玩个毛毛?比如你去做分布式缓存,你对计算机系统的内存不了解,你如何去做缓存?

如果你的基础本来就非常强,那么恭喜你,相信你在之前的工作中已经充分体会到了这些基础对你的帮助。但我相信大部分人的基础都很薄弱,哪怕是科班毕业的人,很多人也不敢说自己当初的基础学的多么强大,比如算法、计算机系统原理、编译原理这些。但是每个人时间都是有限的,而且这些基础的书籍每一本读下来,没个一年半载的,还真拿不下来,因此还是要有所抉择的。虽然艺多不压身,但问题是艺多是有代价的,是需要你付出时间和精力的,而我个人更赞成在同等代价的情况下获取最大的收获。

首先,我比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。另外,我要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。

但如果时间有限的话,那么就先挑对你帮助最大的书去读。理论上来讲,这一年你能把这三本其中一本精读下来,就已经非常厉害了。有了基础,有了前面的工作经验,你就可以去开拓属于你的领域了。在这一年里,一定要规划好自己的领域,建立好自己的优势,制造出差异性。如果你对自己的领域不够清晰的话,随着你工作的时间日益增多,你接触的技术会越来越多,这个时候,你很容易被淹死在技术的海洋里,看似接触的技术越来越多,会用的也越来越多,但你毫无优势。有的同学可能会问,“我,我也不知道我的领域是什么啊?怎么办呢?”对于这种人,我只想说,“卧槽,这还问我?要不干脆我替你学习得了,好不好?”

第五部分:参加工作4年到5年的同学经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。

这次的开源项目不同于之前的造轮子,你这个时候是真的要去尽量尝试造出来真正对别人有价值的轮子。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。程序猿在某种程度上和明星很像,一个好的电视剧和电影就可以成就一批明星,程序猿有的时候也是,一个好的项目就可以成就一群程序猿。比如国内几个脍炙人口的项目,像淘宝、支付宝、QQ、百度、微信等等。这每一个项目,都成就了一批程序猿。我敢说,这里面任何一个项目,如果你是它的核心开发,光是这样一个Title,就已经是你非常大的优势。更何况还不止如此,Title说到底也是个名头,更重要的是,这种项目在做的时候,对你的历练一定也是非常给力的。

而你如果想要参与这样的项目,除了靠运气之外,影响力也是很重要的一个手段。比如你在分布式计算领域有一定的影响力,那么如果有什么好的关于分布式计算的项目,对方就很可能会邀请你。就算人家不邀请你,你自己主动去面试的时候,对方如果知道你在这个领域的影响力,也肯定会起到很大的作用,而这个作用,甚至可能会超过你现在的技术能力。所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。当然了,我现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,我的见解不一定是对的,就算是对的,也不一定是适合任何人的。

所以,希望大家自己有的判断力,去决定到底该如何度过这一年。结语本文到此就基本结束了,整篇文章很长,但其实主要就说了两部分内容,一个是社招面试的准备,一个是Java生涯的学习。关于这两部分,我已经给出了自己的见解,但是还是那句话,每个人吸收知识的时候,都要有抽取精华,去除糟粕的能力。我所说的,可能有些是对的,有些是错的,有些是适合你的,有些是不太适合你的,你要自己能够判断。其实你在生活和工作当中也是一样的,你身边的人形形,有的人你喜欢,有的人你很讨厌。但其实你喜欢的人也有缺点,你讨厌的人也有优点。你要学会从你讨厌的人身上学会他的优点,千万不要一棒子打死,这只会让你失去很多学习成长的机会。好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。

Java学习资料获取方式:转发文章+关注私信【Java】

大学四年,总结出一套合小白的Java自学路线和方法

无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班。报班通常太费钱,时间又不自由;自学又不知道如何下手,担心自己坚持不下来。怎么办呢?

本文将解答你自学Java的N种问题:

你适不适合自学Java呢?

如何自学Java呢?

有没有靠谱的Java自学资料推荐?

怎样让自己看到进步,坚持下来?

……

以上问题,课程中我都会呕心给你梳理答案,赶快开始学习吧。

在自学前你可能会因为自身的条件有很多困惑和疑虑,不清楚自己是否适合自学Java。下面我们来做个测验,来检测一下你是否适合自学Java。

第一道题:你对学习Java的信念有多强?

最低分0分,最高分5分,你给自己打几分?

对学习Java抱有坚定的信念是学习Java的必备条件,如果你给自己的打分小于等于2.5分,建议你直接放弃学习Java吧。如果你给自己的打分大于2.5分(越高越好),恭喜你,第一关的考验过了!

第二道题:你学Java的目的是兴趣提升 or 就业?

如果你学习Java只是兴趣提升,那么你无论是自学或者报班怎么学都是适合的,因为你不差时间。那么后面的考验题你也可以直接跳过,看后面的干货。

但如果你是为了就业而学习Java,那对学习Java效果和时间都有一定要求,还要满足社会岗位要求。建议你好好考虑报班还是自学。

如果你大于30岁的话,我已经不推荐你学习Java了,一方面30岁后学习能力和精力堪忧,另一方面30岁的Java初级小白几乎找不到工作。

但如果你小于30岁的话,那你的客观条件还是可以学习Java的。剩下的就要考验你的自控力和毅力了。

第三道题:最低分0分,最高分5分,你给自己的自控力和毅力打几分?

如果你的打分小于3分,我建议你报班学习Java,自学不适合你。(如果你不能确定自己的自控力水平,你也可以去网上找一些自控力测试的问卷。)

但如果你自控力较强、个人时间较多、热爱独立思考钻研的话,那么恭喜你,我认为你是非常适合自学的。如果你也选择自学,那么本课程的内容你可以好好学习借鉴,相信你一定可以找到一条适合自己的道路!

最后你也许会问,性别、英语水平、数学水平、是否为科班等是否影响自学Java,如果你上面的测试都通过了,这些其实都是一些非关键性的影响因素。

我们用一张图总结一下以上的所有问题:

虽然性别、英语水平、数学水平、是否为计算机专业都等不是关键因素,但当你是女孩子,英语、数学水平较差,非计算机专业相对于男孩子,英语、数学水平较好的计算机专业还是会有一些影响,为了达到同样的结果可能需要付出更多的努力。

我们这里拿计算机专业和非计算机专业比较一下。

计算机专业和非计算机专业自学Java的区别?

虽然说计算机主要靠自学,但是计算机专业的学生相比非计算机还是有很大优势的,大部分计算机专业是有开设Java这门课程的,可以让这些学生在学习Java的道路上快速度过\”冷启动\”;还有一些重要的基础课,例如数据结构、操作系统、数据库、计算机网络等课程能够帮助学生更深入地了解计算机,学习起Java语言也能有更深层次地理解。

而非计算机专业在自学Java时,会因为有原专业课程、作业的限制,学习时间相比计算机专业学生少了不少,但这些问题是可以被克服解决的,可以多花一些课余时间、周末时间,学习练习Java,也可蹭一蹭计算机专业开设的Java课程,多与计算机相关专业同学交流碰撞。自学Java的心态也很重要,不要因为被本专业课程拖累而埋怨,要乐观地去面对学习上的困难,有长远的眼光,阳光总在风雨后!

总的来说,计算机专业自学Java资源、时间更多,更需注重自学的方法和内容;而非计算机条件较难,除注重方法和内容之外,重要的是要坚持在百忙之中挤出很多时间留给Java,这对毅力是非常大的考验。

当你适合自学的时候,那么你就要寻求好的方法提高自学Java的效率,如何做呢?看看下面内容吧~

这里我总结了三大点,分别从认识、方法、反馈角度来写,其中一定有适合你的方案!

自学Java前,要对Java和Java体系知识有一定认识,心中有个大概的轮廓去学习,方能更踏实。通过几个问题了解Java。

什么是Java?

Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种跑在JVM上的语言,Java编译后是字节码,而JVM会把这些字节码解释成机器码,然后做出相应的动作。

Java能干什么?

Java当前用的较多的就是做后端开发、大数据开发、安卓开发,这是当前Java技术栈较为热门的三种岗位,其中以Java后端的市场需求最大。Java也可以做桌面应用开发、游戏开发,但需求相对较少。

国内大厂,像阿里巴巴、美团、京东、拼多多等,使用的主要语言都是Java,大部分中小企业为了成熟稳定也选择Java作为后端开发语言。此外,很多著名的中间件是由Java编写的,例如:Elasticsearch、RocketMQ、Hadoop等。

Java入门部分:

  • JDK、IDEA安装,第一个HelloWorld
  • 基础内容:输入输出、命名规范、注释
  • 数据类型:基础数据类型(及其包装类)、引用类型
  • 修饰符:访问修饰符、非访问修饰符
  • 运算符:赋值、算数、自增自减、比较、逻辑、位、三元运算符及其优先级
  • 控制流程:条件判断、循环语句
  • 数组、字符型
  • 类与对象
  • 面向对象三大特征:继承、封装、多态
  • 日期、正则、大数运算(简单了解)

Java进阶部分:

  • IO常见文件操作
  • 集合框架:ArrayList、LinkedList、HashMap、HashSet、ArrayDeque等
  • 异常处理
  • 泛型
  • JDBC
  • 网络编程
  • Java8新特性(Lambda)
  • 反射、注解(有点难)
  • 多线程、高并发
  • 23种设计模式
  • 树、红黑树、B树、散列、堆、图等
  • 算法:十大排序、二分查找、分治、贪心算法、位运算、回溯、动态规划、搜索算法(bfs、dfs)、最短路径(Dijkstra、Floyd)、最小生成树(Prim、Kruskal)、并查集、KMP等算法
  • HTML、JavaScript、CSS
  • XML、JSON
  • Tomcat
  • Servlet/JSP(以Servlet为主)
  • JQuery、Ajax
  • MVC
  • Cookie、Session
  • 过滤器、监听器
  • 文件上传下载(Servlet3.0)
  • Linux
  • ORM框架:Mybatis
  • Spring全家桶:Spring、SpringMVC、SpringBoot
  • 安全框架:Shiro、Spring Security(可选一种先学)
  • 其他框架:Swagger(在线接口)、Log4j2(日志)、Quartz(定时)等
  • 微服务:SpringCloud、Dubbo等
  • 版本控制:Git、SVN
  • 包管理:Maven、Gradle
  • 关系型数据库:MySQL、Oracle等
  • 非关系型数据库:Redis(缓存)、Memcached(缓存)、MongoDB(文档型)等
  • 搜索引擎:Elasticsearch、Solr等
  • 消息队列:RocketMQ、ActiveMQ、RabbitMQ、Kafka等
  • Web服务器:Apache、 Nginx
  • 容器:Docker、K8S
  • 大数据:Hadoop、Spark、Strom、Flink等

当然,上面只是罗列了大部分知识点,还有很多知识比如日志分析监控(ELK)、持续集成、分库分表等也都是热门技术,Java后端技术体系庞大。这些内容可以根据你的工作或者兴趣,选择性深入学习。

自学Java一般有书籍、视频、博客等学习资料,这里主要讲解三者在自学Java中的异同点。

看书是最为传统的学习方式,我们从小到大大部分的自学知识是通过看书来获得的,所以可能很多人都喜欢和适应这种方式。书籍具有严谨、体系完整等特点,并且纸质的内容来回翻阅在回顾的时候也更便捷。

但看书也有一些缺点:可能分不清主次,在学习Java的时候其实是有侧重点的,而书上可能在这方面并不会有太多的介绍和标注,并且一些冷门淘汰知识可以不用学习(例如Java Swing部分);有些内容即使作者写得很棒了,但可能会因为案例、解释较少不能完全理解(尤其是小白)。

比起书籍,更多人愿意看视频自学Java,因为看书时大部分人会觉得比较枯燥。但是视频就不一样了,视频中老师们通常会边敲边讲解,更易于知识点的理解,并且人是感性动物,看视频就如同与老师交流,好的老师会让学习效率直接翻倍。

看视频当然也会有些缺点,视频时间较长较多,很难快速回顾学过的知识或者快速浏览章节内容,所以有可能会浪费一点学习的时间。

博客是程序员必不可少的学习资源,近些年高质量博客、文章也越来越多。这种博客文章阅读比较方便,内容选择也比较丰富,好的博客图文并茂生动形象非常有助于理解记忆,并且博客在代码拷贝学习方面更占优势。

看博客也有一些缺点:比如博客比较碎片化,体系不太完整。还有博客质量参差不齐差距较大,甚至有的博客还出现较大的错误,所以挑选好的博客是一大挑战。

总的来说,系统自学Java主力军还是 看视频和看书 ,可以以看视频为主,看书为辅,遇到疑难点不理解的可以通过搜索相关博客多看文章进行学习吸收。

图文类的教程网站:

菜鸟教程:https://www.runoob.com/java/java-tutorial.html 教程免费,适合基础入门

W3Cschool:https://www.w3cschool.cn/ 教程免费,适合基础入门

易百教程:https://www.yiibai.com/ 教程免费,适合基础入门

How2j: https://how2j.cn/ Java基础到高级,还有各种框架、中间件教程

回车课堂:https://ke.boxuegu.com/ 以关卡形式教学,从基础到高级,文章内容质量比较高

书栈网:https://www.bookstack.cn/ 免费的在线电子书、笔记、文档网站

还有其他免费图文教程、个人站点的例如importNew ,我要自学网等也可看看。

刷题网站

力扣:https://leetcode-cn.com/problemset/all/

牛客:https://www.nowcoder.com/

适用ACM选手的一些刷题网站:杭电ojCodeforceVjudgeAtcoder

Java开发也要刷题吗?那是肯定的,找工作无论大厂小厂(尤其大厂)避免不了笔试题,力扣和牛客上都有剑指offer,建议刷2-3遍,力扣hot100一定要刷一下,如果冲击大厂那一定要刷200道以上才行。

推荐书籍

自学Java我推荐的书籍为《Java从入门到精通》,有案例、代码跟着学很容易懂。

当然被业界称为为四大名著书籍质量也不错:

《JAVA语言程序设计》—-初级

《JAVA核心技术》卷I—-初级、《JAVA核心技术》卷II—-中级

《JAVA编程思想》—-初级~中级

《Effective Java》—-中级

在跟着书籍学习的时候,有困难的内容也可以先放一放,还有Java Swing等窗口应用部分也可跳过。这些书不需要全买,有一本工具书就足够了。

学习很容易遗忘,因此要时常回顾。不推荐视频作为长期回顾的方法,更推荐博客、纸质书回顾,因为它们可以快速定位,很多内容看一遍就想起来了。

除了回顾以外,交流可能是另一种锁住知识的好方法了,通过交流倾听别人的意见,能深入思考,加深对知识的理解。交流的方式和途径有很多

和身边人交流:最方便和高效的交流方式就是和身边同学、舍友、一起学习的人进行交流,一起学习进步共享学习的心得;

社群论坛交流:最大众化的就是添加一些QQ、微信的技术交流群或者在一些问答论坛交流,群中或者论坛中会有不少大神或者志同道合的人能够帮到你。作为技术人加几个技术社群、多逛技术论坛还是很有必要的。

当然还有一种方式并不一定适合所有人,就是和\”自己\”交流,将自己的学习内容重难点以笔记、文章形式输出出来,虽然这会耗费大量精力和时间,但这不断思考、优化、写的过程会使你对知识印象更深刻。

上面已经介绍了高效自学Java的关键点,下面来推荐实用的Java自学路径。

这个路径是我为你呕血整理而成,它结合我个人的自学经历与大牛的学习建议,避免了学习的坑。路径分为四部分:

  1. Java基础学习阶段
  2. JavaWeb学习阶段
  3. 框架学习阶段
  4. 自我提升阶段

学到第三阶段,就达到初级程序员的水平,可以找工作了。第四阶段——自我提升阶段——里的知识是Java高级和框架两部分里的需要深入学习的知识,你可以一边工作一边提升,其他内容是。

这里我推荐的自学路径,以视频为主。因为Java路径中的各个阶段相对独立,不必追求一家视频,但同一阶段建议看一家视频。

前面的内容学起来相对简单,是自学的核心内容,但是度过初期要学什么也要有个大概的了解,这里简单介绍一下并推荐部分书籍。

  • Java并发编程:《Java并发编程实战》
  • JVM:《深入理解JVM虚拟机》
  • MySQL:《MySQL技术内幕》
  • 23种设计模式:《大话设计模式》
  • 数据结构与算法:《数据结构与算法分析Java语言描述》(机械出版社黑皮书),坚持刷力扣
  • 操作系统、计算机网络
  • JDK源码、框架源码
  • Redis、MQ等主流中间件
  • 大数据、分布式、微服务、容器等部分

这部分的学习可能比起前面会枯燥一些,但想要变强突破初级的瓶颈就得沉得住气,静下心来学习。

在自学Java前或者自学中你会不会有这样的疑惑:

自学Java,学多久可以找到工作?

进大厂和进中小公司自学Java的侧重点有区别吗?

为什么学了那么久还只会“Hello World” ?

编程能力从什么时候开始突飞猛进?

以上选项无关对错,让我慢慢给你唠~

1 自学Java,学多久可以找到工作?

如果是小白的话,每天保证8小时以上的学习时间,达到Java初级程序员的水平最快也要6个月。前5个月正常学习Java技术,最后一个月准备简历以及面试。Java面试非常重要,要找一些面经将面试常考的问题搞明白。

2 进大厂和进中小公司自学Java的侧重点有区别吗?

大厂更重基础,需要你对学习的Java内容有透彻地理解,以及学习和理解数据结构与算法、操作系统、计算机网络、设计模式。而小厂更重项目和框架的使用。因此不同的定位,决定了在学习和面试准备的时候要有不同的侧重点。

还要提一点,大厂都注重编程能力,会笔试算法题,对应届生的要求更高,所以如果有条件的话一定要把剑指offer刷2-3遍,力扣最好能刷100题以上(学生的话刷200题以上)。

3 为什么学了那么久还只会“Hello World” ?

学那么久只会\”Hello World\”就是因为只看不练或者练少了。很多人在学习时眼高手低,不去敲代码或者只是copy一下执行,到后面碰到有难度的代码,就发现自己啥都不会。

解决这个问题一方面是学习途中遇到的案例都要动手敲;另一方面就是要刷题巩固,因为跟着案例,逻辑上还是有所依赖,但刷题时必须要自己充分思考才能通过。

所以自学Java,要一步一个脚印,每部分的案例都要动手去实现,并在实现的基础上去巩固和创新。

4 编程能力从什么时候开始突飞猛进?

编程能力的进步靠练习,一般突飞猛进会有两个阶段。

第一个突飞猛进就是学完Java基础部分。刷了100题左右,这时候遇到简单逻辑题都可以轻松解决,自己的逻辑能力、编程能力都有不错的提升,你会觉得自学Java这么久,努力没白费。

第二个突飞猛进的体会就是独立完成一两个项目的后端模块时。从搭建项目、到MVC分层编写业务逻辑代码会让学到的知识真正应用起来,自己会有点窃喜:哇,我自己也能写项目啦!这时候就是编程能力的第二次突飞猛进。

当然,后面可能也会因为一些其他原因让自己再次突飞猛进,但总的来说,想要突飞猛进,就要在短期内高强度学习、高强度敲代码。

如果你觉得这篇文章对你有用,那么请你不要吝啬你的点赞收藏和关注!

零基础学习Java的小伙伴,在遇到以上任何的问题,或者是学习方法,学习效率,学习路线,学习教程等问题,都可以关注我并私信我发送 “ 编程 ” ,我拉你来我的十年Java学习群,对自己学习Java有帮助!

一位资深程序员大神给予Java初学者的学习路线建议

java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。

在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java Web和Java后端开发的路线,非Java Web和Java后端开发的同学请适当参考其学习思想即可,切勿照搬。2、下面对于【第一部分】的推荐内容,目的是让你尽快成为一个可以参加工作的Java开发者,更适用于处于待业状态,准备转行Java的同学。

如果你是在校学生,务必要在学好基础(比如计算机系统、算法、编译原理等等)的前提下,再考虑去进行下面的学习。第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学。

一、Java基础首先去找一个Java的基础教程学一下,这里推荐慕课,菜鸟,学习Java基础的时候,应该尽量多动手,很多时候,你想当然的事情,等你写出来运行一下,你就会发现不是这么回事儿,不信你就试试。学完以上内容以后,你应该对Java有一个基本的了解了,你可以用Java语言写出一些简单的程序,并且你用的是最简单的编辑器,比如记事本。这个时候,不要急于进入下一部分,留下几天好好写一些程序,尽可能熟悉这些基础内容。

二、Web开发等你写上几天程序以后,你往往会比较迷茫,因为你写的东西似乎看起来毫无用处,比如实现一个简单的计算器,读取一个文件等。这个时候你就应该去学着写一些让你觉得有意思的东西了,所以你应该学习更多的知识。这些内容主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。

你可以试着自己写一些页面,当然,你可以尽你最大的努力让它变得最漂亮。这部分内容对于后端Java来说,理论上不是特别重要,但至少要达到可以自己写出一些简单页面的水平。接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的,而且这个时候,你要学会使用开发工具,而不能再使用记事本了,可以选择eclipse。当你下载安装好eclipse以后,请视频中的教程一步一步去学习,一定要多动手。关于Servlet/Jsp部分视频的选择,业界比较认可马士兵的视频,因此推荐给大家。

当然了,我本人并没有看过他的视频,所以不好说的太绝对,如果大家自己有更好的选择,可以坚持自己的,不要被我干扰。原本我也是打算出教学视频的,但是由于时间问题,还是决定放弃了。最后一步,你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

三、开发框架当你学会以上内容以后,这个时候你还不足以参加工作,你还需要继续深造。公司里为了提高开发的效率,会使用一些Java Web框架,因此你还需要学习一些开发框架。目前比较主流的是SSM框架,即spring、springmvc、mybatis。你需要学会这三个框架的搭建,并用它们做出一个简单的增删改查的Web项目。你可以不理解那些配置都是什么含义,以及为什么要这么做,这些留着后面你去了解。

但你一定要可以快速的利用它们三个搭建出一个Web框架,你可以记录下你第一次搭建的过程,相信我,你一定会用到的。还要提一句的是,你在搭建SSM的过程中,可能会经常接触到一个叫maven的工具。这个工具也是你以后工作当中几乎是必须要使用的工具,所以你在搭建SSM的过程中,也可以顺便了解一下maven的知识。在你目前这个阶段,你只需要在网络上了解一下maven基本的使用方法即可,一些高端的用法随着你工作经验的增加,会逐渐接触到的。

关于学习SSM框架的地址给大家推荐一个,这里面有视频,大家可以去观看。四、找工作当你完成开发框架的学习以后,你就该找工作了,在校的找实习,毕业的找全职。与此同时,在找工作的同时,你不应该停下你的学习,准确的说,是你在以后都不能停下学习。上面这些内容你只是囫囵吞枣的学会了使用,你可以逐步尝试着去了解更多的东西,网络是你最重要的老师。

第二部分:对于参加工作一年以内的同学。恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月。正常速度的话,应该可以在半年左右看完。我这里不要求过高,只要你在一年以内把这本书看完即可。当然了,我所说的看完,是充分吸收,而不是读一遍就完事了,因此有些内容你可能会看不止一遍。总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。

第二部分:对于参加工作1年到2年的同学。这部分时间段的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。我当时看的是《大话设计模式》这本书,并且写了完整版的设计模式博客。因此,我要求大家,最多在你工作一年的时候,必须开始写博客,而设计模式就是你博客的开端。

请记住,我所提的基本都是最低要求,因此不要有任何松懈的心理,否则五年后,你不要去羡慕别人高于你的工资,也不要去羡慕别人进入了某公司。这一年,你必须对于设计模式了如指掌,《大话设计模式》可以作为你的开端。此外,设计模式并不是你这一年唯一的任务,你还需要看一些关于代码编写优化的书。比如《重构 改善既有代码的设计》,《effective java》。总而言之,这个阶段,你的核心任务就是提高你的代码能力,要能写出一手优雅的代码。

第三部分:对于参加工作2年到3年的同学有的同学在这个时候觉得自己已经很牛逼了,于是忍不住开始慢慢松懈。请记住,你还嫩的多。这个阶段,有一本书是你必须看的,它叫做《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一。在我眼里,这本书的重要性还要高于《Java编程思想》。这本书的内容是帮助你全面的了解Java虚拟机,在这个阶段,你一定已经知道Java是运行在JVM之上的。所以,对于JVM,你没有任何理由不了解它。

另外,在过去2年的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识,而这部分内容,我比较推荐《Java并发编程实战》这本书。只要你把这本书啃下来了,并发的部分基本已经了解了十之六七。与此同时,这个阶段你要做的事情还远不止如此。这个时候,你应该对于你所使用的框架应该有了更深入的了解,对于Java的类库也有了更深入的了解。

因此,你需要去看一些JDK中的类的源码,也包括你所使用的框架的源码。这些源码能看懂的前提是,你必须对设计模式非常了解。否则的话,你看源码的过程中,永远会有这样那样的疑问,这段代码为什么要这么写?为什么要定义这个接口,它看起来好像很多余?由此也可以看出,这些学习的过程是环环相扣的,如果你任何一个阶段拉下来了,那么你就真的跟不上了,或者说是一步慢步步慢。而且我很负责的告诉你,我在这个阶段的时候,所学习的东西远多于这里所罗列出来的。

因此千万不要觉得你已经学的很多了,我所说的这些都只是最低要求,不光是我,很多人在这个时间段所学习的内容都远超本文的范围。如果你不能跟上节奏的话,若干年后,如果不是程序猿市场还不错的话,你很可能不仅仅是工资比别人低,公司没别人好,而是根本就找不到工作。总而言之,这个阶段,你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容),也就是JVM和JDK的相关内容。而且还要更深入的去了解你所使用的框架,方式比较推荐看源码或者看官方文档。另外,还有一种学习的方式,在2年这个阶段,也应该启用了,那就是造轮子。不要听信那套“不要重复造轮子”的论调,那是公司为了节省时间成本编造出来的。重复造轮子或许对别人没有价值,因为你造的轮子可能早就有了,而且一般情况下你造出来的轮子还没有现存的好。

但是对别人没有价值,不代表对你自己没有价值。一个造轮子的过程,是一个从无到有的过程。这个过程可以对你进行系统的锻炼,它不仅考察你的编码能力,还考察你的框架设计能力,你需要让你的轮子拥有足够好的扩展性、健壮性。而且在造轮子的过程中,你会遇到各种各样的难题,这些难题往往又是你学习的契机。当你把轮子造好的时候,你一定会发现,其实你自己收获了很多。所以,这个阶段,除了上面提到的了解JVM、JDK和框架源码以外,也请你根据别人优秀的源码,去造一个任何你能够想象出来的轮子。

第四部分:参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。因为在前3年的过程中,你肯定或多或少接触过一些其它的技术,比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等。这些技术,你能精通任何一项,都将是你未来面试时巨大的优势,因此如果你对某一项技术感兴趣的话,

这个时候可以深入去研究一下。这项技术不一定是你工作所用到的,但一定是相关的。而且在研究一门新技术时,切忌朝三暮四。有的同学今天去整整大数据,搞搞Hadoop、hbase一类的东西。过不了一段时间,就觉得没意思,又去研究分布式缓存,比如redis。然后又过不了一段时间,又去研究分布式计算,比如整整Mapreduce或者storm。结果到最后,搞得自己好像什么都会一样,在简历上大言不惭的写上大数据、分布式缓存、分布式计算都了解,其实任何一个都只是浮于表面。到时候面试官随便一问,就把你给识破了。

一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。因此在这个阶段,你就不能再简单的去学习前3年的内容了,虽然前面的学习如果还不够深入的话依旧要继续,但这个时候你应该更多的考虑建立你的优势,也可以称为差异性。差异性相信不难理解,就是让你自己变得与众不同。你前面三年的学习足够你成为一名基本合格的Java开发者,但你离成为一名优秀的Java开发者还有很大的距离。

所谓优秀,即能别人所不能。而你前三年所学习的内容,是很多做过几年的Java开发都能够掌握的。那么为了让自己有差异性,你就需要另辟蹊径,找一个方向深入研究下去,以期在将来,你能够成为这个领域的专家,比如分布式计算领域的专家,大数据领域的专家,并发领域的专家等等。此外,你除了建立你的差异性之外,还要去弥补你基础上的不足,直到现在,我都没有提及基础知识。原因是基础是很枯燥无味的,学的太早不仅容易懵逼,而且懵逼的同时还容易产生心理阴影,以至于以后再不想去研究这些基础。但基础又是你深入研究一些领域时所必须掌握的,比如你去研究分布式计算,你不懂算法你玩个毛毛?比如你去做分布式缓存,你对计算机系统的内存不了解,你如何去做缓存?

如果你的基础本来就非常强,那么恭喜你,相信你在之前的工作中已经充分体会到了这些基础对你的帮助。但我相信大部分人的基础都很薄弱,哪怕是科班毕业的人,很多人也不敢说自己当初的基础学的多么强大,比如算法、计算机系统原理、编译原理这些。但是每个人时间都是有限的,而且这些基础的书籍每一本读下来,没个一年半载的,还真拿不下来,因此还是要有所抉择的。虽然艺多不压身,但问题是艺多是有代价的,是需要你付出时间和精力的,而我个人更赞成在同等代价的情况下获取最大的收获。

首先,我比较推崇的基础书籍有三本,分别是《深入理解计算机系统》,《tcp/ip详解 卷一、二、三》,《数据结构与算法》。其中TCP/IP有三本书,但我们这里把这三本看成是一本大书。这三本分别适合三种人,《深入理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工作的人群。《tcp/ip详解 卷一、二、三》比较适合做网络编程的人群,比如你使用netty去开发的话,那么就要对TCP/IP有更深入的了解。而《数据结构与算法》这本书,则比较适合做计算研究工作的人,比如刚才提到的分布式计算。另外,我要强调的是,这里所说的适合,并不是其它两本对你就没有用。比如你做Java Web和APP后端开发,《tcp/ip详解 卷一、二、三》这本书对你的作用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那当然最好不过了。

但如果时间有限的话,那么就先挑对你帮助最大的书去读。理论上来讲,这一年你能把这三本其中一本精读下来,就已经非常厉害了。有了基础,有了前面的工作经验,你就可以去开拓属于你的领域了。在这一年里,一定要规划好自己的领域,建立好自己的优势,制造出差异性。如果你对自己的领域不够清晰的话,随着你工作的时间日益增多,你接触的技术会越来越多,这个时候,你很容易被淹死在技术的海洋里,看似接触的技术越来越多,会用的也越来越多,但你毫无优势。有的同学可能会问,“我,我也不知道我的领域是什么啊?怎么办呢?”对于这种人,我只想说,“卧槽,这还问我?要不干脆我替你学习得了,好不好?”

第五部分:参加工作4年到5年的同学经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。

这次的开源项目不同于之前的造轮子,你这个时候是真的要去尽量尝试造出来真正对别人有价值的轮子。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。程序猿在某种程度上和明星很像,一个好的电视剧和电影就可以成就一批明星,程序猿有的时候也是,一个好的项目就可以成就一群程序猿。比如国内几个脍炙人口的项目,像淘宝、支付宝、QQ、百度、微信等等。这每一个项目,都成就了一批程序猿。我敢说,这里面任何一个项目,如果你是它的核心开发,光是这样一个Title,就已经是你非常大的优势。更何况还不止如此,Title说到底也是个名头,更重要的是,这种项目在做的时候,对你的历练一定也是非常给力的。

而你如果想要参与这样的项目,除了靠运气之外,影响力也是很重要的一个手段。比如你在分布式计算领域有一定的影响力,那么如果有什么好的关于分布式计算的项目,对方就很可能会邀请你。就算人家不邀请你,你自己主动去面试的时候,对方如果知道你在这个领域的影响力,也肯定会起到很大的作用,而这个作用,甚至可能会超过你现在的技术能力。所以,在这个阶段,你最大的任务是提高自己的影响力,为自己未来的十年工作生涯那一天做准备。如果你能够靠你的影响力和以前积累的技术,参与到一个伟大的项目当中,那么你后面的五年也就有着落了。当然了,我现在满打满算,做程序猿也就4年半不到,因此关于4年到5年这一部分,我的见解不一定是对的,就算是对的,也不一定是适合任何人的。

所以,希望大家自己有的判断力,去决定到底该如何度过这一年。结语本文到此就基本结束了,整篇文章很长,但其实主要就说了两部分内容,一个是社招面试的准备,一个是Java生涯的学习。关于这两部分,我已经给出了自己的见解,但是还是那句话,每个人吸收知识的时候,都要有抽取精华,去除糟粕的能力。我所说的,可能有些是对的,有些是错的,有些是适合你的,有些是不太适合你的,你要自己能够判断。其实你在生活和工作当中也是一样的,你身边的人形形,有的人你喜欢,有的人你很讨厌。但其实你喜欢的人也有缺点,你讨厌的人也有优点。你要学会从你讨厌的人身上学会他的优点,千万不要一棒子打死,这只会让你失去很多学习成长的机会。好了,说了这么多了,就到此为止吧,希望本文可以帮助到作为程序猿或即将成为程序猿的你。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。