# 前言
> 🤐 2019 太难了,我只希望 2020 能对我好一些~
看到这个征文活动,本来是不想参与,毕竟懒,但是又苦于自己的“仪式感”,总觉得需要一个完美的结束,碰巧最近各种开会,月度总结、年度总结,这不,抽空来写这篇文章,来来回回改了好几天,/(ㄒ o ㄒ)/~~
时间过得真快啊,2019 年,从一个学生变成一个打工仔,感觉昨天的这时候还在为了毕业论文而头疼,现在就已经到 2020 年 1 月 9 号了...
这篇总结不只是给自己看一看,也不是为了蹭热度,相信我,绝对不是为了拿奖品才参加的,更重要的是想把自己所经历的,给更多的刚入技术这一行或者还在读书学习的,或者是马上要工作的小伙伴看一看,哪怕有一点点用处,目的也就达到了。
# 回顾一年
要细化到一年做了什么,真的是很难,虽然可以一一列举出 xx 月 xx 日做了什么事情,但是没什么意义。总的来说,这一年,勉勉强强算合格...
- 能静下心来看一些 Vue 的相关源码
- 对 React 的一些原理有所了解
- 踏出舒适区,对 React Hooks 进行了解和使用
- 读了几本书,对网络这块也逐渐建立自己的知识体系
- 做了两三个自己想做的项目
- 坚持写文章,维护个人书单和博客
- 日常开发与工作中,会记录一些笔记
- 对封装一些 request、saga,utils 等有所进步
- 最重要的是,了解设计模式的重要性
- 去了五六个城市旅游
- 工作后带父母外出旅行一趟
- ...
## 学习 / 工作
### 上半年
回顾一整年,上半年几乎就只干了两件事,一个是玩,一个是毕设。说到毕设,一开始还想好好做的,于是乎玩得太尽兴,然后就开始水了...
上半年的进步较少,准确的说,没得啥进步,毕设也是基于当时的技术栈,然后进行开发,要真的说学习,那就是学了点 `Node` 吧,之前的开发,都是用 `Mock.js` 进行模拟数据,但这次的毕设,为了写论文时有东西可写(总不能就写 vue、react 等吧),于是把 **Node**、**Mysql**、**Redis**、**分布式**啥的都写上(主要当时选题时,也希望自己能从中学习到一些其它玩意...)
当时毕设要从**后台管理->小程序->服务端**,用 PHP 有些麻烦(之前在工作室的时候自学的,主要都快忘了),于是入坑了 Node,在 Node 这条路上,也是踩坑不断,比如说 [记 Node 中通过 redis 缓存 session 信息遇到的坑](https://juejin.im/post/6844903805130440712)
,再比如说在我草稿箱已经发霉的: `👉 让前端小白脑壳痛的分布式`
> 说到学习 Node,感觉就是一座大山,只能慢慢攀登,在看了一些书籍和查阅了一些资料之后,终于...能够用 Node+Express+Mysql 实现我的需求了...在这之后,发现还有 KOA、Egg 在等着我...🙄
当时的后台管理,还是基于自己写的 **[vue-erek-manage](https://github.com/PDKSophia/vue-erek-manage)** 进行快速开发,从开发者变成使用者,无时无刻都想捶死自己,因为设计的太垃圾了,代码写的太烂了。后期说要重构,也一直苦于没有时间,只能说,给大家当一个失败的示范案例了。
像我这种双非一本的大学,大部分的毕设都是比较 xxx(大家都懂的),所以虽然我水,但在众多的“管理系统”分类毕设中,我算是能拿出一个完整,从前端到后端,从数据到数据库,这么一个流程的毕设项目。于是乎,前天晚上还在蹦迪,昨天晚上熬夜改 PPT,第三天早上参加优秀论文答辩,并且还水了一个校级优秀论文三等奖???
### 下半年
下半年,入职新公司,看到了复杂的业务和需求之后,才发现自己之前写的代码**实在太 low**,同时发现,原来同一个需求功能,别人能这么设计,原来可以这么实现。入职这五个月以来,技术方面和眼界方面也是有所长进,**这时候会很明显发现自己与他人的差异,同时会很快速开阔自己的视野**。比如说 :
**1. 在听了组里边 hooks 的分享之后,也从官方文档中,边看边用 hooks 去撸了一期版本进行需求迭代,此后也不断使用 hooks 进行开发**
**2. 使用 TS 进行开发,同时购买了 TS 小册,进行 TS 这方面知识的补充**
**3. 知道何为同构渲染,了解 beidou 框架,基于此框架,快速开发部门的官网**
**4. 了解设计模式,并且尝试在项目中,使用设计模式进行解决一些问题**
发表的相关文章:
- 掘金 : [双十一返场-JS 构造器模式与工厂模式](https://juejin.im/post/6844903997673832462)
- Github: [DesignPatternsToJS](https://github.com/PDKSophia/DesignPatternsToJS)、 [JavaScript 设计模式](https://github.com/PDKSophia/read-booklist/tree/master/JavaScript%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F)
**5. 了解 DNS 相关知识**
之前只是知道 DNS 如何将域名解析成 IP 地址,但是在花了大量功夫之后,知道了 NAT 技术、内网穿透、DNS 解析的原理、区域传送等相关知识
在对 DNS 进行深入了解了之后,在组里进行了一次技术分享(虽然不咋地),同时将分享的 PPT 内容,整成了一篇文章,发表于掘金和博客中。
- [前端渣渣对 DNS 的正确理解,卧槽无情](https://juejin.im/post/6844903976656175117)
- [Github-工作笔记-DNS](https://github.com/PDKSophia/blog.io/blob/master/%E5%B7%A5%E4%BD%9C%E7%AC%94%E8%AE%B0/%E5%B7%A5%E4%BD%9C%E7%AF%87-%E5%89%8D%E7%AB%AF%E6%B8%A3%E6%B8%A3%E5%AF%B9DNS%E7%9A%84%E6%AD%A3%E7%A1%AE%E8%AE%A4%E7%9F%A5.md)
**6. 深层次的去看了 React 相关的一些源码和原理**
前边也说过了,React 自学,从**Vue 转 React**,这是一个艰辛的过程,从仅仅使用,到会去看一些原理和源码,真的是很不容易。
比如说:
- react 中 PureComponent 是如何自动检测组件是否需要重新刷新的?
- react 的生命周期流程源码和原理?
- redux 为什么要返回新的 state?
- react 的合成事件到底是个什么玩意?
- ...
> 上边所述有一些是 18 年年底才看的,我归到 19 年初了~
我个人认为,源码原理这些东西,一定要看,不管面试还是工作,都有很大帮助。
**7. 使用 Chorme Performance 对 Echarts 绘制的性能分析**
之前做过一个需求,使用 Echarts + React Hooks 实现的一个功能,一开始以为很简单,拿到数据进行赋值,显示一个图表即可,可我还是年轻了。
于是进行了一波性能分析和解决,虽然最后效果不是特别明显,但是因为这次的性能分析和排查,成为了我职级晋升中的一个亮点。
> 给大家一个建议,一定要在学习/工作过程中,将一个模块或者一个需求功能,重要的步骤和逻辑记录下来,每个月进行总结的时候,把自己当成是一个 leader,去 review 自己的代码和设计思路。
**8. 组织一次重构方案评审**
虽然只是一个官网的重构和评审,但是,对于一个新人来说,个人觉得是一次`里程碑`,所以也需要记录一下~
**9: 还有更多...**
## 成就,点赞
这一整年下来,值得感到骄傲的是:
- **👍 坚持写总结**
每个月初,给自己制定一些 OKR,比如要产出 xx,写 xx 篇文章,然后记录每天所做的事情,月底的时候,再总结和反馈真实完成的工作。(当然最后几乎都只能完成 50%...)

- **Github 社区也算做了一些小贡献**
最重要的是: 📢 长期维护个人博客,虽然不咋地,但是贵在坚持。(可以给个 ⭐star 吗)
- **好好读书**
毕业了之后,真的很难静下心去读一本书,为此自己维护了一个书库,告知自己,得坚持读书,虽然不一定是技术书籍,但是也要多看,说问,多思考。
> 有些是 18 年底读的,就归到 19 吧,同时一些非技术的书...没写上去,以及一些书看了,没及时更新,**说白了就是懒的...**
| BookName | Estimated StartTime | Estimated EndTime | Sort | Progress | Status |
| :-----------------------------------------: | :-----------------: | :---------------: | :---------------------------------------------------: | -------- | -------------------------------------------- |
| 《JavaScript 高级程序设计 第 3 版》 | 📆 2018-11-05 | 📆 2018-11-26 |  | 91% | [Follow](./JavaScript高级编程设计/README.md) |
| 《图解 HTTP》 | 📆 2018-11-12 | 📆 2018-11-24 |  | 100% | [Follow](./图解HTTP/README.md) |
| 《计算机网络 第七版》 | 📆 2018-12-02 | 📆 2019-01-03 |  | 91% | [Follow](./计算机网络/NetWork.md) |
| 《了不起的 NodeJS》搭配《Node.js 开发指南》 | 📆 2018-12-22 | 📆 2019-03-04 |  | 72% | [Follow](./Node入门及实践/README.md) |
| 《深入浅出 React》 | 📆 2019-01-15 | 📆 2019-01-22 |  | 15% | [Follow](./深入浅出React) |
| 《JavaScript 设计模式》 | 📆 2019-11-04 | 📆 2019-11-11 |  | 10% | [Follow](./JavaScript设计模式/README.md) |
| 《CSS 世界》 | ⏳Tentative | ⏳Tentative |  | 0% | Unread |
- **实现了自己的开源心愿**
[vue-erek-manage: 📈 基于 Vue + iView + Mock.js ,快速开发的后台管理](https://github.com/PDKSophia/vue-erek-manage)(可以给个 ⭐star 吗)
都有开源的一个梦想,我也一样,虽然咱的技术差,但是撸起代码,还是一套一套的。基于 `Ant-Design-Pro` ,自己也用 vue 去实现了一个`快速开发`的后台管理,撸完之后,还`有些小骄傲`?直到自己用了之后,才 TM 的发现,自己写的多垃圾,自己写的对使用者多不友好,自己写的,边界、细节方面是有多糟糕。
尽管如此,还是得给自己一个赞,毕竟自己也挺不容易。目前考虑在项目不是很忙的时候,利用业余时间、周末时间,能够把这个重构一下。目前也有一些小思路和想法。
## 大学生涯
大学四年过的也是`very`精彩了,我朋友说我根本就不是一个程序员,因为,我实在太能燥了...
总结这四年,没有拿过什么奖学金,没有混学生会,没有获得三好学生、优秀干部等名誉。反倒是学会蹦迪喝酒摇骰划拳甩手吉他滑板桌球逛街买买买各种其他业务活动,挂过科逃过课到处浪。
要说真的后悔的事情,有两件:
1. 那就是没好好学技术,自学的一个致命点就是: `不知道下一步该干嘛`。自学过程,遇到一个小问题,比如配置问题、host 问题、php 相关的一些问题等,都要花大量时间自己去找答案。`我是到了 18 年 5 月,要找实习的时候,才确定走前端`,那时候技术真的是很菜,不看源码,很多东西都是不懂的,vue 也才学了一个多月,更多的还是处于 bootstrap+jQuery 的使用层次。所以说真的后悔没有更早确定未来几年的深入领域。
2. 实习太久,我从 18 年 6 月底开始实习到 19 年 3 月底,整整 9 个月,后悔实习太久,导致大四几乎一整年都在外边,没有珍惜大学最后的时光。导致 4 月初回学校,除了毕设,剩下的就是各种酒局和饭局。
## 运动
喜欢爬山,19 年爬的一座山就是 `四川·都江堰`的青城山了, (小声 bb: 好像青城山不咋高,相对于爬过的`武功山`、`崀山`、`衡山`等,真的很轻松)
现在不说自己打个啥球,都不好意思说自己是阳光 boy 了,有缘可以一起打球啊,毕竟,每一个来自计算机学院的每个人都是 CXK 啊!
```
CTRL = Chang + Tiao + Rap + LanQiu
```
## 旅游
**读书的时候,是没钱,工作了之后,是没时间**。不过还好,这一年来,也算是去了一些地方散散心。比如在成都实习的时候,会利用周末时间将成都、都江堰等去逛一遍。实习结束之后,3 月底去了趟西安,体验了一下大唐不夜城(真的每晚都很耶的那种...)接着 6 月毕业旅行去了福州/厦门,之后回了趟家,去了万宁,6 月底来广州工作,直到 12 月份,完成个人 19 立下的 Flag 之一: 带爸妈旅行。去了趟澳门。
## 我的学习之路
本来想起“如何学习”这个标题的,但感觉起得有点“高大上”了,说句实在话,我怕被怼,因为会有人觉得,一个 19 刚毕业的应届生,居然教我们如何学习?所以还是改成我的学习之路吧~
我是 17 年的时候,大二,偶然有次接触到了校工作室 TickNet,那时候抱着玩一玩的念头加了进去,本想会有很多任务活要干,然而现实是: **自学**。
没什么好教的,就告诉你一条线路:菜鸟教程学 HTML、CSS、Javascript,然后接着去学 PHP、ThinkPHP、 MySQL。工作室每一个人都是全栈。我就是这样的过来的。
所以去学了 Web 基础之后,开始写页面,还记得那时候刚写的第一个静态页面,我开心的不行。接着就去捣鼓 php、去学 mysql,如何建数据库,如何建表,同时遇到很多配置环境、配置 nginx、host 等当时一脸懵逼的问题。
以至于到后边,前端很菜,后端更菜的局面。直到 18 年初,过完年面临找实习,然后决定走前端这条技术线,去看 vue,相信很多刚学 vue 的小伙伴,一定都有看过类似 : `vue2.x高仿去哪儿旅行`、`vue2.x打造一个音乐播放APP`等类似的视频课程。
我也看过类似这样的视频教程,那时候看视频,脚手架的一些 config 我还不知道如何配,遇到问题只能百度。后边 5 月份终于找到了一份实习工作,在实习期间,工作少,学习时间多,所以六七八月份,自己对前端才逐步形成前端的知识体系。同时也是在那时候,对 vue 的一些原理、对浏览器、JS 等有了正确的认识。同期开始入门学习 react,开始学习并使用小程序。也在那时候,开始建设个人的 github,以及个人博客的维护。
说句实在话,前端大学不交,不存在所谓的系统化教程,诸如菜鸟教程、W3C 等,它也并没有告诉你学完这个,接下来学这个,学这个框架,基于使用,你还要去看这个原理,读那个源码。大家全都是野路子出身,所以一定要坚持,也一定要对前端有兴趣,不然,摸索摸索,你就会半途退出。
**前端东西太多了,太杂了。如果你耐不住性子,没有兴趣,很难走下去。**
我是如何没有半途而废的呢?因为当时我是属于“关系户”,工作室已经招新结束,我是靠工作室内部的人,直接把申请表提交到后台的,同时一同加入的还要同班另外三名同学,我们四人一起,也算是互帮互助,经过一个学期的放养,当初 30 来号人,也就我们四个人坚持了下来。
其它人怎么想的我不知道,我是怕丢脸,毕竟靠关系进的,而且同班的 xx 都能坚持,我为啥不可以。一次次相约逸夫楼,耐住性子去看 html、css,慕课网上敲着 p 标签、a 标签,直到熬到了第一个静态页面,自己感到一丝丝的成就感,才慢慢有了兴趣,来了干劲。
## 项目链接
- [📢 个人博客](https://github.com/PDKSophia/blog.io)
- [☁️ ere-resume 简历制作平台](https://github.com/PDKSophia/erek-resume)
- [📈 vue-erek-manage 快速开发后台管理](https://github.com/PDKSophia/vue-erek-manage)
- [📕 read-booklist 个人书单](https://github.com/PDKSophia/read-booklist)
## 总结
```js
close2019 = async () => {
await internship('实习结束');
await graduation('大学毕业');
await working('开启新的事业');
};
```
```js
start2020 = async () => {
await promoted('升职加薪');
};
```
[掘金年度征文 | 2019 与我的技术之路 征文活动正在进行中......](https://juejin.im/post/6844904017403838471)