做最好的自己

     从前,我跟很多人一样喜欢写代码。因为刚进大学的时候,听李开复提到过,"微软应聘大学生要求100000行代码"。所以大一那时,
  也是刚接触计算机,开始各种练习,小代码也写了不少。大二进入ACM训练算法素养,去各大OJ刷过一些题目,也学到了一些东西。但是
  后来因为某些原因,从ACM退下来了。再到后来,开始做了一些项目,在当时看来是工程量比较大,很难完成的,但是我终究在最后那一
  刻完成了。当然如果没有以前的训练做支撑,也是不可能完成的。另一方面,我也掌握了快速学习的能力,除了C/C++,Java外,还接触
  了PHP,Python,C#,Javascript等语言,当然多是比较浅显的应用。
 
        然后来到大三,开始学习操作系统,读了《程序员的自我修养》和《深入理解计算机操作系统》,理解了很多底层的细节,这对于整个
  计算机知识体系结构至关重要(当然这个学期很少有写代码)。我开始明白了分析设计的思路和理解的深度的重要作用,这是一种隐形的能力,
  在你不管做什么事的时候,它都能让你受益。我们学技术,不应该只局限于技术;换句话说,技术来源于生活,而体现于生活。经常在书上
  看到类似的话,A作用于B,而B反作用于A,二者相辅相成..以前是相当鄙视这种俗语的,每本书好像都是从一个模子刻画出来的(有点泛型的
  感觉哦)。然而看了很多细节,经过了很多思考后,才真正明白这里面的涵义。1)技术来源于生活,例:存储器层次结构中,高一层的存储器
  作为低一层存储器的高速缓存,就好比国家的行政管理,国家分省份,省份下又分市...2)技术体现于生活,例:页式管理置换算法中,FIFO
  不能反映页面的使用情况,所以算法性能较差,而LRU算法虽然很好,但要求有较多的硬件支持,像寄存器这玩意儿依然是稀缺资源。所以,
  实际中,折中采用Clock算法。而折中这种做法常见于生活的各种场景中。时间换空间或空间换时间,在适当的时候都可以采用。由此可见分
  析的重要性,评估算法的时间复杂度,并设计实用的算法。
 
        说了这么多,其实也就是一件事。代码的训练量固然必要,但更重要的是思维的重要性。对整个项目的分析设计和架构的把握,决定了项
  目的成败。
 
        我不是那种研究算法的geek,也不是什么大牛,甚至小牛都算不上(菜鸟一个)。但是我坚信有这些经典书籍的熏陶,大牛们的指导,keep
  my  brain running,保持思想的先进性,坚持不懈,终究会"修成正果"。爱技术,爱生活,做最好的自己!
 
posted on 2012-01-11 13:43  Seiyagoo  阅读(807)  评论(4编辑  收藏  举报