CC编程这才是你最需要的C语言C学习路线
先聊几个有趣的问题
这几个问题都是私信里常被问到的,也是我当时学习过程中的一些疑惑。
问: 为啥我学完了C语言或者C++,却还是啥东西也做不出来?
答: 编程语言学完了就能做出东西那也真是天才哇!应该说语言学得就算再精通,它其实也只代表完成了"最小的"那一部分,和实际上手干活之间还是有一个非常大的 鸿沟 ,这个鸿沟就表现为下文即将详述的 编程基础四大件 + 应用实践编程 。
问: 为什么C/C++写出来的东西都是运行于黑乎乎的命令行?这玩意真有用吗?
答: 嘿嘿,谁说黑乎乎的命令行里运行的程序就没有用!咱大名鼎鼎的Linux系统都以命令行跟用户交互呢,而且Linux里面很多强大的工具都是运行于黑乎乎的命令行!
问: 从技术学习和实际运用的角度来看,C/C++和Java到底区别在哪?
答: C/C++,它和Java确实不太一样。C语言和C++,尤其C++,语言粒度细、机制多,性能虽然高,但语言本身的包袱也确实重,我们更愿意称它"造轮子"的语言!也正是因为C语言和C++性能好、粒度细,所以什么都能做。而Java本身就是一种服务于互联网软件开发(后端开发+客户端开发)的语言,它有一个明显的"生态圈"的概念,所以应用领域非常清晰。我个人觉得C语言和C++编程比Java还是要难一些,Java毕竟是纯应用层的,C语言和C++则对程序员能力的要求要更高一些。
岗位分析
了解一下岗位,知道以后能做什么,这个也有利于自己树立学习目标。
C语言和C++属于"造轮子"语言,几乎什么都能做。不过一般来说,C语言和C++主要还是做后台(服务端)开发比较多,包括:
通信公司后台开发
互联网公司后台开发
游戏公司后台开发
……
当然这个后台开发具体职责又有很多细分,比如:
有做数据处理和分析的
有做基础协议和通信的
有做服务端底层应用优化的
甚至还有做后台系统驱动和内核的
……
不管怎样,下面即将要介绍的这些学习路线和内容适用于以上所有情况。所以呢,下面就来讲讲具体的学习路线。
语言本身的学习
C语言:
除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外
C语言最最最最最重要的那就是:指针、内存管理,以后企业里开发就靠它俩吃饭,这也是检验C语言掌握情况的两大标准
推荐书籍 :《C Primer Plus》、《C和指针》、《C专家编程》
C++:
C++和C语言确实是不同的语言,但是C++确实是对C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好地 复用 、 扩展 和 工程化 ,这是大型项目的必备要素
除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等
推荐书籍(有先后顺序) :《C++ Primer》、《Effective C++》、《C++ 标准程序库》、《STL源码剖析》《深度探索C++对象模型》
最后一个小建议是 :语言部分的学习建议不要拖太久,一定要规划好时间,一鼓作气,高强度给它压下来,否则容易把自己搞泄气。
编程基础四大件
基础四大件包括: 数据结构和算法 、 计算机网络 、 操作系统 、 设计模式
这跟学什么编程语言、后续从事什么编程方向均无关,只要做编程开发,这四个计算机基础就无法避开。可以这么说,这基础四大件真的比编程语言重要!!!
1、数据结构和算法
可以说这个直接决定了面试的成败!几种基础数据结构类型得烂熟于心,比如:字符串、链表、二叉树、堆、栈、队列、哈希等;基本的几大算法也要了如指掌,比如查找、排序、动态规划、分治等等。
建议LeetCode多刷题。
参考资料: 《大话数据结构》、《算法》、《剑指offer》《LeetCode刷题》
2、计算机网络
此处的计算机网络指的就是TCP/IP协议栈,可以说它是当下互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,主要就是学习和掌握原理,包括: ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议 。
推荐书籍: 《TCP/IP详解》
3、操作系统
该部分重点包括:进程和线程的相关原理(原子性、并发、锁)、内存相关原理(内存分布、内存调度)
推荐书籍: 《深入理解计算机系统》
4、设计模式
倒不需要23种设计模式全部记住,常见的几个如: 单例模式、工厂模式、代理模式、策略模式、模板方法模式 建议熟练于心。
推荐书籍: 《大话设计模式》、《设计模式之禅》
应用实践编程
这部分会涉及到一些工具、编程环境、和具体编程实践,应该说这一部分学完,自己应该能做点东西出来、或者说能看懂一些实际项目的代码。
实践这部分,我也是结合我之前在通信公司的实际工作经历和所听所见,来聊一聊。
1、Linux操作系统的使用
很多人初学C语言、C++(包括我)都是在Windows环境上进行的,而实际企业级开发几乎不可能,所以Linux系统必须要会,我们别无选择。先谈使用。
包括: 常见的Linux操作命令 、 基本的Shell编程 。
推荐书籍: 《鸟哥的Linux私房菜》
2、编译/调试工具
首先是跟编译相关的: 编译工具!
我们知道很多人学C语言、C++都在类似Visual Studio这种集成IDE里进行代码编译,这个其实也用了编译器,只不过是微软自家的MS编译器,而且所有操作均可视化。而企业里开发很少会基于Windows系统,所以Linux平台上的编译器更为重要,最典型的当属GCC,甚至有些公司有自己定制过的交叉编译工具,但没关系,只要GCC熟悉,其他问题都不大。
其次,大家自学C语言、C++,都借助类似VS这种IDE,点按钮即可对源文件编译。而企业里实际项目的编译动作叫make,编译的实际动作和过程都是写在makefile文件里,所以makefile的书写规则建议学习!
最后说到 调试 ,Linux平台上的GDB调试工具要熟练使用,会借助于它进行调试。
推荐: 这部分没有书可推荐,英文好的同学可以直接看GNU官网关于GCC和GDB的文档,中文材料可以看:《debuging with gdb》(中文版)和陈皓先生的《跟我一起写makefile》
3、Linux环境编程
还是那句话,企业里C语言和C++几乎都是基于Linux平台的,这一部分我们没办法避开
(1)Linux系统编程
众所周知,Windows系统编程里有各种各样的Windows API,同理Linux系统API的使用就更加重要。
(2)多线程编程
此处指的是多线程编程实践相关的东西,一般包括:线程、资源、信号、同步、互斥、锁等等一些具体的编程方法。
(3)网络编程
此处的网络编程主要指的是具体Linux系统上的网络编程API和IO函数的编程实践。
推荐书籍 :这三部分综合在一起,推荐必看书籍包括《Unix环境高级编程》、《Linux高性能服务器编程》、《POSIX多线程程序设计》
最后, 为了帮助大家,轻松,高效学习C语言/C++,给大家分享我收集的资源,从最零基础开始的, 帮助大家在学习C语言的道路上披荆斩棘!
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程) 最重要的是你可以在群里面交流提问编程问题哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】 一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
太阳都有黑点,人世间的事情更不可能完美车尔尼雪夫斯基智慧的启迪几乎每个人心中都有一种追求完美的冲动。当一个人对现实世界有了更深刻的理解,他对完美的追求就会更强烈。这种强烈的追求会让人充满理想,但这种追求一旦被打破,也会让人陷入绝望。
世界上没有完美的制度为什么世界上没有完美的制度世界上没有完美的制度,是因为人性的败坏,人的无知,连什么是完美的制度都分辨不出来。制定出来一个再好的制度,大家也不相信,也不去遵守。因为人性在面对金钱权力
学习贯彻二十大结合实际学融入岗位做忠诚维护核心,矢志奋斗强军。近日,南部战区各部队掀起学习宣传贯彻党的二十大精神热潮,不断推动党的二十大精神走进基层走进官兵。第74集团军某旅该旅组织尖刀劲旅理论宣讲小分队深入基层一
有种变化叫学医,校草也能变大叔,医学生的前后对比照太真实世界上的行业千千万万,理论上讲每个正当职业都应该受到尊重。不过现实里人们总是忍不住要根据你的工作,决定到底是刮目相看,还是觉得低人一等。有些职业不管什么时期,都有较高的口碑和地位,
漫画狼王撸猫画师麻尾该漫画连载于微博,漫画作者麻尾,漫画名字捡了东西的狼拟人版。狼王和土豆要出门就起了个大早,土豆困得不行一直在打哈欠,两人走到车边,车轮边有一只猫伸了脑袋出来,天气冷了小猫躲
探寻中国式现代化之路丨敦煌不思议视频加载中党的二十大擘画了以中国式现代化推进中华民族伟大复兴的宏伟蓝图。由中央网信办网络传播局指导,中共江苏省委网信办出品,现代快报制作的探寻中国式现代化之路我比任何时候更懂你(第
养码人在天涯养码也称洗码,是指为健康码恢复绿码无异常状态,而去往低风险地区旅居的行为。11月12日,北京宣布启动滞留京外人员专项救济,受到进京人群特别是养码群体的高度关注,也让养码人为大众所知
清廉北湖为美而生视频加载中一尊古朴方印落于一幅以邓华故居水月莲花群山和清廉北湖四个古朴苍劲大字组成的美丽书法画卷之上,印起处,一方耀眼的红色印章映入眼帘,这就是郴州市北湖区纪委监委精心设计的清廉北
开辟马克思主义中国化时代化新境界开辟马克思主义中国化时代化新境界中共中央党史和文献研究院院务会理论学习中心组提出开辟马克思主义中国化时代化新境界的重大命题,是党的二十大报告的一个重要内容和突出亮点。习近平总书记在
货币政策吹暖风解读3季度货币政策执行报告文任泽平团队2022年11月16日,央行发布2022年三季度中国货币政策执行报告。1货币政策吹暖风,对经济楼市和资本市场变得更友好,发力稳增长稳楼市扩内需2022年三季度货币政策执
谁将捧起大力神杯?世界杯夺冠热门盘点,你最看好哪支球队?卢塞尔新城已经张灯结彩,挂满了32支参赛国的国旗。冬天的卡塔尔集结了800多名足球运动员,紧张又热烈的气氛宛如盛夏。在接下来的一个月时间里,所有的队伍将为足坛最高荣誉世界杯展开激烈