• 欢迎访问:祀与戎,国之大事,在祀与戎。 手机号码:
  • 欢迎访问:祀与戎,国之大事,在祀与戎。
  • 欢迎访问:祀与戎,国之大事,在祀与戎。祀与戎
  • 祀与戎,国之大事,在祀与戎www.siyurong.com
  • 祀与戎,国之大事,在祀与戎。如果您觉得本站非常有看点,那么赶紧使用 Ctrl+D

如果让你重新开始学计算机,你的学习路线会是怎么选择?

思想观点 siyurong 4年前 (2022-08-23) 6次浏览 已收录 0个评论

国外有一位小哥开源了一个学习路线,目前已经累计在 Github 上收获了 204k star,可以说是全球最火的学习路线了。

这仓库的名字叫做“developer-roadmap”,其包括的学习路线涵盖:前端、后端、DevOps、Android、React、DBA、Java、Go、Python,非常全面。另外,测试、AWS 的学习路线还在路上。

题外话:国外使用 PostgraSQL 还是比较多的,用法和 MySQL 差不多,但是PostgraSQL很多方面确实比 MySQL 好用一些。这几年在国内也越来越流行。

作为程序员,如果你还不知道这个仓库的话,就真的太亏了。几年前,我就曾经在公众号推荐过这个项目,当时 star 数量不过也才 90k+ 。

网上有非常多的技术大佬都是参考这个仓库写的学习路线。

Github 地址 :github.com/kamranahmeds

效果预览

前端学习路线

下图就是这个仓库关于前端的学习路线的部分内容,非常全面细致。

一步一步按照这个路线去网上找对应的教程看,你完全可以把前端自学的非常好,循序渐进。

后端学习路线

下图就是这个仓库关于后端的学习路线的,内容总体还是非常赞的。基本涵盖了一个后端程序员必须要掌握的一些知识,非常直观! 你可以将其作为自己后端学习之路的重要参考。

需要注意的是:对于可以有多个选择的地方,作者都给出了自己的推荐(紫色勾)。但是, 你不需要完全按照作者的推荐来,毕竟国内外的技术流行度还是有区别的。 比如在编程语言这里的话,作者推荐了 JS,但是,在国内的话,显然是 Java 或者 Go更适用一些。再比如关系型数据库这里,作者推荐的 PostgreSQL,但是,在国内肯定是 MySQL 更加通用一些,PostgreSQL 或许是未来的趋势。

Java 学习路线

可以看到,Java 学习路线是紧接着后端学习路线来的。

这里只列出了专属于 Java 学习路线的内容,像后端通用知识部分可以按照上面的后端路线学习。

总结

我推荐这个仓库的原因并不是因为这个学习路线有多么详细,主要是因为它提供的学习路线是真的非常直观。这种用来展示学习路线的方式,大家也可以学起来!

除了学习路线之外,这个仓库对应的网站上面还有一系列简洁明了的技术课程。

每一个视频都旨在讲解清楚一个知识点比如负载均衡、ACID、TCP/IP 模型。

请问如何短时间突击 Java 通过面试?183 赞同 · 5 评论回答185 赞同 · 5 评论回答

Github掘金计划由3位志同道合热爱开源的小伙伴维护,我们想让 Github 和 Gitee 上优质的开源项目被更多人看到!如果有帮助的话点个在看或者赞就是对我们最大的鼓励!

欢迎关注 @Github掘金计划,持续分享优质开源项目!

首先声明一下,任何一行都会有各种各样的具体情况,作为一个个体很难绝对完善的覆盖各个方面,笔者亦不能免俗。这篇文章的某些观点仅代表个人意见,具体情况还希望多加调查以确保不要陷入个人偏见。

信息技术是当今信息社会非常基础的存在和生产力,也正因此,在很长的一段时间里计算机学科都显得很吃香,也成为了诸多学生选择专业的首选。

但和很多其他专业一样,计算机这个学科有着自己的特点、适应人群和并不简单轻松的职业发展路径。因此,本文将试图从专业学习、未来出路和生涯规划三个方面来介绍一下计算机专业的全貌。

本文作者:LR,清华大学交叉信息研究院本科毕业,博士在读

(P.S. 计算机 CS 之外的三个专业介绍在这里

电子信息:电子信息类的就业前景真的不如计算机类吗?

自动化:自动化是不是很坑的专业?

软件工程:「软件工程」专业是一门怎样的专业?)

关于学科本身

计算机是一门非常年轻的学科,其历史至今还不足百年。但是作为第三次工业革命的主要技术,计算机依然是这个时代最核心的学科之一。

简单来说,最狭义的计算机学科,研究的是如何通过现代的各种电子元器件(如最早的电子管、晶体管、集成电路)的组合,使得它可以按照人类预先设定的流程工作,从而完成各种计算问题。这是抽象到最抽象的计算机学科,也是其原本最根本的出发点和整个学科的基础核心。

事实上,计算机这个学科是一个非常特殊的存在,因为它是如此的包罗万象,以至于从各个不同的侧面和不同的层级看去,计算机科学可以呈现出各类学科的特点。例如,在最底层的实现部分,计算机学科是一门妥妥的工程学科,如何搭建电路以完成基本逻辑运算、如何提高效率、如何大规模集成,这些和设计精密的机械仪器和汽车发动机别无二致;然而到了抽象层面,算法、数据结构这些组织数据和解决问题的方法论,却是满满的理论研究的味道,到处充满了组合数学;在中间的各种应用层级,计算机学科又像是材料、建筑或是生物,在有限的抽象层级和有限的工具范围内进行组合,在某一特定应用领域中发现一些算不上是基础突破、但又不完全纯粹是技巧的技术和知识(例如优化计算机网络结构等)。

现如今,因为信息系统已经深度融合进入了各个学科行业,所以计算机学科也变得格外重要,其下属的具体方面也愈加丰富多元。有硬件层面的不断精益求精、试图突破摩尔定律的极限,有软件应用层面的工程代码的设计、网络系统设计,有交叉学科的人机交互、图形学,有试图破解人类智慧的人工智能,有在理论上探究更加算法与计算本质的理论计算机科学和量子计算等等。

学科的知识结构

本科课程体系

计算机学科的培养方案比较庞杂,不同学校也有各自的特点,不能一概而论,但大体上以下部分是几乎所有的培养方案都会包含的:

其中数理基础课和核心专业课程都属于必修内容,而后续的选修课程则与各类细分的专业方向相关。

细分方向

计算机有很多细分方向,不同方向之间也并非泾渭分明,大致归类如下

交叉学科

计算机学科与其他学科的交叉非常之多。例如与经济学交叉的算法经济学和算法博弈论,研究各种定价和拍卖的问题;与社会科学结合的数据(AI)伦理;与数学结合的计算数学和理论计算机;与生物结合的计算生物学和生物统计,用计算机的力量帮助破解基因密码,又比如 alphafold 可以用于破译蛋白质结构……

可以说,只要一门科学里涉及到数学、并可以将某些核心问题转化成数学问题,计算机学科就可以用计算发挥其威力。

计算机专业怎么学?

前面两个部分对计算机专业的知识结构与关注的主要方向做了基础的介绍,但很多同学关注的除了「计算机专业学什么」之外,更多是「怎么学」以及「难不难学」两个问题,这里会针对这两个问题,简单给出一个回答。

在展开介绍之前,有必要先明确一个十分根本的认识问题:计算机学科到底在干啥?很多人怀揣着对于信息时代黑科技的向往或是对高薪资的追求,就非常热切的选择了计算机专业,这种本质上基于浪漫的想象和功利的眼红的动机,在本科的学习中很容易出现落差或者不适应,即使是在笔者所在的清华大学,计算机类专业学习过程中出现不适应、跟不上的学生也比比皆是。

计算机学科最原始的初衷是用机械代替人力计算,后来机械装置变成电路,即使用复杂的电路完成预先规划的计算行为。因此,从本质上说,计算机学科是一个研究「如何设计并使用电子器件收集、存储、处理信息进行计算以达成某种目的」的学科,而如何控制此种计算或处理流程的预设逻辑,即为大家所熟知的「程序」或「代码」。

以此脉络展开,就不难理解世界上各个大学惊人一致的计算机专业的培养方案了:除去是一个理工科学生都必须要学的微积分、线性代数、概率论之外,一个计算机专业的学生首先需要理解基本的电路的工作原理、以及如何使用电路进行逻辑运算,所以就会有一系列的硬件课,包括电路原理、数字电路、计算机组成结构;

其次,计算机专业的学生一定要十分熟悉并且喜欢一种「安排」感,

入门:

mit 6.001, cs50,后者主要是拓宽一下视野

阅读 计组趣味入门书《编码》,可以边看边玩一个 steam 游戏 mhrd。

–>

夯实基本的计算机基础:

基础数据结构、算法:普林斯顿的算法课(coursera)

csapp,先略读了解个大概内容,然后再做 lab,根据 lab 内容到书里找答案。

南京大学操作系统课及附带的 lab(b站:绿导师原谅你了)

斯坦福计算机网络 cs144

个人认为进阶阶段最重要的课程是操作系统,一门课能覆盖的知识是有限的,这是为什么既要看 csapp 又要学南大操作系统。有条件最好能跟着清华的 rCore 再造一遍轮子。

到此,再刷刷 leetcode,就能作为一个应届生拿到大厂后端甚至基础架构岗位的校招 offer 了。(实际上这些课我好多知识没吃透都拿到 offer 了……)

大学一大遗憾是没有参加 ACM 队。其实 ACM 队很愿意收非科班的学生,只要你足够用功。

我后来发现自己想做的是数据库相关,所以接下来:

–>

mit 6.824 分布式系统

cmu15445, 15721 数据库实现/前沿进展

uw programming languages(coursera),以及阅读sicp。让代码更优雅,以及理解函数式语言的思维方式。

看龙书,学做编译器。彻底搞明白 编译器/解释器 原理和相关优化能让以后的很多工作事半功倍。

然后在学生时代尽可能多地造轮子:简易操作系统,单机/分布式 kv 存储引擎,玩具语言,http 服务器。

数学就不说了,我心中永远的痛。

以个北美CS求职的视角去看这个问题。。

我建议

第一,学习系统的计算机知识,4门课,计算机网络,操作系统,计算机组成原理,数据库,这四门是计算机最重要的4门课,学好。

第二,数据结构+算法,刷题,LeetCode,500+底线

第三,面向对象设计OOD,学明白

第四,System Design,系统设计,学明白

第五,把项目做好,找工业级硬核项目,充实好自己的简历

如果把上述都学的差不多了,那么CS已经算登堂入室了,但上述如果全学明白,没有1-2年是不现实的,大多数人,90%都没见过几个学明白的。

基本Google,Facebook这种大厂的工作,可以横扫了。


【专注于北美CS求职,已将上千北美学子送进FMAG公司~欢迎私信了解~】

仅仅谈下软件开发这个分支, 目标是让大家成为可以全世界通吃的高级软件开发者。想搞理论的出门右转。

软件开发主要是项目经验为核心。现在资源多得跟我当时学习时不可同日而语。我当时学习时网络才刚起步, 大家主要还是在本地写小游戏。 我最开始学的是怎么写《星际争霸》的地图脚本、用frontpage做静态网站,后来学做Flash小游戏、和做三维动画的教学网站。我当时很傲慢, 不听劝、不喜欢跟着别人走过的路走,因此踩了很多雷、浪费了很多时间。我小时候一直以为我可以靠做三维动画发家,或者成为科学家,从来没想过会成为软件开发。 回想起来, 当时要是多写点程序, 不管是什么程序, 其实都会有更好的基础。

重新学的话, 我会照下面这么做。

学习方法不难, 我个人的话, 弄一个简单的bullet journal,每天写下今天想干嘛, 晚上打勾画叉,就够了(这也是习惯培养的一部分)。

做这些千万别依靠自律。 自律是猛毒, 坚持不下来的。要培养习惯、依靠习惯。详见:一个自律的人有多可怕?

唯一的自律方面的要求, 是每天在刷手机之前要做下面这些事情, 做完了才能刷手机。不然一刷起手机了这一天你的奖励系统就遭殃了, 做别的事情会很痛苦。刷手机可以是坚持做了这些事情之后的奖励。 每天的精力是有限的, 要适当休息。有时我会通过中途睡觉来一天当两天用。

最后, 你还需要家人的支持。如果没有家人的支持, 能完成这些的概率接近于零。

可以自学的部分:

  1. [前三个月]先把这个学完: Week 0 – CS50x 2022
  2. [后三个月]然后把这些做完(自选至少一门前端一门后端, 有多的时间再做别的。 个人推荐Javascript和Java的案例): github.com/practical-tu
  3. [后六个月]然后自主开始搭建一些服务, 可以先从本地搭建起, 之后再去云端弄。 比如小聊天室、自建twitter、爬虫、搜索网站和论坛之类的功能性的小项目。期间可以找一些公共API调用着玩, 也可以自建几个服务调用。可以参考一下Eric Freeman的《Head First Design Patterns》来优化下类设计, 还有Alex Xu的《System Design Interview》来找灵感。这些书比较接地气。虽然教的都是教条主义的内容, 不一定全对,但是你现在需要这些案例。

全职学习的话一年上面这些应该能搞定,非全职两年, 用寒暑假做, 或者大学放假时补。上面这些资源在我当年是不存在的。 我近些年做了一部分, 觉得它们对于初学者会有用,但是我没有时间去做完它们。你如果能做完, 基础会比我好。

4. [大二上学期] 学习了算法之后, 每天再坚持LeetCode一两个小时, 一直坚持下去。不要按题目数量决定今天的工作量。 按时间效果会好。 如果卡壳10分钟以上, 立马看答案学习解题方式。 不要死磕。 解题方式有时候是别人几年的成果。我当时学习时过于傲慢, 从来不刷题, 只喜欢自己推导。 在这方面很吃亏。

5. [大二下学期] 开始听《Hidden Brain》、《Freakonomics》之类的心理学和经济学方面的podcast。书嘛, 可以看看Adam Barr的《The Problem with Software》启蒙。 之后可以看下Timothy Lister的《Peopleware》和Fred Brooks《The Mythical Man-Month》, 以及Adam Barr在书中reference的一些别的书籍。

切忌一次做太多事情。 一件一件做。 练习比知识重要。任何一件事情, 坚持下去、养成习惯了, 再提起下一件事情。 大多数事情你只需要坚持60多天,继续下去就不会再消耗你的精力。

6. [毕业后前十年] 找份工作。 这十年是你职业初期,尽量多做项目和反思。你做的每一件事情, 都尽量要有刻意的选择, 每一个选择, 都要有失败的可能性。 不做选择、不会失败,就很难消化经验(详见: 如何更好地理解「选择比努力更重要」?)。 后五年学会营销自己, 并且在一个公司和组织扎根。保持听上面提到的两个podcast和他们推荐的书籍。这十年如果不读书你不爽的话, 可以看看《Outliers》- Gladwell,《The Psychology of Money》- Housel,《FLOW》- Csikszentmihalyi,《Thinking, Fast and Slow》- Kahneman,《Innovator’s Dilemma》- Christensen,《Sapiens》- Harari,《Decisive》 – Heath,《How to Measure Anything》 – Hubbard, 《The 7 Habits of Highly Effective People》 – Covey,《The Four Tendencies》 – Rubin,《How to Win Friends and Influence People》 – Carnegie,《The First 90 Days》- Watkins,《The One Thing》- Keller。 一点一点看不用急。 按这个顺序就好。

一旦开始自己选书, 涉猎必须广泛。 很多书也就是一家之言。 接触范围少了容易被带偏。我当初学习时没有人引导, 因此必须涉猎很广, 也因此花了很多没有用的时间。 针对读上面这些书和听podcast, 相对自己探索,可以节省大概90%的时间。这些书大多比较好读, 有科学依据支撑, 而且核心思想在工作中非常适用。 我以前的问题一直是太傲慢, 不愿意听别人的指导,所以就算有人告诉我这些我也大概不会听吧。

上面这些书中说的也需要根据自己的情况进行实验。 比如《Peopleware》的哲学虽然很好, 但是实验支撑不太扎实。 Rubin的《The Four Tendencies》只是在描述人的两个维度, 而人有很多别的维度可能会影响行为模式。 Keller的《The One Thing》中决定优先度的想法很好, 但是它推荐的时间管理方式,每天4小时,可能需要去分割成半小时和一小时的活动, 不然手上太多时间反而会因为在一件事上想过多而降低效率。很多时候我们需要把活放一放, 才会有更好的想法, 而这个期间去干别的活是一种有效的方法。而且时间过长会让事情变得缺乏挑战性, 进而让我们无法进入FLOW。 Hubbard的《How to Measure Anything》中有些过度复杂的模型可能不值得我们在中小型项目去学习和应用,虽然去理解它的思考方式很重要。阅读之外要通过应用来判断书中的内容对你是否有用, 如何理解才有用, 因此需要慢慢读, 才有时间慢慢试。

软件相关书籍可以参考, 但是大多读了有害无益。 需要技术支持不如自己在网上搜。 读完Adam Barr之后你应该已经意识到, 市面上除了少数几本经典, 大多数软件开发的书籍并没有科学依据。你如果想接触这些书, 那么必须是在有了项目经验和上面这些知识之后, 找受欢迎的那些看看一两章感受一下, 知道别人的误区都在哪就好了。

上面这些资料啃完你英文应该也不错了。 技能也够了。 世界就是你的舞台。

学习计算机的路线有很多,关键看你要做什么样的工作,是前端工程师还是后端工程师,是测试工程师还是算法工程师……

但是无论你选择什么,需要记住一点:道路千万条,算法第一条。

在计算机学习当中,算法与数据结构是重中之重。

许多程序员对算法和数据结构望而生畏,认为这是一项高深莫测的学问。

以前我曾经面试过一个小伙伴,起初考察他的技术功底和项目经验,他都回答得还不错。接下来我对他说:“OK,那我考察一下你的算法和数据结构水平吧。”

题目还没说出口,小伙伴立马摆摆手说:“不要不要,我算法不行的!”

我还是有些不甘心,接着说道:“我只考察最最基础的,你说说冒泡排序的基本思路吧?”

小伙伴仍旧说:“我不知道,我算法一点都不会…..”.

算法和数据结构真的有那么难,真的有那么无趣吗?

恰恰相反,算法是编程领域最有意思的一块内容,也并没有许多人想象的那样难以驾驭。

许多人把算法比作是程序员的“内功”,但小灰觉得这个比喻并不是很恰当。内功实实在在,没有任何巧妙可言,而算法天马行空,千变万化,就像是金庸笔下令狐冲的一套独孤九剑。

学习算法,我们不需要去死记硬背那些个冗长复杂的背景知识、底层原理、指令语法……我们所需要的只有对算法思想的领悟、对空间和性能的理解、开动脑筋去寻求最佳的解决方案。相比编程领域的其他技术,算法更纯粹,更接近数学,也更具有趣味性。

我一直希望写出一些东西,让更多的IT同行们能够领略到算法的魅力,可是用什么方式来写呢?

2016年9月,一次突如其来的灵感,让我创造了一个初出茅庐的菜鸟程序员形象,这个菜鸟程序员名叫小灰。

程序员小灰的故事活跃在微信公众号上,用漫画的形式诉说着他的一次又一次面试经历,倔强的小灰屡战屡败,屡败屡战。小灰是我本人刚刚入行时的真实写照,相信许多程序员小伙伴们也能从中看到自己的影子。

以下是几篇具有代表性的漫画:

漫画:什么是冒泡排序?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653194666&idx=1&sn=69ce32870c0b981c40b1e124fbb6bba8&chksm=8c99fb70bbee72668cad223892ad362525d215e7f936458f99dd289eb82981099359310e9e54&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653194666&idx=1&sn=69ce32870c0b981c40b1e124fbb6bba8&chksm=8c99fb70bbee72668cad223892ad362525d215e7f936458f99dd289eb82981099359310e9e54&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653194666&idx=1&sn=69ce32870c0b981c40b1e124fbb6bba8&chksm=8c99fb70bbee72668cad223892ad362525d215e7f936458f99dd289eb82981099359310e9e54&scene=21#wechat_redirect
漫画:什么是插入排序?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653199343&idx=1&sn=a5491fa908e45e6117423d9ba5062611&chksm=8c99e935bbee60232aacb7c2b74961a24e7b86d44bf98357c597ad277a8eb15639c1de7034d9&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653199343&idx=1&sn=a5491fa908e45e6117423d9ba5062611&chksm=8c99e935bbee60232aacb7c2b74961a24e7b86d44bf98357c597ad277a8eb15639c1de7034d9&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653199343&idx=1&sn=a5491fa908e45e6117423d9ba5062611&chksm=8c99e935bbee60232aacb7c2b74961a24e7b86d44bf98357c597ad277a8eb15639c1de7034d9&scene=21#wechat_redirect
漫画:什么是希尔排序?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653199674&idx=1&sn=9ab7bb7e465104c67a3d8590ebd0fe6c&chksm=8c99efe0bbee66f69c07e5f423d7751c9667fa82beb6dcaef4c0e96dac9545d2277c8179c765&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653199674&idx=1&sn=9ab7bb7e465104c67a3d8590ebd0fe6c&chksm=8c99efe0bbee66f69c07e5f423d7751c9667fa82beb6dcaef4c0e96dac9545d2277c8179c765&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653199674&idx=1&sn=9ab7bb7e465104c67a3d8590ebd0fe6c&chksm=8c99efe0bbee66f69c07e5f423d7751c9667fa82beb6dcaef4c0e96dac9545d2277c8179c765&scene=21#wechat_redirect
漫画:什么是归并排序?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653200029&idx=1&sn=51ecebafb9ff77baf3de71bdc4f67b78&chksm=8c99ec47bbee6551b0377b97e26670c4895d0c934051e4aa927e62bf9b64996b6e1f7459edfe&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653200029&idx=1&sn=51ecebafb9ff77baf3de71bdc4f67b78&chksm=8c99ec47bbee6551b0377b97e26670c4895d0c934051e4aa927e62bf9b64996b6e1f7459edfe&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653200029&idx=1&sn=51ecebafb9ff77baf3de71bdc4f67b78&chksm=8c99ec47bbee6551b0377b97e26670c4895d0c934051e4aa927e62bf9b64996b6e1f7459edfe&scene=21#wechat_redirect
漫画:什么是 “图”?(修订版)​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653197523&idx=2&sn=893c01a31446d3c479c312836ae83819&chksm=8c99e609bbee6f1fb0df2fb60edb8fba5166b49ef200ab8fb3af4ff144b3f96b283a34ff776c&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653197523&idx=2&sn=893c01a31446d3c479c312836ae83819&chksm=8c99e609bbee6f1fb0df2fb60edb8fba5166b49ef200ab8fb3af4ff144b3f96b283a34ff776c&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653197523&idx=2&sn=893c01a31446d3c479c312836ae83819&chksm=8c99e609bbee6f1fb0df2fb60edb8fba5166b49ef200ab8fb3af4ff144b3f96b283a34ff776c&scene=21#wechat_redirect
漫画:什么是红黑树?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191832&idx=1&sn=12017161025495c6914b5ab9397baa59&chksm=8c990c42bbee8554ba02eb83d839123bd3bead6ffc736111456ea77367a3df75750cf88016e0&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191832&idx=1&sn=12017161025495c6914b5ab9397baa59&chksm=8c990c42bbee8554ba02eb83d839123bd3bead6ffc736111456ea77367a3df75750cf88016e0&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653191832&idx=1&sn=12017161025495c6914b5ab9397baa59&chksm=8c990c42bbee8554ba02eb83d839123bd3bead6ffc736111456ea77367a3df75750cf88016e0&scene=21#wechat_redirect
漫画:什么是B-树?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190965&idx=1&sn=53f78fa037386f85531832cd5322d2a0&chksm=8c9909efbbee80f90512f0c36356c31cc74c388c46388dc2317d43c8f8597298f233ca9c29e9&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190965&idx=1&sn=53f78fa037386f85531832cd5322d2a0&chksm=8c9909efbbee80f90512f0c36356c31cc74c388c46388dc2317d43c8f8597298f233ca9c29e9&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190965&idx=1&sn=53f78fa037386f85531832cd5322d2a0&chksm=8c9909efbbee80f90512f0c36356c31cc74c388c46388dc2317d43c8f8597298f233ca9c29e9&scene=21#wechat_redirect
漫画:什么是跳跃表?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190879&idx=1&sn=1916d0f6e72f34408261d70d13eecf5b&chksm=8c990805bbee81137dd6cadbe7b69cf84020233385cc5d7cee778d10977b6f9b28ea235b93e0&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190879&idx=1&sn=1916d0f6e72f34408261d70d13eecf5b&chksm=8c990805bbee81137dd6cadbe7b69cf84020233385cc5d7cee778d10977b6f9b28ea235b93e0&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190879&idx=1&sn=1916d0f6e72f34408261d70d13eecf5b&chksm=8c990805bbee81137dd6cadbe7b69cf84020233385cc5d7cee778d10977b6f9b28ea235b93e0&scene=21#wechat_redirect
漫画:什么是动态规划?(整合版)​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190796&idx=1&sn=2bf42e5783f3efd03bfb0ecd3cbbc380&chksm=8c990856bbee8140055c3429f59c8f46dc05be20b859f00fe8168efe1e6a954fdc5cfc7246b0&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190796&idx=1&sn=2bf42e5783f3efd03bfb0ecd3cbbc380&chksm=8c990856bbee8140055c3429f59c8f46dc05be20b859f00fe8168efe1e6a954fdc5cfc7246b0&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653190796&idx=1&sn=2bf42e5783f3efd03bfb0ecd3cbbc380&chksm=8c990856bbee8140055c3429f59c8f46dc05be20b859f00fe8168efe1e6a954fdc5cfc7246b0&scene=21#wechat_redirect
漫画:什么是八皇后问题?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653193309&idx=1&sn=dd68a60873bb360e02afde21acde7d3f&chksm=8c99f687bbee7f91049c253dd3193c9a60d6d98cd315b0140a8635b2d34933b54a19127921a9&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653193309&idx=1&sn=dd68a60873bb360e02afde21acde7d3f&chksm=8c99f687bbee7f91049c253dd3193c9a60d6d98cd315b0140a8635b2d34933b54a19127921a9&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653193309&idx=1&sn=dd68a60873bb360e02afde21acde7d3f&chksm=8c99f687bbee7f91049c253dd3193c9a60d6d98cd315b0140a8635b2d34933b54a19127921a9&scene=21#wechat_redirect
漫画:什么是LRU算法?​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195947&idx=1&sn=2954871ed1195dd3ebab0c9691e674b4&chksm=8c99fc71bbee7567c29169a86b4a2133bf87492ce5d2b7c9fdaf7740d2fc01084670b75e976a&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195947&idx=1&sn=2954871ed1195dd3ebab0c9691e674b4&chksm=8c99fc71bbee7567c29169a86b4a2133bf87492ce5d2b7c9fdaf7740d2fc01084670b75e976a&scene=21#wechat_redirect​mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653195947&idx=1&sn=2954871ed1195dd3ebab0c9691e674b4&chksm=8c99fc71bbee7567c29169a86b4a2133bf87492ce5d2b7c9fdaf7740d2fc01084670b75e976a&scene=21#wechat_redirect

今后,小灰还会努力创作更多更精彩的作品,让数据结构和算法不再枯燥乏味!

如果你觉得这个回答对你有用,希望帮忙点个赞,让更多的朋友看到它。

也欢迎微信搜索 【程序员小灰】,里面有更多精彩的内容等着你。

一文带你看完计算机专业的学生大学四年最应该看的经典书籍!

去年在给牛客网写《计算机学生求职专栏》的时候,牛客网小编特意跟我提到了最好系统全面的说一下计算机学生的求职学习路线。

比如操作系统、数据结构与算法、计算机网络、数据库、Linux等这些经典科班应该学习的书籍和资料,后来在写这个专刊的时候我花了很长一段时间去总结计算机专业学生在大学四年应该好好学习的书籍以及学习路线,结束之后我统计了一下足足写了快 40000 字。

现在看得出来我去年写的的专刊还是比较受欢迎的,目前已经超过5000+的人学习过了。

当时写的时候有些内容还不太清楚,后来我又把自己的经验总结提炼了一番,开源到了自己的gihub上,没必要再去花钱看我以前在牛客上的付费专栏了,可以看看我自己开源的学习经验分享仓库:github.com/awesome-cs-c


今天就把自己总结的学习路线以及相关资料给大家安排一波吧。

以前也总结过自己看过的计算机优秀视频并分享在知乎上了,已经收获1000+赞&收藏了,是知乎编程学习相关话题下的热门内容,想看视频篇的请移步!

数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐?1142 赞同 · 25 评论回答

建议收藏本文,下回可能就找不到这么硬核的回答了,码字不易,求个赞鸭~


1、C/C++

几本C语言方面的好书,这才是一个标准的计算机专业的学生最应该看的C语言相关书籍!

答应我,把你手中的谭浩强C语言放一边好吗….

动图封面

征服C指针

推荐指数:四颗星★★★★

书名:征服C指针

理由:C语言最为核心的点莫过于指针了,在一些大型项目里指针经常指来指去,多重指针容易弄得一些小白云里雾里不知所云,这本书是讲指针的经典书籍,阿秀学习完后重新认识了指针,看完再不懂指针可以来揍阿秀。

动图封面

C陷阱和缺陷

推荐指数:五颗星★★★★★

书名:C陷阱和缺陷

理由:这里搬运一段百度百科上的介绍和说明:“本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。全书分为8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备书籍。”,从这段介绍中就可以感受到这本书的分量了。

动图封面

C和指针

推荐指数:五颗星★★★★★

书名:C和指针

理由:指针方面的经典好书。

如果你打算像我一样走C/C++路线可以看一下我自己总结的小白求职版C++学习路线:

拓跋阿秀:Linux C/C++ 方向自学路线,万字长文为小白新手打造 | 已拿字节后端研发offer395 赞同 · 19 评论文章

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

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

后来我将这份笔记制作成了PDF,现在免费分享一波,希望尽早上岸大厂~

【知乎】首次开放下载!BAT大厂面试求职必备!GitHub高星!​mp.weixin.qq.com/s/xaxBHCDQLJD7_3AJSOSLGA

一个简单的导向图为大家简单介绍一下C++主要的知识点:

我个人学习的方法是先看书,再实践,再看书,然后找一些优秀的源码阅读。

侯捷C/C++系列视频

话说学习C++有一个人的视频一定要去看,那就是台湾著名学者侯捷老师的几门课。

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

不过还好,还好我以前就有过下载侯捷老师的视频,视频主要有:

下面推荐一下我看过的书籍资料:

C++ Primer 5th
C++ Primer 5th

推荐指数:五颗星★★★★★

书名:C++ Primer 5th

理由:我愿称之为C++圣经,这本书对于有一定C语言基础或者有其他语言基础的人来说是最好的入门书,没有之一!大概800多页,阿秀前前后后读了大概两遍半,建议至少通读一到两遍。如果你能够将这本书吃透,那么下面的《Effective C++》你看的就会非常轻松了。

STL源码剖析
STL源码剖析

推荐指数:五颗星★★★★★

书名:STL源码剖析

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

Effective C++
Effective C++

推荐指数:五颗星★★★★★

书名:Effective C++

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

More Effective C++
More Effective C++

推荐指数:四颗星★★★★

书名:More Effective C++

理由:同Effective C++一样,也是一本会揭露一些你不容易察觉到的会犯的一些错误,可以再看完Effective后再开始看这本书。

动图封面

深度探索C++对象模型

推荐指数:四颗星★★★★

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

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

动图封面

C++ Primer Plus

推荐指数:四颗星★★★★

书名:C++ Primer Plus

理由:它与C++ Primer都是不可多得的好书,只不过这本书更适合那些没有编程基础的人看,如果你有一定的语言基础不是一个小白,我建议你直接C++Primer搞起来!反之,如果你没有编程语言基础的话建议你从这本C++Primer Plus入手!


2、数据结构与算法

数据结构与算法是相辅相成的关系,学好算法有助于理解数据结构,学好数据结构也更有助于理解好算法。

在秋招过程中,算法是极其重要的。

笔试就不提了,算法不过关,笔试基本凉凉,连面试的机会都没有,这你就比别人少许多面试机会了。

除笔试外,面试过程中基本都要手撕代码,比如对于算法要求最高的字节跳动,平均每论面试要手写2-3道题,三轮技术面下来平均要写6-9道算法题。

除此之外,在很多面试过程中算法题是具有一票否决权的。如果你能够顺利解出来,不敢说你本轮面试一定过,至少是有加分的。但是如果你做不出来或者说bug太多调试不通的话,面试上基本上就跪了,即使你过了那面评也是一般般,面试官给你的评语上也会有一句“算法基础较差”。

给大家分享几本刷题资料,这几份资料阿秀学长都看过了,是三位谷歌大神写的,支持Java、C++、Go三种语言!

如果你算法能力比较弱,比如互联网大厂面试中手撕算法比较差的话,那估计对你有所帮助。

【知乎】谷歌高级研发工程师出品!支持Java、C++、Go三种语言的Leetcode刷题笔记~​mp.weixin.qq.com/s/mudWKCmpaDyTZzBXEjuhSA

希望大家千万重视算法这一块,千万千万要重视算法,已经有无数的师兄师姐学长学姐用血的例子证明了这一点了。

对于经典的数据机构与算法大家都要掌握,对于一些常见的数据结构:树、链表、队列、栈、哈希表等要有一定的了解。

对于常见算法如二分法、贪心算法、分治法、动态规划、深度优先搜索、广度优先搜索等要将思想学会,并且加以练习。

我个人学习数据结构与算法的路线是先从简单的书籍看起,然后过渡到一些经典数据结构相关书籍,在此过程中书本后的比较好的课后习题也没有放过,学完数据结构后就开始了漫长的刷题之路了。

下面推荐一下经典书籍资料以及视频资料:

动图封面

大话数据结构

推荐指数:四颗星★★★★

书名:大话数据结构

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

动图封面

啊哈!算法

推荐指数:四颗星★★★★

书名:啊哈!算法

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

动图封面

剑指Offer

推荐指数:五颗星★★★★★

书名:剑指Offer

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

动图封面

挑战程序设计竞赛

推荐指数:五颗星★★★★★

书名:挑战程序设计竞赛

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

动图封面

程序员代码面试指南

推荐指数:四颗星★★★★

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

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

推荐指数:五颗星★★★★★

书名:算法第四版

理由:又一部经典著作,这里不推荐黑色机器工业出版的那本《算法导论》,那是本好书不错,但是有点难懂了,相比之下算法第四版要好得多,如果你有时间的话可以多看看,否则就像我一样当个工具书来用吧,哪里不会翻哪里,在实战中去学习和进步。


3 、操作系统

操作系统是一门在面试过程中问的不算很深的课程,因为这门课往下走的话深度太深,也不好展开,面试官不好尝试,甚至于一些面试官对于某些具体的知识点也不熟悉(大佬除外),操作系统必须深入学习,才能学明白学透彻。

在工作中,如果能够深入理解底层技术,那么对于真实线上系统的稳定性是很有帮助的。在实际的面试过程中问的比较多的莫过于进程线程、死锁、虚拟内存等问题了。

如果能够在面试中准确说出自己深入了解到的操作系统知识是很加分的,比如

如果能够把这个过程说清楚讲明白,毫无疑问是很加分的。

这里将面试过程中常问的一些关键点分享给大家

书籍推荐:

动图封面

深入理解计算机系统

推荐指数:五颗星★★★★★

书名:深入理解计算机系统

理由:被誉为“和金子一样重要的计算机基础书籍”,就好像学霸考试只能考100分是因为试卷只有100分一样,这本书推荐指数为五星,那是因为最高就是五星了。这本书十分经典,每一次看都会有新的体会和感悟,这本书从程序执行的计算机角度开始,介绍了处理器的体系结构、程序的机器级优化、虚拟存储器、系统级IO、网络通信等等多个方面。还有一点就是不要放过课后的各种Lab,阿秀这里推荐大家和 MIT6.828以及CMU 15-213 CSAPP 这门课一块看。

南京大学袁春风老师的计算机基础视频

如果你对于计算机不怎么了解或者说你想要入门学习计算机或者说对操作系统有个大概的了解,那袁春风老师的计算机基础系列视频你是不应该错过的。

” data-caption=”” data-size=”normal” class=”content_image lazy” data-actualsrc=”https://pic1.zhimg.com/50/v2-743ff416377b6ebe344bd7a43b045a25_720w.jpg?source=1940ef5c”>
” data-caption=”” data-size=”normal” class=”content_image lazy” data-actualsrc=”https://pic1.zhimg.com/50/v2-743ff416377b6ebe344bd7a43b045a25_720w.jpg?source=1940ef5c”>

地址:此系列一共有四部

计算机系统基础(一):程序的表示、转换与链接:https://www.bilibili.com/video/BV1g

计算机系统基础(二):程序的执行和存储访问 袁春风:https://www.bilibili.com/video/BV1X

计算机系统基础(三):异常、中断和输入_输出 袁春风:https://www.bilibili.com/video/BV1k

计算机系统基础(四):编程与调试实践_南京大学 袁春风:https://www.bilibili.com/video/BV1G

动图封面

现代操作系统

推荐指数:五颗星★★★★★

书名:现代操作系统

理由:同样是讲操作系统的一本好书,《深入理解计算机系统》有些操作系统的知识讲的比较泛没有这本书细致,如果赶时间的话可以把这本书中进线程、死锁、缓存等重要知识点先看一下,后续有时间了再补上其他章节。

动图封面

现代操作系统:原理与实现

推荐指数:四颗星★★★★

书名:现代操作系统:原理与实现

理由:上海交通大学陈海波教授的最新著作,阿秀已经买了,书中主要介绍操作系统的理论、架构、设计方法与具体实现细节,个人感觉细节上不如现代操作系统,但是架构描写要好不少,大概翻了一遍还是很不错的,值得推荐。

动图封面

自己动手写操作系统

推荐指数:四颗星★★★★

书名:自己动手写操作系统

理由:很好的一本实践书籍,看这本书的前提是要有一定的汇编知识,如果不懂一些基本的汇编知识容易看的迷迷糊糊。本书亲自带你走一遍操作系统的具体实现,打造一个简易版的操作系统,阿秀在学完汇编后花了二十余天跟着走了一遍,感觉很多东西豁然开朗了一样,值得一看!


4 、计算机网络

计算机网络是重点之一,特别是HTTP以及TCP相关知识点,面试必问,但是难度是逐年上升的。阿秀请教过18届的师兄,他们当初考察计算机网络对于TCP就随便问问,就只问一些基本的三次握手四次挥手大概过程,不会过多问细节。但是现在不直接问三次握手四次挥手,反而问一下

我个人学习计算机网络的路线是先看一些有意思的计网相关视频,然后从书籍入手,毕竟视频中的知识都是别人总结好又给你讲解的,自己在听的时候可能会觉得“嗯嗯,说得对,我也是在这么觉得的”。

可是临到自己实际场景中遇到了就会一脸懵逼,两手无措。

只有自己亲自揣摩亲自动手实践得来的知识才是自己的,毕竟“纸上得来终觉浅,绝知此事要躬行”的。

这里以TCP/IP四层协议为例简单介绍一下校招过程中经常考到的协议,知识导图:

书籍推荐:这里从易到难逐步推荐一些比较好的计算机网络经典图书。

动图封面

图解TCP/IP

动图封面

图解HTTP

推荐指数:四颗星★★★★

书名:图解TCP/IP、图解HTTP

理由:日本人写的两本科普书,很适合计算机网络入门,书很小并且书中图画很多,看着有300多页挺多的,其实没有多少内容的。看完这两本书对于场面的秋招面试题都能够答得上来,但对于一些细节问题还不太够比如TCP中的滑动窗口、拥塞避免等还是需要看别的经典书籍加以补充。

动图封面

网络是怎样连接的

推荐指数:五颗星★★★★★

书名:网络是怎样连接的

理由:强推!同样是日本人写的一本书,本书紧紧围绕一个问题:输入一个URL,按下enter键,直到我们在网页端看到请求的内容,这中间发生了什么?这本书抽丝剥茧般将这个问题逐步细化,亲手带你自顶向下的走完整个网页访问的过程。不可多得的一本好书!强烈推荐!

动图封面

计算机网络:自顶向下方法

推荐指数:五颗星★★★★★

书名:计算机网络:自顶向下方法

理由:别的常见介绍计网的书籍是从底向上即物理层到应用程序介绍网络,这本书另辟蹊径,是自顶向下介绍整个网络的。这样做的好处是从我们所接触的应用层开始逐步深入,而不是从离我们最远的物理层开始。如果不是网络安全相关专业,大多数人看重点章节也就是第三章传输层那一章,重点看TCP/UDP的各种细节基本也够用了,剩下的可以后期再补,为自己节约时间。

TCP/IP详解 卷1:协议
TCP/IP详解 卷1:协议

推荐指数:五颗星★★★★★

书名:TCP/IP详解 卷1:协议

理由:确认过眼神,是经典中的经典,没错了。不过就是,emmm太厚了…阿秀买来翻了翻TCP/UDP知识点就用来垫电脑了…..对于TCP的各种机制介绍的很细致,看了之后对于TCP/UDP感觉明显上升了一个台阶。如果不是信息安全、网络安全相关岗位的,可以作为一本工具书来使用的,需要用到某些知识再来补就行。


5 、数据库

校招过程中常问的数据库主要是关系型数据库MySQL以及内存型数据库Redis,普通研发岗掌握这两个基本也够用了,数据库的知识点比较死,范围也不广,MySQL经常问的包括数据库索引、范式、ACID特性、常见优化策略、B+树,而对于Redis问的有Redis底层模型、五种数据结构、跳表的实现、缓存击穿、缓存穿透以及AOF和RDB等常见问题。

有时候也会让你写一些SQL语句,比如给予一个工资表和工人表,查出工资排名第三的工人信息或者按照部门类别求工人平均工资。

其实这些问题在一些面经里已经出现过很多次了,俗称“面试八股文”,有牛友说背就完事了,阿秀不是很赞同。如果只是背的话,很多知识点和名词压根不明白什么意思,如果想要在IT行业走的更远、更稳的话,这些基础还是要打好的,只停留在书本上无异于饮鸩止渴,希望各位牛友们谨记。

数据库常问知识导图:

数据库是一门需要自己动手实践的学科,在学习一些SQL语句时,建议大家自己实操一下,建个数据库表,输入一些数据,自己动手写SQL,牛客上也有相关的SQL语句练习资源,建议好好利用:https://www.nowcoder.com/ta/sql

书籍推荐:

动图封面

MySQL必知必会

推荐指数:五颗星★★★★★

书名:MySQL必知必会

理由:同《图解HTTP》一样也是袖珍型书籍的典型代表,书虽薄但是很经典,是一本很小的小册子,阿秀当时不到一周就看完了,看完基本的SQL语句没什么问题了。需要注意的是千万要记得自己手敲一遍其中的SQL语句,要实操才能理解的更深。

动图封面

Redis设计与实现

推荐指数:五颗星★★★★★

书名:Redis设计与实现

理由:Redis方面的好书,算是Redis入门资料吧,认真看完的话就对Redis的五种数据结构以及缓存等常见问题有大概了解了,包括其中的底层数据结构,其中的跳表需要特别注意,是Redis面试知识点常问之一。Redis在如今的互联网中很多时候都充当缓存中间件来使用,其中有不少设计很巧妙的地方,推荐推荐!

动图封面

Redis实战

推荐指数:四颗星★★★★

书名:Redis实战

理由:Redis系列的第二本书。前一本书偏向于理论讲解,这本书偏向于实战讲解,学了不能就完事了,毕竟还是要实操的,不能只停留在理论层面上,书中除了通过一些实例讲解了Redis的用法,还讲述了一些Redis的优化方法以及扩展方法,确实不错!

动图封面

高性能MySQL

推荐指数:四颗星★★★★

书名:高性能MySQL

理由:首先肯定这是本经久不衰的数据库方面的好书,但是,也是真的厚,垫书桌都嫌厚的那种厚度..阿秀买来只看了其中的索引以及优化两章,对于常问知识点有个大概了解后就放一边了,在面试过程中够用了。

动图封面

MySQL技术内幕:InnoDB存储引擎

推荐指数:四颗星★★★★

书名:MySQL技术内幕:InnoDB存储引擎

理由:作为MySQL内置引擎的InnoDB能够满足绝大多数情况下常见业务的需求,本书从源码角度带我们深度解析InnoDB的体系结构、实现原理以及工作机制,对于更好的理解MySQL有很好的帮助,如果你是数据库相关从业人员,更不能错过这本书了,相信这本书能带给你很多全新的认知!


6 、Linux

C++跟Linux基本是离不开的,特别是后端方向跟网络通信关系很大。在实际工作里,很多成熟的项目都是在Linux上进行开发的。阿秀在秋招过程中被问过很多网络通信相关的知识,比如IO模型、线程池、多线程、epoll底层数据结构等等。

说来惭愧,阿秀并没有系统的学习过Linux相关命令,都是遇到问题了再去翻书或者面向百度学习。遇到问题了再去学其实也是很多人的真实写照,毕竟学习时间相比于浩瀚的知识海洋来说真的很有限。反而对于网络通信与Linux系统内核倒是系统的学过不少,这里也简单推荐一些资料。

动图封面

鸟哥的Linux私房菜
Linux就该这么学
Linux就该这么学

推荐指数:四颗星★★★★

书名:鸟哥的Linux私房菜、Linux就该这么学

理由:这两本书都挺经典的,不过褒贬不一,阿秀觉得还是不错的,算是比较好的Linux入门书了。如果想要系统学习Linux可以照着书本上的命令老老实实的敲上一遍,Linux命令这一块基本没啥问题了,要不然就像阿秀这样当个工具书,哪里不会翻哪里就是了。

动图封面

深入理解Linux内核

推荐指数:四颗星★★★★

书名:深入理解Linux内核

理由:堪称讲述Linux内核方面不可多得的一本好书,个人感觉比那本《Linux内核完全注释》要好上不少,不过仁者见仁智者见智。这本书可以很好的对你在内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次详细解读,也能帮助你在以后使用Linux时更好地进行进程调度、文件存取和内存管理。

动图封面

TCP/IP网络编程

推荐指数:四颗星★★★★

书名:TCP/IP网络编程

理由:如果让我推荐一本网络编程入门书籍,那我毫无疑问会推荐这本韩国人写TCP/IP网络编程,书中例子超级多,堪称一小节一个例子,比如很知名的简易版回声服务器、优雅断开TCP链接等,从客户端和服务端两个方面分别展开叙述,手把手带你初窥网络通信的点点滴滴。在看这本书的时候,注意总结笔记,因为例子太多了阿秀经常出现看了后面一节就忘记前面一节的内容的情况,后来记了笔记就好多了。

动图封面

Linux高性能服务端编程

推荐指数:五颗星★★★★

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

理由:游双老师的经典之作,阿秀第一次看的时候,内心os:这什么垃圾,那么多人推荐??第二遍看的时候,不好意思,是我垃圾….

这本书需要一定的门槛,但真的是一本很好的书,网络通信相关基本全都涉及到了,比上面那本《TCP/IP网络编程》要详细的多。其中第1-5章高度涵盖了计算机网络的知识,高度概括,所以看这本书的前提就是要对计算机网络有基本了解和认识,后面的章节讲的是网络通信的前世今生,关于网络通信你知道的不知道的,这本书都告诉你了。强烈推荐!

动图封面

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

推荐指数:五颗星★★★★

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

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

动图封面

动图封面

推荐指数:五颗星★★★★

书名:UNIX网络编程 卷1套接字联网API与卷2进程间通信

理由:史蒂文斯大神的盖世之作。说一句“网络编程方面的圣经”不为过。对于有志进入腾讯鹅厂的小伙伴,这两本书可以说是必须要看的,可以说是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。不过因为太厚的原因,特别是《套接字联网API》可以说是我遇到的最厚的技术书了,全部啃完需要耗不少时间,可以像阿秀一样,哪里不会翻哪里。哈哈。


7、其他

还有一些经典书籍比较好,适合自己持续性充电、打基础,这里也推荐给大家。

动图封面

数据库系统实现

推荐指数:五颗星★★★★★

书名:数据库系统实现

理由:本书是斯坦福大学计算机科学专业数据库系列课程第二门课的教科书,也是国内华东师范大学数据学院指定数据库原理书籍。讲数据库的书籍有很多,这本是少有的讲的通俗易懂,不是那么深奥晦涩难懂的,对读者友好的那一类型经典书籍,阿秀依然经常看。这类书是属于内功修炼的那一类书,像什么框架之类的属于外功修炼的书,外功固然重要,想要真正在IT行业走的远、走得稳,内功是必须要扎实的。

汇编语言
汇编语言

推荐指数:五颗星★★★★★

书名:汇编语言

理由:宝藏书籍!!!王爽老师的这本汇编语言真的可以说一句宝藏书籍了!强推,千万不要被书名劝退。如果你是C/C++方向开发者,这本书绝对不会让你失望!对于函数的调用过程等细节讲的十分透彻,掰碎了讲给你,一点一点的传授你知识!如果每个作者都能像王爽老师这样就好了…

动图封面

X86汇编语言:从实模式到保护模式

推荐指数:四颗星★★★★

书名:X86汇编语言:从实模式到保护模式

理由:作为上一本《汇编语言》的补充,这本书以很多的代码演示了16/32/64位软件的开发方法,介绍了处理器的16位实模式和32位的保护模式,这本书教你如何直接控制硬件,教你如何显示字符、读取硬盘数据、控制其他硬件等。

动图封面

老码识途:从机器码到框架的系统观逆向修炼之路

推荐指数:四颗星★★★★

书名:老码识途:从机器码到框架的系统观逆向修炼之路

理由:汇编与反汇编就好像如今的爬虫与反爬虫一样,这本书以逆向反汇编为线索,自底向上,从探索者的角度,原生态地刻画了对系统机制的学习,对于有志成为系统架构师的小伙伴来说不应该错过这本好书,这本书涉及反汇编、底层调试、链接、加载、钩子等在别的书中很少看到的知识等。


8 、学习方法

很多人在刚开始学习的时候犹如丈二的和尚,摸不着头脑。不知道从何下手,网上的资料繁多,让人眼花缭乱。

今天阿秀学长就来介绍一些适用于大多数人的学习方法,希望能对大家有所帮助!

part1、观看经典视频学习

当你在学习一门技术的时候,不知道从何下手,可以先在网上找一些相关的视频,对即将要学的技术有个大概的印象,达到入门的程度。在你第一次听到某个概念的时候,你就可能对它印象深刻了。

比如最开始听到一个继承的概念的时候,拿传授给你继承概念的人的思想会在你的脑海中停留很长时间,所以尽可能看一些好的视频。

那么,什么叫好的视频呢?

我教给大家一个法子!简单粗暴!

那就是,播放量高的一般质量都不会差!

就拿操作系统举例而言,直接去B站搜索关键字”操作系统“

第一个就是考研相关的操作系统视频,如果你考研那就看第一个;

如果不考研,那就看第二个或者第三个。

就是这么简单粗暴,我就是这么来选择自己所要看的视频的,然后我现在就在字节跳动写代码了。。。。

part2、再看经典书籍

  1. 每一个知识技能点都会有相关的经典书籍,知识是有相关性和相通性的,有了前面的沉淀后期自然就好很多了。
  2. 建议多看纸质书,而不是PDF电子版,必要的投资是必要的,而且纸质书能够让人安静下来思考,也可以方便做笔记,看PDF电子书鼠标滑着滑着很容易就走神了,个人感觉没有纸质书效果好。
  3. 学会取舍。每个人的一天都只有24小时,要学会取舍,先看对自己最重要的,比如在秋招时期,那本《高性能MySQL》那本书有七八百页,认真看完黄花菜也凉一半了,这个时候就应该先看面试过程中考察最多的索引与优化章节,而将其余章节暂时搁置一边,日后再说…
  4. 学会将知识串联起来,大脑中形成自己的知识体系
  5. 学会善用目录。有时候,看过目录后就大概知道这章或者这小节讲的是什么了,建议在看一本书的时候先看一遍目录,挑选出自己不懂得或者感兴趣的章节来看,而将已看过的或者暂时不需要的放到后期再去看。

part3、看博客与论坛

  1. 作为求知者的我们要尽可能多看几个博客、多看几个人对于同一个问题的看法和分析,然后将这些看法和分析进行汇总整理,你可以做笔记或者像他们一样写博客,最终形成自己的认知。
  2. 有很多大佬会将自己对于某个问题的看法发表在一些博客或者论坛上。
  3. 对于书中不懂的细节问题进行逐个攻破,这往往需要我们自身对该问题就有一定的认识,自己手动的去提取某个问题,然后在各个博客上寻找答案。但是千万不要在自己还是个小白的时候就贸贸然看别人写的博客。
  4. 博客的限制就在于一篇博客上分享的知识有限,所以这种学习方式比较适合你有了一定的基础后,再开始看别人的博客。
  5. 当我们对于一门科目或者知识有了整体认识后,剩下要做的就是查漏补缺了。
  6. 还有一点需要注意的就是不要偏听偏信某一个博客或者论坛,不同的人对于同一个的问题有着不同的见解和认知,毕竟一千个读者就有一千个哈姆雷特。

part4、看官方文档或者源码

  1. 在学习一些知名项目的时候,也可以直接看人家的源码,一般来说正规一点的开源项目都是有代码注释的,不过不少都是英文注释,需要一定的英文水平才能驾驭。
  2. 这种方式适合有一定水平的同学,比如Java中各种框架都是有官方文档的,对于学习能力很强的同学来说有的就是直接生撸,简单粗暴,过程很辛苦但是如果能够成功撸出来,收获会很大的。
  3. 最开始你在学的时候可能会觉得很难,看书可能很慢,但是请你坚持下来,千万坚持下来,咬着牙坚持下来。
  4. 慢慢学、慢慢看,慢慢的就会有收获了,千万要坚持下去鸭。
  5. 过一段时间,等你有了前面的基础,后面就会感觉舒服多了,速度就会慢慢快起来了。

9、絮叨两句

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

可以说我能够凭借双非的学历进入字节跳动全靠我自己总结的这份笔记,后来我将这份笔记制作成了PDF,免费分享给学习学妹们!

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

GitHub开源地址:github.com/forthespada/

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

后来又有不少小伙伴希望有一个离线版的PDF,这样也方便离线看!

必须安排上!

上岸大厂不易,如果能早点上岸大厂就尽量早点上岸吧,希望我的笔记也能帮到大家!

原创算法部分

操作系统

计算机网络

数据库MySQL、Redis

但因为前期有不少笔误,所以我和一些小伙伴也在不断地修正改良,截至目前为止现在已经更新到第四版了!

真的很高兴自己的资料能帮到更多像我一样的普通学校学生。

希望那些那我一样学校普通的小伙伴,甚至是大专的同学不要因为出身不好就放弃自己!

我认为有一句话说的很好,那就是“别在被人放弃你之前,先放弃了你自己”

PDF下载地址:

BAT大厂面试求职必备!阿秀的求职笔记开放下载!​mp.weixin.qq.com/s?__biz=Mzg2MDU0ODM3MA==&mid=2247501066&idx=1&sn=bdeb3b38f51e1d4430cb745009a2d243&chksm=ce263977f951b061b39123f624a9d53d44c783ae334578945eb740efb7020ad413e5a3429a9f&token=520351248&lang=zh_CN#rd

都看到这了,还不点个赞吗~

不知道知乎上有没有第二个从小海龟开始的(更新:评论区已经有人认领)

我的学习路线是

  1. 小学三年级学会了LOGO语言,用小海龟画画
  2. 小学四年开始抄电脑杂志上的BASIC游戏代码,没成功
  3. 小学五年机看爸爸业余写Delphi程序
  4. 小学六年级拿着老爸的VB书搞了一个VB小程序,用来分别启动主题医院的DOS版和Windows版,但是没有自己写代码,全靠用OLE对象参数配置
  5. 初中一年级用FrontPage和PS整了自己的第一个网站
  6. 初中二年级用表哥的网站代码整了自己第一个用Access数据库支持的ASP网站,极品飞车的一个网站
  7. 高一上加入电脑老师的兴趣小组,老师教我BASIC语言
  8. 高一下老师教我C,还有数据结构和算法
  9. 高二自己买机械工业出版社的引进书自学C++和面向对象
  10. 高二开始自己给网站写论坛代码,自学了正则表达式
  11. 高二寒假用C++ Builder写了自己的第一个GUI程序,用来解包打包游戏的数据做MOD用,并且发布到相关论坛
  12. 高中三年把自己的网站重写了六个版本,并且开了第二个网站
  13. 大学进了电气工程专业
  14. 大一学习了模电数电
  15. 大二学了微机、汇编和单片机
  16. 大三学了SQL,理解了关系数据库模型后又把自己网站重写了一遍
  17. 大三也学了计算机网络和通信原理
  18. 大四用C#做了毕业设计,C#是临时自学的,因为我听说写界面很方便
  19. 研究生留学专业是Industrial electronics & Automation
  20. 研究生第一年学会了Mathematica
  21. 研究生第一年学了信息论
  22. 研究生第一年暑假打工自学了php
  23. 第二年学会了Matlab+Simulink,DSP,课程设计的时候用Java整了一个小作品。
  24. 第三年学校里面讲了神经网络和一些其他的人工智能算法
  25. 实习需要学习了Tcl/Tk,也因为同一个实习需要重新捡起了C++
  26. 工作第一年继续用Tcl/Tk和C++,跟着组里大佬写软件,顺便自己看代码学了一些设计模式
  27. 工作第三年工作重新用上了C#,边用边学习一些现代的编程概念。自己学习设计模式和软件架构
  28. 工作第四年工作中另外一个项目需要C++,因为前面一个项目发现自己对C++的理解很浅,重新自己学习了这个语言包括当时最新的C++11
  29. 工作第五年工作中用到了OCaml,自己学习
  30. 工作第六年重新搞起了mod,自己学习了lua
  31. 工作第十年工作中用到了JavaScript,自己学习(实际上初中写网站的时候就摆弄过js,但是用法已经完全不同)

如果要调整的话,可能SQL学得晚了一些

如果说有什么遗憾的话,没有赶上人工智能的大潮,也没有学过操作系统原理和编译原理

我觉得学习计算机可以从小就开始,因为先有了经验后再接触理论,会非常容易明白。我意识到这一点是在学SQL的课上,我发现我小时候做网站时遇到的大量问题都在这个课上得到了解答,可谓醍醐灌顶。工作后自学设计模式和软件架构的时候也有相同的感觉。不过我也很幸运因为高二的时候老师就和我讲了数据结构和算法。

我女儿今年三年级,痴迷MC,我打算从给MC编程带她入门,不过我先得自己学学。

ps:从未在Linux上写过程序

1、我会咬牙切齿把Vista彻底清除,然后换上牛B的 windows XP 。装上VC++,老老实实从C开始学起。

2、我会装好SQL-Server,耐心地学习建表、查询、修改、删除(因为几年以后会有一群暴发户电商因为商单太多而花高价来买低端技术,比如按厂家汇总进货数据、比如按客户收货地点收发数据)

3、我会省吃俭用买下Php的教材,老实学会搭站(因为几年以后会有一群网络公司来找我帮他们做猪饲料广告小站,做好一个模板,改一个商家的logo我净挣2000块)

4、我应该会加大力度在前端技术,学会优化我的界面(因为几年以后会有一群创业的大学生来找我做网店装修,我作为兼职美工,问他们要个3000月薪的保底完全是良心价格。兼他5家我直接走上小康生活)

5、我会认真学习管理营销学,租房、注册公司,拉一群小弟来给我打工(因为几年之后会有一大波低端技术市场等着我去掘金)

6、如果成功了,我会上知乎,然后来分享我的经验。

以下回答并不是对一个大一新生的建议,有的人想留学——得有好看的GPA,想搞科研——得读个博,想走ai方向——得转数学系(雾

一切只不过是我在确定了喜欢的方向后的意淫罢了、、、


入学:学会科学上网,注册github,搭建一个博客,装linux。找一个空白简历模板,写上你的github,blog,email地址,你的学校

大一上:一个月内快速入门C with STL(不需要优雅的代码风格),找两个志同道合的队友,然后开始疯狂刷题,学算法。

OI WiKi(学算法),洛谷,牛客竞赛(刷专题),codeforces,atcoder (打比赛)

同时学mit6.null 遇到不懂的RTFM,不急,你有四年掌握这些工具

大一下:主线还是刷题,可以在博客上写写题解,一句话题解也好。学c++primer,STL,了解什么是RAII,SFINAE,看看effective modern c++

暑假:玩了命的刷题,牛客多校训练

tips:远离学生会,班委会,辅导员开会 。英语和计算机相关以外的课程成绩保持在85以下

大二上:区域赛前接着刷题,幸运的话拿俩牌。在简历的校园经历上写下你的xcpc经历,博客上写下你的退役贴。以后cf两三周一刷

开始学cmu15213,lab认真做。这时候大概会开数电课,不用深入,只要理清从门电路到寄存器实现就行。

寒假左右完成cs61c

大二下: OS mit6.s081,6.828 , 数据库cmu15445,可以写点笔记在博客。结束后在你的简历上写下这些课的project。

暑假参加 GSoC or OSPP ,先了解一些设计模式,免得看项目代码一脸懵逼

大三:开源项目结束后用你的开源经历替换简历上数据库project,同时持续贡献争取成为committer/maintainer。

学习分布式系统mit6.824,数据库进阶15721。找大厂日常实习,不断更新简历。还可以参加tinyKV talentplan

学cs144,接着实习,给你的开源项目做贡献。看ddia

秋招拿offer滚蛋

如果有“如果”:

1、学C/C++、Python,边学边动手一行一行敲代码实现。成就感:*

2、学数据结构、算法,动手一行一行敲代码实现。成就感:**。如果把《算法导论》认真看完,且一行一行实现,并通过Github分享,成就感: ** + \frac{1}{2} *

3、学微积分、线性代数、统计学、信息学,边学边通过Numpy/Scipy实现一遍,成就感:***。如果把《Pattern Recognition and Machine Learning》认真看完,并翻译成中文,并一行一行实现,并通过Github分享,成就感: *** + \frac{1}{2}*

4、学线性规划、运筹学、图论、人工智能,边学边通过Python实现一遍,成就感:****。

5、跟踪各顶会/各大研究所/各位大神,分析各种新网络、新算法、新问题、新解决方案,不断发各种不错的论文,成就感:**** + \frac{1}{2}*

…

一个字,“绝”!

— 编不下去!


还是老老实实:

《动手学深度学习》

目录

第一章 介绍

第二章 基础

第三章 进阶

第四章 提升

第五章 自监督学习

第六章 自然语言处理

第七章 计算机视觉

第八章 应用案例


资料:

《人工智能学习:教材与辅助读物》

收集了各个领域的教材和辅助读物,包括:


我们不断在更新,请持续关注!

联系我们

如果您有任何意见和建议或者需求,请随时联系我们。

公众号: AI-for-Sci

哈工大计算机土博来强答一波!

如果能重新来一遍,我会在高三的暑假先读一遍《浪潮之巅》这本书,对计算机行业背景的发展史有个全面的了解。

接下来就是正式学习计算机专业知识,我会通过上课、看经典书籍、实践,三管齐下来学习编程知识。

因为学编程最重要的就是要理论和实践想结合,两方面都需要兼顾好。不然,编程能力不会有真正提高。

在学习的过程中我一定会好好把下面这些书籍好好看一遍:

1.《深入理解计算机系统》(CSAPP)

这是一本很基础的书,涵盖了计算机组成原理,操作系统,体系结构,网络编程,并行程序设计原理等课程的基础知识。无论是处于哪个阶段的同学,这部书都是必备的。正如此书开篇作者所言“如果你全心投身学习这本书中的概念,完全理解底层计算机系统以及它对应用程序的理解,你会步上成为为数不多的大牛之路”。

2.关于编程语言

到底哪种编程语言是世界上最好的语言是程序员永远无法达成一致的世界难题。但主流的编程语言肯定是:C++/Java/Python这三门。

学习C++我会看《C++ Primer》这本书

这是一本久负盛名的C++经典教程。无论是初学者入门,或是中/高级程序员提升,这本书都是不容置疑的首选!!!

学习Java,《Java编程思想》这本书肯定是必看的

这本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在作者的文字和示例面前都迎刃而解。从Java的基础语法到最高级特性,这本书都可以指导你一步步的轻松的去理解和掌握!这本书我在大二学了一整年,学完之后真的完成了质的飞跃!

然后学习Python的话,个人觉得百词斩旗下的夜曲编程是个不错的选择。

它的入门课对于小白或者是基础知识不牢固的同学非常实用,课程的每个知识点都是通过图文的形式呈现交互式学习,显得更加通俗易懂,复习起来也很方便,让Python不再是晦涩难懂的语言。

而且入门课程在手机端也可以学习,平时利用碎片时间在公交上、地铁上就可以完成一课的学习,让自己每天进步一点点。感兴趣的同学可以搜索夜曲编程,白嫖体验一下他们的公开课,不用担心体验课会很敷衍,内容设置也很丰富,是非常的良心啦。

3.数据结构与算法分析

掌握了最基本的编程语言,就该学习更高级的知识了,也是程序员核心知识——数据结构与算法分析。只有掌握了这些,才可能写的更好更高效的程序,才能将语言更好地用于实际问题的解决。当然,这部分知识也是比较难学的。经典书籍我推荐可以按下面这个顺序阅读:

1)《我的第一本算法书》

这本书是京都大学一个计算机教授和朋友联合出品的动画讲解算法的App 所衍生出来的书籍,非常适合新手朋友们。里面没有枯燥的理论和复杂的公式,而是通过大量的步骤图帮助读者加深对数据结构原理和算法执行过程的理解,便于学习和记忆。将本书作为算法入门的第一步,是非常不错的选择。

2)《算法图解》

这是一本像小说一样有趣的算法入门书,示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法。

3)《算法导论》

emmmmm这本书真的是算“圣书”了,如果把它从头到尾看完并且搞明白了,那么恭喜你,月入百万不是梦!

课程的话,课程的话,以下这五门专业课我肯定会认真学好:

  1. 数据结构与算法,
  2. 计算机组成原理,
  3. 计算机操作系统,
  4. 计算机网络,
  5. 数据库系统。

上面的这五门课,无论你是将来找工作,读研,还是读博,都是最最重要的。而且学习的顺序就是上面的这样。

1. 数据结构与算法

推荐看MIT的算法课,教程用的是《算法导论》,这门算法则基本不涉及到语言层面,主要是算法层面,讲得很好。

https://www.bilibili.com/video/av21

组成原理与操作系统的话,强烈推荐去看下面这两位老师的课,B站上面有完整的视频,保证不水!

1. )2020 南京大学 操作系统:设计与实现 (蒋炎岩) https://www.bilibili.com/video/BV1N

南大的课质量真的硬,蒋炎岩老师讲的是真滴好啊,把晦涩的东西讲的也非常的通俗易懂,豁然开朗,很多同学都是慕名而来,看完这个也算上过南大的操作系统啦 哈哈哈。

2.) 操作系统(哈工大李治军老师) https://www.bilibili.com/video/BV1d

个人觉得是 b 站上很不错的操作系统课程了,这门课的前几讲涉及 OS 启动,需要一点汇编知识,不过遇到不会的直接网上搜即可,大可不必因为汇编而被劝退;之后的内容如多进程、信号量、内存管理等讲得很好。

3.)计算机网络微课堂 https://www.bilibili.com/video/BV1c

这个网课惊艳的地方在于,老师的话语没什么废话,基本都是知识要点,更重要的是他动图非常多,他动图非常多,他动图非常多,他动图非常多!!!所以非常适合小白入门学习,不能再生动形象!

最后来说说实践平台

光学不练,计算机知识是学不会的。

不管是考研还是面试找工作,都一定会重点考查动手能力,而动手能力主要考查的就是算法能力,所以算法这一块我一定会勤加训练!

LeetCode

leetcode是现在找工作最热门的刷题网站了,

但LeetCode现在题目也太多了,一共1300+了,而且一直在增加!!!

全刷完没必要,也不高效,推荐看下面这个leetcode刷题笔记:

这份笔记里面共包含作者刷LeetCode算法题后整理的数百道题,每道题均附有详细题解过程。很多人表示刷数据结构和算法题效率不高,甚是痛苦。

有了这个笔记的总结,对算法刷题帮助之大不言而喻。

离线版笔记下载地址:

链接:pan.baidu.com/s/12VD7Nn 提取码:w31k

——-加更——

最后再给大家推荐一个计算机专业同学必备的效率神器:屏幕挂灯

作为一个计算机专业的同学,我们可能需要长时间眼睛盯着电脑屏幕工作和学习,这种情况下给自己配一款屏幕挂灯是很有必要的,相比室内的灯光,它更容易让人集中精力,给人专注的氛围感,比起台灯,屏幕挂灯的光源更均匀且不占地方,更重要的是它可以保护我们的眼睛,提高学习效率。给大家推荐一款我最近使用的屏幕挂灯:明基ScreenBar Halo。

对于这款屏幕挂灯,我简单说一下我自己的使用体验,大家可以根据自己的情况酌情选择:

1. 灯管照明角度是可以前后调整的,通常如果我只使用电脑的话,我会把光线往屏幕方向调整,让屏幕看起来更舒服,如果需要看书学习的话,可以把光线稍微往外调整,让光线打在书本上。

2. 其次,它的灯光不是直接照射出来的,而是通过内部反射照出光线,这样可以保证光线更加均匀、不刺眼,这也是我非常喜欢的一点,白天如果我要写什么东西的话,我也会打开它,因为我发现它比室内的自然光要舒服很多。

3. 此外,灯管还自带了一个无线触屏灯光遥控器,通过它可以控制灯光的开关、亮度、色温和发光区域,好处是可以减少桌面的布线,而且它还带了一个记忆功能,会自动记住你喜欢的灯光强度和色温,每次打开的时候都是你喜欢的样子,用久了你会发现这个功能还是很贴心的。

遥控器
遥控器

这款屏幕挂灯我已经用了一个多月了,度过短暂的磨合期之后,使用体验总结起来就两个字:真香!我已经给我们实验室同学安利上了,哈哈~

明基(BenQ) ScreenBar Halo屏幕挂灯商务办公学习氛围
京东
¥999.00
去购买​

————————–

有很多朋友在后台私信问各种关于学习计算机编程的问题,

比如我现在准备开始自学编程,我想找一份程序员的工作,能给我一条建议或者去路吗?

这种问题的话,其实是很难回答的,因为编程语言分很多种,而每一种编程语言、每一种技术都有不同的学习路线,并且这个学习路线还要视你个人的基础而定,就因人而异的,真要聊起来没有几个小时聊不完。

另外有些问题的话呢,很多人都问过,具有相当的普遍性。那么,对于这些问题的话,我专门建了一个社群,里面针对大家关心的问题我都写非常详细的解答,比如:

  1. 小白入门计算机,学习路线是什么样的?
  2. 编程语言怎么选?
  3. 怎么利用GitHub精准搜索项目代码?
  4. 求职简历怎么写?

等等,一来是因为这些问题三言两语讲不清,二来很多朋友都有类似的问题,把这些问题集中整沉淀下来,大家直接去看,效率会更高。

大家可以点击左下角的链接,了解这个社群的详情。

万万没想到,还有这种群!​mp.weixin.qq.com/s/GGcVZg31Mc0rNNg2HGVtpQ​mp.weixin.qq.com/s/GGcVZg31Mc0rNNg2HGVtpQ


祀与戎 , 版权所有蜀ICP备14023000号-6丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如果让你重新开始学计算机,你的学习路线会是怎么选择?
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址