华人澳洲中文论坛

「C/C++编程」这才是你最需求的C言语、C++学习线路

[复制链接]

2022-9-17 06:52:10 40 0

先聊几个乏味的问题
这几个问题都是私信里常被问到的,也是我过后学习过程当中的一些纳闷。


问:为啥我学完了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言语的路途上乘风破浪!




整顿分享(多年学习的源码、名目实战视频、名目条记,根底入门教程)最首要的是你能够在群外面交流发问编程问题哦!

发表回复

您需要登录后才可以回帖 登录 | 立即注册

返回列表 本版积分规则

:
注册会员
:
论坛短信
:
未填写
:
未填写
:
未填写

主题31

帖子36

积分172

图文推荐

  • 撞穿学校栅栏害死十一岁男孩的司机不必坐牢

    一位女司机撞穿学校栅栏、害死了11岁男孩,被罚20

  • 全科医生正告花粉症时节正在好转

    全国各地的全科医生正告春季的开端标记着花粉症时

  • 新西兰总理:出世在新西兰的新纳粹Thomas S

    新西兰总理拉克森称新纳粹Thomas Sewell是坏人,

  • 新州护士和助产士承受暂时加薪3%的前提

    新州护士和助产士投票承受政府提出的暂时加薪3%以

  • 新纳粹份子如何利用“普通父母”的掩护在反

    星期天,新纳粹份子在反移民集会开端前大约一个小