在这篇文章里,我想聊一聊2015年,我的收获与感想。
这一年的时间里,我感觉收获最大的地方就是学习了。并不是学习给我带来了什么,而是学习方法本身的收获。
对于我而言,学习分为三个过程:
第一步是大量阅读。
充分保证阅读量是高效学习的前提,而阅读量主要取决于以下方面:
我的阅读来源主要是(排名有先后):
我关注的内容很杂,前端、后端、运维、语言等诸多方面都会看一下,并不说有那么多时间去关注这么多内容,而是相比于其他过程,信息收集的过程成本很低。在收集的过程中多关注一些东西,以后在需要的时候很容易就会联想到自己在这方面的知识储备。
有了大量的信息输入之后,接下来就是整理和消化。
我一般会把所有的资料都整理到 Pocket 里,以前还会打个 tag 标记一下关键词,后来发现并没有打 tag 的必要,反正看了标题也就知道是什么内容了,而且有时候会在打什么 tag 上纠结很久,比如《如何使用 Swift+NodeJS+Nginx 搭建属于自己的 RESTFul API》,你说这是属于 iOS 还是 Web 还是 Swift 还是 RESTFul 呢?尴尬,干脆不打。
然后就遇到了一个问题:每天会有将近百篇新文章输入,而我并没有那么多时间阅读。所以现在屯了一千多篇未读的文章。这是个问题呐,收集起来虽然成本不高,但是总是堆在那里也是碍事啊。于是开始给自己制定计划:每周要保证一定的阅读量,并整理成周报同步到《阅读笔记》上。正在进行中,自我感觉效果还可以,至少没有继续猛增了。其实每天剩余的时间还是那么多,但是会把更多的精力从其他方面(比如凑热闹比如抬杠比如调侃)迁移到阅读上。
2012年起开始在 CSDN 上写博客,一开始是胡乱贴些代码,后来是从其他地方搬运整理,后来是各种翻译文档,后来开始在自己的博客里写一些经验分享。
现在想想,写博客对我的帮助很大:
除了博客,这一年还参与了各种技术分享会。线下技术分享,基本是各取所需,不要指望『听君一席话,胜读十年书』这种速成,有所启发就足够了。像 QCon 和 CFF 在会后都有视频,感觉比线下听更有效率。我比较热衷与参加技术分享倒不是希望学到什么(感觉技术分享上听到的内容基本博客里都写遍了),而是喜欢一群人一起讨论自己所热爱的东西,比如 Swift ,比如 FRP ,比如 Docker 。说直白点其实就是去找归属感。在这个三十分钟精通 C++ 二十天速成 iOS 每个人都想着年薪百万的时代里,有一群纯粹的热爱技术的程序员兴高采烈地分享自己所热爱的东西,是多么幸福的一件事。
半年前一时兴起想办个 iShare 技术分享,然而因为种种事情(例如加班、例如离职)导致一个月之前才举办了第一次分享,而且后来就因为各种其他事情(例如场地、例如没人)导致一直搁浅。所幸的学生团队已经逐渐组建起来了,希望明年可以继续下去。
这个单独拎出来,因为它很!重!要!很多人遇到个什么问题就火急火燎的去请教别人,『请问大神这个怎么办?』,『请问大神怎么才能这样?』。这样的结果往往是单纯的解决问题,对自己却没有任何提高。『是啊,没有提高!』于是有人又要火急火燎的问,『然后没有提高怎么办?』。
怎么办个屁啊!
搬个凳子,坐下来,歇着。静静的思考自己遇到的问题,需要解决什么,如何解决,有哪些方案,怎样效率最高,下一步该怎么做。都想清楚了,再去回想前面自己的问题。比如如何用 NodeJS 写爬虫,如果连爬虫是什么都不清楚就到处提问『如何使用 NodeJS 写爬虫』,怎么可能解决问题?
授人以鱼不如授人以渔。我呼吁各位,再遇到伸手党,可以告诉他 Google 的正确打开方式。
如果在群里遇到执迷不悟的伸手党,请这样做。
再来说下专注。这里的专注,是指专注于思考问题本身,而不是想着怎么样尽快解决问题。为什么遇到问题去请教别人总能解决?并不是因为别人天生比你厉害多少,很大一部分原因是因为你在到处求解答求帮忙的时候,别人在静静的写代码。工作业务很繁忙,人际关系很复杂,但是一定要专注自己想要做的东西。如果想做一名优秀的开发者,那就专注技术本身;如果想做一个熟练的伸手党,那,嗯哼。
专注的另一个方面,就是不要被杂音干扰。今天 bang 开源了 JSPatch ,于是一窝蜂涌过去,『大神好厉害,求教求教』;明天 YY 火了,一群人又围上去,『国内还有如此大牛太厉害了』。四处追星,何时学习?
他们是否厉害?是,确实很厉害,代码质量也很高。但是和去吹捧去羡慕去崇拜相比,更应该做的是静心做学问。不要盲目追星盲目造星盲目调侃。很多人到处问,『怎么才能学好 iOS』,『怎么才能想大牛们一样厉害啊』。连基本学习和思考的过程都没有,每天提这些问题,就像是捧着个空钱包每天问马云我什么时候才能成为百万富翁一样。
这是我的一点个人感想。虽然作为一名段子手,我是半个身子处于娱乐圈的人,但是作为一名软件工程师,我觉得静心做学问才是自己真正的追求。
接下来聊聊技术相关的话题吧(哎前面难道不是一直也在聊吗)。今年是我技术方面成长最快的一年,一方面是是实习之后确定了专注做 iOS 开发,方向比较明确;另一方面是本科期间的各种摸爬滚打,逐渐找到了属于自己的学习方法和编程习惯。
学习习惯前面有聊了很多,不过是比较通用的,属于每天的学习积累。在遇到具体问题的时候还是需要具体分析:
回顾自己曲折离奇的学习路线,感觉多看一些东西多掌握一些技术对于自己的成长是很有帮助的。专攻某一项技术并不简单地意味着不去了解其他技术。
比如做 iOS 开发,Cocoa 的底层技术肯定需要熟悉的,但是有其他方面的技术积累。比如需要经常变动的需求或许就可以考虑用 Hybrid 的方案,比如需要做个简单的小游戏或许 Cocos2d-x 和 Unity3D 会是更好地选择,比如有天写了个脚本之后发现自动更新版本号然后打包上传发布的全自动化操作是如此的方便。而如果一直局限于『iOS 开发』这个技术领域,或许就会错过很多东西。
个人认为全栈是软件工程师成长之后的必然结果。但是千万不要为了全栈而全栈。比如什么『NodeJS 真好,学完之后前端工程师就能写后端了,就是全栈工程师了』,什么『快去学 React Native 啊学完就能开发客户端了就是全栈工程师了』。如果学习的目的是为了收集『全栈工程师』这个称号,那学习这件事本身就已经变了味了。
每年都觉得自己这一年的经历真是奇葩。比如大一的时候昼伏夜出就是为了蹭舍友电脑从凌晨开始玩 QQ 飞车,然后大二的时候我居然开始素描写生拍电影写剧本我差点觉得自己成了个艺术家,后来到了大三又是解散工作室又是成立工作室又是找老师撕逼也是各种凌乱,然后到了大四我居然真的进了梦寐以求的大阿里然后他妈的实习两个月我居然就特么跳槽了我是有多贪,最后到了今年向高层反映开发产品测试运营各种问题无果后愤然离职从而经历了从一个脑残粉变成死磕黑的全过程。现在和朋友在一个小屋子里倒腾一些稀奇古怪的小玩意虽然不赚钱但是带带学生团队一起成长倒也是悠闲自在。
虽然是成立了公司,不过觉得现在的阶段并不能算是创业,定多算是个自由职业者吧。组建了一个四人学生团队,产品合伙人提供一些灵感,然后一起在学校里折腾折腾。
工作流主要是 Worktile 做任务看板,Coding 做代码托管,瀑布做聊天工具。团队组成是两名前端两名后端,最近在搞一些 HTML5 项目。对于技术团队,规划是每个人都在一定阶段内深入学习某个领域,然后再定期互换角色弥补盲点。由于团队成员比较少,也没什么历史包袱,所以技术方案上也比较激进,写起来带感。
为啥不社招呢?因为穷。短期之内我们暂时没有融资的打算,想多做一些尝试。如果要对一名社招的少年负责我感觉是比较困难的,我们目前还没有什么稳定的资金来源,而且五险一金什么的也没太多精力去折腾。而对学生团队负责,我还是比较有信心的,有一份还可以的实习报酬,另外在学校里有机会一起学习尝试新技术并体验完整的开发上线流程还是很有意义的。
未来嘛,肯定都是冲着改变世界去的。然而在那之前,首先要活下去。
最近不少小伙伴处于即将毕业或者刚毕业的状态,我想就这方面再聊一聊。
应届生找工作大概是这么几个选择:
我个人经历勉强也算是经历了上述三种情况,我的理解是这样的。
风险越高回报越高,天上没那么多馅饼可以掉。看准了一定要尽早做决定,不要优柔寡断。时间过的很快,等着等着就没了。
我对自己的定位是『工程型编程爱好者』,本身工作就是爱好,爱好就是工作。所以出来和朋友创业,除了想改变世界,另一方面也是想满足自己的编程爱好,打造自己的技术团队,让更多的人真正体会编程的乐趣,为自己喜欢的事情做点什么。
胡言乱语,不知所云。戛然而止,筋疲力尽。
一直想写点东西随便扯扯,但确实又各种没时间。后面准备关于『全栈』和『开源』写两篇『全全全全全,全你妹的栈啊』和『开开开开开,开你妈的源啊』,聊聊对于全栈和开源的理解。和对某些人某些事的喷。
奏是这样。
讲真的,我还挺期待 2016 的。
一起加油吧。