先祝各位博友新年快乐, 在新的一年里日日精进, 早日将开发炼成宗师级别.

最近晚上和夫人一起看《庆余年》, 由于腾讯视频解锁的太慢, 就先行找盗版资源看完了1-46集. 感觉这开发与武功也有相同之处, 可谓门派林立, 著述甚多, 归根究底却又混元归一, 大统一体.
习武之人, 务必日日精进. 这自学开发也是如此, 想来修习开发已有一年又半载, 虽为技术工作, 无需蛮力, 但这开发修整思维, 令人眉清目明, 思绪敏捷, 却也是这编程武学一大好处.

本来准备在新年当晚更新博客, 陪夫人小女在苏州燃放烟花, 也就专心享受阖家欢乐, 不再强求.

在新的一年起始之际, 按照惯例可能又得编制一下年度计划, 也许能做到, 也许做不到. 在想一下2020年做什么之前, 不妨回头一看, 2019年具体计划 中的每月回顾, 在7月之后就没再写. 这里先简单回顾一下.

迟来的2019年总结

7月之后, 慨叹内功还不扎实, 还需有机会复看底层. 7月开始就重新看了一遍C语言, 之后便奔那必练神功 – 易筋经 CSAPP 而去. 研习整整一月, 至8月盛夏, 总算通练一遍.
这神功确实颇有效果, 练过之后, 再练其他功法, 就感觉真气源源不断从脑中涌出, 其他功法身形, 皆可知其所依所往, 要点何在. 8月下旬, 借着刚练完CSAPP之威, 意欲向另一门绝学 算法 发起挑战.

不过算法真乃集千年各家之大成, 远超计算机神功范畴. 薄薄一本秘笈, 修习一月, 也只敢说练得个皮毛, 才知CSAPP虽能打通任督二脉, 然算法等至高功法, 却非一日之寒, 就算先天奇才, 亦需多载才可一窥算法之妙. 好在研习算法, 对排序, 已经数组运用, 和部分图算法, 都有了理解更深之处, 也可以简单运用.像目前的武功层次, 能略微使出些至高神功的招式, 也算未浪费光阴修习了.

深秋将至, 凛冬不远. 这天寒地冻之时, 我也冷静下来, 暂且放一下修习完CSAPP的兴奋之情, 深知上半年乃猪突猛进般学完Java和Spring, 基础不牢. 于是后边几月, 从Java基础开始, 先研读《Java编程思想》这一上古秘笈, 细细研读之后, 不禁感叹Java这一门派历史渊源流长, 规则严整, 弟子遍及天下, 却又可以统一行事. 却不像那JavaScript, Python之流, 私下流派众多, 山头林立. 研习完这一秘笈之后, 更是摸出了初入武林之时就购得的秘笈《设计模式》. 话说这设计模式, 乃四位大宗师联手所作, 虽以C++这一传统武学做讲解, 但实为一本内功心法, 无论何种门派, 皆可从中受益.

想我初入武林之时, 每隔数日便想翻阅这设计模式, 无奈每次都如看无字天书, 不得其意. 后来修习渐深, 才知此物可非CSAPP之打底功力, 而是上乘内功心法, 不到一定程度, 别说运用自如, 就是死记硬背, 这字句也无法印入脑海分毫. 一年又五月后再看此书, 方知其中合纵连横, 机构精巧, 慧心巧思, 不一而足. 二十三式, 招招精妙绝伦, 巧夺天工. 这招式初看明了简单, 颇为严谨, 细细看来, 却可融入任意功学, 从有形化为无形, 亲自一练, 犹如听小女练琴, 回味无穷.

10月余下时间, 虽有设计模式加持, 仍不敢怠慢, 开始看起今人所著之Java 8秘笈. 话说这Java, 20年前创建门派至此, 依然为Web业界第一大门派, 其功法基础虽当前已定, 也历久弥新, 紧跟时代大潮. 修习此功, 自然要先人今人著作并举, 与时俱进, 方可有所小成.

到了11月, 总算将今人著作看完, 便开始今年最后一件大事, 就是修习这Java门派的必修之功: Spring, 外带还有同属Java门派的Hibernate等功法.

11月和12月上旬, 便是日日研习这Spring, 虽说此前也简单修习过, 只略知一二, 会用身形身法, 却不知精髓所在. 此次借一本国人所写秘笈, 总算到了年底之前, 将Spring MVC之外的心法都过了一遍, 尤其对于IOC + AOP这两大奇招, 有了更深的认识.

到了12月, 仅剩这Spring MVC, 看似只是Spring中一系分支, 若要运用自如, 却还必须修的其他后端神功, 其中重中之重, 乃是一最适合寒冬修炼的Hibernate神功, 此功精妙在可将真气固化, 又可将真气活化, 如能知晓其中奥妙, 招式即可大开大合, 举重若轻, 不管对面所来请求何等险恶, 皆可还之以真气汇聚之响应.

只是这Hibernate神功, 无法单独使用, 乃是结合Java 与 另一博大精深门派: 数据库得来. 如无数据库之功, Hibernate也就是无源之水, 一招一式都无法使出.

话说这数据库虽然也是一大门派, 然而修习之人不多, 其中至难之处, 与其他至高武功一样, 精通之人极为难的. 但好在此功入门易, 见效快, 且根基稳定, 通一便可通百, 因此也是习武之人必练之功.

于是从12月末起, 便则数据库神功中之PostgreSQL开始研习, 辅之以各种秘笈资料, 外加先人所作注释, 倒也不甚艰难. 吾恰有一友专习此功, 问后得知, 此功若只为运用自如, 只需研习SQL和索引两章即可, 既得友指点, 不敢怠慢, 即刻研习至岁末.

估计会边写边改的2020年计划

总的来说, 2019年初学Java又再学Java和Web开发, 也是从Python转向Java的一年, 夯实Web开发基础的一年.

不想在一开年, 就把全年的计划定掉, 还是跟着目前的思路继续完成要做的事情, 这里就先把一季度的计划写一下吧. 估计会和那个2019年的计划一样, 时刻执行, 时刻回顾, 时刻修改吧.

一季度的主要任务如下:

  1. SQL与索引, PostgreSQL的使用, 要学习完毕.
  2. Hibernate的完整学习
  3. Spring MVC前后端不分离的技术再重新学一遍

如果有能力, 就继续研习前后端分离的内容, 然后想办法找点实践项目写写吧.

一季度的任务其实已经超额完成了, 由于疫情的影响, 有了大把时间可以继续钻研. 二季度就是继续夯实基础, 把Java数据结构过一遍, 然后每天看C语言, 计算机组成与设计,然后继续看算法了, 尤其是并发, 如果二季度可以顺利把基础再过一遍的话, 就准备找个时间专门来看看多线程,进程和并发.

更新这段话的时候是4月28号, 把数据结构与抽象 Java语言描述 第四版过了一遍. 这本书客观的来说比较简单, 涉及到的算法也没有算法第四版那么多, 但是对于基本的数据结构和对应的算法基础还是做了比较好的了解, 也比较适合我, 我不用看其中的具体写法, 前后也都把数据结构和算法写了出来. 当然, 很多时候没有必要发明轮子, 但是看着轮子怎么转起来还是比较有意思的. 不过其中仍然留有一些内容可能要等到第三次看算法的时候再去研究: 主要就是红黑树的内容. 这一次其实我觉得进步最大的方面就是关于树和图的了解, 上一次看算法第四版这里真的是囫囵吞枣, 这一次就清晰了很多. 现在也可以偶尔刷刷LeetCode的简单题目了. 还有就是对于递归之类的内容也理解的更加深刻了. 不过很多时候还是觉得越过抽象壁垒依然有一定难度, 比如一个旋转锁的问题, 竟然要采用图算法, 这种题目就要遇到之后仔细总结才行.下边的计划, 我正好看到算法设计指南(第2版)这本书又有重印版, 就买了一本, 最近当当李国庆和老婆各种撕逼, 不过书真的是便宜, 趁机又入了Android Studio开发实战:从零基础到App上线(第2版)操作系统导论(当当请原谅我发的 链接都是京东链接), 后边按照我的计划,要专门来看一下并发编程了. 现在回忆了一下自己的Java技术, 基础部分, 函数式编程, 流应用都看过了, 基本上心里没底的就差并发了. 于是准备下边的时间专门研究一下并发. 由于研究底层肯定绕不过去操作系统, 顺便也需要把Linux的操作重新整理一下. 今年夏天就研究这些吧.

今天是5月31日, 从4月28日到现在, 把操作系统关于并发的理论看完了, 后边就是回到Java上来, 看Java的并发开发了. 主要的参考书就是实战Java高并发设计.
2个月过去了, 6月由于交接新的项目公司, 基本上没怎么看, 7月算是全部梳理完毕, 因此又可以看了, 一个月正好把Java并发过了一遍. 由于之前看操作系统的加持, Java并发现在看的非常顺利.
预计剩下的夏天是R之夏, 目前的计划是 1 学习前端框架React, 2 了解Java 9 的Reactive API, 3 学习一下Shiro以及Spring 的 Reactive 方式. 满眼看上去都是各种反应式哈哈. 8月还需要搬家, 女儿上小学, 看来是一个很忙碌的夏天呢.