可以做彩票广告的网站,做海报挣钱的网站,人工智能培训,大气门户网站对于大部分初学者#xff0c;学习C语言的目的是希望做一名合格的程序员#xff0c;开发出靠谱的软件来。但是学了C语言的基本语法后#xff0c;发现只能开发“黑底白字”的DOS程序#xff0c;完全没有漂亮的界面和生动的交互。于是学数据结构#xff0c;学算法#xff0c…对于大部分初学者学习C语言的目的是希望做一名合格的程序员开发出靠谱的软件来。但是学了C语言的基本语法后发现只能开发“黑底白字”的DOS程序完全没有漂亮的界面和生动的交互。于是学数据结构学算法学操作系统越陷越深越来越难最后迷茫了不知道学C语言能做什么认为学习编程很难开始怀疑自己甚至想放弃。
其实这是很多初学者都会踩到的一个坑C语言本身是一门很简单的语言提供的实用功能不多大部分要借助操作系统、第三方库、单片机来完成。也就是说只学C语言基本什么也做不了也基本找不到工作。
C语言是一门通用性的语言并没有针对某个领域进行优化在实际项目中C语言主要用于较底层的开发例如
Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发
开发硬件驱动让硬件和操作系统连接起来这样用户才能使用硬件、程序员才能控制硬件
单片机和嵌入式属于软硬件的结合有很多使用C语言的地方
开发系统组件或服务用于支撑上层应用
编写PHP扩展增强PHP的功能
如果对软件某个模块例如算法和搜索部分的效率要求较高也可以使用C语言来开发。
既然C语言的应用这么多为什么很多读者觉得它什么也做不了呢
我们先说一个概念就是库Library。库就是编程专家写好的代码我们可以拿来直接使用这样能够节省开发成本提高开发效率并且库代码的执行效率、严谨性、安全性和规范性要明显优于我们自己编写的代码市场上有很多优秀的库有的收费有的免费我们要善于利用这些库尽量不要重复造轮子。
库一般分为两种
编程语言的开发者在开发编程语言的时候一般都要预先写好常用的代码或者说常用的功能例如输入输出、数学计算、文件操作、网络操作、日期时间、错误处理、字符串处理等这些由官方编写的库称为标准库Standard Library它们随编程语言一起发布可以认识是编程语言的一部分。
有一些组织机构或者个人也会开发一些库有的是为了盈利有的是业余爱好有的是本公司正在使用的代码开源出来造福人类这些库称为第三方库Third-party Library。
第三方库不是由官方开发没有质量把控良莠不齐但是有相当一部分也非常优秀已经得到了大家的认可已经应用在大公司的项目开发中这些库能够和标准库媲美。
标准库是我们在学习编程语言时就要一起学习的例如C语言的输入输出、文件操作、日期时间、字符串处理、内存管理等都是标准库提供的功能它们并不是C语言语法的内容。
如果一门编程语言的标准库强大初学者经过简单的学习后就很容易开发出实用的项目。例如Java它的标准库包含了GUI图形界面、图形处理、网络通信、网络服务器、HTML解析、HTTP协议、多线程、多进程、正则表达式、压缩文件、加密解密、数据校验、音频视频处理、数据库操作、XML操作等常用功能初学者学了以后立马就能够开发网站、开发PC软件感觉很实用也感觉学到了东西。Python、C#、VB、PHP、JavaScript、Ruby 等都是非常实用的语言学了就能做出东西来。
反观C语言它的标准库只有输入输出、文件操作、日期时间、数学计算等基本功能都是在黑黑的控制台下进行的跟网站、PC软件、APP等八竿子打不着所以初学者觉得C语言没有用。
那么C语言到底能不能开发网站、PC软件或者APP呢
C语言的标准库肯定不能干这些事情啦就得依靠第三方库了遗憾的是C语言的第三方库大都也是底层库支持应用开发的库寥寥无几只有一个 GTK 库能够开发出 PC 软件来而没有与网站开发和APP开发相关的库。 GTK 库在PC软件开发中也很少用了PC软件开发已经是 C、C#、VB、Java、Delphi 的天下了。换句话说开发PC软件基本不使用C语言而是使用 C、C#、VB、Java、Delphi 等其它语言。
记住C语言几乎不用来做软件、网站、APP等这些应用层开发其它的编程语言能够更好地完成任务没必要非得使用C语言C语言基本都是用来做底层开发也就是看不见摸不着的、在后台默默提供服务的那些项目而这样的项目对初学者来说基本没有实用价值初学者也不知道它们该怎么使用。
初学者想要的C语言没有C语言能做的初学者用不到就是这种矛盾导致初学者非常迷茫。如有小伙伴想学习C语言基础可以进群731871503
进行交流学习提升编程共同进步
有人可能会问C语言不是还可以用来开发单片机或者嵌入式吗是的没错但是这个方向是软硬件结合的不是在我们的电脑上进行开发而是在特殊的开发板上进行开发并且还需要学习数字电路、模拟电路、汇编、ARM、Linux 等方面的知识只学C语言也没有用武之地。
如果你觉得学了C语言没用那么恭喜你你是对的应用层的开发一般真的用不上它。
但是没用也要学学习C语言并不一定是要应用它C语言可以夯实你的编程基础尤其是数据结构、算法、内存、线程、进程、通信、操作系统等底层的计算机知识没有C语言基础是学不好的。
这些底层知识并不一定能够直接应用在实际开发中但是它们会让你有底气会让你透彻地理解编程概念会让你站的“低”看得远会让你避免很多低级错误会让你心中有“架构师”的思维。不学C语言是码农学了C语言是程序员。
初学者必须C语言开始吗
建议从C语言开始然后学习数据结构、算法、内存、线程、进程、通信、操作系统等基本的概念它们是学习编程的基础不管是应用层开发还是底层开发这些知识都是必须的。
如果你非要跳过C语言从其他语言开始比如 Java、Python、PHP、JavaScript、C# 等也不是不可以但是在学习的过程中你会有一种雾里看花、空中楼阁的感觉很多东西只会用却理解不了深入不了原因就是没有计算机基础没学会走就想跑了这个时候还得老老实实回来学习C语言。
如何学习底层知识
关于数据结构、算法、内存、线程、进程、通信、操作系统等这些基本的知识重要的是理解概念知道计算机是怎么回事千万不要深入细节把自己绕进去耽误一两年的功夫要尽早跳出来去做应用开发找到兴趣点获得成就感。
这个时候C语言主要的作用是让你入门了解编程语言的基本语法强化编程思维学习计算机底层知识为以后的职业生涯打下坚实的基础而不是用它来做实际开发。
在实际开发中遇到问题或者哪里理解不透了可以再来回顾这些底层知识这个时候就可以深入细节了。因为有了实际开发经验再学习底层知识就知道哪里是重点了不会像无头的苍蝇一样乱飞什么都学。
【拓展】C语言为什么没有应用层开发的库
C语言是一门“古老”的语言了它只支持面向过程编程不支持面向对象编程和泛型编程在中大型的应用层项目开发中C语言已经显得捉襟见肘了C、Java、Python、C# 等其他编程语言能够更好地胜任为C语言开发应用层的库简直是费力不讨好所以几乎没人这么做。
GTK 算是一个应用层的库但是它也比较老了新版的 GTK 已经支持 C 了不再仅仅支持C语言了。
我们先不管面向过程、面向对象、泛型这些晦涩的编程概念简单地理解就是C语言支持的特性少用起来费劲开发效率低而 C、Java、Python、C# 等支持的特性多用起来方便开发效率高。
C语言的优势是运行效率极高这正是底层开发所看重的。底层开发有时候就是一个模块或者是一个服务规模不算大但是对效率有严格的要求此时用C语言就非常合适所以针对底层开发的C语言库较多因为它们有非常大的实用价值。如有小伙伴想学习C语言基础可以进群731871503
进行交流学习提升编程共同进步