2018已经结束了,总结自己这一年来就是三个角色的转变:自己从一个学生成为了一个社会人,从一个读者变成了一个自媒体人,从一个在校学习者变成了终身学习者。
每一种角色的转变意味着责任的转变,每多一种角色,就会多承担一份责任。角色变得越大,责任也会承担得越大,当然收获得也更大。
技术成长
对于技术成长,我感觉我莫名其妙的就走在了前端的前沿,刚刚在知乎上看到一个帖子2019 前端技术规划该包含什么?很多大佬在规划里面都谈到 Rxjs
、Typescript
、函数式编程
、Flutter
、PWA
、Node 相关
, 然而事实就是这么巧(或者可以说我眼界比较远,偷笑),在 2018 年我很多都已经接触过了,比如 Rxjs、TS、函数式编程、Node 等。
聊 Typescript(TS)
特别是对于 TS,我在公众号,然后我维护的微信群里早就已经说过,TS 最近会火起来的,没学的赶紧学起来,不知道有多少人听了我的,看了那么多大佬的规划,我更加的坚信了 TS 将会变成未来前端工程师一项必备的技能。
然后对于 TS 的学习,我看过这些东西,我推荐一下,不过对于 TS 我仍然是个初学者,不敢说有多精通,我只在我自己的小项目中用过,没有在公司的项目中使用。
如果问我使用 TS 感觉是什么样的,我只能说相逢恨晚,就跟 vim 一样,用过之后就像一直用。
聊 Rxjs
对于学 Rxjs 来说,我想说的是,Rxjs 是我学过最难学的一个库了,目前为止没有之一。现在回想起来,要是早点接触函数式编程就好了,如果先是研究函数式编程,再去学习 Rxjs,我相信会轻松 40% 以上。但是目前为止,我并没有拿到真正的生产环境去用过,只是写过一些简单的 demo,然后看过一些资料和书籍,同时也在团队做过相关的普及。
Rxjs 难的就是思维方式以及 api 很多,然后就是由于一些概念不知道为什么要这么设计(很多思想我相信学了函数式编程就会明白了)。
对于 rxjs 的学习看过很多的文章,我这里还是推荐三个我觉得比较全的学习资料。
- Rxjs 官网
- 30 天精通 Rxjs
- 程墨老师的深入浅出 Rxjs
聊函数式编程
学习函数式编程给我最大的感受就是让我拓宽了我的眼界,突然的就弥补了以前知识体系缺的点。比如对于 compose、curry 这些 js 里面也算一直提及的重要概念,但是总是记了又忘,忘了又记,就算自己手写来实现过了,但是隔了几个月还是又忘了,因为没用过。但是学了函数式编程以后,发现全是这些东西,compose 呀、柯里化呀、部分应用呀,就跟用数组的 map、reduce 这些方法那么熟练,所以,现在闭着眼睛也能写出来,就几行代码的事儿。
函数式编程里面的基本工具函数实现, 用 ES6 简单的实现了这些概念的核心原理,真的就几行代码。
之前也谈到过学 Rxjs 的时候要是先学了函数式编程就好了,那是因为 Rxjs 用的也是函数式编程,而且那里面的操作符也是,然后比如 rxjs 的链式调用当时觉得很不错,jQuery 也有这种,当时还无法确切的知道是怎样的机制,然而当了解了函数式编程的 Functor 之后,就不再感到迷惑了,再比如实现一个 Promise,我相信是对于大部人前端开发者来说还是有一定的难度的,当 学习了 Monad 之后,可能再去写一个 Promise 就没那么难了,因为 Promise 就是一个 Monad,Monad 是函数式编程里面一个非常非常难以理解的概念,我觉得是最难的概念之一。
另外可能就会有朋友问,既然函数式编程这么好,那你平时在用吗?说实话,我不敢在公司的项目里面使用,要用也最多只会用下组合,柯里化,部分应用这些,不敢去用 Monad 相关的东西,因为团队用函数式的人很少,一个人去用,会给团队带来很大的维护成本。而且目前感觉这些高级概念在 js 里面不太适合,可能因为我还是个初学者,还没学到精华吧。
但是对于函数式里面的组合,我是非常之赞成,通过抽象颗粒度更小的函数,然后再组成满足任务函数,这点我感觉是函数式编程的精华之一,想要用好组合,柯里化和部分应用的灵活使用就显得非常重要,可能刚开始不知道有啥区别,或者说什么时候该用哪个,当你真正遇到的时候,你自然就会区分出来。
函数式编程给我带来的收获太多了,后面会陆续总结出我的学习总结,本来早就想写,但是之前发表的一篇函数式编程,真香令我有点心累,这篇文章是我刚开始学习函数式编程不久写的一篇文章,当时在看《javascript 函数式编程指南》的时候写的,这篇基本上是总结的那上面的第一章,因为我觉得这是我看到过的资料里面对函数式编程的总体概述说得最好的,所以我写出来给大家分享一下,然后就被说,抄书有意思?等等之类的话,但是也有朋友说,感谢我的分享,书上有时候大段大段的文字,还不如别人一篇文章总结的好。反正这篇文章是我写了之后最难受的一篇,在发这篇文章之后的几天,我都很怕我的掘金账号有通知消息,生怕又要被骂了,那个时候本来就计划着自己可以总结一下那本书的精华,然后写一系列文章,但是为了维护我的玻璃心,就继续买书,看资料,理解得更深刻了,变为自己东西了再写。
我收集的一些函数式编程的资料以及书籍,如果没找到好的资料的可以点进去看下。
虽然我看了这么多资料以及书籍,但是我还是一个在函数式领域的新手,要是写得不好,欢迎大家拍砖(留点面子)。
之前以一篇《我如何零基础转行成为一个自信的前端》的文章,红遍掘金的serialcoder,就是被有些朋友激进的言语离开掘金了,删掉了所有的文章,还好现在我看他现在又回归了。希望大家还是多交流,言语啥的也都轻点,都是一个圈子的人。
我的公众号
做公众号是我今年做得最正确的一个决定吧,也是令我收获蛮大的。主要是写了很多的文章,扩展了自己的社交圈,认识了很多朋友,也接触到了很多大佬,还有了一点点运营的概念。
我的公众号是【前端桃园】,做得不太好,最近没有坚持更新了,因为在写自己的小项目,后面可以看到自己规划的项目还有好多没写完呢,希望有小伙伴来入个伙,早点让这些项目上线用起来。
我的项目
今年计划的项目其实还挺多的。不过目前为止一个拿得出手的都没有,说出来惭愧呀。
1. github issue 博客
之前想在 github issue 上写博客,但是有嫌弃 issue 太丑了,所以就写了一个静态博客,那个时候刚好 parcel 刚好发布了,所以就用 vue + parcel 练练手,获取 issue 的内容,然后展示在网站上,所以就做了一个极简的博客系统,但是写好了就没怎么用了,现在似乎图片都失效了。
2. 随机小程序(决策那点事儿)
写这个项目的原因是,最开始我们在公司的时候,中午总是不知道出去吃哪一家,所以就比较的纠结,当时我就想到要是有一个东西可以帮我做下决定,随机一下,然后还可以给答案设定权重,比如比较喜欢吃张亮麻辣烫就权重设高一点,那么随机的概率就大点。然后想到这种对于选项太多,难以做决定的情况也很多,比如想去看电影,有好几部都想看,这个时候就可以随机一下,帮你做决定。其实对于这种小程序已经有了,但是他们都没有设置权重的功能,所以我还是决定自己做一个,现在代码是写完了,但是由于小程序是要用 https 的域名,所以目前还没有上线。
3. 中文版的 medium
这个项目的来历是因为我经常看 medium 上的文章,不过英语不是太好,所以很多时候都是都是翻译了之后再看的,然后我也会经常翻译这上面的文章到公众号里,但是就算翻译,也很花时间,而且有些是机器翻译的,所以比较的生硬。所以我就想着把 medium 上的文章爬下来,然后通过翻译 api 翻译之后得到一篇中文文章,然后中文文章每段判断都有原文,然后用户可以去修正翻译的中文,这样一次次的修正,相信文章被翻译得越来越好,就跟做开源项目一样。
在这个项目中我用的是 puppeteer 做的爬虫,然后翻译是用的划词翻译的接口。目前做到的地步只是可以爬文章,然后翻译文章(这个其实也不是那么简单,需要把英文的每个段落拿去翻译,然后再把每段的翻译组成文章),对于用户修改中文这个还没做好,这个比较复杂,还要管理员审核啥的。有兴趣的小伙伴可以和我一起做。
4. 聚合 github issue 博客
项目背景:经过我的观察,很多程序员喜欢在 github issue 里面写文章,往往这种人写的博客质量还比较高,但是 github 对于搜索 issue 还是比较鸡肋,搜索引擎搜的呢又不是很全,所以我就想着做一个聚合的网站,在网站上填一个仓库地址,就获取 issue 以及作者的信息,然后进行打标签,分类等操作,主要是方便查找,而且 UI 也可以定制得好看一些,同时还可以做订阅功能等。
现在初版快完成了,尽量在春节之前上线。
其他方面的成长
虽然我们是程序员,但是人生里面不能只有技术,还应该学习一些其他的知识。
投资理财
理财的重要性我就不阐述了,说下我的经历吧,最开始接触理财的书籍我看的是一本《指数基金投资指南》,文中就说指数基金是巴菲特在公众场合唯一推荐的小白投资方式,无脑定投个几年也会赚,然后我就跟着作者的公众号推荐的一些指数,每个月投资了一点,投资了大半年了,目前还是亏的,我相信只是因为今年行情不好,中国没到牛市,算是给自己的心理安慰吧。
另外看了《富爸爸与穷爸爸》,这本书是一本畅销书,还是很推荐阅读的,里面提出的富人的金钱观,以及一些思维我觉得对我们为人处世,以及花钱都还是有帮助的。
还在得到上买了两门金融课程,当时为了学习炒股,所以就买了想学习,一门是《香帅的北大金融课》,现在我还没有补完,才看了一百多节,另外一门是陆蓉的《行为金融学》课程,这个是每节都追的,刚出来我就买了,还是挺有收获的,扩展了我的金融观,以及一些投资技巧,虽然现在股票还没赚,趁着现在没啥钱,多鼓捣,摸索经验,亏了也没多少钱,等到以后有钱了,亏了就亏大了。
在圣诞节女朋友看我之前一直想买《穷查理宝典》,她在圣诞节帮我买了,这本书我相信是会对我的思维有所帮助的,是讲的巴菲特的合伙人查理芒格的一些思考方式,巴菲特对查理芒格的评价很高,他觉得查理芒格比他自己更聪明。
产品
一直很喜欢极客时间的课程,当时也是想接触一下产品方面的,然后就买了《邱岳的产品实战》课来看,很愧疚,都更新完很久了,我现在也才看了一半,立个 flag 春节后一个月内一定要看完。
写作
做公众号,或者说自媒体其实就是要写作嘛,做内容,另外还需要宣传,做营销,但是现在我想的是先把内容做好,所以就买了粥左罗的《新媒体写作 30 讲》来看,这个是早已看了两遍了,但是有很多自己还没有实践起来,最近粥老师又出新课了,差点又剁手了。
另外写作真的是一门很重要的技能,真心希望大家多写,打造自己的 IP。
总结
在文章的开头我已经说了今年的我主要是三个角色的转变,学生变成了社会人,今年六月份毕业,来到了蘑菇街工作;从一个读者变成了一个自媒体人,自己开始做公众号,开始经常写作;从一个读者变成了一个自媒体人,开始在网上买各种课程,在这个充满着变化的世界里不断的为自己充能,学习新知识。
不知道有没有觉得我的项目可能有类似的竞品了,为什么还要做,我的回答就是因为我还不够满意,我就想做一个我自己满意的东西,就像尤大一样,当初写 vue 只是想写一款自己好用的框架,没想到大家也觉得好用,所以就火了,我的项目虽然没抱着会火的心态,但是让我自己用着很舒服也是一件不错的事儿呢!
学到的技术尽量想办法实践,不实践,永远只是纸上谈兵,而且纸上得到终觉浅。拿自己举例吧,我不是做了好几个自己的小项目么,里面都需要服务端吧,所以这个时候就是学习 node 的好机会,koa、ts 都用起来,前端也得写,所以如果你想学习 vue,前端就用 vue 写,想学 angular ,前端就用 angular 写,最好学习了一个技术,有一定的项目经验,才能说你会了。
另外再说下编辑器,现在 VSCode 很火,我司大部分前端开发者都在用,我也承认它是一款非常优秀的编辑器,但是 VSCode 还是有些地方我用着不是太满意,所以我还是用继续用了 Emacs。
哎,我这该死的,无处安放的 xx!