前段时间总结了一下2018年的大事小情(《2018年度总结》),整体来说还是正能量满满,阅读量涨得也是蛮快的。今天,抽出点时间思考了一下未来一年的规划。那作为技术人才,规划也自然都是技术相关的,本篇文章会大量引用外部的链接,都是我在学习的过程中找到的比较好,比较全的学习资料,那么我将会依托于这些学习资料,来规划我的学习路线,在尽量全面的同时,也要做到有主有次,有深度的知识储备。
目前的框架学习我主要着重于Spring Boot和Spring Data Jpa这两个框架上。目前对于Spring Boot的学习还有着很大的缺漏,而关于持久层框架的两个重量级Mybatis和Hibernate也都是刚刚入门。介于新公司用到了Spring Data Jpa作为持久层的上层接口,我准备将JPA深入、系统的学习和总结一下。
而Spring Boot上手虽然已经没问题,但是这个框架的很多高级特性如:缓存、消息、检索、任务、安全、监管等都知之甚少,所以未来不仅会加强已学知识的巩固,还会进一步总结一些高级特性,方便日后用到。
那么这两个框架都会以视频的方式来学习。其中,Spring Boot要以《Spring Boot核心技术篇》《Spring Boot整合篇》为主;而JPA要以《JPA视频》为主,相信,总结完这些视频内容的学习资料后,应该可以达到2019年的技术小目标。
这个学习内容可能大家各有不同,因为之前一直是持“能用即OK”的态度去学习的,因此maven中的很多知识点并不了解,我觉得2019年有必要整理一些maven学习的资料,比如maven聚合项目就是一个不错的技术要点。
这部分的内容并不复杂,大概花一个周末的时间就可以总结完毕,依然是以视频学习为主《尚硅谷Maven视频35集》。
这部分内容我放在第三位,不是因为它不重要,而是因为Java语言本身的学习就是一个永无休止的过程,细水长流应当是学习Java语言的常态。
这部分虽然叫做Java基础,但是也并不“基础”,这部分内容,包括:
阅读JDK源码、String相关、Java中各种关键字、自动拆装箱、枚举、反射、序列化、JMS、泛型、常用Java工具类、单元测试等几个模块。这几个内容的学习资料以《成神之路系列文章》为主。
其实并发编程一直是作为一个兴趣在自学,目前的工作中并没有用到(其实最近在负责xml模板的维护工作上,已经很久没写Java代码了),但是这一块我一直希望作为自己的技术亮点,因此这部分内容也是非常重要的,而且在面试时也会经常被问到,比如线程池的使用,锁机制等等。
这部分内容主要是以书《Java并发编程实战》为主,但也不一定完全不借力于其他学习资料,像我之前就总结过马士兵老师的视频,各位可以移步至《多线程与并发合集》,因此对于并发编程这一块还需要善始善终,完成对《Java并发编程实战》的后续研读。
JVM在通常的web开发中确实是比较鸡肋的一块知识点,但并不意味着我们不需要学习它。对于这一块内容,我的计划是“三位一体”,即《Java成神之路——JVM》、极客时间的《深入拆解Java虚拟机(全集)》、书《深入理解Java虚拟机》。从这三方资料去学习JVM知识,其实知识点都是类似的,但是解读方式可能不尽相同,更多的是希望通过不同的讲解,来更加全面的理解这个我们无法以最直接的方式学习的一项“面试技术”吧。
设计模式真是一块硬骨头。关于2019年设计模式的学习,将会以《Java成神之路——设计模式合集》为主,额外以菜鸟教程的《设计模式》为辅,尽量再多一些常用设计模式的总结,并勤加练习。
毕竟设计模式非常庞杂,里面的规则和逻辑也不是一朝一夕就能够记住的。如何能够抓住设计模式的特点,通过巧妙的记忆方式快速回忆起某种设计模式的实现思路是一个比设计模式本身更值得研究的问题。
Linux的知识学习应该也需要提上日程安排了,虽然简单的部署应用不会涉及到太多Linux的知识,但是中小型企业对于服务器的掌握程度也是需要的,中高级的开发人员要能够较为熟练的操作Linux系统。因此这部分内容虽然不是当务之急,但是也应该按部就班的进行全面的归纳和总结,这部分的学习,要以韩顺平老师的视频《Linux教程》 为主。在其他学习内容的过程之中,穿插式学习和补充。
大家也可以买《鸟叔的Linux私房菜》来看,不过我觉得这种书千万不能从头开始读,因为用不了多久你就会放弃的,正确的使用方式应该也是穿插式的,在使用到某些指令时,去翻看一下书中对它的讲解,就像查字典一样。
这部分内容和服务器相关知识的紧急程度相同,虽然工作中并不涉及这部分知识,但是难免未来会遇到SQL优化的问题,这部分的知识绝对值得一学,因此,穿插式学习之。当以视频《SQL优化》 为主。
关于以上八点内容,是暂时能够想到的2019年的学习内容和总体的学习方式,无论是通过视频还是文章亦或是书籍,都应该达到最终预期的目标:该熟练的熟练、该精通的也该精通了。
关于具体的执行计划,我觉得这个有很大的变动性,不好总结在博客里。我觉得可以大概给自己制定一个版块的学习时间,比如Maven学习,就一周,每天晚上看一集,做做笔记,做做练习,再写写博客;而像Linux服务器这种巨大的学习工程,可能就需要半年时间甚至是一整年。不管是怎样,我们最后要的都是结果。
另外,上述八点是对于博主本人来说从主到次的排序过程,比如因为工作中常会触及框架的使用,因此框架的知识应该是最最紧要的知识储备,以此类推。
单就目前的开发经验来说,依然是以夯实技术开发能力为主,不算实习经验的话(主要是实习阶段并不是很热爱编程工作,因此学习热情并不高涨,技术提升也比较慢)到目前为止也有两年的工作经验了,到2019年7月满3年,争取这一年能够成为一个非常全面和有技术两点的Java开发人员。那么未来诸如架构、项目管理、一些测试的概念等等将会逐步的提升到日程上来,也会总结成博客分享给大家的。
综上,就是关于2019年的学习计划,欢迎文末留言。