2019 年度总结 - 647

前言:
2019是我第一次写年度总结的一年,也是我正式迈入职场的第一年。
(其实我18年就该写了...)
收获也很大,更多的是感恩和感谢吧。
从走出校园,到加入“奇虎360”。
之间发生了很多事,在此好好总结一下2019年的事情。

PS:并且我计划,从2019年开始的每一年的年末都会写一篇博客作为总结。以便整理出来我在今年做了什么?给未来的我做个标记(打个Tag)。这里学习我偶像bestswifter啦。


刚开始学习的前五年是发展最快的五年,每一年都应该感觉到自己在过去的一年中发生了天翻地覆的变化。

我对这句话深有感触。(bestswifter对我说过,冰霜大佬也对我说过...)

其实,我应该18年年末就该写总结的,当时没有想那么多,所以在19年的年度总结里,顺便也带上这两年的变化吧。

一、校招

这一部分,我给自己打分是80分。

这一阶段应该属于2018年的,在我大三的时候,UIT(大学的创新实践中心)集体出去找工作。我们广投简历,去全国各地各个大厂去笔试、面试。最终,我们也分遍在了各个互联网公司,也收割了很多offer。
有腾讯,有阿里,有奇虎360,有京东,有盛大游戏,有美团等等等等,
也有一部分同学去创业公司磨砺,都是自己的选择,
想想大学在UIT和同学们一起奋斗的日子,真的是感动与不易。尤其是我源哥,太牛逼了!

我通过笔试和简历,并参与面试顺序:

今日头条(ByteDance) => 网易云音乐(NetEase)=> 京东商城(JD)=> 百度(Baidu)=> 奇虎360(奇舞团)=> ... =>
这时,我已经收割2个offer了,后来就想着打游戏、旅游了,想想还真是放飞自我。。。浪就完事了呗。。。搞事情。。。

我在18年的秋招收到了京东360的Offer。最终,选择了来奇虎360实习,并成功转正,正式加入了奇虎360。这样算下来,时间过得飞快,我在奇虎360也有一年半啦。(2018.7.16入职的)

二、成长

这一部分,我给自己打分是60分。
感觉自己不论经验还是能力都还差不少,同时也希望自己2020能多学点技术,多沉淀点经验。
在iOS领域里有深度(看一看runtimerunloop源码,总结落地成相关的技术博客,放个大招),同时根据兴趣拓宽自己的视野:WEB前端技术(Vue.jsHTMLJS等)、服务端技术(GoRedisMySQL等),会调其中API并理解其中的一部分原理就好。
成为一名T型人才(深度是iOS、广度是WEB前端和服务端)。

我始终认为,“兴趣”是学习的第一动力,“趋势”是学习的第二动力。

学习一门新技术、新语言、新知识,首先需要 “有兴趣”
其次,看这项语言、技术、知识是否符合当前行业的 “发展趋势”

如果:兴趣趋势都符合自己的需求。那就大胆的去学吧,相信自己一定能在某个领域的研究过程中,发现 “惊喜”。(当研究过程中,发现一个惊喜的时候,常常会不自禁的笑起来,不知道大家有没有同样的经历。)

三、读书

这一部分,我给自己打分30分。超级超级不及格!

我是一个挺直的理工男,除了技术上的书我能看得下去,像一些陶冶情操的小说呀完全读不下去(我个人的劣势)。我也知道,有时候,读一些名著小说,对自己的生活阅历都会有帮助,我希望我2020至少把《活着》读完吧。。(室友2019借我读的书,我才读了4分之1,我就又读不动了。。我真是完蛋。。)

关于技术上的书,说实话,我也没读多少,我个人感觉2019年,我浪费了挺多时间的,我需要好好检讨一下自己。我干啥去了??

大概有:

  • 《Effective Objective-C 2.0》—— 进度:100%
    —— 这是本好书,还是我18年年末读的。
    同时,也落地了8篇文章。这部分,我还是挺满意的,文章也在简书、掘金、CocoaChina、公众号、小专栏等等平台做了推广。不论是阅读量和读者的反馈,还是文章的质量,我个人都是挺满意的。

  • 《图解算法》—— 进度:50%
    —— 19年回学校参加毕设的时候,抽空研究了一下算法。
    之后,就放那了,我对自己还是挺不满意的。
    不过至少看了点Python,用Python写了写算法。了解了一下“动态规划”的原理。并落地了一些算法相关的文章,一般般吧。
    我算法太菜了。。还是需要补。

  • 《iOS 应用逆向与安全》 —— 进度:5%(几乎为0,翻了一翻)
    —— 当时感兴趣入了,才看了几页,感觉是安全方向的。
    后期感兴趣再深入看看,目前感觉不太适合,可能我太菜了。

我还是不太爱看书,书和文档都是好东西。能帮助我更深刻的理解一些东西,希望这部分,我在2020年能有所改善吧。

当然,也看了一些业界大牛的技术分享:

其中包括:

  • 戴铭老师的《iOS开发高手课》—— 进度:20%。
    干货多多,收获挺大的。感觉很适合iOS进阶学习。
    戴铭老师好像是前滴滴出行的iOS架构师,现在在阿里巴巴工作。太强了,膜拜。
    我个人收获也很大,也参考戴铭老师的源码,做了一个iOS性能监控工具,落地了三篇文章,代码也在GitHub上开源了。 这里要感谢戴铭老师,收获太大了。
    (PS:还加了戴铭老师的微信,真是开心。)

  • 我偶像:张星宇(bestswifter)的《小专栏 —— 从iOS到全栈》
    星宇哥的博客,我从入门iOS开始(16年?)就开始看了,当时感觉只要接触过iOS的开发者,就没有没听过bestswifter这个ID的。他太火了。
    当时太弱了,他的博客看的不是很懂,(当然,现在也很弱,稍微能好一点点了,但感觉和他还是有很大的差距。他是我学习的榜样。)
    他的博客干货很多,都是总结探索出来的一些干货。
    19年12月,还有幸和他见了一面,我和他还是老乡(都是江苏镇江的)。
    能在北京见到偶像,还是老乡,还是同行,真的很开心。
    我们一起交流了一下午的技术,他向我介绍了字节跳动最新的移动开发平台和前沿的高端技术(太强了太强了,收获巨大),最后他还请我吃了晚餐。然后,我陪他溜了他的狗(CoCo),CoCo也太活泼了,哈哈哈哈哈...
    向星宇哥学习,希望以后能和他多多交流技术。他是我学习的榜样。

  • 冰霜(halfrost)
    霜神的博客,一般人是看不懂的。
    就算是二般人也仅仅只能看懂一小部分。(认真的说)
    都能看懂的人,也是神一样的存在了。。太强了
    19年有幸加到了冰霜的微信,开心。(我也忘了我是怎么加到的...)

当然,还有很多很多业界大牛的分享...
这里我就不一一列举了,
在我入职场的第一年,就认识了这么多大牛,有的还加了微信,我还是很幸运的。
2020,向榜样们学习!

四、18末、19我都做了哪些事?

按时间顺序,总结:

19年上半年:IoT、Objective-C

  • IoT物联网:智能物联iOS端APPSDK开发。

当时实习,也是第一次接触到企业级的开发。成长还是挺快的。
在帅哥、大成哥、永旺哥等老司机的带领下,我也从个人开发,切换到团队协作开发的阶段。

同时,也学习到了一些物联网底层的原理。(AP配网、蓝牙配网原理等等,对标腾讯的AirKiss、华为的HiLink、小米的AP配网协议等等,我们自己也终于做出了我们自己的配网协议,还是挺厉害的。点赞)

这阶段收获还是挺大的,首先是更加深刻、熟练地理解并使用Objective-C了。(虽然写这篇文章的时候,我已经写Swift半年了,也几乎半年没写Objective-C了)不过当时,的确感触挺深的,学习了很多在学校没有的东西。

学习了ObjC底层的一些机制以及相应的原理,并落地了一系列我很满意的文章: 《iOS 编写高质量Objective-C代码(一)—— 简介》
《iOS 编写高质量Objective-C代码(二)—— 面向对象》
《iOS 编写高质量Objective-C代码(三)—— 接口和API设计》
《iOS 编写高质量Objective-C代码(四)—— 协议与分类》
《iOS 编写高质量Objective-C代码(五)—— 内存管理机制》
《iOS 编写高质量Objective-C代码(六)—— block专栏》
《iOS 编写高质量Objective-C代码(七)—— GCD专栏》
《iOS 编写高质量Objective-C代码(八)—— 系统框架》

还有一些底层优化的研究:《iOS objc_msgSend尾调用优化详解》等等,在这就不多赘述了。都在我的博客里,总的来说,收获还是挺大的。

然后我就回学校,参加毕业答辩了,上半年结束。

19年中:毕业了

19年下半年,我本科终于毕业了。四年的时光,想想酸甜苦辣,更多还是感恩感谢吧,感谢俊哥等等前辈带着我们成长。
给我们分享他的经验和经历,才让我们这些“乡下人”有了“进城”的机会。

7月份回360,遇到了两个好室友,小胖和浩浩。
我和小胖都在奇舞团(360集团大前端团队),刚实习就认识他了,他性格很开朗、很阳光,哈哈哈哈。点赞,好评。

浩浩是搜索的服务端妹子,(我是前世修来的福分么?和妹子合租...还是这么好看的妹子???hhhh)
我比较熟的异性朋友很少,她算为数不多的一个异性好朋友。我有时候有些心里话也会和她说,她总能给我很大的帮助。。谢谢浩浩。。。

下面,言归正传。

19年下半年:Swift、iOS

  • 一款地图相关APP的开发:

后来,万里哥入职了,和我一起写这个APP。在APP整个架构层面,他给了我很大的指点。(万里哥还是很强的,也能沉得下心,我有时候会比较浮躁。)

我们的新项目是基于Swift的,Swift是2014年苹果才推出来的iOS开发新语言。

经历了五年的磨练,Swift 5.1的API终于稳定了。 于是苦逼了多年的iOS开发者,正式由Objective-C转向了SwiftSwift在国外比较受欢迎,而国内,很多老项目还是基于OC的。

然而,Swift必将取代Objective-C成为iOS开发的核心语言。这也是行业趋势。

我有幸接触了Swift,并在项目中成长、落地。这也应该是19年下半年比较大的收获。

项目中,也接触到了长链接WebSocket、高德地图SDK等等等等。

  • iOS 性能监控工具 —— QiLagMonitor:

这个工具,主要是我参考戴铭老师的源码写的。

有时候,读懂大牛写的源码,理解其中原理与本质,自己再重写一遍,也是一种收获吧。我是感触挺深的。

也落地成了文章,效果一般般吧。
感觉没有18年末我写的 《iOS 编写高质量Objective-C代码》 🔥, 但也在很多平台上推广了,也主要是依靠戴铭老师的分享与指点。
我只是自己做了一些总结,并没有很大的突破。相关文章:
《iOS 性能监控(一)—— CPU功耗监控》
《iOS 性能监控(二)—— 主线程卡顿监控》
《iOS 性能监控(三)—— 方法耗时监控》

当然,还有一些,iOS启动优化方案与小结:《iOS App启动优化(一)—— 了解App的启动流程》,也是从戴铭老师的技术分享学到的。

接下来的2020,我也会沉下心,尝试做一些 “性能优化” 的探索,并落地成相关技术文章。

  • QiShare技术分享平台:

QiShare是一个iOS及周边技术文章分享平台,由奇舞团(360集团大前端团队)的iOS团队运营。

而我是QiShare的原创作者、小编。

我的原创博客,也会在QiShare平台上落地、分享。 同时,我也担任了编辑等工作。 目前也有了1万5千多的粉丝。 能有现在的成绩,我感觉也挺欣慰的吧。

五、2020年的打算:

说实话,我个人感觉我19年成长并不是很满意, 甚至我觉得,我自己浪费了很多时间。

因此,我希望自己2020能希望做一些调整。

  • 深入理解RunLoop?

在我研究性能监控工具原理的过程中,发现底层有大量的RunTimeRunLoop等底层知识,我的理解并不够。因此,我会在2020的刚开始,深入理解RunLoop。
并落地成技术博客。

  • iOS 性能优化?

2020,我会把自己的一部分目光,集中在APP的 “性能优化” 方向。 同时,也会借此时间,接触底层的一些原理。
APP渲染原理?离屏渲染?
CPU?GPU?OpenGL?
如何优化?如何解决卡顿问题?
还有挺多不懂的地方值得我去探索,并落地成系列文章。

  • 脚本语言?

之前,用Python写了点算法。想把它捡起来,写个爬虫。
感觉并不难,只是还没有实践过,想尝试一下。

  • Go?

想稍微接触一下服务端,
Go的语法并不难,只有25个关键字,关键是想学习一下服务端的架构与开发思想。
理解服务端的思想,会更加有助于自己对客户端开发的理解。
站在思考维度更高(更高的视角),而不仅仅是拿json,画UI。

涉及到的东西挺多,Golang、MySQL、Redis、并发请求等等。(会用就行,能懂一些原理更好了)

  • Vue.js?

想接触一下前端三大框架之一的Vue。
作为学习WEB前端的入口。
会调用API,会写UI。(会用就行,能懂一些原理更好)

  • 另外,还有FlutterSwiftUI

但我个人并不看好跨端技术,
当然跨端肯定有跨端的优势(比如,降低成本、一套代码在iOS、Android双平台通用、省人力)

但我始终认为,Flutter只是包裹在Android和iOS上层的一套画UI的API。

第一:

如果项目简单,APP逻辑不复杂,用Flutter实现双端开发效果会很不错。 同时,也会提高不少开发效率。

但如果项目复杂,APP逻辑复杂,比如一些超级APP,本身就需要清晰的实现和逻辑解耦,这时本身iOS与Android平台的差异,会让APP在后期的维护成本变得更高。(参考ReactNative的发展)

第二:

APP开发过程中,难免会接触到iOS的底层和Android的底层,需要开发者熟悉双端的底层,而现实中并不简单。维护起来,对开发者的要求较高。(当然,是个人看法,说的可能片面了,欢迎吐槽和讨论)

第三:

Flutter是Google的亲儿子,把手伸向了苹果。

一旦影响到苹果的生态圈,苹果肯定会做出某些手段也说不定。(未来的发展并不好说,虽然苹果这几年创新力度并不如从前,但目前的市值还是世界第一。)

因此,我个人认为:学习跨端技术不能盲目跟风,需要理性看待

当然,当作兴趣,学一下跨端技术也是一种很好的,毕竟技多不压身。
每一段学习经历,都是自己的成长经历。
对未来的思考都是有帮助的。

  • SwiftUI与Combine编程:

SwiftUI是iOS 13提出的一种全新的跨端UI框架(跨iOS、iPadOS、MacOS、WatchOS等等,主要针对的是苹果的生态圈)。
Combine是iOS 13推出的响应式框架。

都是19年推出的,本身并不成熟,但也可能是未来的一种趋势。 长远看,可能还需要2-3年的沉淀。

目前只是了解学习或者自己写小项目是可以的,投入到生产环境中,可能需要一段时间。

未来究竟是什么样的呢?我们拭目以待吧! (也许我明年写2020总结的时候,我就打脸了。。( ̄ε(# ̄)☆╰╮( ̄▽ ̄///))

最后,2020,让我们一起加油吧!