对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。

  C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。

  如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。有了足够的基础,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。

  C语言概念少,词汇少,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。

  正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合本教程,能够快速掌握编程技术。

  在世界编程语言排行榜中,C语言、Java 和 C++ 霸占了前三名,拥有绝对优势,如下表所示:两性教育

  --2015年01月榜单2015年06月榜单2016年04月榜单

  排名语言占有率语言占有率语言占有率

  1C16.703%Java17.822%Java20.846%

  2Java15.528%C16.788%C13.905%

  3Objective-C6.953%C++7.756%C++5.918%

  4C++6.705%C#5.056%C#3.796%

  5C#5.045%Objective-C4.339%Python3.330%

  6PHP3.784%Python3.999%PHP2.994%

  7JavaScript3.274%Visual Basic .NET3.168%JavaScript2.566%

  8Python2.613%PHP2.868%Perl2.524%

  9Perl2.256%JavaScript2.295%Ruby2.345%

  10PL/SQL2.014%Delphi/Object Pascal1.869%Visual Basic .NET2.273%

  C语言诞生于20世纪70年代,年龄比我们都要大,请猛击《C语言的发展及其版本》了解更多。

  当然,C语言也不是没有缺点,毕竟是70后老人,有点落后时代,开发效率较低,后来人们又在C语言的基础上增加了面向对象的机制,形成了一门新的语言,称为C++,我们将在VIP教程《C和C++到底有什么关系》中讲解。

  C语言和Python

  最近几年,有一门新的语言异军突起,夺得了大家的眼球,它就是Python。

  在我们开始学编程的时候,Python并不是那么“甚嚣尘上”,中文资料也不多,绝大部分人还是从C学起,大学的课程也是这样安排的,先学C、再学汇编、C++、Java等,把C作为一门基础语言。

  现在情况不同了,有一部分初学者放弃了C,从Python开始学起,认为Python简单,容易学习,不像C那么晦涩。

  其实,Python 的“简单”主要是指代码格式清晰,语法没有那么严格,例如,在屏幕上显示“C语言中文网”:

  print "C语言中文网"

  对比C语言的代码:

  puts("C语言中文网");

  你看,Python不需要括号,也不需要最后的分号。   两性交流

  但是,不要被误导了,Python涉及到的编程概念和编程思想并不简单,比C语言要多要复杂。以我的实际感受,Python的学习成本并不比Java、C++小。

  任何编程语言都一样,不管是你的学长学姐告诉你简单,还是你自己认为简单,其实都是错误的观念,不要被这些观念误导。

  你可以认为X语言比Y语言在软件开发方面更加优秀,或者M语言比N语言在数据挖掘方面更加方便,但是绝不能认为哪一种语言更加简单。每一种编程语言都有自己的应用领域,要学习合适的语言,而不是“简单”的语言。

  总之,我不认为学习Python的成本比C小。

  值得一提的是,Python也是用C来开发的,如果你希望更好的学习Python,那么肯定也要学习C。

为什么入门首选C语言的更多相关文章

  1. 编程入门选什么语言好?C 语言还是Python ?为你解析

    前面我分享过计算机行业已经成了学校选择排名第一,家长和学生都很看好计算机类专业.现在IT行业也越来越火爆,程序员越来越被人看好.面对相比同龄人高薪资的诱惑,人们很难不心动,即使秃头也值得! 那么问题来 ...

  2. IOS入门之Swift语言(一)

    经过不断的努力,小哥也买了台苹果设备,终于可以开始我的IOS之旅了,说来确实令人苦恼,为了学习IOS我这着贫农阶级,省了几个月的零花钱,外加向亲朋好友求救,最终痛下心扉,卖了台MAC pro128G版 ...

  3. c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码初级:C语言入门必备(以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言的数 ...

  4. 【转】c语言入门教程 / c语言入门经典书籍

    用C语言开始编写代码 初级:C语言入门必备 (以下两本书任选一本即可) C语言是作为从事实际编程工作的程序员的一种工具而出现的,本阶段的学习最主要的目的就是尽快掌握如何用c语言编写程序的技能.对c语言 ...

  5. JAVA入门之基础语言

    在上一章文章中,读者已经了解了如何搭建Java 开发环境及Java 程序的开发过程.从本篇文章开始讲解Java 的基本语言.这些基本语言的语法和其他一些编程语言相比有些是类似的,但还有很多不同之处,读 ...

  6. 如何快速入门单片机C语言

    一.为什么要学单片机技术? 传统的电子产品升级改造成智能化的电子产品需要用到单片机技术.也就是说传统的电子产品如电视机.电子表.计算器.数码相机.手机.MP3.遥控器.洗衣机等产品智能化.微型化,需要 ...

  7. 51单片机入门(补充)1--与C语言的交接

    我写完上一个文章,发现我写的还是不够全面,所以,这篇文章将会延续上一个文章的内容,并且再次补充新的东西,如果还有什么地方需要补充,还请各位一一指出,如果你已经学过这些东西,大可以直接跳过,假如说之后有 ...

  8. C、C++、Java到Python,编程入门学习什么语言好?

    摘要:回顾编程语言几十年来的兴衰起伏,似乎也折射了整个信息产业的变迁消亡,想要在技术的洪流里激流勇进,找准并学精一两门编程语言更加显得至关重要. 最近,TIOBE更新了7月的编程语言榜单,常年霸榜的C ...

  9. [Java入门笔记] Java语言基础(二):常量、变量与数据类型

    常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...

随机推荐

  1. webstrom IDE 激活

    2017.2.27更新 选择“license server” 输入:http://idea.imsxm.com/ 2016.2.2 版本的破解方式: 安装以后,打开软件会弹出一个对话框:选择“lice ...

  2. 微信OAuth2.0网页授权设置一个域名需多个域名使用的问题

    最近遇到一个问题,一个微信公众号,需要在多个域名上使用OAuth2.0网页授权,但微信OAuth2.0网页授权回调域名只能设置一个. 解决办法: 通过多一次的跳转,解决了微信限制回调域名只能设置一个的 ...

  3. Direct3D 11 Tutorial 2: Rendering a Triangle_Direct3D 11 教程2:渲染一个三角形

    概要 在之前的教程中,我们建立了一个最小的Direct3D 11的应用程序,它用来在窗口上输出一个单一颜色.在本次教程中,我们将扩展这个应用程序,在屏幕上渲染出一个单一颜色的三角形.我们将通过设置数据 ...

  4. 怎样写一个PC端使用的操盘手软件(用来买卖股票,查看报表,行情)

    我们想写一个操盘手软件,对于操盘而言,首先是快,然后是资料尽可能丰富,最好能看到行情,报表什么的.只是windows上写软件看似基础,实际上都不怎么好弄,用C++开发确实可以实现所有功能,估计光研发费 ...

  5. Cannot create a session after the response has been committed

    有时候在操作Session时,系统会抛出如下异常 java.lang.IllegalStateException: Cannot create a session after the response ...

  6. iOS之HTTP和HTTPS的基本知识和应用

    HTTPS的基本使用 1.https简单说明HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道 ...

  7. swoole 基础知识

    $host = 127.0.0.1  监听本地ip $host = 255.3.258.139  监听外网的某个ip $host= 0.0.0.0 监听所有ip $ws = new swoole_we ...

  8. Servlet、Tomcat访问(access)日志配置、记录Post请求参数

    一.运行环境: Maven:3.5.2(点击下载) ,下载页 Tomcat:8.5.29(点击下载) ,下载页 JDK:jdk1.7.0_80(点击下载) ,下载页 MavenDependency: ...

  9. numpy学习之创建数组

    1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...

  10. VS2017 配置QT5

    QT安装 1. QT下载 2. 安装过程中,组件的选择(图自https://blog.csdn.net/gaojixu/article/details/82185694) 3. 安装完成 VS2017 ...