一、概述
曾几何时,利用 Google 搜索某问题的时候,意外地接触到了一个网站:https://www.gitbook.com/。一个在线编辑书籍、文章的文章,具体描述可以去其网站观看。该网站旧版地址:legacy.gitbook.com.
刚工作不到一年的时候,接触到公司的商业项目,逐步意识到编程说难不难,说不难也难。之前看文章说学计算机绕不开的两项技能:英语和数学,在此期间深刻体会到了其重要性。尤其是数学,我发现一般开发只需要中学数学知识就够了,尤其是高中数学,当年只是为了高考,不知有何用,现在真要感谢高数的数学老师。当然搞人工智能只有高中数学是不够的,我想从事人工智能行业的朋友应该对大学数学的作用有更深刻的认识。
编程中两项核心能力——抽象和逻辑能力,都可以通过扎实的数学训练得到加强。为什么说编程的核心能力也是难点所在是抽象和逻辑能力呢?数据结构与算法是大部分程序员头痛的地方,数据结构即抽象,是对现实世界的人和物的抽象表示;算法即逻辑。还有同样令人头疼的设计模式不也是因为太抽象了吗? 还有一旦涉及到软件系统设计,这也是抽象。
二、下面通过例子体会,高中数学在计算机的应用。
比如,编程语言的循环和递归,不就是数学归纳法的体现吗?
再如几个常见数学概念在计算机和软件开发中的体现,
1. 函数
数学函数三要素:定义域、对应法则、值域。
对应于编程语言中的函数:形式参数、函数主体(逻辑、计算规则)、返回值。
2. 命题
(1)命题的真假对应分支语句的真与假
分支语句判断条件有无遗漏,从以下两点分析:
a. 条件有没有遗漏
分支语句范围要完整,才不会有遗漏,导致逻辑错误。另外还要注意 else if 语句是排他的。
举例,else if 语句:
if(x > 60){……}else if(x > 40){……}else if(x > 20){……}
b. 条件有没有重复
三、结语
铺垫了那么长,就是想强调数学的趣味性和重要性。因此,本人就特意查找到了专门讲解有关计算机科学的数学的课程,准备好好学习,并翻译其教材,即精读。翻译工具即 Gitbook。
初步成果展示链接:https://finit-xu.gitbook.io/m…。也可以点击阅读原文查看课程详情。