C++学习的意义

一. 一般的看法

  1. 操作系统和驱动都是C写的,学好C就够了

  2. LINUX大神都认为C++一无是处,学他干什么?

  3. C++在应用层用的多,学嵌入式的没必要学

  4. 以后做驱动开发,没精力也没必要学习C++.\

二. 一些历史

  1. UINX操作系统诞生之初直接用汇编语言写成的。

  2. 随着UINX开发,汇编语言进入了一种瓶颈。

  3. BCPL语言成为了当时选择之一。

  4.KEN Thompson对BCPL进行简化得到了B语言。

  5.B语言不直接生成机器码,而是编译生成中间码之后解释执行。

  问题:解释性语言的执行效率不足以胜任操作系统的开发。

  6. 1971年,Ken Thompson对B语言进行改良,使其产生机器码,C语言诞生了。

三. 软件方法论的发展

  面向过程程序设计:数据结构 + 算法

  * 主要解决科学计算问题,用户需求简单而固定

   特点:

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

    *利用函数实现各个步骤

    *依次说调用函数解决问题

  问题缺点:

    *软件可重用性差

    *软件可维护性差

    *构建的软件无法满足用户需求。

  

  面向对象程序设计:由现实世界建立软件模型

  * 将现实世界中的事物直接映射到程序中,可直接满足用户需求

  特点:

    *直接分析用户需求中设计的各个实体

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

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

  优势:

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

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

四. C语言的加强

  1. 高效的面向对象语言,并且能够兼容已经存在的代码

  2. C语言 + 面向对象方法 = C++

  3. C语言和C++并不是对立的竞争关系

  4. C++是C语言的加强,是一种更好的C语言

  5. C++是C语言为基础的,并且完全兼容C语言的特性。

  

五. 现代软件产品架构图

  

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

  

六. 现代软件产品的特性

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

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

  * 系统拥有较好的移植性

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

  注意:操作系统的修改和驱动程序的开发在现代软件产品中占据的比重越来越小。

七。小结

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

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

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

  4. 对于一个架构师,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其架构生涯的第一步。

八. 学习C++的意义

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

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

  3. C++是各大知名软件企业挑选人才的标准

时间: 2024-10-23 23:02:17

C++学习的意义的相关文章

努力学习的意义到底在哪里?(转载知呼上的答案)

作者:建筑速算器链接:https://www.zhihu.com/question/27513493/answer/88940491来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 因为在命运面前,没有别的抓得住的东西. 学习这件事,很多时候,真的挺没用的. 一个人这辈子能混成什么样,谁来定?有句话很有名:“一命二运三风水,四积阴德五读书.”当年在学校论坛上看到,不屑一顾.现在进了社会几年,才终于明白这句真理的沉重. 跟命运比起来,学习算个屁呢. 一个人生下来,是生

学习数据结构的意义

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

jQuary学习-什么是jquary? Js与jquary之间的关系 Jquary选择器

1.  什么是jQuery以及学习的意义等 jQuery是一个js库 JS库是什么? 把常用的方法,进行封装,封装到一个单独的js文件当中,要用的时候直接调用. 学习jQuery主要学什么? 学习jQuery提供给我们的方法 2.jQuery的使用步骤 1)引入jQuary包 2)写进入口函数 入口函数的两种书写方式: 方式一: $(document).ready(function(){ }); 方式二: $(function(){ }); 3) 写入需要实现的功能 例: <script src

机器学习技法-深度学习

课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要! 1.浅层神经网络与深度学习 2.深度学习的意义,减轻每层网路的负担,简化复杂的特征.对复杂的raw feature 学习任务十分有效,例如机器视觉,语音. 下面数字识别中,将像素特征转为笔画特征进行学习,而不知直接对整个数字特征学习 3.深度学习面临的问题和关键技术.随着神经网络的层数增加,可以设计出各式各样的神经网络结构,很难选择出对问题有用的结构.模型的复杂度和计算量

WebApi学习笔记06:使用webapi模板--仓储模式--Unity依赖注入

1.Web项目 1.1概述 对数据操作封装使用存储模式是很常见的方式,而使用依赖注入来降低耦合度(方便创建对象,可以抛弃经典的工厂模式)…… 1.2创建项目 1.3添加模型 在Models下,添加Product.cs: namespace WebApi06.Models { public class Product { public int ID { get; set; } public string Name { get; set; } public decimal Price { get;

各类学习网址、资源

[在学习.工作当中发现很多很有学习借鉴意义的网址] 1.一套绝佳的图标字体库和CSS框架:   http://fontawesome.dashgame.com/ ps:很多图标的特效,有介绍使用方式,图片资源很多,满足大部分图片需求,与easyui基本无缝接入 2.ASP.NET+MVC5+EF6+EasyUI:      http://www.cnblogs.com/ymnets/p/3424309.html  ps:某位大神通过博客分享技术,徐徐渐进的方式比较适合初学者以及巩固复习的人,内容

学习英语

前言 著名语言学家Greg Thomson说的:“外语学习的原理是如此之复杂,以至于没有人能说清楚:但掌握语言的过程又是如此之简单,以至于不需要说清楚.”讨论语言学习的原 理,是件非常复杂的事,在下当然也没把握能描述得很清楚.而且因为外语学习就连学术界都存在很多尖锐的争论,本人也不敢说自己有把握能把争论化解.但还是 决定先从简单入手,做些抛砖引玉的工作吧,探讨一下外语学习的真谛,特别是对大家在外语学习上普遍存在的误解进行分析和澄清,希望能对外语学习者有所帮 助,对外语教学工作着有所启发,就知足了

大数据课程学习流程

第一阶段 Java编程基础→oracle/mysql→sql优化→jdbc 第二阶段 JavaScript基础→JavaScript深入→jQuery→jquery easyui→bootstrap 第三阶段 Servlet/jsp→ajax→xml→svn→maven实战项目一 第四阶段 Struts2→hibernate→spring/spring mvc→项目实战二→web serviceshiro→mybatis→项目实战三 第五阶段linux+搜索+hadoop体系 Linux基础→s

【机器学习基础】理解为什么机器可以学习1——PAC学习模型

引言 自从下定决心认真学习机器学习理论开始,接触到很多基本问题,但其实都不是很理解,比如损失函数.风险函数.经验结构最小化.结构风险最小化.学习方法的泛化能力.VC维等,这些概念在学习中都纯属空泛的概念存在,我都不理解这些概念存在的意义. 为什么会存在这样的问题呢?我自己想了一下,有几个原因:首先,很多相关的书籍在讲授这些概念的时候,很少说这些为什么会有这样的概念问题,为解决什么问题引入的这些概念:然后,还有一些书,在简单表述了这些概念之后就立马挨个介绍算法了,遇到这样的书也会忽视这些基础问题的