大学阶段比较失误的一件事
被Google面完才知道,其实自己大学阶段有一件很重要的东西忽略了。那就是算法!
大二大三的时候看见有人搞ACM(就是一种注重算法的程序设计比赛),觉得没有什么意思。都是运用别人早就研究出来了的算法。而且一天就整那些题也非常的枯燥。作为我自己来讲,我更感兴趣的是搞些工程方面的东西,最喜欢的是做实现。所以尽管都是在学计算机都是在编程,但是搞ACM的和我这种搞工程的实际上有很大的区别。他们注重的怎样套用现有的算法去解决一些范围比较窄的问题,涉及的东西比较少,更计算机打交道的也仅限于程序设计语言。搞工程的就不一样,它需要在一个现实的计算机系统上搭建一个功能完整、运行可靠的平台/系统,所以跟计算机有关的方方面面都会有所涉及,什么操作系统、网络、系统调用、界面设计、数据库连接,甚至是硬件。
很难说谁更加重要。因为这两方面都是计算机科学的组成部分。光有算法,不懂怎样和底层OS打交道,不懂怎样高效设计系统的架构,计算机系统不会这样普及;只会设计系统框架,落实到每一个具体的细节却非常的低效,这样的系统也不会成功。所以作为一名计算机科学的专业人员,不管是系统实现还是具体算法都不能忽视。这一点Google的研发团队做得很好,他们的理念是Research=Development,即既要有idea,同时又要有能实现这样的idea的编程能力。
我想算法方面是我一直以来比较忽视的东西。也许Google不会再给我第二轮面试的机会,不过我倒是借此了解到自己的不足,所以也算是一种收获吧。
Labels: Review

