小时候对经验没什么认识,工作多一些后,慢慢就理解了。
一、踩过的坑
刚开始接触工具的时候,尽管照着文档,不趁机会操作一遍,对许多东西都还是没有概念;之前看到文档有说明,自己动手写的时候就给忘了。师兄说,就像学英语那样,看得懂,用的时候就不会了。
另一方面,文档有时候会有疏漏,照着做也总跑不通,出错的时候,以为是自己没用心看文档,参数没配对,是我的问题。心理压力很大。这时候还是要多问,问开发人员和维护的同学;有时候他们一句话,就把困扰我几天的事情说清楚了。
现在群里同学的许多问题,我大都能帮着回答了;哈哈,也算是对之前打扰那位师兄的回馈吧。
二、做事效率
那天听到几位很有经验的同事在聊模型,组合了几种东西在里面,feature 选得好,效果也很不错。
我也想这样。所以我在想,与他们的距离在哪里呢?相比之下,因为基础不太牢靠,工具也还没熟悉起来,coding 的速度就不够快;另一方面,还不能习惯性地把那些可重复的工作流程总结起来,保留下来。
这个其实挺要命,要注意。师兄也注意到了这一点,便有意地让我多写 MapReduce,同时加强对 MR 这种 Paradigm 和 Java 的熟悉;师兄说,通过这个,你就会充分理解 MapReduce 了。
三、对模型的理解、遇到问题时的解决方案
做模型的过程中,包括 feature 的构造,选什么模型/算法,预期的效果,这些在有经验的人看来,都是可预期的。不过,目前自己不能有那种把握,往往是通过尝试,寻找最好的方法。
师兄说,我们快一点,先跑跑看靠不靠谱。
四、算法并行化
当我们具备了上面提到的许多项能力之后。便有能力和时间,把自己对业务的理解,做成模型,或是改进现有算法了。
老板看到我在看书,便这样对我说,多了解一些算法和模型挺好的,但我希望你同时去思考这个算法能否做并行化,或是近似求解,因为数据太大,不然不行啊。而这个是我之前没有关注的。好在组里有随时可以请教的师兄们。