
1. 应用程序
1.1. application
2. 软件层次
2.1. 软件也是分层组织的
3. 编程
3.1. 有时候知道并不是所有的编程任务都很困难也是很有帮助的
3.2. 每个浏览器都包含JavaScript,所以不需要下载软件来编程
3.3. JavaScript程序通常作为网页的一部分运行,尽管不在浏览器中运行的应用正在增加
3.4. Python非常适合对大量潜在应用进行日常编程
3.5. 编程语言的某些基本概念是相通的,因为这些概念都是为了表达一系列计算步骤而发明的
3.6. 编程语言具有语法,而语法就是一系列规则,根据它们可以判断什么符合语法,什么不符合
3.7. 语言本身:告诉计算机进行算术运算、测试条件和重复计算的语句
3.8. 可以在自己的程序中使用别人编写的代码库;这些都是预先写好的,你不必自己写
3.9. 可以访问程序运行的环境
3.10. 算法
3.10.1. 算法是一系列精确、无歧义的步骤,可以执行某种任务,然后停止
3.11. 复杂性
3.11.1. 算法的复杂性是对算法要执行的工作量的抽象描述,以基本操作作为度量依据,以计算次数如何依赖数据项的数目来表述
3.12. 库和接口
3.12.1. 编写一个在真正的计算机上运行的程序涉及很多常见操作的接口细节
3.12.2. 库以及类似的机制可以提供预制的组件,供程序员在编写自己的程序时使用
3.12.3. JavaScript作为一种扩展机制在复杂的Web应用中扮演着十分重要的角色
3.12.4. Google Maps就是一个很好的例子,它提供了一个库和一套API,于是地图操作就可以通过JavaScript程序,而不仅仅是鼠标点击来控制了
3.12.5. Python最大的优点之一是有大量的库集合供Python程序员使用
3.12.6. 接口或者API(应用程序编程接口)是提供服务的软件与使用该服务的软件之间的一种约定
3.13. Colab是一种被广泛使用的交互式工具—Jupyter Notebook的云版本,Jupyter notebook是一种基于计算机的物理笔记本的模拟
3.14. 编译器检查程序的错误,并将其编译成汇编语言指令
3.15. 算法是抽象的,而程序是对真实的计算机完成真实任务时的所有步骤的具体描述
3.16. 程序必须考虑内存和时间的限制,数值的有限大小和精度,不正常或恶意的用户,以及不断变化的环境
3.17. 抽象和虚拟化
3.17.1. 抽象是计算中的一种基本思想,从硬件到大型软件系统,在所有级别中都可以看到它的作用
4. Bug
4.1. 计算机不懂宽容,因此容易犯错的程序员必须写出某种程度上没有错误的程序来
4.2. 所有大型程序都有bug,并且不能完全按照意图运行
4.3. 某些bug仅仅是惹人讨厌,更像是设计得不好,并不像真正的错误那么严重
4.4. 在个人电脑领域运行的“接受或离开,没有保修”的模式,可能会被更合理的产品保修和消费者保护政策所取代,就像在硬件领域一样
4.5. 根据既往经验,因为程序是基于既有组件构建的,而原有bug都会被消灭掉,所以至少从原理上讲,程序中的错误应该越来越少
4.6. bug可能将永远伴随着我们
请在微信客户端打开
夜雨聆风