Elrond课程补记
去年公司搞数据分析师培训,开了个 Elrond 课程,最后还有个小竞赛。由于主讲胖子的靠谱以及自己帮着做了一些课程事务,有些收获和想法,这里简单记一下。本来也是该去年完成的,拖到现在终归是补上了。
另一种视角
一路学数学过来,更喜欢也更习惯的方式是解决“难”的问题。比如证明数学定理,或想出严格时空复杂度下的算法问题。但实际工作中,很多时候连方法是否有效都是件不容易验证的事,更不要说完美的解答了。所以不能总是期待有一个完备的定理结论或是一个漂亮的解析解在等着你。但是换一种思路,在充满不确定性的概率世界里,进行不完全信息下的决策反而是更常见的情形。也许这种实际情况下答案的不“标准”会让习惯了数学完美的人稍感失望和不顺手,但挑战性绝不亚于那些诸如 ACM 竞赛的试题。
既然是不完全信息,这个时候跳出“标准”答案的束缚,从多个视角来尽最大可能达到自己的目的就是件很考验人的事。课上讲的经济学视角、运筹视角,包括联想到之前 Nullpointer 在分析数据时借用热力学模型和语言学模型的例子,这些往往可以让陷入思维定式的自己柳暗花明。这时,数据也好,方法论也好,才能更好地用来帮助做决策。
Make things happen
记得我入职那年校招专场时,胖子说过对算法工程师的几点要求,中间有一点就是“你是一个工程师,最终要 make things happen”。这次帮忙搭建最后竞赛用的平台对这点也挺有感触的。之前一直对前端的东西很排斥,也很无知,css 都不知道的那种。虽然原来写过几行简单的 webpy,但总觉得麻烦。这次从头开始照着 Bootstrap 和 DAE 的文档一点点搭一个小应用出来收获还不少。至少整个流程走下来,虽说东西土到掉渣自己都不忍直视,但好歹不像原来那样排斥了;而且现在也能写写 service,学学 Flask 什么的。
寒砚之前也说过,让别人理解你的想法,特别是让PM了解算法能做什么,公式的效果一般,而一个好的 demo 则很有说服力。虽说对最近很火的“全栈工程师”并不感冒,但多懂一些,多少可以避免因技术短板而盲人摸象。
再说训练
前几天看到有人转赵行德的一条豆瓣广播:“传播负能量:你缺的根本不是什么鼓励和赞扬,你那臭水平犯的低级错误根本没法通过鼓励和赞扬改正过来。你缺的是训练!严格的重复训练!可惜高中毕业之后,就没人花心思来训练你了,就更别提严格了。”
回想下自己真正掌握得好的那些东西,其实都少不了训练。本科学 PDE 时老师也说过,最后真正做问题的时候,能用起来的都是那些原来花了大量时间练习的东西;而那些只为应付考试而学的方法定理,你自己都想不起来。
这次最后的竞赛也是个例子。真正收获大的,还是那些自己动手写代码实现的算法,直接用工具会掩盖太多问题。而那些结果比你好的,其背后尝试过的方法、思考的情况、得到的经验,可都比那简单的数值结果的差距多多了。
说到底,还是欠功夫。学上了那么多年,冰冻三尺非一日之寒的老道理反到快忘了。今年开始在 Coursera 上注册上课,看看能坚持下来几门吧。