发表时间:2022-03-25来源:网络
真的同学,如果你从一大堆厚厚的书籍与极度枯燥的网课开始自学CS,那么恭喜你,你离深深自我怀疑,退坑计算机不远了。



猪学长之前为所有计算机大一大二或者非科班想要转行的小白同学原创算法提高刷题路线:
(这里只给出刷题路线,如果想要学习路线,直接翻到此文末尾就行!)
pat乙级 (语言熟悉)——> pat甲级(算法数据结构提高) ——> 《剑指offer》——> leetcode(简单、中等,面向互联网校招技术岗位准备)
(特此声明:此路线以及我之前的算法相关回答都是我个人原创,其他人如果未得到我个人授权禁止抄袭违规转载我的回答!!!)
重点强调:如果你只是一个普通的计算机专业的同学,并不是算法竞赛爱好者或者ACM选手,你只需要按照上面这个路线来做普通的算法题目就足够符合大厂技术岗位对算法编程能力的要求了。
a、小白入门算法编程先要正确的学习c/c++语言
关于c/c++语言这块简直有太多小白同学来问我了,有无数的大一的同学看了知乎上很多其他已经工作多年的前辈推荐学习c++需要看《c++ primer》,然后刚接触编程就去买了一大厚本厚厚的《c++ primer》,然后买回来根本看不懂。


上面这本书是我任意找的一本c语言教程书籍,小白同学们学习c语言只需要重点学习:
输入与输出
类型、运算符、表达式
控制与循环
函数
指针与数组
结构体
这几个章节就可以啦,其中额外说明一下指针如果觉得难的同学可以不用先搞太懂,算法竞赛刷题用到的指针也只是简单层面上的使用。
上面这些书籍猪学长之前一直有整理,如今都免费分享给同学们:
点这里, 计算机优质书籍项目免费推荐分享!
然后c++的学习,猪学长之前推荐过这本书:

大家不用一定要用一模一样的我推荐的书籍来学习,其实用于算法竞赛刷题,c++这块只需要学习补充很少的知识,额外很多c++的特性其实是用不到的。下面我也详细的告诉大家需要学哪里:

首先大家可以看到,c++书籍中很大一部分的基础知识其实就是c语言的知识,如果同学之前c语言都学习过了,接触上手c++其实是很快的。c++相对于c语言最主要的就是扩充了一系列的面向对象的机制,但是类这些面向对象的机制我们在算法竞赛中其实是用不到的。那c++我们重点需要学习哪些呢?

上面这些书籍猪学长之前一直有整理,如今都免费分享给同学们:
点这里, 计算机优质书籍项目免费推荐分享!
我们只需要重点了解标准容器中这些概念知识就足够啦!
其他尤其关于类的各种抽象、封装、继承等面向对象机制与其他的知识,暂时先简单阅读了解就行,如果不是能够很好的掌握也没关系。
关于算法相关的部分知识,也就是简单的阅读,大致的理解这些都是什么,如何使用就可以了。如果对其中很多概念还是不理解,可以翻翻书其他部分或者Google搜索一些博客补充一些知识。
尤其是同学们千万不要上来就死记硬背c语言c++编程书籍,看过了的语法忘了是很正常的,后面大家做算法题目练习编程的时候,忘记了某些语法是可以随时翻书的。
猪学长之前本科打算法竞赛的时候,学习的时候,有收藏使用一个汇总了所有c/c++ STL等关键模板库以及常用语言知识点的电子版手册,可以说是真的非常的好用。

其中最关键的就是有c++ STL 标准模板库的详细整理总结!!!这个对正在刷算法题的同学们,帮助真的是非常的关键。这里直接现在免费分享给同学们!!!

B、想要提高算法与编程能力真的不能只看书,一定要动手!动手!动手!
我看知乎上有太多太多的同学提问,啊啊啊编程语言看了记不住改肿么办?啊啊啊算法与数据结构课程好难,看了半天书也不知道讲的是什么?
真的同学们,真的学习计算机编程,只看书不写程序都是耍流氓!
猪学长当初入门编程,完全是从接触了大量的编程题目开始的,以完美的解决编程题目的为导向,然后反过来推动自己进一步看更多的书籍。
解决问题的过程中,不仅可以激发起自己的兴趣,还能一步一步来提高自己的编程算法能力。
我看到有的回答,上来就直接给推荐《算法导论》,LeetCode....

猪学长之所以推荐这个,是因为之前我之前一直活跃过非常多的oj平台,一直觉得PAT (Basic Level) Practice (中文)乙级的题目是最适合编程小白入门的题目合集了。

乙级的题目每个题都是一个有趣的小例子,然后只涉及数组,循环,判断,字符串等基础编程语言语法的知识,不会设计复杂的算法与数据结构。
同时同学们要记住刷题的目的是为了提高自己的编程能力,不是为了数量。
乙级的题目大概做30-50题目,对c/c++的基础语法掌握的非常扎实了。
你就会发现你初步的了解什么是编程,什么是算法。
你还会知道原来编程可以解决这么多的问题呀!
当然在做题目的过程中,如果语法忘记了就可以随时翻书。
有的题目为什么差一个点没有通过,都需要你去排查bug,
这个过程既是对语言语法的熟悉,也是对程序设计能力的高。
遇到不会的问题,可以去网上搜对应的题解参考,
pat题目的题解网上比如csdn之类的是全部都可以找到的。
尤其是当看到其他人写的优秀的题解代码的时候,
真的会由衷的觉得,怎么能写的这么简洁精美!
这个过程中,你的编码能力就在提高。
当然学长之前学习的时候也有找到pat题解的优质pdf文档,
这里直接免费分享给同学们。 提取码是:uat0

猪学长之前看到了一个问题,特别有意思:这个问题我还没来得及去回答。
这个同学的提问很明显暴露出了我国计算机教育的问题,就是按部就班的推进课程,其实学生能力根本没得到训练与提高。
算法与数据结构是猪学长本科时候觉得最有意思的课程,这门课程我们是大二才开,但是我大一的时候自己提前学了好几遍了。印象很深刻这门课我一学期没怎么去上课,最后期末拿了99分的成绩。哈哈,不给我100老师说是怕我骄傲。
那猪学长是怎么把数据结构学的这么好的呢?
还是前面的方法论,要以解决问题为导向,反过来看书!!!
而不是先去啃厚厚的困难的算法书籍,然后看的一头雾水。
当你已经能完全可以胜任pat Basic Level的题目后,
你就可以在学校课程之前,提前去学习了解数据结构的相关内容:
这里推荐: 《啊哈!算法》这本书来入门

这本书真的是用非常幽默易懂的语言,
以及各种有趣具体的例子,来帮助很多同学入门算法与数据结构!!!
这本书跟之前一样,先简单的翻阅,
初步的了解什么是线性结构,链表,栈?
什么是非线性结构,树,二叉树?
什么是图?哇,计算机程序中咋还有图?
通过这些,你就会发现你对算法与数据结构有了初步的了解!
这时候,你会发现你的编程有多了很多技能,这时候你就可以去挑战更高难度的题目了!
叮!Pat Advanced Level 解锁!

你就可以去做PAT advanced 甲级的题目了,
真的pat甲级题目所设计到的数据结构难易程度真的是非常棒的。
没4个题目为一组,
前两题是乙级题目,后两题是甲级数据结构的题目。
会涉及到主流的链表,栈,树,以及基本图论算法的知识,
最关键的是不会出现很多ACM困难级别的算法题目!
真的建议所有有时间的同学,好好的做一下PAT甲级的题目,这个质量真的是高。
题解同样去网上搜索,或者用猪学长整理的也行。
当然学长之前学习的时候也有找到pat题解的优质pdf文档,
点这里直接免费分享给同学们。 提取码是:uat0
当你Pat甲级做了50道左右,比较熟练了的时候。
叮!剑指offer习题集解锁!
这个还有配套书籍:

你看到了题目丝毫不会做,这时候你就去找大佬的题解,发现题解写的完全看不懂,
然后你就想起来了这个题用到了二叉树这种数据结构,
然后自己回头再去翻数据结构教材或者书籍,重新结合这个题目再去学习二叉树的基本知识,
比如二叉树的遍历等等。
等你复习好,这回回来再看大佬的题解,发现明白他的思路了,
然后你自己努力把题目完成通过!!!
当你剑指offer60多题目都弄懂,同时PAT甲级题目做了50题左右,
如果你还说自己不懂算法与数据结构,
你就来打猪学长!!!
这个时候你就已经具有扎实的算法与数据结构基础了,
如果你在大一的时候就看到了猪学长的回答,并且早早的开始行动,
大一一年的时间足够完成上面的所有内容学习,甚至努力的同学一学期就可以。
这时候你就具备了参加一些大学里的程序设计比赛的能力了!


操作系统作为最基础的计算机专业课程,可以说是对日后工作影响最大,也是面试中最常涉及的。
但是对于不同的技术岗位来说,校园招聘对操作系统的考察难度层级不同。
如果你要是目标求职web前端,Android客户端等非服务端技术岗位的同学,可能校园招聘面试中只要求你掌握基本的操作系统理论知识即可。
但是如果你是想要目标求职后端岗位的的同学,尤其是想要做c++/Linux服务端方向的同学,那可以说必须对操作系统有着更扎实的技术储备。
A、首先入门学习推荐《计算机操作系统教程》

这本书机械工业出版社的黑皮书也可谓是计算机网络的经典书籍了,要比国内的教材更深,更全面一些,里面充实着大量的场景案例,但同时内容也过于深与杂,适合作为进阶学习书籍,不适合小白上来直接看。
MIT6.829: 计算机网路课程
在过去的二十年里,互联网已经从一种研究好奇心发展成为我们每天都依赖的东西。 它已经能够承受快速增长并适应许多不可预见的应用。这个全球基础设施如何运作? 什么设计原则使它能够很好地扩展? 哪些设置使这些原则不充分,为什么? 我们如何才能让它在未来更好地运作? 这些是我们将在本课程中解决的一些问题。 这个是麻省大名鼎鼎的计算机网络课程:
很多同学发私信给猪学长求一些计算机学习的资源以及大厂校园招聘的面经,这里先分享给同学们:
点这里, 计算机优质书籍项目免费推荐分享!
优质大厂校招面经合集免费分享,点这里!
数据库是作为后端开发必备的基础技能,在面试的考察中也是必不可少的部分。
尽管业内使用的dp种类非常多,但是对于工作经验较少的应届生来说,一般要求具有扎实的数据库理论基础,并且对常用的数据库有一定的了解就行:
比如:MySQL关系型数据库和Redis非关系型数据库。
关于mysql数据库的学习,推荐推荐:《mysql技术内幕++InnoDB存储引擎》

猪学长之前一直都有认真整理很多技术书籍,还有一些优质项目课程,互联网校招面试题目,其中有很多某课上的优质课程是我曾经花了很多钱购买的,现如今猪学长也已经毕业啦,都分享出来直接分享给有需要的同学们。

同学们如果觉得有帮助的话,不要白嫖猪学长,给猪学长点一个赞吧,
这样可以让跟多的同学看到!
最后同学如果还有什么问题,只要是计算机相关,互联网大厂求职,技术方向等等问题,都可以在评论区给猪学长留言,或者关注我猪学长哈,猪学长不向同学们开通付费咨询!
同时对字节跳动感兴趣的同学,想要找猪学长内推的,也可以联系猪学长哈。
真心希望可以帮助到你。
上一篇:C/C++编程推荐学习顺序和书籍
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务