随着互联网的发展,对程序员的需求也在增加。一些程序员在一步一步的同时,也会接受一些私人工作来增加他们的收入。巧合的是,一名程序员无意中发现了商机,开始了全职的私人工作,在10个月内收到了30多份名单,净收入为40万元,比工作要好得多。一位朋友问我如何系统地学习java。
这些朋友中的许多人已经进入了这个行业,但他们对无聊的添加、删除、更改和检查或模板SM框架并不满意。相反,他们愿意成为Java技术专家或架构师。
我很乐意回答问题。然而,这个答案不能用几句话来解释。所以,写一篇文章来回答。
学习计划
首先,我把Java系统学习分为两个阶段。
第一阶段:建立完整的技术栈,成为生产力高的软件工程师。
在这个阶段,我们应该掌握一系列的基本知识和工具。这些东西是相关的,所以学习过程是线性的,从上到下。
以下是第一阶段的学习路线:
第二阶段:这个阶段的目标是成为Java技术专家和架构师。因此,在上一阶段的技术上,我们必须走得更高(如设计模式和大数据),走得更深(Spring源代码和Java虚拟机)。
这个阶段的知识之间没有联系。完成第一阶段的学习后,完全取决于工作的需要和个人兴趣,并安排优先学习。
以下是第二阶段的学习目标:
从去年到现在,根据市场技术栈的需求,我录制了一套最新的java强化视频教程。如果你现在也在学习java,在入门学习java的过程中缺乏系统的学习教程,可以加入我的java学习交流qun:615、741、636、接收、qun文件,以及我近年来编制的java学习手册、面试题、开发工具和PDF文档教程。
接下来,我将点击学习计划中的关键点。
Servlet。
要成为一名优秀的Javaweb专家。无论是用SpringMVC实现的普通REST接口还是微服务。深入了解Servlet和容器(如Tomcat)。
因此,在深入学习微服务和SpringMVC之前,我们必须学习Servlet,因为它是整个Javaweb的基石。因此,在成为软件专家的路上,Servlet是最基本的垫脚石,一定要注意。
SQL
作为一名程序员,我在SQL语言上下了很大的功夫,尤其是在SQL语言优化方面,包括存储过程中的各种投掷。
但现在,SQL优化在开发过程中的优先级有几个原因:
各种ORMap框架(如Hibernate、Mybatis)的出现,大大降低了SQL的工作量。
各种ormap框架本身也会优化自动生成的SQL。
为了提高目前的服务器架构的性能,首先要考虑架构的横向扩展,而不是SQL上的极端优化。
但现在并不意味着SQL可以完全反复无常地编写。只是对于程序员来说,只要他们掌握了最常见的SQL优化原则,就足够整洁了。
缓存,队列
缓存,队列。业内有成熟的解决方案,如redis、ActiveMQ等。在学习的过程中,第一步是掌握核心概念和他们想要解决的问题。然后我们应该亲自安装并使用这些软件来建立
其次,在掌握核心概念的基础上,掌握这些开源软件的JavaAPI,然后尝试在此基础上编写典型的Demo,从而彻底掌握Java语言。
至于一些朋友提到的再次实现这个概念。我不知道朋友是指使用API,还是用Java语言实现缓存和队列软件。如果是后者,这并不意味着它不能,关键是它需要太多的时间。同时,就业实践并不特别必要。如果你真的感兴趣,降低优先级作为一个更长期的目标。
Linux
这个学习计划是一个长期而深入的学习计划。最后,我们应该成长为技术专家或架构师。因此,有必要及时掌握Linux。因为在实践中,服务器通常委托给Linux服务器。在未来,许多开源软件只能在Linux上运行。
因此,在开始学习缓存和队列资金时,我们需要首先掌握Linux的基本用途。然后在学习过程中,这些开源软件在Linux上运行。
这样,在学习Java的过程中,我也学会了Linux,这比以后单独学习Linux要有趣得多。
微服务
微服务不是一项具体的技术,而是一种设计理念,可以实现Java中的SpringMVC等多种语言和框架。
因此,如果你已经掌握了SpringMVC和SpringBoot。那么掌握微服务是很自然的。你要做的就是专注于微服务的应用场景。
设计模式
设计模式是比较重要的。如果Java的基础不是很好,很容易陷入空洞,眼高手低。
如果你的java基础太弱,比如你没有掌握抽象。那么我建议你先停止学习设计模式,补充Java的基础知识,至少学习Java核心技术第六章,即掌握现象对象的完整概念。然后回来学习设计模式。
在学习设计模式时,一定要开始。至少用Java语言实现书中列出的设计模式。如果你阅读经典的GOF设计模式,代码(C++描述)不容易用Java实现。建议您参考HeadFirst设计模式,其中demo短小精悍,非常适合Java。
这样,一个有利于理解设计模式。第二,在学习设计模式的过程中,进一步加强对Java基础知识的掌握。这个学习过程是一个相互促进的过程。
学习笔记很重要。
特别重要的是,在学习的过程中,尽量写学习笔记,包括难点和重点。
因为系统而深入地学习Java必须是一个长期而全面的过程。在后期,将会有学习背后,忘记前面。如果你没有学习笔记,也没有实践中积累的代码,那么你就会在学习时忘记它。
有了学习笔记,你以给自己的学习留下痕迹,以后复习的时候可以用来参考,这样可以唤醒早期学习的记忆。
而且,这些学习笔记在以后的工作中,也可以成为自己的参考手册,随用随查。
此外,学习笔记仍然是一本特别好的面试经典。因为既然你做了笔记,这些东西经常被你深入思考和消化,这也是你区别于其他工程师的优秀开始。