关于算法

  一直记住张亚勤说的四种能力:问题抽象能力,判断力,自信,心态。读研也过了快一个学期了,感觉自己还是很迷茫。我觉得自己是一个很狂妄的家伙,还记得复试的时候对面试老师说的那些话,开学的时候导师跟我说了,他说面试老师对我还是有很大的看法的,说的好像自己什么都会似的,当时我真的有点后怕。一直追逐大而全,一心要做高手,就这样四、五年过来了,想想却还是不知道自己以后自己真的能在公司实战中是怎样一种位置。

  读大学的时候,想了解方方面面的东西,现在却觉得可能把一些更重要的东西落下了,比如算法能力。买的那本编程之美每天看了几页,觉得感触很大。就这两天看的那些,感觉自己真的差距很大。写写自己的一些感想。

  最重要的一点:构造一个可行的解决方案。

  最优化问题一般有两种思路:1.贪心算法,这个思路重要是要找到一种好的贪心策略;2.动态规划,这个思路中状态转移方程是重点。

  还有一个就是时间复杂度和空间复杂度,感觉自己以前也就是有这么个概念,从来没有一种很深刻的思考,O(1),O(N)...,现在觉得真正要深入地去思考的话,其实也是很容易理解的。顺便说下自己这个学期学lambda calculus和进程演算的感想,以前知道形式化理论,但是,前个礼拜看一篇博士论文的时候,看到他的理论框架却不知道要把这些内容放在哪个方面,现在想想,这就是形式化理论了。跟软件工程一样,形式系统不过是以一种严格的数学证明去刻画、开发和验证软件或硬件系统,而软件工程更多的是以工程方法去做这个事。

   今天下午上高级数据库的时候一直在看编程之美,看到了1.5快速找出故障机器,感触真的很大,真的是博大才能精深,利用异或的特点去解决纠错问题,也知道在诸如海明码之类的编码系统中异或是经常用的,但到了一种实际的编程应用中却没能联想到。还有校验和的应用,记得以前大学陶老师的计算机安全课中文件的防篡改中自己很容易就想到了,而到了这个应用中就没有想到。还有不变量的应用,二元一次方程的应用等等。

  张亚勤是个巨牛,他说的话非常正确,问题抽象的能力非常非常重要,要有一种洞察力,看到事物的本质,比如这道题目,其实本质就是线性纠错问题了。

你可能感兴趣的:(编程,算法,数据库,面试,lambda,联想)