我最能和身边朋友说的一句话就是:当你做一件事觉得太复杂,太累,要江郎才尽的时候,一定要暂停,因为一定有简单的做法存在。
我是个程序员,每天和程序打交道,逻辑会直接决定效率。曾有朋友和我说:“你的要求太高,我没有你的天赋……”。其实我们差的不是天赋,而是方法。
01
大一下学期的时候还没学过Java,年轻气盛,报了个全国移动互联应用大赛,那时候2014年,Android很火。
无头苍蝇一样的我根本找不到方向,真正开始准备的时候已经9月,比赛在10月初,一个连完整程序都没写过的小白想在这么短时间写出一个系统就像天方夜谭。
我也用了大多数人第一想到的流程:先找本书读java基础,再找本Android教程补Android,最后开始设计自己的应用,进行编码。好,就这么干!结果跑到图书馆发现连最速成的书题目都叫《21天精通Java》……
放弃吗?绝不。天生幸运,我遇到了一个技术很牛的大哥,给我一份示例代码,告诉我说:
“最快的方式就是照猫画虎,不懂的地方去看官方文档,查API,永远是最好的教程,那些书你看看什么年份,等他们学通了,出本书,技术都更新了好几代了。”
这句话简直让我醍醐灌顶。后面的一个月里我分析代码,研究API,边设计系统边编码,废寝忘食过,半夜三点起来过,比赛截止前一天,我完成了系统,学会了Java,做到了曾以为天方夜谭的一件事。让这件事成功做完的,不是天赋,不是智商,不是能力,而是方法。如果当时我只顾按着自己的逻辑走,可能不眠不休写到吐血也写不完。
02
822实验室第二次分享活动的项目是给出性别、舱位等级和年龄等特征,通过实现一棵决策树预测泰坦尼克号的乘客是幸存还是死亡,准确率越高越好。
每个节点都是人工靠脑力分析的,为了更高的准确率,大家尝试了n次,后来听大家的感想,头疼、郁闷、惆怅,时间哗哗地流逝,不管怎么尝试,准确率都在83%左右原地踏步,500次想放弃。
其实走不下去的时候就不埋头苦走了,停下来找找简单做法,事半功倍。懒一点的人,写个算法找最佳节点,让电脑去做n次尝试,代替人工劳动。再懒的人,这件事这么麻烦又这么有解决的必要,一定有人早就写好了解决办法,是啊,找个现成的实现决策树的库,调用方法不就好了,简单一搜,就能找到sklearn的DecisionTreeClassifier,准确率直奔91%,核心代码只要4行。
时间就是金钱,早点这么懒,能省多少钱。
03
几个月后有一个关于三维显示施工过程的项目,最难的是要实时交互渲染。again,一个从未涉及过的方向,在我的认识里,大概要用Unity3D,意味着我要熟悉C#,要考虑一个新的引擎如何和服务器交互,如何根据参数实时渲染……准备涉足泥潭的时候,一位天使告诉我说,你可以用echart,js简单啊,交互什么的都不是问题,天呐,天使,这一句话帮我省了至少3个月的时间!
如果我一直埋头苦走,连和别人交谈的时间都没有,我会走多少弯路,浪费多少青春。
人是很聪明的,“觉得累(麻烦)”是一个很好的信号,意味着一定有简单做法的存在,如果一个思路很难实现,占据了大部分时间,让你觉得很累,就停下来,磨刀不误砍柴功。永远把埋头走当做PlanB,设置一个时间节点,节点之前广泛搜索简单做法,直到节点仍然未果,再去埋头苦走。
每个项目都是一条小鱼,背后隐藏着大渔,能省很多时间的大渔,有时间埋头苦干,不如多思考总结渔,让一件事顶十件事。
很多人都说道理都懂,可是呐,懂和会用相差十万八千里,悟不透,它只是一句话,悟透了,它就是魔法。
如果此时的你觉得手忙脚乱,生活充斥着繁忙与烦恼,停下来,你走错路了,该整理维修一下自己,没有难事,只要摸对了门路。
愿每个人都能轻松愉快地度过每一天。