知识点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. 九九乘法表的实现--JAVA基础

    JAVA算法实现:输出九九乘法表 Jiujiu.java: package com.qkys.www; public class Jiujiu { public static void main(St ...

  2. 第十篇:K均值聚类(KMeans)

    前言 本文讲解如何使用R语言进行 KMeans 均值聚类分析,并以一个关于人口出生率死亡率的实例演示具体分析步骤. 聚类分析总体流程 1. 载入并了解数据集:2. 调用聚类函数进行聚类:3. 查看聚类 ...

  3. 在VCS仿真器中使用FSDB

    FSDB(Fast Signal Database)是Verdi支持的文件格式,用于保存仿真产生的信号波形.据Verdi文档说明,FSDB比标准的VCD格式节省磁盘空间,处理速度更快.要用VCS仿真器 ...

  4. 原根求解算法 && NTT算法

    原根求解算法: 获取一个数\(N\)的原根\(root\)的算法 #include<bits/stdc++.h> #define ll long long #define IL inlin ...

  5. 【NOI2001】炮兵阵地(状态压缩,动态规划)

    题面 题面中有图片的存在,所以就贴个地址把 题解 简单题,,,, 原来一直觉得不会做... 现在发现是一道傻逼题 暴力压两行的状态 发现就需要滚一维. 然后暴力检查一下状态的可行性 DP检查MAX就可 ...

  6. CEOI2004锯木厂选址

    斜率优化 # include <stdio.h> # include <stdlib.h> # include <iostream> # include <s ...

  7. [BZOJ1009] [HNOI2008] GT考试 (KMP & dp & 矩阵乘法)

    Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字. 他的不吉利数学A1A2...Am(0< ...

  8. C#开发Open-Webkit-Sharp浏览器并支持前端alert显示

    看了网上的很多教程,但是总是总是只言片语的,可能不同的人遇到的问题不一样,他们就只列举了自己的问题,那么这里我来做一下总结吧,跟大家分享一下我的完整的开发过程 首先你需要准备Visual Studio ...

  9. POI读写Excel-操作包含合并单元格操作

    在上篇博客中写到关于Excel操作解析成相关的类,下面将写入一种Excel对Excel表格读取和写入. 对于Excel表格操作,最重要的是创建workBook.其操作顺序是: 1.获得WorkBook ...

  10. ubuntu下cmake 使用clang

    安装llvm.clang sudo apt-get install llvm clang clang命令会在/usr/bin/clang cmake配置交叉编译链 建立linux.toolchain. ...