第一讲:什么是好的计算机算法?对效率影响有多大?
原文:介绍一个计算机科学的基本做事原则,就是首先要构建可比较的理想、容易对比的平台,明确一个公平的比较标准,也就是说事先要讲好游戏规则,然后再开始做研究,确定基1线,对比这种方法的优缺点。 这种方法其实对所有的科学都适用,但是并非人们自发性的做事情方法,因此,在计算机科学的发展过程中,科学家们认识到这一点也是花了20年左右的时间。
我:做任何评价,必须要有确定的标准。有的领域,比如公务员管理,难点之一就是评价标准多而且不确定,始终在变化。
原文:在计算机算法上稍微差了一点,最后计算机执行的效率很容易差出千万倍。
我:实际使用软件的人,根本不知道算法,也不知道软件的原理,与工程师如何沟通就是问题,需要工程师理解所提的需求。这个过程对工程师的要求更高。
风险应对推送的数据没有用,原因分析的角度可以考虑这一点。
原文:很多计算机从业者对计算机资源的数量没有概念,总觉得是无穷大,因此无端浪费很多资源,这样做事情,在行业里是很难出人头地的。
我:不努力做到最好的结果就是很难出人头地,所以要对自己有刻意的高要求。
第二讲:从计算机的算法,谈谈提高效率的本质
原文:昨天的内容算是一个铺垫,确立了评判计算机算法好坏的基础和标准。今天我们以计算机科学中最常见的算法——排序算法为例,说说提高效率的本质。
我:在讨论之前,先准确的定义概念,这是科学的做法。评判计算机算法的好坏,先确立基础和标准。
原文:效率=产出/所做的事情。人的产出是很难提高的,但是所做的事情是可以减少的。
我:这说明了少而精的重要性,事情可以少做,但要做就要做到最好。
原文:在今天这样一个人多粥少,人的技能普遍高出行业基本要求的时代,进入任何一个行业,都要有点专业精神,把自己当作科班出身来要求。
我:联想到韩寒的那篇文章,《你对那种力量一无所知》。不要用自己的业余爱好去挑战别人赖以生存的专业。
原文:为什么到了智能时代学习变得非常重要了呢?因为一些基本的方法和道理如果不学习,靠自己脑子苦思冥想可能需要十年甚至更多的时间,而学习加练习,可能只要一个月的时间就够了。
我:所以自己一个人默默的学习,也许效率很低。应该找到志同道合的人一起讨论、交流,促进进步。但自己在线上是一个内向的人。虽然加入了几个微信群,却几乎没有说过话。
原文:归并排序相比那些效率低的简单排序,其实还说明了一个道理,就是将一个复杂问题分解成很多简单的问题,一个个解决,最后比直接解决复杂问题要省很多时间。
我:把大问题拆分成很多小问题,然后把小问题一个一个的解决,再合并,整合成大问题的解决方案。不知道会不会省很多时间,我的感觉是,也许难度降低了。小的问题一般比较简单,而且也容易开始。
或许在开始环节可以省时间,特别是有助于克服拖延症,但是在合并整合的环节,可能要费更多的时间,因为一个大问题,有可能并不是小问题的简单相加。出现这种问题的原因,有可能并不是把大问题拆分成小问题导致的,而是拆分的时候,忽略了一些问题,或者说拆分的不够完整细致。也就是问题出在拆分环节,而并不是在最终整合。
第三讲:快速排序:要想提高效率就要少做事情
原文:计算机算法和组织的管理,乃至社会的管理,在道理上有相通性,想要提高效率就是要少做事情。一个社会的管理,要想效率高,最简单的办法就是对每一个人作一些区分,而效率最低的办法就是刻意追求所有人一律平等,不作区分。可以想象,当一个学校的学生水平都比较接近,老师教起来就容易,因此按照成绩对学生作一个初步的划分是有道理的,特别是在资源不足的情况下。
留言被精选:从快速排序对效率的提高,拓展到美国私营公司的效率比政府高很多。这让我想到,人为地把人分成三六九等似乎不够政治正确,但或许是做事成功的正确方法,尤其资源有限一般是常态。近几十年来,中国政府的效率也比西方民主国家高很多。高升学率的中学都有尖刀班,实验班,A班等等不同叫法的分班。
他人留言的启发:
快速排序在生活中的应用,帮助我有效率地辨别事情的轻重缓急,学做减法和把握重要且紧急的事。把事情依“重要/不重要”和“紧急/不紧急”两个维度,划分成四个象限,这是很多时间管理一类的书,常会提供的工具。然而如此一来,会使每件事都得从头考量、评断后再放进分类,尚未开始工作就把时间花费在规划,顾此失彼。
更有效率的方法,可以用今天提到的快速排序。
首先找到一个显而易见的待办事项(枢纽),接着综合考虑急迫性和重要性,分成两拨。
再给两拨事情找枢纽,就把所有工作,依照评分分成四份了。
再接下来,我会快速检查后两部分的事情,将不必要的事做减法删除,将重要但不急迫的事情先预定计划。然后专注完成前两部分的事情,透过排序和减法,一天要完成的工作就只剩下约一半。枢纽这个节点,帮我们树立参考点,而事情一件件单看,很难取舍;但有了参考,一比较就能掂量差别,勇敢做减法了。
第四讲:计算机科学与计算机工程的区别
原文:科学要通过工程才能变成产品,才能改变世界,具体做工程时,思维方式和科学研究又有所不同。
科学常常指出正确的方向,而工程则是沿着科学指出的方向建设道路。科学和工程需要关注不同的事情,工作的环境也不同。
你可以看出不同的目的,对边际成本的看法是不一样的。因此,在现实工作中,没有绝对的最好,只有在给定条件下相对比较好。
留言被精选:把科学家和工程师的区别类比成方向和道路的区别,非常的清晰明了。
科学和工程需要关注不同的事情,工作的环境也不同。由此想到一个组织内部,不同部门之间的人,关注的也是不同的事情,工作的环境也不尽相同。所以当需要合作协同的时候,需要充分的沟通,有理有据的情况说明。最后还要互相妥协,才能达成最好的合作。
把这一点抽象提炼,可以得到的结论是:不同的目的,对边际成本的看法是不一样的。因此,在现实工作中,没有绝对的最好,只有在给定条件下相对比较好。这可以看作一个把问题抽象出来,抓住本质的小练习。
从谷歌产品部门的负责人劝说吴军老师的事例,学到了跟工程师打交道的一个方法。在现实工作中,也需要向数据部门提需求,尤其是改进的需求,常常引发争论。用有数据的客观事实说明改进的需要,可能更容易被接受。
科学家要关注的问题是方向,所以相对宏观。工程师要关注的问题是达成,所以更关注细节和可落实。这也有点类似于领导层和执行层的区别。如果方向错了,损失惨重。当然在履行领导职能的时候,需要更多的考虑一下执行层是否可以操作,否则只能沦为空想。而执行层在操作的时候,必须更多的正确理解领导的意图,否则变成白干。不知道是不是因为这种不同,所以领导层离钱更近。
第五讲:问答
1.如何将问题抽象出来,以便抓住本质
2.快速排序,对效率的提高。
3.职场中年轻人多做事与做减法的关系。
做减法不等于不主动,关键是把事情做好,而不是做的多。五个50分的工作不如一个一百分的工作。
4.如何检验大学生的软实力?
我的感想随笔
作为一个身兼多重角色的职场女性,工作和家庭的事情非常多,自己还要学习提高。我总是力求最快最好的完成手头的事情。我用清单记录要做的事,给所有的事情按重要和紧急程度分类,提前做规划,这些都有一定的帮助,但效率和效果的提升很快就遇到了瓶颈,人也经常陷入焦虑和忙碌。从专栏知道了笨人的工作方式,以及少做事的智慧,立刻开始对自己的方式进行调整。
在工作上,牢记不在于开了多少次头,而在于结了多少次尾,尽量把自己手头的重要工作都能够完整的做好。虽然目前时间还短,但已经有两三件事获得了比较广泛的认可,自己也对工作充满了成就感和掌控感。
生活上的琐事比较多,也很难分出轻重缓急,这个时候就是要当一个笨人,一件事一件事的做,不要过于高估自己。同时还要鼓起勇气,大刀阔斧的砍,有些事情真的不一定非做不可。现在又通过学习计算机排序的算法,能够最快的把要做的事情排出顺序,虽然客观世界似乎并没有更多的改观,但自己内心充满了自信和愉悦。更有掌控感的安排自己的生活和工作,感觉真好。
一件事一件事的做,不要并行处理,才是效率最高的工作方式。完成一堆效果不太好的工作,不如挑一两个最重要,能发挥最大效果的事,努力做到最好。