前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机科学和工程的关系

计算机科学和工程的关系

作者头像
公众号iOS逆向
发布2023-08-18 15:30:44
1580
发布2023-08-18 15:30:44
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全

引言

科学要通过工程才能变成产品,才能改变世界。

计算机科学在一个相对理想的状态下工作,这将注意力集中在量级的改进上。

在工程中必须使用在科学上最好的方法,然后再作细节的改进。

先找到极限所在,然后在极限里寻找具体问题的答案。 工程师知道,任何产品的性能都有一个物理上无法突破的极限,这个极限是可以通过已有的理论直接给出。

在现实状态的产品中,要考虑各种细节。

产品经理在没有数据之前不要轻易给出结论。

I 预备知识

1.1 广义上的科学和狭义上的科学

  • 广义上的科学:任何成为体系的、能够自洽的知识。
  • 狭义上的科学:源于古希腊,建立在严格逻辑推理之上,后来在近代西方科学方法基础上发展起来的,可以证实和证伪的完整体系。

科学是系统的,是在逻辑的基础上不断递进的,而不是各种知识点简单的结合。我们的学习也应该是系统的,只有这样我们才能获得可叠加式的进步。

科学不同于解决实际问题的技术,它需要很多先决条件。

科学需要从业者有比较纯粹的探索精神,远离物质的诱惑。

1.2 科学是一种求真的过程

是一种对世界的态度,是理解世界的观点,和日常做事的方法。

科学的结论总会过时,成为过去,但是信念永存,方法永存。 真理都是有局限性的,它们是在一定范围内解决我们的困惑、我们的问题。

1.3 科学的方法

从事实出发,讲究逻辑,得到合理的结论。

学习打篮球:教练先教你对大部分人都适用的投篮要领,然后观察你的投篮,根据你姿势中一些不好的动作,告诉你一套可以遵从的方式。

1.4 量级思维

数量级指一系列 10 的幂:数量级每差出一级,数据相差十倍左右。

个、十、百、千、万

量级是一种方便表示数量级的方式,通常使用科学计数法表示。

地球的质量是5.98x10^24千克,其中 10^24就是量级。 量级简单地讲,就是芝麻、橘子、西瓜、大象、大山、地球、太阳、银河系这样大的差别。

一个人在公司的成就:成功率x事情的量级x做事的速度

提高事情的量级需要不断学习,转变自己的角色。

从老师转型成校长,就有了量级上的突破。

对不同规模的问题要采用不同的方法

II 计算机科学

2.1 计算机科学的工作

  1. 第一步:将我们这个世界的现实问题变成一个数学问题,这就是计算机科学家们做的事情。

对于绝大部分计算机科学家来讲,他们不需要自己真的去设计制造计算机,而是做好现实问题到计算机问题的转化。 还有一部分科学家在研究如何让计算机变得更快更强大。

  1. 第二步:将数学问题重新描述一下,变成计算机能够处理的问题,这就是计算机工程师的工作,这个重新描述的过程,其实就是把人的自然语言变成计算机程序语言。

2.2 计算机科学的基本做事原则:比较标准

明确一个公平的比较标准:过滤掉所有次要的因素,构建一个理想的环境(虚拟的环境),构建可比较的、容易对比的、理想的平台。

应用场景:首先明确游戏规则,然后再开始做研究,确定基线,对比方法的优缺点。

将世界理想化的目的:找到真正的主要矛盾,过滤出那些相对次要的噪音。 将问题抽象出来,以便于抓住本质。

案例:

  1. 伽利略和牛顿在研究运动时,假设空气阻力和摩擦力可以忽略不计的,来构建理想状态。
  2. 科学家波义耳和马略特在研究气体压强和空间大小的关系时,也是先构造出理想的气体状态。
  3. 亚里士多德因为无滤除空气阻力对重力加速度的影响,得到了重物比轻物下降速度快的荒唐结论。

2.3 计算机思维的本质

计算机思维:伴随着计算机出现的思维方式。计算机思维的本质:翻译

把人想要做的具体事情,翻译成计算机能够懂得的程序语言。 软件开发中的关键任务就是理解并处理反映软件构成的复杂概念。

III 计算机工程

3.1 计算机科学和工程的关系

科学家考虑的是对和错,工程师只是在现有条件下考虑好和坏的解决方案。

一个合格的软件工程师,要知道采用别人已经写好的,被长期证明运行无误的源代码,作为自己开发新产品的工具,这样才能把精力集中在解决前人未解决的问题上。

科学家告诉大家这件事的可行性,但工程师要明白怎么做。

工程师的工作:科学变成技术再变成产品

3.2 工程思维:在边界里面做事情,遵循一套工程思路解决问题。

https://blog.csdn.net/z929118967/article/details/131559831?spm=1001.2014.3001.5501

先找到极限所在,然后在极限里寻找具体问题的答案。

在工程中必须使用在科学上最好的方法,然后再作细节的改进。

3.3 合格的工程师处理不同量级事物时的做法

好的工程师最重要的能力是了解最新的科学进展,并且根据实际情况使用最新的技术解决实际问题,考虑预案。

成就=成功率x事情的量级x做事的速度

不断学习,转变自己的角色,提高事情的量级。

合格的工程师处理不同量级事物时的做法:

  • 考虑量级的差异: 小量级和大量级的东西放在一起,前者必须被忽略掉。
  • 几个小量级的东西放在一起,远比不上一个大量级的东西。
  • 试验和测试非常重要,任何代码不做到几乎100%的测试覆盖率,是不能开始系统调试的,而不经过仔细的调试和小范围用户测试,是不能上线的。
  • 大的目标要分解成简单的,一个个解决, 一个复杂的问题如果能拆成两个等价的简单的问题。
  1. 工程师要懂得从量级上改进工程方法,这样的收获几万倍,甚至更多。
  2. 工程师要能够梳理出一个难题中各个因素在量级上的不同,知道把那些无关紧要的事情从自己的To Do List上删掉。
  3. 工程师要想着在更有影响力的事情中,参与1%。
  4. 产品经理要想怎样能让用户为你的产品多掏一倍的价钱,懂得在细节上做1%的改进,让产品的品质显得高出一个数量级。

Mac的视网膜显示屏成本比一般的显示屏价格贵不了10美元,但可以让电脑多卖一百多美元,而且用户的感觉好了不止一倍。

  1. 投资人要想办法写出最大的一张支票。
  2. 讲师要想如何当好校长。

IV 计算机科学和工程的区别

4.1 方向和道路之分别

科学指出正确的方向,工程沿着科学指出的方向建设道路。

在工程上,专业人士和业余爱好者的一个差别就在于是否了解极限的存在。有了这个理论极限,做事就不至于异想天开。

工程师掌握的知识是做事情的基线,之所以接受教育,就是为了提高基线。

4.2 关注不同的事情,不同的工作环境。

计算机科学家聚焦在量级上提高性能,需要构建理想的环境,摒除一些不必要的干扰,把主要矛盾突出出来。

科学家要变为工程师,思维方式需要改变,要从理想状态进入到现实状态。

好的工程师最重要的能力是了解最新的科学进展,并且根据实际情况使用最新的技术解决实际问题,考虑预案。

工程上节省几倍的时间是很有意义的,在工程上需要计较2%的运行时间。 找到极限所在,然后在极限里寻找具体问题的答案。

4.3 跟钱的距离不同

科学家要离短期的利益远一点,才能把目光放远

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • I 预备知识
    • 1.1 广义上的科学和狭义上的科学
      • 1.2 科学是一种求真的过程
        • 1.3 科学的方法
          • 1.4 量级思维
          • II 计算机科学
            • 2.1 计算机科学的工作
              • 2.2 计算机科学的基本做事原则:比较标准
                • 2.3 计算机思维的本质
                • III 计算机工程
                  • 3.1 计算机科学和工程的关系
                    • 3.2 工程思维:在边界里面做事情,遵循一套工程思路解决问题。
                      • 3.3 合格的工程师处理不同量级事物时的做法
                      • IV 计算机科学和工程的区别
                        • 4.1 方向和道路之分别
                          • 4.2 关注不同的事情,不同的工作环境。
                            • 4.3 跟钱的距离不同
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档