本文从blog.163.com/kazenoyume@126/上迁移过来

5月份的时候,我加入了Summba。作为实习生,我的主要职责是协助Buffalo进程化版本的开发。

今天原本是个值得高兴的日子,因为Buffalo新版本将近完成了。晚上六点的时候,我跟我的上司Arber表达了我想一个星期上少点班的愿望,我想利用这一天去自主学习,学习自己喜欢的东西。出乎我的意料,Arber居然拒绝了我的请求。他的理由是,自己学习还不如在公司学习得多,当做完一个项目的时候会发现掌握的东西比从书本上学的东西更加的牢固。后来他又从这说出了很多问题,说我做事不够motivated、做事太过有目的性。

从实际中获取知识以及从书本中获取知识这个问题,在程序员界是争论已久的。作为一名Pragmatic Programmer,我也是赞成从实践中获得知识这种做法的。不过,这并不代表我赞同获取知识的唯一途径是实践。我认为跟实践相比,从书本获取的知识是更多的。书籍原本就是别人实践所得出结果的一种总结,看书能在某种程度减少实践过程中所走的弯路。在我身边,有不少程序员是不喜欢看书的,而我也一直在旁观着他们的能力变化。他们总是希望在实践中获得知识,所以他们天天加班凑代码。然而,在加班的同时,他们却不知道自己干的活所碰到的很多坑都是看看书就能解决的。我觉得这就是他们可悲的地方,浪费了巨大的精力和时间在调BUG上,收获却极小。我身边就有一个活生生的天天写代码的例子,他天天加班赶业务逻辑代码,一年下来学会了各种框架搭建各种快速原型,不过写了这么久却不知道这些框架中的其中一个的底层运行机理是如何的。其实这些东西,上网随便搜一下Spring源代码解析就有一大堆了。只不过他一直忙于写代码,看不到一直写代码的意义是什么而已。我也不赞成只从书本中学习知识的做法。像我自己,在大学期间也领教过高数、离散数学、线代和概率论的厉害,当时也学得焦头烂耳的,除了会做课后习题之外,就什么都不记得了。但是,后来我发现了计算机图形学用到大量线性代数和计算几何,机器学习用到了大量的高数、现代和概率论的知识时,我才终于明白了我学这些东西的意义。还记得我第一次在OpenGL上写物体阴影渲染程序的时候,我重新复习了一部分的线性代数知识之后,一个活生生的3D带有阴影的图形就显示出来了。当时就觉得数学这东西实在很屌,学的时候觉得没用,用的时候觉得怎么都不够用。我觉得写程序也是如此,本来就应该过一边基础知识,在用的时候慢慢复习,慢慢加强。如果要说明两者之间的关系,那么学习就是打好基础和开拓视野的阶段,而实践是巩固知识、获取新知识的一种手段。

今天我实在不太明白为什么Arber说我做事情太有目的性了。不得不否认,我做事情的确很有目的,而且还是带有多重目的去做某事的。比如我来Summba实习,第一是我想了解现在数据处理公司用到一些什么技术,第二是我想在这个公司里面熟悉一下java生态圈以及学习如何使用spark,第三是在简历上多添一笔,第四是赚点小钱换手机换电脑之类的。我觉得这样做事很正常啊,每个人都是为了某个目的而做事,而不是简单的机器人。不过他这样理解也有可能是Arber在看到我做Buffalo这件事情不是太热情有关系吧。在写的过程中,我是真的很想对Buffalo里面很多代码进行重构的,但是重构又是需要一定的时间。我只有为期3个半月的实习期,我更希望的是把更多的时间花在学习和使用Spark上。而且Buffalo里面的逻辑代码是经过一定时间积累下来的,一时半刻实在不太好理解,可能我实习结束之前Buffalo还没完成重构呢。

今天回家了时候跟zewei聊了下,想了想,发现其实自己的坚持是对的。我近期的目标是用2~3年左右的时间,做到对Spark的源代码有较为深入的了解的同时,兼顾学习机器学习的算法。所以我才希望来这里赶快使用Spark解决实际问题,看到Spark在使用机器学习算法的过程中有什么样的问题,以及Spark的适用场景到底是什么。我希望一周上4天班的原因是希望能利用额外这一天的时间,去学习Scala、Spark以及看各种机器学习相关资料。我现在一天学习的时间是相当相当的少的,每天回到家里吃个饭之后就9点左右了,只有大约2个小时的看书时间。要想利用这2个小时看一大堆我定下来的书单,显然是不可能的。所以我才希望一周上4天班。

在做Buffalo的过程中也慢慢体会到在一个公司里面干活是怎么样的了。一般来说,freshman都是执行者,需要执行上司安排下来的各种任务,在代码里面做各种搬砖填坑的工作。今天Arber跟我说,决定这些执行者效率的,就是看上司是怎么安排的了。像我最近天天闲得没事干,顶多写写文档修修BUG的事情显然是不能激发一个像我一样进取心的执行者的潜力的。编码是一项团队活动,而不是一个大神把整个代码都单挑。不过在这里我得小小吐槽一下svn,它的并发开发能力果然没有git强啊。

但愿明天会更好吧,过几天我再找上司谈一下。