大家好,我是阿凯。
这篇是我准备了很久,夸饰,以占卜师的身分写出的,我踏实写,你踏实做,真诚期望我走来的坑你能爬上去,我走来的路你能拥有死路。能够真正地帮助到那些不知道如何已经开始学的爸爸妈妈。雅雷、
作为一个现职的自修球手,发迹网络行业多年,我有感于网上的自修数据资料粗陋,并且质量层级参差,而且品乐版,所以我决定为我影迷整理一则适宜从零到小厂的自修走线和自修数据资料,你能根据我得出的走线,从不同的终点起程,延续下去,你一定能的!
期0
书刊所推荐
在这个从零起跑的期我却是提议先从C词汇已经开始扬名立万,不提议直接从C++已经开始扬名立万,这里我所推荐两本我看完的书。
《C Primer Plus 修订版》
个人非常所推荐这两本书进阶,我进阶的时候是看这两本书的第四版,科折粉看了两遍,这两遍更为重要是念完两遍再读两遍,而是有目的性的。
第两遍能粗略地的读,大概把句法都了解,一些不理解的地方能他们全自动同时实现呵呵。第两遍就要自修,课外题不需要全被做,但看到没有路子的题却是尽可能能他们同时实现呵呵试一试。紧接著你对C词汇比较熟识了,此时我期望你能他们做一个小工程项目,比如贪吃蛇、书刊信息系统这种,但我更所推荐以迷你游戏来进阶,因为会更加的具有满足感,也会大幅唤起你的自修浓厚兴趣和动力。第两遍是补漏伯粉,能在做小工程项目的同时进行翻查,不必自始至终地读。这是门外汉完之后他们做的贪吃蛇,我觉得教诲才是最好的给别人提议的方式!
视频所推荐
当然,也有很多爸爸妈妈并不喜欢看书从头已经开始学,这里我所推荐呵呵课程
这两个都是我觉得讲的挺好的,想使用视频进行自修的爸爸妈妈能看看。
我这里不是说视频和书籍二选一的关系,你能搭配着来,都是以学会为主要目的。选学书刊
这里我再所推荐一些选学书刊,能供大家根据需要进行自修
《C专家编程》
《C陷阱与缺陷》
《C和指针》
这三两本书我并没有都看完,只是粗略地的读过,当你按照我给的走线学完后,如果学有余力能读一读,却是能。
期1
书刊所推荐
《C++ Primer Plus 修订版》
在这里我所推荐使用这两本书进阶C++,我当时也使用的是这两本书,前后看了两遍。这两本书写的和C Primer Plus 风格类似,因此在你使用那两本书进阶后,学这两本书不会感觉到不适,反而觉得很舒服,行云流水般的衔接。
当你第一次读的时候你会发现,在这两本书中C词汇句法只占很小的一部分,但不要害怕,学下去你会有很大的收获,因为此时的你越读发现越顺畅,越来浓厚兴趣越浓厚,因为我是占卜师,相信我第两遍你要带着思考去读,不必面面俱到,而是要思考的去自修,课外习题要不要做在于你(反正说实话我没有做,懒了~)《C++ Primer 第四版》
你会发现这两本书和上面那两本书长得很像,甚至觉得这本应该比上面那本先读,然而恰恰相反。网上有很多人会所推荐用这两本书进阶C++,当然不乏有一些人能力和天赋出众能直接使用这两本书进行进阶(反正我是不行),但大多数人我觉得却是能按照我得出的走线,看完上面的那两本书再读这本,虽然知识会有一部分重复,但你依然会感觉到有的地方有难度,这两本书能细品,细细的咀嚼,非常的有深度。这本书我读了两遍并且做了部分习题和笔记,收获很大。
这两本书第两遍念完后也许后几章并不是很明白,不要慌你能先放下,去踏实做个小工程项目,比如把之前的贪吃蛇工程项目以C++代码形式修改,或者做个其他的小工程项目练练手
每个期都要多写代码,多动手是C++开发工程师的一贯宗旨!
视频所推荐
按照惯例我所推荐一些C++的视频教程供大家自修,这里所推荐几个我看完的,没有看完的我可不敢乱所推荐。
侯捷老师的视频【C++面向对象高级开发】
cherno老师的C++
侯捷老师的经典视频这里就不多说了,一贯的经典。老师的其他视频就不在这个期放出来了,后面的期会提到。侯捷老师的视频在B站存不住,所以我会在后面给大家提供数据资料。
cherno老师是我
期2
在这个期数据结构和算法也应该同步进行了,刷题网站有很多,这里面向就业我所推荐刷力扣和牛客网,大多数人会所推荐力扣,我这里也所推荐牛客网是因为很多企业会在牛客网上直接进行笔试,从这里也能提前适应编码和调试的平台。
书刊所推荐
《深入应用C++11 代码优化与工程级应用》
C++11我所推荐使用这两本书进行自修,我他们也读过,写的很棒,并且我正在读第两遍,感觉再读的时候仍然能有巨大的收获。
C++11这个系列我也在写,有浓厚兴趣的同学也能看一看:
《Effective C++》
这两本书是侯捷老师翻译的作品,有人说它过时了,这两本书我读了两遍也做了笔记,确实有的地方有些过时,但大多数却是用得上,就算用法过时但是思想依然不过时,有必要读一读,你会更加的理解C++,并且能有效的避免踩一些C++的坑,少走一些弯路。
这个是我写的笔记,有浓厚兴趣的同学能看一看:
《深度探索C++对象模型》
这两本书是详细的讲解了C++在内存中的分布规则,也涉及到了编译器的部分优化规则,读了这两本书你会倍感通透,真诚所推荐!
我读了两遍并且也做了笔记,赠与有缘人:
这里有个分界线是因为这个期已经开始请不要只涉及C++的知识,你应该发散式自修,多管齐下,同时推进。下面所推荐的这些不必要在这个期都学完,而是能和以下多个期结合。
算法和数据结构
《大话数据结构》
大话系列适宜那种喜欢故事,从故事已经开始引导你自修的同学,仁者见仁,智者见智,不过我却是非常所推荐这两本书的。
《算法4》
相比于大话系列,这个就比较正式多了,也许有人这个时候要题《算法导论》之类的想要试图杠我,我个人认为如果以工业方向为目标的话,不必研究到那个程度,包括竞赛类的书,如刘汝佳的《算法竞赛进阶经典2》,不得不说的确写的非常好,但我仍然是那句话,目的不同,努力的方向不同。《算法4》这两本书是Java词汇编写的,介不介意取决于你他们。
《代码随想录》
这两本书写的也非常棒,刷题技巧看这个是能的,能让你快速提高对算法题的应对能力,我和Carl也沟通过,作者本人热心温和。
Linux
《鸟哥的Linux私房菜》
这两本书我读过,但没有念完,没有念完并不是因为这两本书写的不好,而是因为我的时间没有那么的充裕了,我选择看一些常用的命令和知识。这两本书写的很详细也很有深度,但缺点是大头部,书挺厚的,甚至能当作字典来查,有时间有精力的伙伴能全看,比较多学一点知识是没有坏处的。
视频所推荐
我这里所推荐我看完的 一些视频,毕竟看完才有勇气所推荐给大家:
侯捷老师的视频【C++新标准-C++11/14】
侯捷老师的视频在B站存不住,所以我会在后面给大家提供数据资料。
期3
《STL源码刨析》
这两本书也是侯捷老师翻译的,这两本书非常硬核,不过到这个期确实应该看一些硬核点的知识了,必须得有深度。这个有侯捷老师的配套视频,后面会提到。
《More Effective C++》
这两本书能接着《Effective C++》这两本书之后看,可惜我只读了两遍,有机会我一定再次拜读并做一份好的笔记。
《程序员的自我修养—链接、装载与库》
这两本书可谓相当硬核,许多人听完题目可能会觉得这可能是软实力,但念完你就发现了这碗饭有点硬,需要慢慢地去啃。
这又是个分界线,接下来的不是C++知识,这些能在期2就已经开始看,这属于2、3期的知识,但都放到期2会显得太粗陋了。
计算机网络
《计算机网络:自顶向下方法》
这两本书是我觉得计算机方面这一本经典书刊就够了,理论方面够用了。当然你能接着看《Unix高级编程》、《TCP/IP协议1,2、3卷》。但我个人认为在2、3期内并没有必要,理论方面这两本书足矣。
在此我仍然鼓励多动手,利用抓包工具他们体会呵呵这个过程,tcpdump之类的常用工具应该他们试着自修呵呵。
《TCP/IP网络编程》
这两本书非常适宜你在学完理论之后进行练习,能跟着里面的小例子进行自修和演练,结合tcpdump进行抓包自修,相信你很快就会学会。
操作系统
《深入理解计算机系统》
这两本书会涉及到汇编知识,其实如果没有这方面的知识能看看王爽的《汇编词汇》这两本书,自修这两本书的时候能配合配套的课外实验,这样能更加深入的理解相关的知识。
设计模式
《大话设计模式》
这两本书我看完两遍,一直想着把里面的模式都使用C++他们同时实现两遍,可惜还在处于想的期,但确实写的通俗易懂,值得所推荐阅读。
数据库
《MySQL 必知必会》
这两本书我前后读过两遍,也做了相关的笔记,对于进阶来说这两本书非常的适宜,对新手却是十分友好的。
《MySQL技术内幕 : InnoDB存储引擎 第2版》
《高性能MySQL(第3版)》
这两两本书各有优缺点,但如果时间不说很充裕的情况下挑一些重点章节,如索引、底层存储等相关内容阅读即可,充裕的话却是提议都读一读。
《Redis实战》
这本书重点在于教你如何去使用Redis,基于小问题、小工程项目的角度带你思考,我读起来感觉对纯小白不是特别的友好,但却是不错的。
《Redis设计与同时实现》
这本也是我超级喜欢的一两本书,虽然只读过两遍,但我期待再次拜读它,因为实在是写的太好啦,等我念完一定把我的读书笔记分享给的大家!
服务器开发
《Linux高性能服务器编程》
这两本书是我最喜欢的书刊之一,我从头至尾已经读了四遍了,这两本书面面俱到,系统的阐述了开发一个Linux高性能服务器的模型,让我从这里认识到了一个高性能服务器程序的结构,非常受用!
我的笔记在下方:
视频所推荐
我所推荐几个我看完觉得比较好的:
侯捷老师的视频【C++ STL标准库和 C++ 泛型编程】
侯捷老师的视频【C++程序的生前和死后】
强推李治军老师的操作系统,简直爱了,我超级喜欢!期4
还有两本我也读过,但并没有分享出来,因为我觉得自修应该把握住一条主线,好书是读不完的,把需要的学会了,其他的书刊在其余的时间他们看,用来增加和完善他们的知识体系就好了,计算机本来是一个不断自修的行业,学无止境,不自修的话是在倒退!
这个期我觉得主要却是不断地跟上时代,学会“模仿”,不是谁天生就会,都是自修得来的,学会了消化了是你他们的,尤其是在工业界,很多知识都是不断演进和变化来的,历经时间的洗礼和磨练,所以更多的是看一些优秀的工程项目和源码,从实战中自修,然后能他们从理解到模仿再到最后地创造,这才是该有的正确的一个过程!
这里我所推荐一些优秀的源码:
libevent是一个跨平台的、高效的异步事件通知库,采用C词汇编写,值得拜读。
muduo是一个基于C++11中多线程Linux服务器的事件驱动网络库,通过这个能自修和巩固C++11的使用,而且还使用了C++11式的回调函数,更加体现了C++11的魅力。
nginx的鼎鼎大名应该不用过多介绍了吧,采用多进程的开发方式,上面的是我觉得源码分析讲的比较好的,分享给大家。
Ratel是我他们开发的一个网络框架,目前还在开发和完善期,感浓厚兴趣的爸爸妈妈也能看一看。
还有我写的一些设计路子:
在看源码自修的过程中,也要更多的掌握一个工程的设计思想和路子,自修一些书中没有的知识,比如Git的使用、CMake的使用、Make从编码中自修,错误中反思得来的!