非计算机专业学生或者没有以编程为职业打算的人,不需要学习编程语言,非要学习可以试试Python,面向应用的高级库多,学了对大部分人都有点用;语法简洁,容易上手。

C++则应当成为计算机相关专业初学者的第一门编程语言、至少也应该是其中之一,C排在C++之后,理由:

1:C++的内存管理相对于C,对于初学者来说有非常重要的改进。C++相对于现代不少有所谓垃圾回收特性的语言,的确比较简陋,但是其自带的类的构造和析构只需要学一点点就可以给初学者级别的程序提供足够的内存管理支持。

2:编程泛型多,学一C++个就相当于获得了:C风格的命令过程语言 + 基于类的面向对象语言 + C++11标准后的简陋的函数式语言,一举三得。值得一提的是,每一个新风格的叠加都是在现有系统的基础上实现(比如设计C的时候根本不会想到还会扩展为C++,而C++必须高度兼容C),这是一个非常有挑战的工作,C++之父Bjarne Stroustrup的《The Design and Evolution of C++》就描述了部分C++语言设计的过程,非常有价值。

3:基础库屏蔽了大量初学者容易出错的细节,以STL的string为例,这个库虽然简单,但是居然在C之上搭建的C++中实现了和许多现代的很高级的语言使用字符串一样的体验。换做是C,很多初学者就不太容易搞明白strcat, strcmp, strcpy等等那套几乎针对内存操作的字符串处理机制是怎么回事,再结合例如缓冲区溢出预防,正确分配和释放内存等等问题,学习曲线会很陡。

4:编程语言特性多不代表你必须学完全部特性才能开始应用。C++那么多特性怕是不少C++的实现者都不能说自己完全“精通”,对于初学者来说,学会对初学者最友善的,最简单的那部分(STL,基本的类)已经能帮助解决很多问题甚至开始写一些小型软件了。

5:不过分脱离底层,计算机专业得用更加接近所谓“底层”的语言,“底层”值的是了解我们这个世界最流行的机器架构中,数据是怎么在内存中流动的,高级语言写出的一些语句实际在机器中执行大概要经历什么过程,以维基百科里快速排序词条里的某所谓高级语言写出的快速排序为例:

  sort []           = []sort (pivot:rest) = sort [y | y <- rest, y < pivot]++ [pivot] ++ sort [y | y <- rest, y >=pivot]

如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

从代码字面看来,算法的思想的确描述得很简单,但是如果直接给初学者看这段代码,初学者如何想象它为什么叫“快速排序”?这一条实际上跟第三条略微有点矛盾,不过参考第四条,初学者可以在学习的不同阶段自由选择已经掌握的特性。

综上所述,C++是计算机专业初学者的第一门编程语言的最佳选择。

初学者是学习 C 语言还是 C++ 好?各有何利弊?相关推荐

  1. 初学者如何学习C语言,C语言从入门到精通学习全路径

    目录 一.C语言的基础知识 1.安装C语言编译器 2.学习C语言基础语法 3.练习C语言编写 二.C语言的进阶应用 1.掌握C语言数据结构和算法 2.深入了解C语言底层原理 3.了解C语言的高级主题 ...

  2. c语言错误出在花括号上,初学者在学习c语言编程过程中常出现的错误分析

    在高校经常中开设的第一科关于程序设计的语言就是C语言,这种语言有很多优势,比如说使用比较灵活,功能比较强大,可以用于编写程序.软件,但是对于初学者来说, 1 0 8 应用方法论 22第霸 0赫 6乱 ...

  3. 写给初学者──如何学习C语言

    学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通.如何以最小的代价学习并精通C语言是本文的主题.请注意,即使是"最小的代价",也绝不是什么捷径,而是以最短的时间取得最多 ...

  4. python好还是c语言好-初学者先学习python语言还是C语言

    有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...

  5. python语言编程入门先学什么-初学者先学习python语言还是C语言

    有人觉得应该从C语言开始入门,原因如下: 1.C语言是你上大学第一门接触的编程语言,可见它的重要性. 2.C语言是一种面向过程的语言,而Python是一种面向对象的解释型计算机程序设计语言.而你需要先 ...

  6. c语言编程星空代码,写给初学者──如何学习C语言

    ALX的BLOG熊窝BLOGtianyeww的BLOG平安年间BLOG陈胜纲的BLOGnmdd的专栏甜蜜的T007之家心雨阁张宴的BLOGMilo的BLOGknight的BLOGFreeBSD之旅我的 ...

  7. 初学者自学python要看什么书-初学者如何学习Python?掌握这17个实用小技巧快速入门!...

    在开始今天的话题之前,我们先讨论一个问题:编程初学者应该学习什么语言好? 每年每天都会有很多新入门的同学提出这个看似简单却又让人一下难以给出准确答复的问题.作为新手,纵然自己抓破脑袋,凭空也想象不出哪 ...

  8. python初学者怎么入门-初学者如何学习Python?掌握这17个实用小技巧快速入门!...

    在开始今天的话题之前,我们先讨论一个问题:编程初学者应该学习什么语言好? 每年每天都会有很多新入门的同学提出这个看似简单却又让人一下难以给出准确答复的问题.作为新手,纵然自己抓破脑袋,凭空也想象不出哪 ...

  9. 不要这样学习C语言,这是个坑!

    对于大部分初学者,学习C语言的目的是希望做一名合格的程序员,开发出靠谱的软件来.但是学了C语言的基本语法后,发现只能开发"黑底白字"的DOS程序,完全没有漂亮的界面和生动的交互.于 ...

最新文章

  1. mysql自动备份脚本,及系统定时备份设置!
  2. zTree菜单的排序
  3. 201609计算机控制技术作业三,计算机控制技术大作业2015..doc
  4. Java中值传递和引用传递原理以及区别
  5. 沈阳职业计算机学院宿舍几人间,沈阳工学院宿舍怎么样 住宿条件好不好
  6. 【报告分享】人工智能2020:落地挑战与应对.pdf(附下载链接)
  7. 做网店大家千万要注意
  8. 回到顶部的几种实现方法
  9. python实现邮件发送图表_python基于SMTP实现可视化邮件发送
  10. 大数据十道经典海量数据处理面试题与十个方法大总结
  11. 【解决方案 二十五】如何对Excel表数据进行彻底转置
  12. S5P4418裸机之SDIO程序
  13. [vue] 主题设置
  14. EDI Capability 表示什么?
  15. 祭奠被消亡的CSDN文章
  16. B站弹幕姬,弹幕礼物感谢,关注感谢,自动回复,房管工具,房管助手,基于java
  17. java 手动垃圾回收_java如何进行垃圾回收的
  18. Ublox GPS模块型号入门介绍
  19. [Unity]腾讯SDK踩坑之路(2)--配置Xcode工程(MSDK和米大师配置代码冲突)
  20. z—libirary最新地址获取,zlibirary地址获取方式,zliabary最新地址,zliabary官网登录方式,zliabary最新登陆

热门文章

  1. 2021年Z世代“潮力量”洞察报告
  2. 2020年产业互联网发展报告
  3. 做产品,大公司克制,小公司放纵
  4. 2021十大金融科技趋势
  5. 作者:龚南宁,数据堂(北京)科技股份有限公司对外合作部副总监
  6. C/C++ 中嵌入汇编总结
  7. 数据结构与算法(一) 线性表之顺序表
  8. nodjs npm 报错:Segmentation fault: 11
  9. 关于COCOS2D-X 中的音乐与音效应用的备注
  10. SMTP连接器的使用