前言

2020 是很特殊的一年,年初暴发的疫情,一直持续到年尾还没有结束,看态势必定会蔓延到 2021 了。

这场疫情对每个人的生活及工作影响都很大,因此疫情是 2020 年度个人总结绕不过的一个话题。因为这场疫情,几乎每座城每个村都封闭或者半封闭了一段时间,这是我三月份去上班时在地铁上拍的一张照片,本该人挤人的地铁上只有寥寥数人,当时的感想是很怀念人挤人的时刻。

地铁 8 号线 2020.03.15

疫情影响了工作和生活,但工作和生活还是要继续。接下来我会分几个方面总结一下即将过去的 2020。

工作

今年一直待在七天网络这家教育公司,由于种种原因我们部门没有移动端的业务(本来是要做移动端项目的,但由于疫情原因,北京这边的部门被取消了招人计划,移动端业务终究还是没有迁过来),所以我主要时间做的不再是 iOS 开发,而是大数据开发。

关于大数据开发的工作内容,后面会在【技术-大数据】这个话题下着重介绍。

技术

接下来总结一下 2020 接触过的技术。

iOS 开发

工作上已经一年不怎么写 iOS 项目了,甚是怀念,毕竟之前几年一直在做 iOS 开发,现在只能偶尔和几个 iOS 朋友同事聚聚,另外自己几乎每星期都会写写 iOS,忙的时候只是写个简单的方法,或者用 Swift 练习算法,聊以抒怀🤣。

今年读了几本 iOS 相关的书,有一些写了读书笔记:

这些读书笔记基本上都是性能与架构方面的,因为自己想往精深方向发展,所以啃了这几本厚书。

另外还学习了戴铭老师的 iOS开发高手课,很推荐,这里是我做的课堂笔记:《iOS开发高手课》学习笔记。戴铭老师的课程非常底层非常深入,我从这个课程里学习到了很多知识。

另外我还使用 Swift 在 LeetCode 刷了 60 道算法题:Algorithm。最近刷算法的一些感悟:必须每道题都消化透了,达到能够手写算法的水平,不用刷的非常多,只要各种类型的都懂一些,搞明白算法逻辑就可以,类似数学题,一通百通。

设计模式也是使用 Swift 练习了二十来个:设计模式(Design-Patterns),这几乎是 iOS 业界常用的一些设计模式了。

还有年初的时候计划用 Swift 写 30 个小项目,但后来因为一些原因(其实是因为懒)暂停了,只完成了 12 个,这里是项目地址:Swift30

Flutter

另外我还试着学习了 Flutter,Flutter 配置环境还是很简单的,这是我学习过程中总结的博客:Mac 配置 Flutter 环境,运行 iOS Android 两端

还试着写了两个简单的 Demo:hello_flutterflutter_shop

总体上 Flutter 给我的感觉还是很好的。比如它的优点:一份代码多处运行、性能接近原生、体验好等;但也有让我感觉不是很好的地方,比如:套娃式的代码嵌套、环境不稳定,有时需要执行 source ~./zprofile 命令(这个只是我作为初级 Flutter 的使用感受,也许不对)。总之还是很看好 Flutter 的未来的,列出几个不错的 Flutter 学习资料:

关于跨平台开发这里再多说一些,我们公司有几个项目使用的也是跨平台开发,但使用的跨平台方案是 Cordova+Ionic+Angular,我个人不是很看好这种跨平台方案,业界用这种跨平台方案的公司也不多,但因为年初我们技术总监说要把 APP 接到我们部门来做,所以也简单了解了这种跨平台方案:

Cordova+Ionic+Angular 这种跨平台方案总体感觉不是很好,性能、体验、可查资料等各方面都落后于 Flutter 、RN 这些。

JS / Vue / Node.js

众所周知,大前端这个概念在业界早已普及了,每个移动端开发人员多多少少都会接触一些前端开发的知识,另外还有些前端人员也在学习移动端。比如我认识的一些 iOSer,他们很多都接触过一些前端领域的知识,有的是工作中用到的,有的是自己抽空学习的。还有我目前公司的前端开发,也是一直想着学习 iOS。大前端必然是未来的一个重要走向,当然我们要学习的不只是前端,还包括后端等领域。

在工作中,刚入职七天网络时我负责埋点 SDK 的开发工作,包括前端、移动端、后端,当然这些在 2019 年就已经开发完毕了。只是偶尔需要维护,期间我总结了一些 JS / Node.js 相关的技术点,简单记录了一下:

另外我还基于 Node.js 实现了一些常见接口:PracticeService,算是对 Node.js 学习的巩固。

除此之外我还学习了 Vue,使用 Vue 做了一个网站,代码放到了 GitHub:Vue实战项目:后台电商管理系统。主要使用的技术栈有:VueVue-routerElement-UIAxiosEcharts

大数据

接下来就说说大数据了,毕竟将近一年时间都在和数据开发打交道。iOS 开发和大数据开发这两个领域差别很大,我为什么会做大数据开发呢?去年的年终总结上有提到原因:2019 年终总结。说到底还是因为“救火”,结果把自己送到了一片全新的领域了。

当然做大数据开发也有好处,毕竟接触了新的技术领域,开拓了技术栈,涨了见识,对数据端认识的更清晰了。

接着说说我在大数据开发中主要负责的工作。

因为数据部门前期人员较少,所以我一个人负责埋点项目的所有层的数据开发,包括 ODS、DWD、DWS、ADS 这四层,目前埋点项目稳定运行,涵盖了公司十几个项目,每天新增的数据量有上千万条,高峰时期一天的数据量将近 8000 万。

后来随着业务的扩展,帮忙招了几个数据开发,另外随着埋点项目的日益稳定,我逐渐很少再关注埋点相关的数据开发,开始转向业务数据、数仓分层设计、数据建模、探索新技术等,并根据当时使用的部分技术栈做了简单的记录:

其实做数据开发,很多时候都是在写 Hive,数据建模数仓分层这些就类似于 iOS 里面的架构模式,一旦定好规则,很多时候还是写代码,写脚本,所以数据开发者很多时候自嘲是 SQLBoy。

关于这将近一年的数据开发,以前的我肯定想不到自己会有这样的际遇,很感谢公司给与这样的机会。但我还是想回归 iOS,大数据的同事说数据职位工资高,我深入思考过,大数据的技术栈我懂的并不多,目前我的大数据技术只能满足于公司日常工作,而且做大数据几乎是抛弃了自己积累了几年的大前端经验(大数据领域很少能用到大前端技术栈)。因此考虑再三,我还是决定回归 iOS。

生活

居家办公

年后担心北京封城,我和媳妇儿初五便往北京赶,紧接着开始屯面粉、米、油、以及各种能长期存放的蔬菜等,这期间也被动的学会了做各种“大餐”🤣。我们公司一直到五一假期之后的 05.06 号才结束远程办公,因此在家办公的这几个月一直待在租的小屋里,只有晚上人少的时候才和媳妇儿一起去楼下跳跳绳,透透气。

国庆节带爸妈北京游

国内的疫情控制的很好,入夏之后,出游人数逐日增多。想着来北京工作几年了,却还没带爸妈来北京玩过,就给他们买了高铁票,好说歹说把二老劝过来了。带爸妈以及小外甥去看了天安门、故宫、长城、动物园等地方,还带他们去吃了他们平时舍不得吃的各种“美食”。但也有一点遗憾,就是当时预约了毛主席纪念堂,但不知什么原因,网站上明明显示预约成功,现场扫二维码的时候却说我们没有预约上,很大一批游客都是这样,最后只能望而止步了,这里不得不吐槽毛主席纪念堂的预约网站。总体上还是很好的,毕竟爸妈第一次来北京,希望下一次能带他们去更远的地方游玩。

天安门升国旗 2020.10.06

阅读

今年一共读了 19 本书,其中包括 6 本技术书籍,13 本非技术书籍。技术书籍一般都写了读书笔记,放在了博客里面;非技术书籍有些也写了读书心得,存在了个人的印象笔记里。下面列出 2020 书单(带✨越多越推荐):

技术书籍

  • 《高性能iOS应用开发》✨✨✨
  • 《App架构》✨
  • 《Docker-从入门到实践》✨
  • 《JavaScript 语言入门教程》✨
  • 《代码整洁之道》✨
  • 《Objective-C高级编程:iOS与OS X多线程和内存管理》✨✨

非技术书籍

  • 《肖申克的救赎》✨
  • 《时间的玫瑰》✨✨✨
  • 《悟空传》✨
  • 《飞狐外传》✨
  • 《人间有味是清欢》✨
  • 《中央帝国的财政密码》 ✨✨✨
  • 《挪威的森林》
  • 《亲爱的安德烈》
  • 《显微镜下的大明》
  • 《中央帝国的军事密码》 ✨✨
  • 《富爸爸财富自由之路》 ✨✨
  • 《投资中最简单的事》 ✨✨
  • 《中国近代史》 ✨✨

注:有些不带✨或✨比较少的,并不完全代表作品不好,比如《挪威的森林》、《显微镜下的大明》,这两本我大学时候读过感觉不错,也曾向几位朋友推荐过,但如今再读就没有那么深的感触了。估计是不太合我现在的胃口了哈哈哈😆。

徒步爬山

我个人是比较喜欢徒步爬山的,去年定的是徒步爬山 6 次,但由于疫情原因,只出去了 2 次,其中还有一次无疾而终。因此真正上的徒步,今年只有 1 次。那就是 08 月 29 号,与媳妇儿一起走了京郊古道,全程 15.41 km。初级徒步,虽然很累,但感觉是很好的。

健身

今年没怎么健身,身体素质完全是在吃老本。2021 要对这一指标进行加强。

总结

最后回顾一下 2020,展望一下 2021。

回顾 2020

O1:技术

KR 完成进度 总结
6本技术书籍 100% 完成
算法 80% 截止最后一天,刷了 60 道 LeetCode 算法题
iOS 进阶 80% 三本 iOS 相关的书籍、学习戴铭老师的课程等
设计模式 80% 使用 Swift 练习了一些设计模式
Flutter 50% 简单试用,目前水平应该能写简单项目,开发经验不足
JS / Vue / Node.js 50% 简单试用,目前水平应该能写简单项目,开发经验不足
Swift 30 个项目 40% 只写了 12 个,后来放弃了

O2:生活

KR 完成进度 总结
20本非技术书籍 65% 只读了13本
带父母游北京 100% 虽有小遗憾,但总体上还算不错
徒步爬山 25% 只走了 1.5 次,当时定的是 6 次
健身 5% 只记得奥森跑了两次,偶尔室内锻炼,总之今年很少锻炼

展望 2021

  • KR1: 阅读 21 本书,其中 6 本技术书籍,15 本非技术书籍
  • KR2: 输出 15 篇技术博客
  • KR3: 跳槽回归 iOS
  • KR4: LeetCode 刷 50 道算法题
  • KR5: iOS 深入学习,研究两个三方库或苹果底层库
  • KR6: GitHub Contributions 300+
  • KR7: 跑步 200 km
  • KR8: 爬山徒步 5 次
  • KR9: 学习理财知识
  • KR10: 学习教育相关的知识
  • KR11: 了解装修方面的知识
  • KR12: 拍 1000 张照片,30 个短视频

注:目前能想到的计划只有这些,可能会有补充,也可能会做适当调整。