gitbook/陈天 · Rust 编程第一课/docs/445818.md
2022-09-03 22:05:03 +08:00

9.5 KiB
Raw Permalink Blame History

用户故事|绝望之谷:改变从学习开始

你好,我是罗杰,目前在一家游戏公司担任后端开发主程。

到现在我也快工作十年了,作为一个从小学习能力很一般的人,这中间的打怪升级史可以说是相当惨痛。

我是13 年毕业的,在师范类院校学的软件工程专业。大四参加校招,历时三个月不断面试、笔试,勉强找到一份工作,做棋牌游戏后端开发,签到了深圳。这份工作实习不到半个月,我就开始失眠,因为在学校里从来没有深入学习,专业知识非常欠缺,代码几乎看不懂,当时也没有太多可以寻求帮助的途径,进入不了工作状态,非常痛苦。

其实即使我们有再多的知识储备,换家公司,一定会有特别多的内容需要去学习和掌握,而且学习的过程一定是相当痛苦且枯燥的,之后每次换工作这种体会都会相当明显。

当时失眠了半个月之后,我找到部门领导提出换岗,告诉他觉得自己不太适合做开发。领导耐心地开导了我,也让当时的导师加强对我的关注。领导告诉我:虽然我的技术相对薄弱,但相比零经验的策划岗位而言,显然技术更加适合我,在犹豫之下我决定再尝试一段时间。

但是当时整个部门特别忙,其他同事根本没有时间理会我的困惑。实在没办法了,我开始直接在公司技术群里面寻求解决方案,刚开始没有人愿意搭理我,当然心理也会不舒服,但我还是坚持了,可能是问的太多了,有时候会有一些热心的同事愿意帮我解答。我默默记下了一些大佬的名字,后来有时候遇到问题直接去找他们,基本上问题很快就能解决。

难题可以去向大佬们请教,但是那些之前欠下来的基础知识还是得自己一点点啃,对于一个毕业生而言,要学的东西太多了。

对那些将要用到的技术,我会优先快速学习。印象比较深刻的一个案例是当时项目要使用 Redis我利用晚上不到四个小时的时间通过视频学习加上课后立刻动手的好习惯就基本掌握了所有高频的命令使用方法。那是我第一次意识到课后立刻动手是如何加深自己的记忆的。之前觉得非常困难的任务,带着兴趣,加上良好的学习习惯,很快就掌握了。

除了常用工具,还有数据结构与算法、计算机网络、计算机组成原理、编译原理等一系列的基本功,这些内容学习之后反馈周期都会特别长。在实际工作中,你的工龄越高,这些知识的重要性一定会越发体现出来,我们需要有 N 年的工作经验,而不是把一个工作经验重复了 N 年。

我听过很多人抱怨:“这些基础知识大佬早在大学的时候都掌握了,我们到工作多少年了才想起来补,学了又记不住,平时也用不上,还不如去摸鱼”。其实即使是科班出身,在学校,教的几乎全都是皮毛,动手真正动手的机会也相对较少,都是在工作中不断栽了跟头之后,才会意识到这些基本功的重要性

对于基本功,我的规划是在年初每项都制定目标,年底进行回顾。《三体》说:“一队蚂蚁不停搬运米粒大小的石块,给它们十亿年,就能把泰山搬走。只要把时间拉得足够长,生命比岩石和金属都强壮得多,比飓风和火山更有力。”

但良好的习惯坚持下去非常不容易,所以在开始的时候,不要制定太困难的目标。将大目标拆成小目标,依次去实现,不要死磕在一项任务中,容易自闭,然后放弃。在学习的过程中,灵活调整要学习的内容。

我个人比较喜欢阅读相关的经典书籍,或者去中国大学慕课学习各个名校的相关课程,优点就是课程资源丰富,可以任意切换自己喜爱的名校课程,但这些课程的缺陷是比较古老,好在极客时间能完美解决这些问题。

不过像这种时间跨度比较长的计划,很容易丧失学习的兴趣。让自己长久保持兴趣的一个好办法是,在巩固基本功的同时,也制定学习新知识的计划,比如每一两年可以给自己制定一个计划,学习最热门的编程语言或者新技术,紧跟新趋势。关心自己,也关心这个世界。君子不器,全面发展,提高自身的韧性,能更加有反脆弱的能力。

聊到这里,你不会以为我已经升级成大佬了吧,哪有那么简单。前面说的都是我快十年来学习的心路总结。

好不容易在深圳三年过去,工作大致上了正轨,因为和媳妇两地分居也不是长久之计,所以我选择从深圳回到西安。

换了新工作,新的痛苦又来了,我发现又有很多新内容需要重新学。工作环境也完全不是我想象的样子,同事们的不专业、不理解的企业文化,再加上三个小时的通勤时间,我每天充满了怨气,跟家人的关系相当糟糕,整个人处于游离状态,甚至一度压力过大,频繁发烧,还在医院休息过半个月。

不过我很感谢住院的经历,每天晚上十点休息,早晨六点起床,有充足的睡眠,没有工作的压力,我有大把的时光反思自己的各种问题。这是我从开始工作最安逸的一段时光了,媳妇全程在医院陪护,尤其让我意外的是,平时处得非常糟糕的同事们都来医院看望。

出院之后,我决定改变:要改善和同事的关系、更加照顾家人的感受、尝试戒烟。但是切身感受就是有心无力,虽然努力了,同事们跟我还是充满距离,孩子几乎不愿意和我待在一起、戒烟也还是失败了。

一年又过去了,因为扁桃体手术,又在医院休息了一段时间。我突然领悟到虽然努力了,但是可能方法依然不得当。我要寻找自救的方法。这个时候机缘巧合,媳妇推荐给我一门樊登的课程《可复制的沟通力》,让我试着看看,还挺有意思的。听了这节课,我就彻底改变了接下来的生活。

因为平时时间不够,我开始听各种经典书籍的解读课,学到了很多有用的理论和方法,比如对我影响比较大的一些书籍如《非暴力沟通》、《掌控谈话》、《终身成长》、《刻意练习》、《考试脑科学》、《亲密关系》等等。

有了意愿,也有了理论和方法,之后剩下就是执行。与家人有了更多相处时间,他们给了我爱与包容,让我每天多了更多快乐和动力,陪伴他们也会让我对工作和学习充满热情。把陪伴孩子学到的耐心应用在跟同事的相处里,工作氛围和谐了很多。家庭和工作是不冲突的,平衡好它们,我觉得自己每天都比前一天更加幸福。

但生活总是充满了各种挑战,在我以为已经掌握了控制自己的情绪并且知道如何跟人相处之后,依然跟一位新同事闹了很大的矛盾。即使这样,我也依然相信自己能迅速把心态调整好,通过再次去复习一些书,我很快从崩溃边缘把自己拉了回来。也正因为这一点,我也戒烟成功了。

在后来不停打怪升级的过程中,我遇到过很多问题。好多时候,由于工作安排得满满当当,甚至都找不到学习的时间。但是这并不能成为我不成长的理由,学习的方法太多了,看书、看视频、阅读专栏、看源码、参加线上线下各种分享活动等等,都是不错的方法,关键是要找到最适合自己当前状态的。甚至写下这段话的时候,我怀里还抱着刚满五个月的小儿子,媳妇在辅导大儿子作业。

之前说我会在年初每项都制定目标,今年我制定的新语言学习目标是 Rust。如果你觉得作为一个工作快十年的人肯定积累不少学习Rust一定比较顺畅吧其实并不是很多知识点都需要反复去琢磨不断去消化。

年初我读了一遍 The Book 的中文翻译版,尝试写过一个非常简单的命令行程序,结果花了三四个小时,净跟编译器斗争了。三月份又重新读了一遍英文版本,书上所有的源码也都自己动手执行了。但是做完这些,依然没有很好的掌握,无法流畅地写 Rust 代码。

九月份在 B 站上学习了“软件工艺师”的视频课,相当于把之前看书的内容通过视频课又复习了一遍,这次改善比较明显,对一些之前不太理解的点有了进一步认知。我个人更喜欢视频讲解,虽然学习的时间周期比较长,但通过视觉跟听觉的双重作用,我的记忆比较深刻。

基础虽然掌握的差不多了,但是想要将 Rust 应用于工作,还太远了。

后面就是非常幸运地看到陈老师的专栏,看了目录之后果断入手,该专栏里面的内容几乎都能与实际工作完美地结合,配合上动手环节,学习的效果会非常明显。相信在课程学完之后,我就可以在项目中尝试去使用 Rust 了。

最后我想说,学习 Rust 一定是一场漫长的旅途,过程会相当艰难,肯定会遇到一些暂时不能顺利掌握的内容,但只要不放弃,暂时未掌握内容通过反复学习,多动手,相信我们都能顺利抵达终点。加油,共勉!