过去习得的经验是现在行为,思想和动机的根源。
2010.9 - 2011.4
在一家主做MTK手机App公司做Android,公司也是探索Android方向,所以给了我大量的时间自己调研。做了一款音乐播放器,一款山寨的新浪微博。
2011.4 - 2012.8
在一家创业公司疯狂9126打鸡血,做社交App,如果你以前用过’简简单单’, ‘牛排’, ‘美丽约’, 那里面就有我的心血。可惜膨胀的太快了,什么模块都往里面扔,最疯狂的时候1个App配8个Android8个iOS。后来人就陆陆续续走了。创业公司虽然难熬,但是能在很短的时间内让人成长。不论是技术的积累上,还是对产品的设计与偏执上,都有了一定的见解。
技术一定要扎根于业务,脱离业务脱离产品理念谈重构是不切实际的。对于一个程序员来说,最重要的不是他会多少API,用过多少开源library。而是他有一种判断力,懂得取舍,通过一系列的google,实践,找到最佳解决方案。
2012.8 - 2014.8
进外企,总部在瑞士,做SAP解决方案。期间有幸能去瑞士学习一个月,虽然还请假到处去玩。外企让我学到了很多高效开发的窍门。jira+splunk+confluence,一套敏捷工具省了很多沟通的时间,加上只有Android团队在上海,因为时差每天要下午4点才开daily meeting。所以得提前建好ticket assign给相关人员,描述清楚issue。那段时间,自己的表述能力明显强多了,特别是有个语速飞快的波兰上司天天跟你描述需求。
技术上攻克了不少难关。
- SAP有海量的数据,我们要将部分数据cache在本地,几百M甚至1G的数据放sqlite,一共76张主表,那些ormapping框架根本搞不定,只好自己写一套。
- 本地数据需要支持搜索,对于一张100w数据表,用sql like肯定是要等待很久的。后来加上lucene,还得支持所有语言搜索,需要手动分词。
- 本地与服务器数据同步,跟git的merge一样,如果发生冲突还需要在客户端解决冲突。
- 还有很多http框架,UI复用等等一系列能让开发变得简单的轮子
那时候还没有retrofit,okhttp,volley,没有realm,没有leakcanary。万事都要靠自己。一点点google,一点点磨出来。没有技术解决不了的问题,对此必须深信不疑。假如做不了,可能是自己的问题。很多时候我们都喜欢推卸责任,一旦开始找理由,人就变得急躁,敏感,越发解决不了问题。
那时候学会了克制,不盲目写代码,一天只写3小时,最多不能超过1000行。写代码应该像写诗,想好再写,精炼,简短。
那时候学会了规划,写代码就像装修毛坯房,先要熟悉房型(理解需求),设计,水电改造(需求分析,拆解,建模),打孔走线(伪代码串起整个逻辑),粉墙(构建UI),内饰家具(具体实现)。确保每一个环节不出纰漏,并留好接口,写完就是成品,还能保证以后的需求扩展。
2014.3 - 至今
我写博客的原则是,只剥茧抽丝,提供解决方案,不留过多代码。代码是有时效性的,在当时可能是最优的,可能过一两年就出更好的方案了。
但大多数人不这么想,他们有些急燥,总以自己搞不定,加班了好久,不会google,不会追本溯源。用这些借口不自觉的施压在其他人身上,企图别人能够无私的帮你填上那段代码。
这不是那么聪明的做法。私以为,比起技术,业务更重要。我们少有创新,大多算更新,所以所有的需求都有原型,以及延伸的雏形,找到它,试图理解它背后的逻辑,然后再考虑技术实现。很多时候,我们加班,频繁堆代码,然后又注释,看起来满足了KPI,但是对自己一点提升都没有。我们得站的更高一些,思考产品背后的核心价值,当前需求的用意,有什么更好的方式去体现它,以后可能会有什么扩展。等想清楚了这些,你写代码就会轻松多了。
但并不是所有人都能很快认识到这个问题,这也是为什么有人工作三年还是跟一年一样。所以Stay决定跳出来,做一些事情希望他们能从坑里跳出来。
有心课堂,有心之人成无事,无心之人事无成。
技术没有那么多可讲的,而且技术也会陆续被淘汰。什么能成为经典?我想应该是那技术之上的WWHW。
WHAT WHEN WHY HOW
它是什么?它在什么场景下发生?它为什么会是这样?它是如何做到的?
假如按照这个标准,最好的课程应该是将大家带入一个场景中,通过需求分析,原理解剖,框架设计,逐步优化,等一系列的解题过程来强化思维方式。
所以我尽量不去讲那些简单的API调用,而且讲过去自己思考的经验心得。HTTP框架,DB框架,快速搭建项目,多任务下载框架,自定义View。讲这些并不是为了给你一个现成的框架使用,而是传递一种解决问题的思维方式。
培训做到现在已经有两年了,两年时间只做了七个课程,我这人有个毛病,老爱重构,这些课程都被我重录了两遍,甚至三遍。以后还可能四遍,五遍。每一次重构,我自己都会有更多感悟,我希望这些感悟也能顺利的传递给大家。
虽然学习这些课程不一定能立马升职加薪,但只要不断的强化一个好的思维方式,它会在不久的将来给予你惊喜。你不会仅仅满足于会android,也不会仅仅满足于做个程序员。先提升自己的思维,缩短枯燥编码的时间,那精彩的未来才是最值得期待的。
2015.10 - 至今
一切又要重新开始,这不是一件多开心的事,一年多的时间尝试全职做有心课堂,但结果不是那么理想,而我个人又不会推广,总觉得课程做的还不够好,还达不到推广的程度。久而久之,自己做的也快没信心了,在资金方面也无以为继。只好再重新工作了。
有心课堂,当然也没有完全放弃,我是尝试过很多很多方式去养活它,那一年做过企业培训,尝试过线下培训,捣鼓过众筹。但总是让自己陷入纠结的自我拉扯中。2年时间,200位付费用户,总营收15w,成本开支5w,人力成本不计,边际成本不计。这数据不是很好看。
所以我悄悄的重新开始了。目前在上海一家创业公司,做UBI车险,简单来说,通过大数据,分析车主的驾驶习惯,预判下一年出险次数,对好车主减返一部分车险费用。重新投入到工作,加入到团队,深刻觉得一个人不该那么执意的去孤军奋战。没人和你承担苦难,没人和你分享喜悦。那是多悲哀的事。
2016,一切照旧。
有心课堂,在我没找到更好的目标之前,我会持续的去做,即使它不赚钱,即使它影响的人有限。我深信它传递给大家的,不仅仅是技术。于我而言,它也不仅仅是技术。