寒假 45 天如何自学入门C ?

发布于:2023-06-30 11:44:27

作者:阿秀

计算机校招八股文网站:https://interviewguide.cn

说实话,我是不想回答这个问题的。

在个人看来,45天C++最多入个门,学会?抱歉,确实不太可能。

C++难学是互联网 IT 界公认的,不信看看下面。

45天学会它,抱歉,真的不太可能。

虽然现在出了个 rust 语言也挺难学的,不过还是比不了 C++ 难学。

话说在我自己学习计算机的过程中,慢慢的养成了收集书籍的爱好,前段时间看了一下,吓了一跳!!不知不觉间我已经收集超过 1000 本了。

其中涉及C/C++、Java、Python、Go语言等各种编程语言,还有数据结构与算法、操作系统、后端架构、计算机系统知识、数据库、计算机网络、设计模式、前端、汇编以及校招社招各种面经等~

地址1:https://github.com/forthespada/CS-Books(如果由于网络等因素不能访问,可以尝试地址2)

地址2:https://gitee.com/ForthEspada/CS-Books

那么,C++既然这么难学,难学在哪里?为什么大家还要学它呢?

来看看那些C++大佬们的回答吧

为什么C++让人觉得这么难学?

来源:为什么C++是最难学的编程语言?https://blog.csdn.net/qq_43351159/article/details/88955034C++设计理念本身想通过各种规则克服C语言里面由于语法规则不清晰导致在运行过程中出现的一些错误,这下让初学者倒霉了,很多初学者在学到泛型编程会觉得编译过去太费劲了,好多条条框框卡的死死的,必须要按照语法规则走才能进行下去,而且就语法细节来讲,零散的需要掌握的细节多如牛毛,有的程序员已经做了好多年对于有些C++语法规则还是觉得陌生的很。C++语言的更新速度也是相当惊人,其语言本身还在进化,其实大家还在学着一门还在不停升级到编程语言,而且还会出现这种情况,等你费了九牛二虎之力掌握了一些语法细节之后,发现新的更新完的时候,已经把之前的都丢弃了。C++也是可以操作指针,本身指针已经很具有复杂性,再加上泛型编程,整个更加热闹了,既追求性能的*致化,还想编程模式灵活性,背的担子异常沉重,以至于很多人在学完C++之后,再去学习C语言会感觉异常的轻松自如,突然有种解决的感觉,其实很多C++语法学习不是让你如何去使用,更多的是告诫你不能怎么用,这是最难受的,学了一堆语法发现不能立即用上,还需要在特殊的场景才能使用上,对于绝大部分对于这门编程语言还没熟悉之前,算是一种精神的折磨。

为什么大家还要学习C++?

1、C++是很多架构师的最爱,也是很多编程大咖的最爱,记得十年前在某著名编程网站的论坛里面,特别是C++论坛里面经常见很多C++大咖在里面指导江山,很多小白忙活了半天的代码,让大咖几句话搞掉,在真正掌握这门编程语言,并且深深的掌握其内在规则之后,使用起来会感觉特别舒畅,仿佛把之前所有的阴霾一扫而空。

2、现在很多有名的软件框架都能看到C++的影子,其实很简单,在进行面向对象的框架设计还能不影响效率*选只能是C++,现在大家使用的安卓手机的框架层很多代码都是C++,还有大家天天使用的浏览器内核代码几乎全是C++,在很多领域C++有着不可比拟的优势,学会了会明白为啥这门语言属于编程语言的王者,为什么有这么多人学不会还要硬着头皮继续学,可以说C++是一门啃着最有滋味的编程语言,痛苦并快乐着。

你会发现等你把C++用熟练了,再去学习别的语言,那感觉爽呆了。

它难在你因为很懂她,最后还不知道为啥莫名其妙的生气。 c++最大的缺点是让你花费大量时间学习这门语言的语法上,而不是解决问题本身上。

这个**本来就是残酷的,所以你不能怪C++向你展示了**的本质 大家都觉得很难等你攀登到高峰的时候发现,原来前面还有比这更高的山峰,等着你去继续攀登。

不扯淡了,回归正题,

如果您想尽快学好C++,不妨接着看下去,我给你推荐一条比较靠谱的 C++ 学习之路,不敢说让你45天之内学会C++,已经是相对而言稍微快一点的速度了。

阿秀自己经历了2021届的互联网秋招,在面试的过程中,被问过各种各样的问题,但是大部分都是基础性的题,所以基本功很重要,也很关键。

在我以前通过校招上岸字节跳动后,将自己的秋招找工作笔记开源在github上了。

可以说我能够凭借双非的学历进入字节跳动全靠我自己总结的这份笔记,后来我将这份笔记制作成了PDF,并且同步到了自己的校招学习网站上,现在免费分享给学习学妹们!

自己以前的学习笔记包括操作系统、计算机网络、数据库(MySQL、Redis)、常见情景题、智力题以及计算机面试中需要注意的问题。

下面是我的校招学习笔记网站内容大纲

《阿秀的校招学习笔记》网站内容大纲

不少学弟学妹们在这个网站的帮助下,顺利进入BAT、TMD,甚至去了字节跟阿秀一起做同事,都跑来找我报喜!

这是我的学习笔记网站,不说了赶紧冲!!

对了,如果你也是跟我以前一样,现在还在学校里读书,并且是打算在毕业后直接参加工作的话,那么不妨看看下面这篇文章。这是一些前人总结的历届校招上岸分享文章汇总,其中大多都是上岸互联网一线大厂如腾讯、阿里、字节跳动、美团、百度等公司,目前这份分享已经开源在github上了。

1、小白入门(从视频入手)

人是一种很典型的视觉动物,更喜欢被动接收知识。相比较于书本上的一板一眼的文字,人更喜欢视频以及图像(要不你以为为什么淘宝上的商品都是用很精美的图片来介绍的,就是吸引你的眼球)。

所以,如果你是一个小白,我建议你先从看视频做起,去找一门比较好的C++入门视频教程看着先。

我推荐:

慕课网的C++国家精品视频不错,但个人还是更推荐黑马的教学视频,确实可以,我自己也是学黑马的C++视频入门的(黑马看到了吗?快给我打钱)

1、慕课网C++视频(国家精品那种)

2、B站黑马C++入门级视频:黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难

这个视频可以说是B站对新手最友好又不废话的C++教程了,简称我认为的B站最好教程 ,不是我说的,是底下的人评论的,这条评论也有 2000多人点赞了 哈哈

这个视频相当不错,大概有314话,在最后也会教你做一个机房预约系统,而不是五子棋和贪吃蛇这种小孩过家家的玩具。

这位讲课的老师很有耐心,很会仔细的讲清楚课上的代码,不断地重复其中的一些重要知识点,如果你是个小白,你真的应该感谢在看视频初期就遇到这样一位仔细的老师,跟着多看几节基本自己都可以写出来了。

还有一点就是千万记得要自己动手敲,自己动手做而不是只看不动手写,一定要自己动手慢慢开始实践。

光说不做假把式,眼睛看会了不代表你真的会了。

总是有人问我该怎么开始写代码?

其实最开始不是叫做写代码,而应该是抄代码才是。

看完视频,你可能对C++有一个初步的认识了,对于下面这些概念有大概的了解了

变量类型、变量作用域 、常量 、修饰符类型 、存储类 、运算符、循环、判断、函数、数组、字符串、指针、引用、基本的输入输出、数据结构、类 & 对象、继承、重载运算符和重载函数、多态、数据抽象、数据封装、接口(抽象类)

前段时间的某天我突发奇想,想看看知乎上计算机领域内评分最高的Top 20 经典书籍有哪些?

分别抓,哦不,手动收集了知乎计算机经典图书推荐问题下的高赞回答后得出的好书集锦,选择标准就是每本书都在推荐版上出现过 5 次及其以上!!

最终将抓到进行数据清洗和合并,得到一份计算机领域类的书籍榜单!

说实话让我觉得有些意外,因为Python类和机器学习类书籍确实不少,不过Top 3却是一等一的经典!

就是下面这三本,现在免费分享一下自己以前抓到的豆瓣上计算机领域内评分最高的Top 20 经典书籍

深入理解计算机系统(原书第3版)计算机程序的构造和解释(原书第2版)程序员的自我修养: 链接、装载与库

2、正式入门(开始看书消化)

C++问世以来,优秀书籍数不胜数,其中一本堪称“C++圣经”的就是《C++ Primer》,现在已经出到了第五版,诺,就是下面这版。

我强烈推荐这本书,这本书共分为三个部分, 19 章:其中1 - 8 章为变量、循环等基本知识,第 9-12 章为标准库的知识比如容器算法等,第 13-19 章设计拷贝重载等知识。 我个人在看这本书的时候,课后题也没有放过,基本都做了,也很感谢那些课后题,让我打牢了自己的C++基础。

这本书是非常好的一本书,我画了一个C/C++的导向图,这本书认真看完是可以对这个导向图上的知识有基本了解的。

学了语言也要记得去做相应的练习,最好的方法就是与数据结构结合在一起去实践,那么问题来了。

数据结构与算法,怎么学?

如果你是纯小白,啥也不懂

你如果是个纯小白,一点基础也没有。那么我建议你跟C++的学习方法一样,先去看看视频,再来刷刷题,这里我推荐看看青岛大学王卓老师的数据结构与算法视频。

我画了一副数据结构与算法的知识点导向图,希望可以帮到你,其中基本都是校招会考察和涉及到的点。

青岛大学王卓老师的课,也就是下面这个,可以看出一共173P,可以说讲的很细致了。线性表、栈、数组、二叉树、图、哈希、查找、排序,每个知识点掰碎了、揉开了,给你讲清楚了。

可以看一下已经看过的那些人的评论,这门课还是相当可以的,甚至还有人说“这是他所能找到的全网最详细的数据结构与算法的教程”。

还有以前的人做过的笔记,要记得学会站在别人的肩膀上,利用好前人的总结和经验。

就好像现在我在跟你们说学习的方法一样,这也是我的结晶,希望你们都能好好学到东西。

王卓老师的课程链接在这里

看完视频后可以去看一下《大话数据结构》和《啊哈算法》,自己去尝试一下看看是不是掌握了王卓老师在视频中提到的内容。

《大话数据结构》对于一些小白来说这本书是福音了,大话系列的典范之作。将数据结构中比较晦涩难懂的链表、树等知识讲得通俗易懂,对新手比较友好。有一定数据结构基础的可以忽略了。

《啊哈算法》与大话数据结构一样对于新手比较友好,是一本很有趣的算法入门书,如果你有一定算法或者coding基础就不必看了。

如果你有数据结构基础的话

如果你有一点基础的话,我推荐你去实战中成长,直接去怼题就完事了。最开始的时候你可能刷题很慢,但是坚持刷完50题你就会有明显的不一样感觉的。

我当初是在LeetCode网直接刷题的,在2019.8-2019.12四个月期间,我一共刷了 180 多道题。

我个人也得益于这段时间的刷题和思考,让我在接下来的来年的秋招中刷题无往而不利,见一题A一题的感觉真好。

A题:指的是accept中的A,在在线OJ平台提交的时候,accept即代表此题你顺利通过了。

我个人也把自己上过牛客网头条的剑指offer刷题笔记分享出来了,此外也推荐一下这位谷歌大佬打败600余道LeetCode题目的刷题笔记。

这里也推荐几本不错的算法书籍吧

书名:剑指Offer

理由:这本书不需要多做介绍,校招必备!可是还是要自己看起来、刷起来,不要放在那里吃灰,如果这本书上的题目你都没有做过或者也不会的话,算法这一关基本是送人头的存在了,笔者在秋招过程中这本书看了2遍。

书名:挑战程序设计竞赛

理由:吹爆这本书!!!也是我唯一一本系统看完的算法书籍!!这本书比啊哈算法算是进阶一点的算法书籍了,作者是ACM-ICPC全球总冠军,国内的ACM大神巫泽俊译的,汇集了**顶级程序设计高手的经验总结,里面有很多题都是很经典的题目,比如有一题是两只蚂蚁相对运动就曾经出现在某算法平台的周赛中。看这书不能急,得慢慢消化。

书名:程序员代码面试指南

理由:牛客官网合作大佬-左程云大神的著作,牛客上还有这位大佬的专栏和算法提高班。书中既有一些比较简单但易错的经典题型,比如“反转链表、二叉树序列化”,也有一些拔高的题,比如海量数据处理中的“10亿个URL中重复的有哪些或者找出10亿个URL中的Top K个”,确实是本好书。

貌似有点扯远了,接着说回C++吧。

3、持续进步

即使你看完了《C++ Primer 5th》之后也不要觉得自己学会C++了,真的,C++比你要想象中的难学一点的。

接着推荐你几本必看的书,是必看的!

书名:STL源码剖析

理由:C++大师侯捷老师的经典之作,源码方面的好书!虽然里面的很多知识已经不再适用如今的C++11 甚至C++17了,但是我们所要学习的是设计思想,对于其中的两级空间分配器,vector扩容,map/set底层等都是面试时常问的知识点,笔者看过两遍,现在还偶尔会翻翻,建议放在C++Primer这本书之后,有过一些coding经验后再去看。

书名:Effective C++

理由:C++是一门很严谨的语言,这也导致了如果出错bug也是不好找的,当初看这本书的时候,笔者一遍一遍的刷新对于C++的认识:这居然可以?这居然不可以??这居然会报错??有不少内容与C++ Primer 5th那本书是相同的,可以在看完C++Primer后再看这本书。

书名:深度探索C++对象模型

理由:这本书会帮助你对虚函数有一个全新的认识,虽然网络上有不少类似的讲解虚函数的博客,但还是建议同学们自己看一下其中的虚函数那章,看完可能会忘,得多看几遍。面试过程中问的也基本只有虚函数,其余章节可略看。

至于那本《More Effective C++》,你看不看,倒还真没太大关系。

头发还好不?hhh

别急,这里也建议你选择跟我一样的学习方式,那就是先看书,再看视频。我就是看了侯捷老师的STL源码剖析视频,再去看的《STL源码剖析》,感觉容易接受多了。

侯捷老师的经典视频有很多,这里推荐下面四个,记得认真看啊,侯捷老师真的是C++方面的大师级别的人物。

----------这里插播一条更新,update2021.01.30------

我最近发现B站把侯捷老师和陈硕老师的C++相关视频全部下架了啊,真的很可惜,我以前看的时候就有很多不错的点评,现在直接下架少了,太可惜了。

不过还好,还好我以前就有过下载侯捷老师的视频,我投放在A站上来了(B站不能上传,有版权限制),

没想到没几天后,A站也把侯捷老师的视频给下架了2333,估计可能是版权问题了

视频主要有:

01 - 侯捷 - C++面向对象高级开发(上下两部曲)02 - 侯捷 - STL标准库和泛型编程、03 - 侯捷 - C++设计模式、04 - 侯捷 - C++新标准C++11&14、05 - 侯捷 - C++内存管理机制_60_侯捷、06 - 侯捷 - C++程序的生前死后07、算法原理与实践(选修)08、系统设计与实践(选修)09 - 辅导课:10 - 陈硕的 Linux CC++网络编程实践视频

真心没办法了,我把视频领取方式放在下面上了

侯捷C/C++系列视频全集

没什么能阻挡我们学习!没有!!!

------------------------------------

4、再度进阶

这里不多BB,C++一般都会用来做后台开发或者是服务端开发,这就要求你要具备一些Linux上的基本知识。

同样的,我推荐自己看过的基本网络编程的书籍。

书名:TCP/IP网络编程

理由:如果让我推荐一本网络编程入门书籍,那我毫无疑问会推荐这本韩国人写TCP/IP网络编程,书中例子超级多,堪称一小节一个例子,比如很知名的简易版回声服务器、优雅断开TCP链接等,从客户端和服务端两个方面分别展开叙述,手把手带你初窥网络通信的点点滴滴。在看这本书的时候,注意总结笔记,因为例子太多了笔者经常出现看了后面一节就忘记前面一节的内容的情况,后来记了笔记就好多了。而且在github上也有很多别人做好的读书笔记,牛友们可以自行检索。在获得同样知识的前提下,当然用的时间越少越好了。

书名:Linux高性能服务端编程

理由:游双老师的经典之作,笔者第一次看的时候,内心os:这什么垃圾,那么多人推荐??第二遍看的时候,不好意思,是我垃圾….这本书需要一定的门槛,但真的是一本很好的书,网络通信相关基本全都涉及到了,比上面那本《TCP/IP网络编程》要详细的多。其中第1-5章高度涵盖了计算机网络的知识,高度概括,所以看这本书的前提就是要对计算机网络有基本了解和认识,后面的章节讲的是网络通信的前世今生,关于网络通信你知道的不知道的,这本书都告诉你了。强烈推荐!

书名:Linux多线程服务端编程:使用muduo C++网络库

理由:前排提醒,这本书有一定的门槛。北师大陈硕大神的经典著作,从事服务端编程方向的从业人员必看的一本书,能够从书中借鉴到很多比如关于定时器的设计。笔者也只是看了一小半,建议后期再看,需要不少基本功才能看明白。

书籍推荐到位了,视频也要跟上啊,《Linux多线程服务端编程:使用muduo C++网络库》的作者陈硕在B站有一门课相当可以,推荐先看视频再去啃书。

总结

你可以舍弃4、再度进阶中的三本书,但是1、2、3中涉及到的书籍和视频,真心建议你去好好学好好看。

所以,我不太认为在45天之内能学好C++。如果要学好C++,至少要走完1、2、3吧。

Over~

码字不易,求个赞可好~有事欢迎@阿秀学长,下回再见。

最后,C++天下第一!有不同意见的,当场打死!

写了这么多手都酸了,如果我的上述回答对你有所帮助的话,帮@阿秀学长点个赞吗,感谢!

卑微求个赞ing。。。算了,再给你分享一个宝贝吧,这回应该总不会白嫖我了吧,一个赞就足够!

最近发现三位谷歌大神写算法刷题资料,支持Java、C++、Go三种语言,其中对于面试中考察较多的链表、树、动态规划、数组等知识点讲解的都很全!如果你算法能力比较弱,比如互联网大厂面试中手撕算法比较差的话,那要好好看看了。

对了,如果你也是跟我以前一样,现在还在学校里读书,并且是打算在毕业后直接参加工作的话,那么不妨看看下面这篇文章。

这篇文章会告诉你如果打算毕业后找工作,那你应该准备些什么,需要提前做哪些准备,也会安利一个很好用的网站,是纯免费的,可以说每一个计算机专业打算找工作学生的福音。

这个网站主要是帮助应届生求职的,有笔面经、校招信息、大厂真题、各岗位练习题、还可以直接投递简历,都是和企业合作的,跟官网投是一样的,据我所知这是是现在校招网站做的最好的了,所以信息更新的非常快,里面有笔面经、校招日程、各种内推码以及很多大厂真题和练习题。

最重要的他!是!免!费!的!

推荐阅读

最后再送上一些干货,下面是一个高赞回答合集,建议你点赞&收藏,千万要Mark住啊,丢了可能就找不到了,因为你大学学习计算机期间绝对用得上,其中有好几个都是收藏过万的回答。

记得收藏的时候帮学长 @阿秀 点个赞呀!!不要只收藏不点赞啊, (๑•̀ㅂ•́) ✧ 拒绝白嫖,人人有责!

如果有计算机学习、校招求职、考研、读研感兴趣的小伙伴也可以点击下方卡片关注下阿秀鸭

一直致力于分享计算机学习、校招相关、硬核技术等,让你们不再让我走过的弯路!

1、如果你也是准备校招的同学,可以看下这里,这是一些前人总结的历届校招上岸分享文章汇总。

这是由字节跳动、阿里、腾讯三位计算机学长共同维护的计算机校招技术岗各方向学习路线合集(C++、Java、Golang、前端等)&计算机校招历届上岸分享合集,已经开源到github上了。

2、学习编程其实没你想的那么难,完整复盘我系统准备校招&自学的那一年,好好阅读下去,对你肯定有所帮助。

3、对于一些想要转行或者读研的朋友,下面两个回答肯定能帮到你!

4、如果你决定不了到底学习C++还是Java,不妨来看看这个回答!还有就是建议多看经典书,而不是什么《七天教你学会Java》、《21天C++从入门到精通》系列,这类型的书完全是浪费时间,让你走歪路!

5、Linux C/C++ 方向自学的完整路线,很多人不知道学习完 C++ Primer 能做什么项目练手,这个回答不可错过!

6、如果你准备时间不多,就抓住重点,在最短的时间内搞定必要的数据结构和算法而去面试

7、我自己在学习计算机过程中看过的优质网课,这些精品课程你的大学四年绝对够用了。


免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。

上一篇:一个人怎么自学好c ?

下一篇:编程语言丨C 是不是最难学的编程语言?教你如何自学C 语言

资讯 观察行业视觉,用专业的角度,讲出你们的心声。
MORE

I NEED TO BUILD WEBSITE

我需要建站

*请认真填写需求信息,我们会在24小时内与您取得联系。