知识点1:众多编程语言,为何选择C?

  现在我们的同学喜欢java,也参加很多java的培训班,java是比较热门,但是C语言在工业界依然有重要的地位,在很多领域无可替代,几乎所有和硬件打交道的地方都得要用C语言,比如再工业界大量实用的linux操作系统,几乎都是C语言编写的。

  至于编程语言的热度,参考TIOBE编程语言排行榜http://www.tiobe.com/tiobe-index// 的三张图:

    2017年2月份最新数据,C语言第二。每个月都会有新的数据出来。

  

  2002年到现在15年时间的一个走向,可以看出各个语言的起起伏伏,占据第一二名的一直是java和C,蓝色的线是java,黑色的是C,从整个趋势看,java的上下起伏大一些,在2002年的时候占据25%(越1/4的软件使用java写的),而在2004和2015年左右java掉到15%以下,而C在2002年的时候是20%多一点点,2008年跌到15%以下,而总体来说,特别是2010年后近几年在c和java不相上下,处于一个比较稳定的状态。java的起伏主要原因是java的替代语言出现,而C之所以一直相对稳定一些,主要是因为在很多场合,C语言是唯一的选择,比如说做操作系统,嵌入式操作系统等,只能选择C,也有的时候是C++,所以C语言在企业界有大量的应用,我们没用理由不去研究下C语言到底是怎么回事~

  从上图的2016年和目前来说,我们看到C和java都有个大滑坡,使得本来占据15%以上的C下降到目前的8%左右,主要原因是近年来软件开发工作逐渐向网站和移动设备应用程序靠拢,C 语言却难以应用其中,且 C 语言也不如 Java、C++ 和C# 等语言有大幅度的进化,而其他新兴的语言比较能胜任这项任务,在上图中也看出其他语言在2016以后的份额都在增长。那么为何不去学习其他语言?

  原因之一我们不能只看一年的流行趋势,而应该看整个10多年的趋势,无论怎么起伏,C始终处于第一或者第二的位置。

  原因之二是现代的编程语言在语法上差异很小,现在很多语言都可以叫做C-like语言,就是一些基础的东西,比如变量怎么起名字,怎么定义,函数是叫做过程,叫做方法等等,基本上和C语言很接近,这和C语言在历史上的地位是有关系的,

  原因三:在我们现在说这个语言很厉害很强的时候,大多不是说这个语言本身的特点,而是面向语言写的库,这些库有针对各种应用的库,一件很难的事情你只要去调用这个语言的库或者一个类来完成,那么很大的一件事情就解决了,所以如果一种语言有你做的事情的库,那么你用它写程序就变得很容易。通常用这种语言写的软件比较多,那么这种语言的比例就上去了。

  所以我们选择C语言做我们的教学语言,因为份额比较多,另外语言之间的差异很小,当你学会了一种编程语言,对另外一种编程语言的掌握就非常快了,而C正好处于比较基础的这个层面的语言。

  下图是三种语言的例子:C,java,python,都是双引号,函数,printf等很详细,所以在学好一个语言后,再去学别的语言就会是一个非常快的事情。

听翁恺老师mooc笔记(1)--为何选择学习C的更多相关文章

  1. 听翁恺老师mooc笔记(16)--程序设计与C语言

    问题1:计算机遍布生活的各个方面,若你需要一个功能可以下载APP,我们需要的大部分功能都可以找到对应的APP,如果没有可以自己写一个软件,但是很少人需要这么做,那么我们为什么学习计算机编程语言? 学习 ...

  2. 听翁恺老师mooc笔记(15)--文件的输入与输出

    <>重定向 如果使用标准的printf输出,有一个比较简便的方法,可以将程序的结果写入一个文件.使用<和>符号,将程序运行结果重定向到文件中去,具体使用到的代码如下: ./te ...

  3. 听翁恺老师mooc笔记(14)--格式化的输入与输出

    关于C语言如何做文件和底层操作: 文件操作,从根本上说,和C语言无关.这部分的内容,是教你如何使用C语言的标准库所提供的一系列函数来操作文件,最基本的最原始的文件操作.你需要理解,我们在这部分所学习的 ...

  4. 听翁恺老师mooc笔记(13)--类型定义和联合

    typedef 虽然我们知道使用struct这个关键字定义一个结构类型,然后可以使用该结构类型定义变量.但是每次要使用的时候都需要带着struct这个关键字,那么如何摆脱这个关键字哪?C语言提供了一个 ...

  5. 听翁恺老师mooc笔记(12)--结构中的结构

    结构数组: 和C语言中的int,double一样,一旦我们做出一个结构类型,就可以定义这个结构类型的变量,也可以定义这个结构类型的数组.比如下面这个例子: struct date dates[100] ...

  6. 听翁恺老师mooc笔记(11)--结构和函数

    结构作为函数参数: 声明了一个结构就有了一种自定义的数据类型,这个数据类型和int.float.double一样,int等基本类型可以作为函数的参数,那么这种个自定义的结构类型也应该可以作为函数参数, ...

  7. 听翁恺老师mooc笔记(10)--结构

    定义结构: 在程序里,如果想要表达一个数据就需要一个变量,而每个变量又都需要一个类型,之前学过C语言中有int.double.float.char等这些基础类型,还有指针.数组等.如果你要表达的数据比 ...

  8. 听翁恺老师mooc笔记(9)--枚举

    枚举类型的定义 用符号而不是具体的数字来表示程序中的数字,这么表示的好处是可读性,当别人看你的程序,看到的是单词,很容易理解这些数字背后的含义,那么用什么符号来表示名字哪?需要const int常量的 ...

  9. 听翁恺老师mooc笔记(8)--字符串2

    字符串的赋值 字符串的输入与输出 对C语言的基础类型,比如int.double等类型,scanf.printf有专门的格式转换,而对字符串,scanf.printf使用%s格式字符进行输入与输出.当使 ...

  10. 听翁恺老师mooc笔记(7)--字符串1

    C语言中字符串的定义 如果定义一个字符数组word,并使用大括号对其初始化,如下图所示: 但是这个不是C语言的字符串,只是字符数组,不是字符串,因为不能使用字符串的方式进行计算.那么C语言的字符串长什 ...

随机推荐

  1. Spring中的IOC和AOP是什么含义,他们在项目中起到什么作用,并举例说明?

    IOC:控制反转,是一种设计模式.一层哈尼是控制权的转移:由传统的在程序中控制并依赖转移到容器赖控制:第二是依赖注入:将相互以来的对象分离,在Spring配置文件中描述他们的依赖关系.他们的依赖关系只 ...

  2. jquery 实现一个简单的成功提示框,失败提示框

    主要的jquery代码:var TS={ successAlert:function(str){ //调用成功的方法 var html='<div class="alert alert ...

  3. angular 按下回车键触发事件

    angularJs  按下回车键触发事件这个功能很简单,但是今天的却让我掉坑很久.... 由于我的页面上有两个不同方法都传$event事件,如search($event)和create($event) ...

  4. 【Learning】带花树——一般图最大匹配

    一般图最大匹配--带花树 问题 ​ 给定一个图,求该图的最大匹配.即找到最多的边,使得每个点至多属于一条边. ​ 这个问题的退化版本就是二分图最大匹配. ​ 由于二分图中不存在奇环,偶环对最大匹配并无 ...

  5. Xampp相关命令

    http://www.upwqy.com/details/5.html 1 启动关闭 需要切换目录: # cd /opt/lampp/ 启动 XAMPP # ./lampp start 停止 XAMP ...

  6. 如何使用Git以及GitHub

    Git在程序的版本控制上有着极大的优势,下面是简单对其的简介 Git 的特点: 1 Snapshots, Not Differences 直接记录快照而非差异对比. 传统的版本控制系统(version ...

  7. LINUX下解决TIME_WAIT等网络问题

    修改配置文件 /etc/sysctl.conf net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout ...

  8. Android Services (后台服务)

    一.简介 服务是可以在后台执行长时间运行的应用程序组件,它不提供用户界面. 另一个应用程序组件可以启动一个服务,并且即使用户切换到另一个应用程序,它仍然在后台运行. 另外,组件可以绑定到一个服务来与它 ...

  9. Angular4--提速--提升Angular项目的首页打开速度(包含微信登录优化)

    Angular项目的首页打开速度很慢,有时候会有几秒的加载时间.如果在手机端访问的话,怕是要等待十多秒,这对用户体验很差.下面参考http://www.cnblogs.com/feiyu159/p/8 ...

  10. centos6.x上安装Java-1.8.0

    author : headsen chen date : 2017-12-04  10:32:44 notice :This  article is created by headsen chen h ...