前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一位资深程序员大牛给予Java初学者的学习道路主张

一位资深程序员大牛给予Java初学者的学习道路主张

作者头像
企鹅号小编
发布2018-02-11 14:53:07
5310
发布2018-02-11 14:53:07
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

Java学习这一部分其实也算是今日的要点,这一部分用来答复许多群里的朋友所问过的问题,那就是你是怎么学习Java的,能不能给点主张?今日我是计划来点干货,因而咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容乃至是一些书本。这一部分的内容,相同适用于一些期望转行到Java的同学。

在我们看之前,我要先声明两点。1、由于我自己是Java后端开发身世,因而所引荐的学习内容是Java Web和Java后端开发的道路,非Java Web和Java后端开发的同学请恰当参阅其学习思维即可,切勿照搬。2、下面关于【榜首部分】的引荐内容,意图是让你赶快成为一个能够参加作业的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部分视频的挑选,业界比较认可马战士的视频,因而引荐给我们。

当然了,我自己并没有看过他的视频,所以欠好说的太必定,如果我们自己有更好的挑选,能够坚持自己的,不要被我搅扰。本来我也是计划出教育视频的,可是由于时刻问题,仍是决议放弃了。可是如果你看视频的进程中遇到了问题,欢迎来我的沟通群发问(群号码:589809992),最终一步,你需求学会运用数据库,mysql是个不错的入门挑选,并且Java范畴里干流的联系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时分,就会触摸到的,其间的JDBC部分就是数据库相关的部分。你不只要学会运用JDBC操作数据库,还要学会运用数据库客户端东西,比方navicat,sqlyog,二选一即可。

三、开发结构当你学会以上内容今后,这个时分你还缺乏以参加作业,你还需求继续进修。公司里为了进步开发的功率,会运用一些Java Web结构,因而你还需求学习一些开发结构。现在比较干流的是SSM结构,即spring、springmvc、mybatis。你需求学会这三个结构的树立,并用它们做出一个简略的增修改查的Web项目。你能够不了解那些装备都是什么意义,以及为什么要这么做,这些藏着后面你去了解。

但你必定要能够快速的运用它们三个树立出一个Web结构,你能够记录下你榜首次树立的进程,信任我,你必定会用到的。还要提一句的是,你在树立SSM的进程中,可能会常常触摸到一个叫maven的东西。这个东西也是你今后作业傍边几乎是有必要要运用的东西,所以你在树立SSM的进程中,也能够顺便了解一下maven的常识。在你现在这个阶段,你只需求在网络上了解一下maven根本的运用方法即可,一些高端的用法跟着你作业经验的添加,会逐渐触摸到的。

四、找作业当你完结开发结构的学习今后,你就该找作业了,在校的找实习,结业的找全职。与此一起,在找作业的一起,你不应该停下你的学习,精确的说,是你在今后都不能停下学习。上面这些内容你仅仅囫囵吞枣的学会了运用,你能够逐渐测验着去了解更多的东西,网络是你最重要的教师。

第二部分:关于参加作业一年以内的同学。祝贺你,这个时分,你现已具有了一份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生计的学习。关于这两部分,我现已给出了自己的见地,可是仍是那句话,每个人吸收常识的时分,都要有抽取精华,去除糟粕的才能。我所说的,可能有些是对的,有些是错的,有些是合适你的,有些是不太合适你的,你要自己能够判断。其实你在日子和作业傍边也是一样的,你身边的人五花八门,有的人你喜爱,有的人你很厌烦。但其实你喜爱的人也有缺点,你厌烦的人也有长处。你要学会从你厌烦的人身上学会他的长处,千万不要一棒子打死,这只会让你失去许多学习成长的时机。好了,说了这么多了,就到此为止吧,期望本文能够协助到作为程序猿或行将成为程序猿的你。

本文来自企鹅号 - C语言与Cpp入门学习到精通媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - C语言与Cpp入门学习到精通媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档