随着互联网的发展,对程序员的需求不断增长。有些程序猿工作之余,也为自己的私下接一些额外的收入,发现了商机,开始了全职的私人工作,十个月内就得到了30多份单子,赚了四十万块钱,直截了当地说,比上班好多了。
本来是我写的一篇文章,怎样快速学习java。之后有人问我怎样系统地学习Java。
很多这样的朋友都已经入行,但是对于SSM框架的添加,删除,检查,或者是SSM框架模板都不满意。取而代之的是Java技术或者架构师。
我会乐意为朋友解答问题。但是,这个回答不能用几句话来解释。因此,我写一篇文章来回应。
写作有点仓促,我将逐步完善。
学习计划
第一部分,我将学习Java系统分为两个阶段。
步骤一:构建完整的技术组合,成为高生产率的高级软件工程师。
这一阶段需要掌握一系列的基本知识和工具。这三件事都有关系,所以学习过程是线性的,应该自上而下。
第一阶段的学习路线如下:
步骤2:这个阶段的目标是成为Java技术专家和架构师。所以,我们必须在前一阶段的技术(例如设计模式,大数据)和深度(Spring源代码,Java虚拟机)。
此知识阶段不存在前后联系。根据工作需要及个人兴趣,安排学习优先次序,完成第一阶段学习。
第二阶段的学习目标如下:
在过去一年至今,我根据市场科技栈的要求,录制了一套最新的java精讲视频教程,假如您也在学习java,那么您还没有关于学习java的系统教程,请加入我的java学习交流群1083217607。文件还需要我几年来整理的java学习手册,面试题,开发工具,PDF文档教程,大家可以自己下载。
下一步,我将点击本学习计划的要点。
Servlet。
是一个很好的Javaweb专家。不管是常规的REST接口还是SpringMVC实现的微服务。对Servlet和容器(例如Tomcat)有深入的了解。
所以,在深度学习微服务和SpringMVC之前,请先了解一下Servlet,因为它是整个Javaweb的基础。所以,Servlet是通向软件专家的最基本途径,必须引起注意。
SQL
身为编程人员,我花费了大量精力使用SQL语言,特别是对SQL语言进行优化,包括存储过程中的各种折腾。
但是,由于以下原因,SQL优化在开发过程中的优先级明显下降:
许多ORMap框架(比如Hibernate,Mybatis)的出现,大大减少了SQL的工作量。
多种ORMap框架还优化了自动生成的SQL。
要改进当前服务器体系结构的性能,首先要考虑架构的横向扩展,而不要对SQL进行极端优化。
但是,这并不意味着SQL可以随意编写。仅仅对程序员而言,只需掌握最常用的SQL优化原则,就足够了。
缓存,队列
快取,排队。这个行业里已经有了更成熟的解决方案,比如redis,ActiveMQ。研究过程中,首先要把握好核心概念以及要解决的问题。请亲自安装,使用这些软件,建立情感理解。
第二,掌握了核心概念,掌握了开源软件的JavaAPI,并在此基础上进行典型Demo开发,使Java语言得到了全面的掌握。
关于一些朋友提到的再实施这一概念。不知朋友们是指在Java语言中使用API,或者是缓存和队列软件。假如是后者,也不会拒绝,关键是太花时间。此外,工作实践也并非特别需要。当你真正感兴趣时,降低优先级作为长期目标。
Linux
这是一项长期而深入的学习计划。最终成长为技术专家或者架构师。所以,及时掌握Linux是必要的。由于实际上,服务器通常被委派给Linux服务器。将来,很多开放源码软件只能运行于Linux。
因此,当开始学习缓存和排队钱时,首先要了解Linux的基本用法。接下来,我们将在Linux上运行这些开源软件。
通过这种方式,在学习Java时顺便学习Linux,给人的印象是比以后独自学习Linux更有意思。
微服务
与具体技术相比,微服务更具有设计思想,它能够实现许多语言和框架,如Java中的SpringMVC。
所以,如果您已经掌握了SpringMVC和Springbot。因此,掌握微服务是理所当然的。您需要做的是专注于微服务的应用场景。
设计模式
设计型就是相对的东西。假设java基础不好,就容易陷入空泛,眼高手低。
假如您的Java基础过于薄弱,例如您不能理解抽象。接着,我建议您不要再研究设计模式,补充Java的基础,至少完成了Java核心技术第六章,也就是掌握了完整现象对象的概念。再来学习设计模式。
一定要先学设计模式。书中列出的设计模式至少以Java语言实现。(C++描述)代码(C++描述)很难在Java中轻松地实现。推荐参考HeadFirst设计模式,其中demo简短而又非常适合Java。
这种方法有助于了解设计模式。第二,在学习设计模式的过程中,更好地掌握Java的基本知识。这种学习过程是一个互相促进的过程。
记笔记很重要。
尤其是在学习过程中,尽可能把学习笔记写下来,包括难点和重点。
对Java进行系统化、深度的学习必须是一个长期而全面的过程。后半部分,会有学习的时候,忘却前路。若不记笔记,不学练习代码,学着就忘了。
并且通过学习笔记,可以给自己的学习留下痕迹,在以后的复习时用来参考,很会对学习起记忆。
另外,这些学习笔记在以后的工作中,也可以作为自己的参考手册,随用随查。
另外,也可以是学习笔记,或是一本特别好的访谈。由于你写了笔记,常常要经过深思熟虑,才能领悟到与其他工程师有很大不同之处。
研究过程中,小编收集了一些学习资料,可以和做Java工程师的朋友分享,互相交流学习,学习,所需的java架构学习资料可通过私信(资料)免费获得(包括高可用性、高并发性、高性能和分布式)JVM性能Spring源码,Mybatis,Netty,Redis,Kafka,MySQLZookeper、Tomcat、Docker、Dubo、Nginx等知识的体系结构数据。
这涉及到因特网的方方面面。其间,我遇到了各种各样的产品和场景,可以从中借鉴和学习,拓展我的技术视野和知识。最后,记住要帮助作者。