前言

经常有小伙伴问我,你是做C/C++的,那学C语言可以做什么呢?尤其是还在学校的同学,感觉自己学了很久,什么也做不了,一度怀疑自己是不是不适合程序员这个方向。

开始我都是直接说可以开发嵌入式啊,做操作系统啊,开发数据库啊等等,说到这,其实大家就应该明白了,C语言是接近底层的,他的很多应用都是处在摸不着看不见的后台,这对于初学编程的同学确实太不友好了,大家都喜欢所见即所得的效果,要不python怎么这么火呢!

但是,作为编程排行榜经典不衰的语言,我还是想好好说下,到底学C语言可以做什么?

有数据为证

还是采用我喜欢的类比学编程的方法,这个也是学编程很好的方法之一,触类旁通的道理。

在计算机高速发展的最近几十年中,出现了上百种编程语言,有的编程语言是针对某个领域专门设计的,例如:

PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。​

Objective-C 只能用于苹果产品的开发,包括 iPhone、iPad、Mac、MacBook 等,Swift 改进了Objective-C,是一种新的编程语言,用于编写 iOS 和 OS X 应用。

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。

而大部分的编程语言不是针对某个特定领域设计的,它们能做很多事情,比较通用化。但是在长期的实践过程中,这些编程语言也找到了适合自己的位置,例如:

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java 可以用于网站后台开发、Android 开发、PC软件开发,在大数据领域也有应用;

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。主要用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域;

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近。Go语言除了用于服务器、通讯等较底层的开发,还能用于网站后台开发。

C语言也是一门通用性的语言,历史很悠久,就目前而言,C语言主要用于较底层的开发。

除了Windows、Linux、Mac、Unix等大型操作系统,还有freertos,ucos等嵌入式系统等操作系统的内核都使用C语言开发;

开发硬件驱动,这部分也是C语言的强项,当然也有很多C语言的就业机会;

单片机和嵌入式属于软硬件的结合,有很多使用C语言的地方;

开发系统组件或服务,用于支撑上层应用;

开发lua脚本,可以做到无缝衔接。

很多高级语言使用的库,底层也是C语言编写的,主要是考虑运行效率的部分。

当然,C语言也能用于PC软件开发,做出类似 QQ、迅雷、Chrome 等带界面的程序,但是由于C语言开发效率低,第三方库较少,实际项目中已经没有程序员这么做了,大家已经转向了 C++。

初学者的疑问

既然C语言能做这么多事情,为什么很多初学者学完C语言以后仍然非常迷茫,只能编写没有界面的控制台程序呢?

这是因为,C语言仅仅是一个工具,它的标准库也很简单,只提供了最基本的功能,如果希望开发出实用的程序,往往还需要学习其他方面的知识。例如:

开发硬件驱动要学习数字电路,了解 Windows 或 Linux 内核,阅读硬件厂商的接口说明书;

从事嵌入式开发要学习数字电路、模拟电路、ARM、Linux、Qt等;

开发PC软件要学习Windows编程,了解 GTK。

可以这么说,如果只会C语言,基本上是找不到工作的,读者要选定一个方向,继续学习其他知识。后面你会发现,C语言不过是冰山一角,是一项基本技能而已,程序员要学习的东西还很多。

另外,学习C语言并不一定要从事与C语言有关的开发工作。C语言是一门简单、底层、较早的编程语言,后来的很多语言在语法上都和C语言类似,称为“类C语言”,例如 Java、C++、C#、PHP、JavaScript 等,学完C语言再学这些语言都很容易上手。

并且,C语言能够让你更加深刻的认识内存和编译原理,了解程序的每一个细节,夯实基本功,站得“低”才能望的远,所以优秀的程序员都会学习C语言。


学了 C 语言到底能做什么, 能从事什么工作?相关推荐

  1. 学了 C 语言到底能做什么, 能从事什么工作?(附课程)

    资源放在前面,不想看下面的啰嗦请直接拿走.不做伸手党,请留个赞再走哦! 1.零基础学C语言,老九零基础学习编程系列之一 老九学堂 徐嵩老师主讲https://www.bilibili.com/vide ...

  2. python语言能做什么-python语言到底可以做什么呢?

    python语言到底可以做什么呢? 作者:小龙博客-网络日志 2020年08月12日 没有评论 分类:电脑技巧 Python python到底可以做什么呢?先说个笑话,很多人一开始学习 Python ...

  3. C 语言到底能做什么?What can C do?

    C 语言到底能做什么?What can C do? ---- C_Little_Noob C语言 C语言具有高级语言的特点,又具有汇编语言的特点,所以可以作为工作系统设计语言,编写系统应用程序,也可以 ...

  4. c语言课程设计(学生籍贯管理系统)学完c语言你可以做的案例

    目录 第一章 设计简介及设计方案讨论 1.1背景和意义 1.1.1背景: 1.1.2意义: 1.2需求分析 1.3使用说明 1.4流程图 1.5设计 1.5.1功能实现 第二章   核心代码讲解 2. ...

  5. 学Java开发到底能做什么工作?

    "听说程序员工资很高,想学Java语言,但不知道它到底能做什么?" 随着全民编程热的到来,Java技术已经无处不在,学Java的人也越来越多了,那么学Java开发到底能做什么工作? ...

  6. 编程行业高手级别必学C语言,要挣大钱必学C语言,要做黑客、红客必学C语言,要面试名企、外企、高薪职位必学C语言。

    于大部分程序员, C语言 是学习 编程 的第一门语言,很少有不了解C的程序员. C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的, ...

  7. 如何在家自学前端后端基础?路线是什么?前端程序员到底干什么?学了C语言然后呢?到底是选前端还是后端?

    文章目录 走向程序员的第一步:选择前端还是后端? 选择前端如何学习? 学习路线流程图 详细介绍学习路线 走向程序员的第一步:选择前端还是后端? 或许是因为学了C语言或者其他语言之后不知道如何学习? 或 ...

  8. python语言学完后学什么_学完Python语言可以做什么?发展前景怎么样?

    Python是一门高级的编程语言,其语言功能强大.语法简单.上手容易,因此受到了不少人的喜欢.而对于学习一门语言,很多人最看重的就是,学习之后可以做什么?有哪些岗位?薪资待遇如何?为大家详细的讲解一下 ...

  9. 零基础也可现学苹果Swift语言?太傻太天真

    2019独角兽企业重金招聘Python工程师标准>>> 在刚刚过去的苹果 WWDC 2014 上,除了备受关注的 OS X 10.10 和 iOS 8 之外,苹果还发布了一款全新的编 ...

最新文章

  1. 百度前离职员工偶遇同门百度人,轻松通过面试,直呼放水很明显!这样真的好么?...
  2. PHP非对称加密:RSA (RSA/ECB/PKCS1Padding)+base64_encode/bin2hex加密
  3. 第一章 代码无错就是优吗?(简单工厂模式)
  4. ETL工具 kettle问题
  5. Microsoft SQL Server学习(二)
  6. mysql查询重复数据
  7. Java实战-坦克大战
  8. Java当中的异常处理
  9. 苹果市值突破2万亿美元;华为推出PC版HMS“擎云生态”;Android11将强制应用使用内置相机 | 极客头条
  10. linux-推荐两款好用的录屏软件
  11. 阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
  12. Effective_STL 学习笔记(十六) 如何将 vector 和 string 的数据传给遗留的API
  13. Alpine linux硬盘安装
  14. 绿色版本chrome设为默认浏览器
  15. 有道词典的本地/扩展/离线词库
  16. Vue实现拖拽拼图滑块验证
  17. 动态DNS的定义以及优缺点有哪些
  18. Swift5 字符串(String)操作
  19. 中国过氧化二异丙苯市场投资状况分析与前景趋势研究报告2022年版
  20. 一些数据采集卡使用过程中常见问题

热门文章

  1. 11、RH850 中断配置
  2. 不同浏览器jsp开发兼容问题
  3. 如何让soso百科通过
  4. 语音去混响算法之WPE( Weighted Prediction Error for speech dereverberation)
  5. [转帖]FPGA开发工具汇总
  6. 神通数据库OSCAR安装
  7. python-布尔运算
  8. 软件设计原则:正确做小事
  9. rdworksv8教学说明书_RDWorksv8软件下载
  10. DCN2800-4G路由器配置详解