计算机思维学习笔记

        我一直在听吴军老师的谷歌方法论专栏,今天总结一下所学的专栏中的计算机思维。

        计算机思维:计算机思维本质上事翻译,也就是把人想要做的具体事情,翻译成计算机能够懂得程序语言。很多时候,张三年希望计算机做一件事情,李四需要计算机做一件事情,有些共性的地方,久而久之大家发现使用计算机工作的流程是相似的,于是科学家们再翻译现实时间的要求和计算机虚拟过程事,就提炼出了一些高效的、不断被验证过的标准流程,这些流程就是我们所说的计算机算法。

        计算机算法的衡量标准:1,在比较算法快慢的时候,需要考虑数据量特别特别的,大到近乎无穷大的情况。2,决定算法快慢因素虽然可能很多,但是所有的因素都可以被分为两类,第一类是不随数据量变化的因素,第二类是随着数据变化的。3,如果两种算法在量级上相当,在计算机科学里,就认为它们是一样好的。将世界理想化的目的在于,找到真正的主要矛盾过滤出那些相对次要的噪音,先把主要问题解决了再说。

        从计算机算法的衡量标准中看出,只有一个标准,就是快慢。其实就是效率,效率是最根本的标准,而后才是一些条件,怎么评判效率的高低。那么衡量一个业务系统的标准是什么? 能够提高业务的效率,对业务带来效率提升的帮助。做事情之前,要搞清楚衡量的标准,连衡量标准都没搞清楚,那就没有了方向,没有了目的,这就如同科学里面讲究的要可测量可评判。做事情遇到瓶颈,不妨把事情抽象一下,不要陷入到具体的事情中,那样会没有头绪,不妨从具体的事情中抽离出来,看看主要的矛盾。

        效率的本质:效率=产出/所做的事情。 人的产出是有限的,一天也就24个小时,真正工作的有产出的也就2-3小时。少做事情不是为了不做事情,而是去除不必要的事情,就像排序算法中,去除不必要的对比计算。

        冒泡排序是:将一堆数字,互相比较,选出最大的那个,接着再比剩下的,N的平方的量级。插入排序,从一堆数字中,照出一个,放在旁边,让后再找出一个插入到合适的位置,也是N的平方量级。归并排序,相当于把一堆数字分成2个2个的一组,然后比较,形成一个小序列,再评估合并。快速排序,就是随机一个数字再分成两组,再随机选一个数字分成4组,一次比较。

        计算机科学与工程的区别:方向和道路的区别。一个好的工程师,最重要的能力就是了解最新科学进展,并且根据实际情况使用最新的技术解决实际问题。这一点对我也是很有启发的,了解行业内的先进解决方案,最新的科学进展,最新的技术,落地到实际问题上面,这个转化很有价值,也很有必要。计算机科学所关心的是问题是什么,是将注意力放在量级上,而不要太在意细小的成本。

        不同的目的,对边际成本的看法是不一样的,因此,在现实工作中,没有绝对的最好,只有在给定条件下相对比较好。科学中,在一个相对理想的状态下工作,这样可以将注意力集中在量级的改进上面。工程中,必须手续使用科学上最好的方法,然后再做细节的改进。  这也是很有启发,我们做事情先搞清楚给的的条件,也就是所谓衡量标准,再去做事情,不要被思维的定势所影响了决策,什么山头,唱什么歌曲。科学和工程的关系,有点像 战略和战术的关系,战略是更高层面的规划和方向,有了这个方向和边界,战术上面才去落地实施和优化。所以,做执行的人,一定要抬头想一想公司战略方向,再行动。

你可能感兴趣的:(计算机思维学习笔记)