第1课 学习 C++ 的意义

1.  回顾历史

(1)UNIX操作系统诞生之初是直接用汇编语言写成的。随着UNIX的发展,汇编语言的开发效率成为一个瓶劲。

(2)1971年,Ken Thompson和Denis Ritchie对B语言(解释型)进行改良,使其能够直接产生机器码,C语言(编译型)诞生。

(3)UNIX开始用C语言重写,同时C语言在实践的过程中得到发展。

2.  C语言的特点

(1)C 语言是在实践的过程中逐步完善起来的,没有深思熟虑的设计过程,仍残留过多低级语言的特征

(2)C语言的目标是高效,追求最终程序执行的效率要高。

3. 软件方法论的发展

3.1  面向过程程序设计:数据结构 +  算法,主要用于解决科学计算问题,用户需求简单而固定。

(1)特点:

  ①先分析解决问题所需要的步骤

  ②利用函数实现各个步骤

  ③依次调用函数解决问题

(2)问题:软件可重用性和可维护性差

3.2 面向对象程序设计:由现实世界建立软件模型,将现实中的事物直接映射到程序中

可直接满足用户需求。

(1)特点:

  ①直接分析用户需求中涉及的各个实体

  ②在代码中描述现实世界中的实体

  ③在代码中关联各个实体协同工作解决问题

(2)优势:

  ①构建的软件能够适应用户需求的不断变化

  ②直接利用面向过程方法的优势而避开其劣势

4. C语言的加强

(1)当面向过程方法论暴露越来越多的缺陷的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题就是:高效的面向对象语言,并且能够兼容己经存在的代码。即C语言 + 面向对象方法论(如Objective-c和C++语言)

(2)C语言和C++并不是对立的竞争关系。C++是以C语言为基础的,并且完全兼容C语言的特征,C语言的加强,是一种更好的C语言

(3)学习C++并不会影响原有的C语言知识。相反,会让我们学到更多的软件设计方法

5. 学习C++的优势

6. 为什么要为以后学习其他语言做准备

(1)现代软件产品架构图

(2)实例:商场收银系统架构图

(3)现代软件产品的特性

  ①系统一般是由多种语言写成的

  ②系统架构的目标是拥抱用户需求的变化

  ③系统拥用较好的移植性

  ④系统能够方便的部署和更新

  ⑤操作系统和驱动程序的开发在现代软件产品中占据的比重越来越小

7. 学习C++的意义

(1)C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法

(2)C++是Java/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言

(3)C++是各大知名软件企业挑选人才的标准之一

8. 小结

(1)所有的软件系统都是为了满足用户需求而开发的

(2)对于一个开发团队而言,在短期内开发出用户满意的软件系统是其核心竞争力的体现

(3)对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现

(4)对于一个架构师而言,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其核心价值的体现。

时间: 2024-08-25 21:30:19

第1课 学习 C++ 的意义的相关文章

第1课 - 学习C++的意义

第1课 - 学习C++的意义 1. 对C++的一些误解   ××× (1)操作系统和驱动都是用C写的,学好C就够了.               (驱动和操作系统开发属于极少部分的人) (2)C++在应用层用的多,学嵌入式的没必要学.                (嵌入式系统应用程序开发也需要C++) (3)以后就做驱动开发了,没精力也没必要学习C++了.        (掌握一门编程语言不可能支撑整个职业生涯) (4)Linus大神都认为C++一无是处,还学它干嘛?            

第1课 - 学习Lua的意义

学习Lua的意义 1.Lua简介 (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目标是嵌入在C/C++中,为应用程序提供灵活的扩展和定制功能 (5) 不适合用于开发独立的应用程序 2.Lua产生的原因 C/C++工程中有大量的业务逻辑,而业务逻辑经常发生改变,这就需要更改源代码.由于C/C++是编译型语言,源码一旦改变就需要重新编译整个工程,在面对代码量很大的工程时需要耗费大量的时间.因此产生了一种想法

java视频课学习感悟

在为期7天的朗沃视频课学习中,我不仅收获了知识,还明白了许多道理. 从知识层面来讲,我学习的有: 1.c#环境开发工具--VS,它不同于java环境开发工具(eclipse): 2.C#语言中的关键字.基本类型(int.short.char.string.double.long.float.byte.bool): 3.C#语言基本类型运算规则.运算符号: 4.C#语言流程控制语句(if判断语句.switch判断语句.while/do  while循环语句.for循环语句.foreach循环):

SHELL第二课学习笔记

SHELL第二课学习笔记 A.脚本规范申明信息: #!bin/bash #Date 14:00 2014-1-30 #Author xiaoping #Mail [email protected] #Function: Thsi scrits funcion is .... #version 1.1 ~ B.注意点: a.成对内容一次写出来 {}.[].''.``.""# b.[]中括号两端需要空格 c.流程控制语句一次性写完格式 d.vi多行缩进 按v进入visual状态,选择多行,

SHELL第一课学习笔记

SHELL第一课学习笔记 什么叫Shell shell是一个命令解释器,它在操作系统最外层,负责直接与用户对话,把用户输入的命令解释给 操作系统并处理各种各样的操作的输出结果,输出到屏幕返回用户(交互式或者非交互式). 案例1.简单清除/var/log下的messages日志脚本: #!bin/bash cd /var/log cat /dev/null > messages echo "Logs cleaned up" 案例2.包含变量.命令.流程控制语句清除/var/log下

深度学习——历史及意义

参考文献:深度学习 历史: 2006年,Hinton给出了突破的一步. 2013年,李彦宏高调宣布成立深度学习研究院. 目前,很多领域的state-of-the-art被深度学习占领. 意义: 通常,传统的方法需要手动提取特征: 虽然,现在有许多牛逼的特征,如sift.hog特征,但是,手动提取特征很不方面,也不够“mechine learning”.另外,对于一个给定的问题,你要选择什么特征?你是挨个试试还是多练然后总结出一套经验?很显然,这种“mechine learning”让人怀疑.于是

学习C++的意义

1,常见的观点: 1,并不是每个应届生都有机会写操作系统和驱动程序: 2,嵌入式系统也是软家系统,只不过是软件在出厂的时候已经被烧写到硬件中了,用户没有办法修改软件而已,因此嵌入式系统也是软件系统,C++还是应用的比较多的: 3,今天软件行业飞速发展,一种语言支撑职业生涯,那是不可能的,并且今天的驱动开发也成为软件行业比较小的领域,绝对不能有以后就从事某个职业的观点,这在以后是不足以支撑整个职业生涯的: 4,C 语言天生为开发操作系统而来的,Linus 大神一生都致力于系统开发,至于他而言,确实

linux 2017-12-11 第1周第1次课 学习笔记

学习目标: 1:一但出发,必到达. 2:争取在半年完成基础学习. 3:出发目标8K,一到两年争取有18K-26K (会不会更高呢?) 学习制度: 五次不完成当日课程退课. 铭哥联系:QQ·微信·电话·不回复黑名单. 班主任发消息:必须回复表示收到. 必须有:课程笔记·有让傻瓜都能看得懂的笔记. 课程笔记·心得·问题·要发博客. 分区: /BOOT 200M(系统启动项目录) SWAP 2G 虚拟内存目录(是物理内存的两倍,最高8G) /   剩余空间(根) 网络: NAT模式: 让虚拟系统借助N

学习数据结构的意义

1,为什么要学习数据结构? 1,语言学习结束之后是否有能力进行项目开发? 1,不能,要学习数据结构: 2,当面对一个问题的时候如何思考解决方案? 1,多练习: 2,通过学习数据结构这门课程进一步训练: 3,如何判断代码效率的高低好坏? 1,数据结构里面的准则: 4,怎样才能提高自己的编程能力? 1,多练习.多思考: 2,通过学习数据结构来练习提高数据编程能力: 2,学习数据结构意义: 1,培养专业的程序设计思维: 1,语言只会越来越简单.越来越多的人会掌握一门语言: 2,语言只是工具,必须练习程