改变从学习开始


以下内容是我在 陈天 · Rust 编程第一课的分享用户故事|绝望之谷:罗杰,改变从学习开始

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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