本文约2500字,建议阅读10分钟

除了编程语言之外,其实还有很多…

语言c1是什么水平_a语言b语言c语言_c语言

大家好!

C语言和C++的学习路线终于整理好了。 当然,这个话题我只能根据我近3年通信公司的背景开发经验和我所见的世界来跟大家聊聊这个话题。

这方面的东西很多,很复杂,但是经过整理总结,回过头来看,学习思路和学习路线应该是比较清晰的。 由于个人知识有限,有不足的地方欢迎大家在评论中补充。

我们先来说一些有趣的问题

这些问题经常在私信中被问到,也是我当时学习过程中的一些疑惑。

问:为什么我学了C语言或者C++之后什么都做不了?

答:学了编程语言之后能够做出东西,那简直就是天才了! 应该说,无论你的语言学习多么熟练,实际上也仅仅意味着完成了“最低限度”的部分,与实际工作还是有非常大的差距,而这种差距体现在编程基础上,下面详细描述。 四大块+应用实践编程。

问题:为什么用 C/C++ 编写的东西总是在黑暗的命令行上运行? 这东西真的有用吗?

答:呵呵,谁说暗命令行运行的程序没用的! 我们著名的Linux系统就是通过命令行来和用户交互的,Linux中很多强大的工具都是在暗黑的命令行上运行的!

Q:从技术学习和实际应用的角度来看,C/C++和Java有什么区别?

答:C/C++,确实和Java不同。 C语言和C++,尤其是C++,语言细粒度,机制多。 虽然性能很高,但是语言本身确实有很重的包袱。 我们更愿意称其为“造轮子”语言! 正是因为C语言和C++性能好、粒度细,所以什么都能做。 Java本身是一门服务于互联网软件开发(后端开发+客户端开发)的语言。 它有明显的“生态系统”概念,因此应用领域非常明确。 我个人认为C语言和C++编程还是比Java难一些。 毕竟Java是纯粹的应用层,而C语言和C++对程序员的能力要求更高。

工作分析

了解该职位以及您未来可以做什么也将帮助您设定学习目标。

C和C++是“造轮子”语言,几乎可以做任何事情。 但一般来说,C语言和C++主要用于后端(服务器端)开发,包括:

当然这个后端开发的具体职责还有很多细分,比如:

不管怎样,我下面要介绍的学习路径和内容都适用于上述所有情况。

语言本身的学习

C语言:

推荐书籍:《C Plus》、《C 与指针》、《C 专家编程》

C++:

推荐书籍(按顺序):《C++》、《C++》、《C++标准库》、《STL源码分析》、《深入探索C++对象模型》

最后一个小建议是:语言部分的学习不要拖延太久。 一定要计划好时间,努力工作,高强度地压抑,否则很容易灰心丧气。

编程基础的“四大块”

四个基本组成部分包括:数据结构和算法、计算机网络、操作系统和设计模式。

这与你学习什么编程语言或者你将来追求什么编程方向无关。 只要你做编程开发,这四个计算机基础知识就无法回避。 可以说,这四个基本项真的比编程语言还重要! ! !

1.数据结构与算法

可以说,这直接决定了面试的成败! 你必须熟悉几种基本的数据结构类型,如字符串、链表、二叉树、堆、栈、队列、哈希等。你还必须熟悉几种基本的算法,如搜索、排序、动态规划、分而治之等等。

我建议你多回答一些问题!

参考资料:《大话数据结构》、《算法》、《剑指Offer》、《题复习》

2.计算机网络

这里的计算机网络指的是TCP/IP协议栈,它可以说是当前互联网通信的基石。 无论如何,你必须熟悉TCP/IP协议栈。 主要是学习和掌握原理,包括:ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议。

推荐书籍:《TCP/IP详解》

3、操作系统

这部分重点包括:进程和线程的相关原理(原子性、并发、锁)、内存相关原理(内存分配、内存调度)

推荐书籍:《深入理解计算机系统》

4. 设计模式

没有必要记住所有 23 种设计模式。 建议熟悉常见的如:单例模式、工厂模式、代理模式、策略模式、模板方法模式等。

推荐书籍:《大话设计模式》、《设计模式之禅》

应用实际编程

这部分会涉及到一些工具、编程环境以及具体的编程实践。 应该说,学完这部分之后,你应该能够做出一些东西,或者能够看懂一些实际项目的代码。

关于实践部分,我也结合我之前在通信公司的实际工作经历和所见所闻来谈谈。

1.Linux操作系统的使用

很多人(包括我)在环境中学习C语言和C++(包括我),但实际的企业级开发几乎不可能,所以Linux系统必须学习,我们别无选择。 先说说使用吧。

包括:常用Linux操作命令、基础Shell编程。

推荐书籍:《鸟哥的Linux私房菜》

2. 编译/调试工具

首先是和编译相关的:编译工具!

我们知道很多学习C语言和C++的人都是在这样的集成IDE中编译代码的。 这个其实用的是编译器,不过是微软自己的MS编译器,所有操作都是可视化的。 企业中的开发很少是基于系统的,因此Linux平台上的编译器更为重要。 最典型的就是GCC。 有些公司甚至有自己定制的交叉编译工具,但这并不重要。 只要熟悉了GCC,其他问题就迎刃而解了。 不大。

其次,大家自学C语言、C++的时候,都是用VS这样的IDE,一键编译源文件。 企业中实际项目的编译动作称为make。 编译的实际动作和过程都写在文件中,所以建议学习一下编写规则!

最后,说到调试工具,一定要熟练使用Linux平台上的GDB调试工具,并用它来进行调试。

推荐资料:这部分没有可以推荐的书籍。 英语好的同学可以直接阅读GNU官网上关于GCC和GDB的文档。 中文资料可以阅读:《with gdb》(中文版)和陈浩先生的《Write with Me》

3.Linux环境编程

再次,企业中的C语言、C++几乎都是基于Linux平台的,我们也无法回避这一部分。

(1)Linux系统编程

众所周知,系统编程中有各种各样的API。 同样,Linux系统API的使用就更加重要了。

(2)多线程编程

这是指与多线程编程实践相关的东西,一般包括:线程、资源、信号、同步、互斥、锁等具体编程方法。

(3)网络编程

这里的网络编程主要是指网络编程API和IO函数在具体Linux系统上的编程实践。

推荐书籍:这三部分结合在一起。 推荐必读书籍有《Unix环境高级编程》、《Linux高性能服务器编程》、《POSIX多线程编程》

好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注