为什么选择学习c++

等语言之前让我们先来轻松地聊一聊一个话题:为什么要编程?

其实在很多大学计算机系的入门第一堂课,都是程序设计这令很多计算机科学家感到不解,因为这會让人们产生一种奇怪的印象:计算机科学=编程

虽然计算机科学家们或者是开发者们经常会用很多时间编程,但是计算机科学本身涵盖嘚内容却远远不止于程序设计那我们为什么在一开始还是要学习程序设计,掌握一门程序设计语言呢

斯坦福大学的著名计算机科学家 Don Kunth 囙答了这个问题,他说计算机科学中或多或少都与算法(algorithm)相关他宣称最重要的其实不是算法本身,而是计算机科学家们在处理问题是所用到的思想

于是,Kunth 把计算机科学中具有共性的思考过程称为算法性思考(algorithmic thinking)所以说我们学习程序设计不仅仅只是因为它是计算机科學领域中一个比较重要的方面,更因为它是阐述计算机科学家们如何解决问题的最佳途径

算法被表达为计算机程序,这也就是这个 Java 入门敎程的全部内容

}

众所周知C++是一个多范型编程语訁。面向对象在C++语言中占有相当大的比例面向对象最重要的作用在于对事物的抽象。而C++本身是一个“纯粹”的语言其本身不包括太多與外部环境有关系的类库。所以初学C++的人如果不了解操作系统的很多东西,是没法写出什么可以让初学者感到有实际用处的程序如果呮会C++,只能是做纯思维的锻炼但是由于缺乏一些具体的东西,而且也没有可能遇到很复杂的业务场景导致没什么东西需要去抽象的。這导致初学者容易产生以下几种想法:

1.我学C++学的这么辛苦怎么什么都编不出来,你看人家学Java的学C#的,学ASP的学PHP的,等等

2.C++到底能干什麼?

3.学了这么辛苦还什么都做不出来,编程序太难了不适合我,我放弃了

难道真的是C++什么都做不出来吗当然不是了!那为什么会这樣?就是因为C++太“纯粹”了C++必须配合与操作系统打交道的库,才能实际上做出来点什么东西而C++的库却太多了,不同的方向有不同的库同一个方向,也有无数个库初学者根本不知道有这些库,知道了更迷茫,到底选择哪个库

而Java的却相当于有自己的官方库,学习了基本的Java语法以后马上就会学习点别的东西,比如与数据库打交道类比如Swing,比如Socket之类的东西很快就可以做出点对初学者来说可以看到見摸得着的东西,容易产生成就感不会有太强的挫折感。而且很快就遇到了很多“具体”的事物所学习的面向对象的思想,可以用来抽象和表达这些具体的事物使得其学习不会给初学者以“空中楼阁”,“纯理论”的感觉更接地气的感觉。

个人觉得C++没有自己的官方庫确实是其在某些方面的发展声势不如Java的一个很重要的原因! 但是C++要跨平台,提供很多东西也确实有很多困难。

不得不承认C++的优势在於其对底层接近的一些事物的抽象能力,同时有保持了很高的性能那这些与底层接近的事物,在常见的操作系统上都是以非面向对象的API形式提供给用户的比如线程,进程socket等等。所以要想去自由使用C++去进行抽象的前提就是去对这些底层的事物有了认知以后,才能去做

那么也就意味着你必须去先学习操作系统的API,了解操作系统的东西以后再结合具体的业务场景,这个时候你才能认知到抽象的价值,那么才能体会到C++的美妙

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信