点击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号”# s$ B+ R3 z* d
干货福利,第一时间送达!
+ V6 W5 ]0 X: W- t
8 F& M3 u4 ?$ P' p- G' x
xsnzshstfyq64015578025.png
: h# H- X3 ^2 x# W( [
最近有小伙伴说没有收到当天的文章推送,这是因为微信改了推送机制,有一部分小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了,建议大家加个星标??,就能第一时间收到推送。
7 W) ?0 M& Z: k2 L7 @
xysvok0upfn64015578125.png
) X0 k4 b4 e/ l/ l
最大的感受:变成 28 岁了7 r0 ^$ ^% T% W) N0 Z0 p# J
好吧,开个玩笑,下面是正文。
) U% P# \; n( X8 I4 A一定要提一点,这篇文章中很多观点都是受到了这个视频的影响:经验分享:非计算机专业的人如何转行程序员(宿琛)(视频分享人是我的高中同学兼好友,我的 Gap 受到了他的很多影响)
9 Q) J- @. k% m8 S7 X; `) ^0.背景以及 Gap 原因我硕士毕业时是 26 岁,然后校招进入一家航天国企,负责 Web 后端开发,工作了一年之后发现个人成长和挑战的空间极其有限,同时发现自己很喜欢编程,但不是计算机专业,没有系统学过 操作系统、计算机网络、数据库、分布式、计算机组成原理 等课程,同时自己又对这些底层原理有着极强烈的好奇心,根据 learn from the best 原则,将目光投向了北美四大计算机名校,并从其中挑选出了 5 门课程,基本涵盖了计算机所有基础领域:. | i8 T2 q( Q7 m
CMU15-213,计算机组成原理,教材是 CSAPP
" l$ ]7 P0 M) h4 G/ nStanford,CS144,计算机网络,课程要求实现一个 TCP 协议% k& o) I' C. T* {0 H
MIT6.s081,操作系统,课程要求魔改 xv6 操作系统,为其添加很多 feature,基本涵盖了 OS 的各个方面1 A @, d4 [ j0 U4 v
MIT6.824,分布式系统,课程要求实现基于 Raft 的分布式 kv 数据库
3 S w7 B! N+ P% U, j- uCMU15-445,数据库系统导论,课程要求实现一个面向磁盘的关系型 数据库,其中的缓冲池、存储引擎层、执行器、优化器都需要自己实现,对于有性能追求的同学还提供了 LeaderBoard 打榜。$ E/ N, I) M* y. d; @9 t. l V. a
[/ol](这些课程在我决定 gap 时还不算特别“出圈”,但现在计算机学习者都应该听过了,我很开心这一点,我希望每个计算机学习者的简历上都可以出现这些课程) w- d5 @9 G6 B) j
但是随着真正开始学习,我发现这些课程都及其硬核,需要花费大量的时间思考和写代码(我曾经和 b 站一个粉丝破万的数据库开发老哥聊过,他说 CMU15-445 这门课需要写的代码量比他在公司一年写的都多)
4 ~1 [% K2 B5 s7 ~$ z! _: I$ m- C
i5act44afxz64015578225.jpg
, ^) p2 |. x$ p9 L& b- o" e/ y
问题一:为什么不能边上班边学习,要选择 Gap 脱产学习?
9 {6 [9 G. C* r9 x我当时的处境是,工作收益除了工资外,基本没有个人成长,而且我相信年轻人最宝贵的就是时间,如果利用下班时间,预计一门课需要半年,还得是风雨无阻天天坚持学习,预计这些课程全部学完需要 3 年左右的时间,即我 30 岁的时候,可以扎扎实实地学完这些课程(扎扎实实的定义是,独立思考并完成课程所有的 Lab 与作业),但这个时间对我来说太晚了,我希望用一年的时间,毕其功于一役。而且还有一点:一天学 1 小时,一次学 3 天,和一次性学 3 小时,效果是完全不一样的(参考《deep work》和《心流》)+ x, \2 X5 L0 D3 w
另外就是,我相信那句话:种一棵树最好的时间是十年前,其次是现在。我只是勇敢地践行了这句话。+ |! J. U, l4 V# U5 u. `
问题二:Gap 期间经济来源?( y( V, z8 U" M
得益于我前单位(这个词果然一股浓浓的国企风)对应届生的慷慨,我在上班的一年时间攒了 10 个 W,用于支持我 Gap 期间的花销。. |6 \$ N Y8 x$ ]5 z* q9 P
另外,父母身体健康,而且都有养老金,不需要我支持。也是我可以选择 Gap 的重要客观原因,我很感激这一点。
3 k6 |3 I6 t" p! F5 T! p3 I1.Gap 期间出现的问题学习方面这些课程本就是开设给全世界最优秀的本科生以及研究生的,所以有难度很正常,尤其是 CMU15-445 和 MIT6.824 这些课程,所有的 Lab 都是一脉相承的,后面的 Lab 是建立在前面的 Lab 基础之上的,如果前面的 Lab 卡壳,后面的 Lab 就会做不下去。8 `% P+ y2 k- P6 [5 m( ?1 u
面对这些问题的时候,不要慌张,认真看所有的视频、所有的教案、所有的资料以及所有的 guide,就是这么朴素,因为计算机是建立在布尔代数之上的科学,他里面没有黑魔法,沉下心去,所有的东西都是人想出来的,即使你认为发明那些概念的人是天才,但并不代表它们是不可理解的,就好比“补码”确实是天才的发明,但它依旧很好理解。
+ t5 Z j( u* f9 R这里强推我经常看的一个鸡汤:翁恺:计算机世界没有黑魔法9 T q. m/ Q# i9 p Z
而且经过我实际学习的经验,这些课程之所以称为“神课”,不光是因为其知识密度大,更主要是其难度设计合理,而且给学生提供一个很合适的动手环境,是一个你跳一跳,就能够到的高度,绝对不会出现下面的情况:% m$ P& ~0 y) n9 U' Y4 Y
dgborutl2u464015578325.jpg
8 u3 b* m# v7 _5 B/ _
6 S z0 P0 Y+ a, X/ I2 h- p- _
所以只需要沉下心来,就像"左耳朵耗子"说过的:“在这种环境下(短视频大量充斥我们的生活),你根本不需要努力的。你只需要踏实一点,像以前那样看书,看英文资料,你只需要正常学习,根本不用努力,就可以超过你身边的绝大多数人。”) o& f; g5 s+ O& ^+ S+ j1 f- n
心态方面我身边的同学朋友也问过我:你有没有后悔?从前单位辞职,只为了学习计算机底层原理?/ T7 O f3 i# s% D# A
我当然有,如果说没有一丝丝后悔,那是骗人,在 Gap 的一年中,我也经常在某个深夜想:我是不是当时太不懂得珍惜了。我也会焦虑,尤其是偶尔刷手机,看到一些文章的标题:$ }7 [; E% c* M: b
《互联网崩了》
" v- Y$ y6 l8 v6 P$ f《职场不接受 Gap Year》
) ~ b: K5 ~- f+ ]7 q& F2 Q+ G* m《计算机彻底没了》! I2 f1 _5 c* n
《双 985 秋招投了 300 家 0 offer》
3 F9 \: v- _/ N9 f/ ^% P6 h这种焦虑的心态在过年时期达到了顶峰(亲戚,你懂得)# d; V: `- ^3 N! L$ P; ~
但我很清楚,悲观和焦虑会迅速毁掉一个人,如果有习惯性的焦虑,那么这个人会在思想、行为、情绪、身体等方方面面遇到问题;比如生活中很小的问题都会看上去像不可逾越的高山、情绪会很差,行为上变得被动和犹豫不决、身体上则是没有胃口、失眠、容易疲倦等等;
! J1 j/ F! u# ?" |& W' u3 p0 Q所以我意识到,如果任由悲观和焦虑在我头脑中泛滥,我的 Gap 一定会拉胯的,最后的结果就是:想学的课程没学完,还找不到新工作。, ^8 f3 j$ K/ I. `7 V' f
意识到这一点后,我迅速制定了以下计划并执行:
7 ^8 E+ {" m+ B; N9 ]+ a系统学习"积极心理学",每天都花费 30 分钟和自己进行积极的心理对话,改变自己对于事物的解释风格(具体见《活出最乐观的自己》)5 I1 i. ] R! E) @
坚持运动,开始跑步和健身,通过生理状态影响心理状态% U. O/ C; M* V3 Y- n, e2 _& |
坚持和朋友一周一次电话,和他们保证,绝对不失联 v/ d- B( F; E: l# w, a' M
[/ol]得益于这三点,我最终度过了最焦虑的时期(大概是我 Gap 半年的时候),而且事实也证明了,正是因为我采用乐观的心态去应对 Gap 期间发生的各种问题,我才顺利学完了这些课程,并且最终拿到了满意的 offer。
, D$ v/ F4 V) Y2.后续计划我的 Gap 算是画下了一个句号,至于这个句号是否圆满,至少我自己是满意的,接下来我会去工作了,但我是带着更强大的头脑和更乐观的心态投入到工作中,我希望自己能创造一些有意义的东西,并能够为开源世界做出一点贡献,正如我的签名那样:make the world a litte better
: j* |- M( S; B' ?- P* _7 ^8 U最后,放上一些我最近一个月找工作时的暖心瞬间吧,让我明白,只要认真努力,这个世界总有人会欣赏你,学习计算机底层原理,就是做正确的事。
: k* Z9 @2 J) g: E( l至于职场不接受 Gap Year?我觉得重点是解释清楚 Gap 做了什么
' t- b& J& c- O# n3 F. d( ?+ j市场上太需要基础扎实的程序员了,以下是我投递简历的一些回复,
' }3 ^( J; _0 j! f/ p
maz424x2cay64015578426.png
8 C& G( T- [5 |# S' M) |6 K7 a
- S3 P: J/ b& H; ^2 a4 Z6 n! n" e. G$ n( F6 P
io0n5slpkob64015578526.png
5 ]; l# b% R* w5 q
! h0 C, O ?' T/ r3 `$ N* }+ f, L6 A$ g. a
3vy025gbkuv64015578626.jpg
D4 C, z1 q- v6 i
0 t" _; G/ s' W
v4damnesmvu64015578726.jpg
+ _. f" E6 i' B& W. I. n- c; l4 n
; O! v3 H3 u4 j/ j. \5 w
pts1o3nd5rc64015578826.jpg
6 @- E, S1 d% b$ X9 t4 b7 k2 L, G* Q G% Q' P+ X: s0 O
7 ^, {2 A* E2 u& y) e
) S7 R _, {) v# M, [2 a" S
sxrq202u0r164015578926.jpg
' E& I# r5 s8 B8 m; @: ]) v
1 u5 h1 q, I- i3 u
dfmp2xmithe64015579026.jpg
+ H' i5 V& J6 N7 \* Z: B; O写在最后:如果你还是学生,并且比我还要年轻(毕竟我都 28 了),扎扎实实打基础,不必焦虑所谓的“计算机没了”,但行好事,莫问前程,更何况这个“前程”,我已经替你趟了一遍,我可以拍着胸脯说,只要扎扎实实学完这些课程,认真夯实自己的基础,不骄不躁,不去盲目追求最新的框架和技术,在计算机的世界里,一定有你的容身之地~加油!
& }. [0 A3 J, |. w, x" W) S小彩蛋:文章开头的 5 门课,其实漏了两个领域,分别是编译原理和计算机图形学~我也没学过,无法给出任何建议。但他们已经在我的todolist上了~
2 I( Q7 e. B* P( A文章中提到的所有课程,具体见这里:https://csdiy.wiki/7 f9 }4 P( Z& [6 y
文章来自:https://zhuanlan.zhihu.com/p/665413542——EOF——一个我十分佩服的朋友阿秀开发了一个互联网大厂面试真题记录网站,支持按照行业、公司、岗位、科目、考察时间等查看面试真题,有意者欢迎扫码下方二维码适用~
: d7 s/ q% e- a6 r+ b
jwdio0exngf64015579126.png
% j) z/ Z; s2 d6 L' ^- Z+ [
g) x" B9 ]; ^1 D9 {, H4 u" ]. H你好,我是飞宇,本硕均于某中流985 CS就读,先后于百度搜索以及字节跳动电商等部门担任Linux C/C++后端研发工程师。
6 v2 J, T8 p# B同时,我也是知乎博主@韩飞宇,日常分享C/C++、计算机学习经验、工作体会,欢迎点击此处查看我以前的学习笔记&经验&分享的资源。* @1 o: y, \4 t, Z7 |
我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。4 c4 O" z$ ~, \( i1 g; `
kcydxrsvgys64015579226.png
6 W# ^4 u! n) v+ a: d5 x! C欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会。: O# U) ?5 e& }" F% k: e9 w/ }7 }
1 M1 C2 K) ~7 e, @' y7 W
n3jqqhnkgtj64015579326.png
; Q, {) }9 M% A% @加个微信,打开另一扇窗
" R4 m" @9 C+ R* d6 C8 O1 ^
yhea5nt1lm464015579426.gif
|