30多岁裸辞,一个工程师的自白

大家好,我是栾先生,来自 山东,毕业于哈尔滨工业大学,在运维岗位上工作了8年以上,不过目前已经裸辞,决定年后再找工作。

下定决心,重学数据结构与算法

其实触发我要再学一遍数据结构的是一个比我厉害的程序员,一次和他聊技术时,他突然认真的说, 你要再学学数据结构 好在我脸皮厚,朋友的话我记下了。真实的指出我们不足之处的朋友不多,好朋友有些时候因为担心直接指出我们的弱项而伤害到我们,恐怕就不说了,我们也就无法全面的认识自己,一直接触阿谀奉承的人非常危险。

我先是买了两本书,而后也看了两所大学的《数据结构》,因为感觉老师讲的好,我到一个老师的网站上尝试刷题,哎呀! 屡战屡败,鏖战一个多月,身心俱疲 我猜估计只有出题的老师会做,其他人估计和我一样。(内心os:不要告诉我,大家都会,我受不了...)

因此我在想,如果有个人,自身不是某大学的老师,而是某公司的技术牛人,他能做对这些题目么?我如果能看到,牛人挥刀砍题,手起刀落这样的场景,那才叫爽。我盼望着,直到一个好朋友告诉我,极客大学有一个算法训练营...

我自己啃了几本数据结构的书,书是很好的,可是我感觉吸收得一般,所以当看到有这个训练营时立即买了,并立即在极客时间里面搜索到了覃超老师的视频课,买下,早点热身。好的开始是成功的一半,越早见识高手,越少走弯路。 愚公移山精神很好,但早学挖掘机可能更好。

有些话,我早就听说了,感觉自己好像理解了,但经过某些经历后,你可能理解得更深刻了,并用它们指导以后的生活,这可能就是收获吧。

我参加算法训练营的初衷:

第一个,为了涨见识,想看一下 覃超老师到底有多牛? 为啥牛?

第二个,明知递归函数很重要,但是每次自己写起来,都感觉“反人类”,递归树画着画着很烦躁,写着写着想睡觉,我想看看覃超老师,是不是他也不会写?(坏笑)

第三,动态规划,神神秘秘的,感觉根本找不到规律,也搞不清楚什么情况下,应该用动态规划解决。

算法的种子逐渐萌芽

现在:

第一,达到初衷,真是遇到好老师了,掏心掏肺的讲解:压缩记忆法、五毒神掌等,真的涨了见识, 老师不仅教了套路,还直接给了木人桩。

第二,讲到递归函数的时候,老师手里有模板,奥利给!我这钻木取火,老师直接递过来打火机。

第三,讲到动态规划的时候,记住了老师的几句话,其实,它和递归没什么区别;递推加记忆化;何时使用呢?是否存在某种最优子结构。升维、降维、状态压缩,原来如此。但动态规划的某些题的定义状态,确实需要一些“天分”,其实也就是抽象思维能力,我们不知道天才们当时是怎么想出来的,先记住吧。

我真实地感受到了,老师脑袋里这些知识的样子,也感受到了一粒数据结构与算法的种子在我的脑袋里面逐渐萌芽。

数据结构之树开枝散叶

在学习的过程中,我更理解吴军老师说过的一句话,大体是这个意思:“ 不要太相信一万小时定律,即使你付出了一万小时,你也可能没有成为什么牛人。 ” 为什么?其实,那是在做低水平的重复。举个例子吧,可能你一直都在一楼忙碌,根本不知道还有二楼、三楼、更高的楼层,好比你根本没有见过一流的人如何做这个事情。

一流的人,可能把二流的事做到一流。 参加训练营,我的感受是比自己一点一点啃要好得多,不光是快,最重要的是感觉有条线,把知识串起来了。用池大的话解释,就是系统化,感觉到了这些东西是一个整体了。我也理解了覃超老师引用埃隆马斯克的那句话, 知识最终会像一颗小树,长在脑子里。 比如先理解了单链表,而后理解二叉树、多叉树,最后是图;再有就是从理解递归,到加上记忆化,到理解动态规划,而后是贪心算法,贪心算法只能算是动态规划的一个特殊形式,只是动态规划这个树枝上的一片小叶子。脑子里知识零零散散的不是好事,我们的钥匙都串在一起,不是么?

下面是我的小树,可能有些错误,比如,你可能感觉布隆过滤器就是Hash,而不是位运算;或者优先级队列,就应该属于堆,而不是队列。这很好,“ Talk is cheap, show me the code”。

查漏补缺,填补盲点

在训练的过程中我体会到好多东西,学好数据结构与算法真的非常有用。我还是想用 约瑟夫下船问题 ,来和大家分享我那时候的感受。

 

一开始我的思维一直像 老式的打字机 :人站成一行,我像个执法者,从头走到尾数着数,把倒霉的人推入大海,而后再次返回,从头到尾再来。这样子想,当写程序的时候,需要时刻关注好几个维度,比如原来这个位置的人是否已经推入大海?是否已经是队伍末尾了?已经推下去几个等等。我是阅读一段别人写的变量没有注释的代码,我太难了,终于把它的注释补上去,理解了。擦汗!

而后用必应一搜,看到了用队列这个数据结构,简洁的代码,就8行,逻辑非常清晰。

哇咔咔,给你个场景自己体会吧,我用腿爬到了 66 楼,一推门看见同事,他们说:“你刚走就来电了,可以坐电梯上来了。”

很多人都无数次说过: 程序=数据结构+算法。 我想说的是:不学习它,你就有一些盲维,比如字典树,用它能很好解决一类问题,如果你连字典树的概念都不知道,遇到相关问题肯定解决不好。

最后我想说: 不学好数据结构和算法,就像拿着个有漏洞的桶去提水,事倍功半一辈子呀!

我想对师弟师妹们说

首先,身处一个人工智能时代,我们必须多了解一些计算机知识。打个比方,如果是蒸汽机时代,你懂得蒸汽机的原理,哪怕只是维修蒸汽机,估计人生也很精彩,很多人求着你帮忙,你掌握高科技,人们高看你;反观当下,乔布斯先生曾说过, 人人都应该学习编程,最好用一年的时间学, 这是肺腑之言呀!因为我们离不开计算机,其实手机就是一台计算机,更别提在大公司工作,人手一台电脑, 我们要搞懂它、驯化它、驾驭它,让它会变成一个得力的助手。 大雄同学菜菜的,可是有了哆啦A梦的帮助之后呢?

其次,学习的过程是不是很痛苦?我想用吴军老师的话来与你共勉: 学习的过程可能辛苦,但一次一次,当我看懂了优秀的代码,理解了先贤的智慧,拍着大腿,想说叹为观止的时刻,和在某些旅游景点的感受,几乎是一样的。 我曾在黄果树瀑布下,张着嘴。人人都爱旅游,累么?累,快乐么?快乐。其实,我们需要的是,那些经历,那些场景,那些感受。

分享一下我的记忆心法,我比较认同的一句话: 任何学习说到最后,都是记忆化的过程。 关于记忆,分享三点:

1、记不住的主要原因是,记多了!  每次尽量控制在3个。

2、文字,图片,视频,记忆深度不断加深,能看视频的看视频。

3、重复的次数,要足够多; 还有,体验越深越难忘记,不信,捅个马蜂窝试试。

再次,说一下课程,覃超老师和极客大学团队精心打磨、不断迭代的课程,贯彻了授人以渔的思想,让我受益很多。 我们可能内心一直盼望,一参加工作就遇到一个好公司,身边一堆技术大牛的同事,而且他们都很有耐心,一年内把小白培育成才; 而现实是,我们需要提升自己的能力,争取能够分辨出哪些人是高手,哪些公司是好公司。 否则,你有多大的概率,在最好的公司找了个最菜的人拜师了,悲剧呀! 好公司一定有好产品,这个算法训练营,我参加了,整体下来我感觉确实超值。 覃超老师是高手么? 能把很多的知识压缩为几个字。 功力如何? 你亲自试一试就知道了。 另外,他把他被微软面试官咔嚓的事情都倒出来,给人无比的真实和亲近感,不是高高在上的老师,而是就像站在你身边的战友,随时准备让你踩着冲出战壕。

最后,啰嗦几句,其实这个课提升了我的格局。还是打个比方吧:连长说今晚摸鬼子的炮楼,我举手,连长说:“你行么?”我把匕首咬在嘴里,麻利儿地把布条缠到了鞋上,连长一看,最重要的基本要领知道,靠谱。我不再关注哪个员工不努力提升,而是关注自己给牛人做助手是否合格?这里引用一句话吧, 秦朝李斯《谏逐客书》: 是以泰山不让土壤,故能成其大; 河海不择细流,故能就其深; 王者不却众庶,故能明其德。

早鸟优惠中丨第 6 期算法训练营

如果你也想跟随覃超老师学习算法,和优秀的小伙伴一起提高自己的数据结构和算法能力,可以参加第 6 期算法训练营。本期算法训练营不限地域,内容从低到高、由浅入深,涵盖所有核心算法知识精讲、解题思路、实战结合。

:point_up_2: 扫码报名 

仅限 前 50 人 有效!先到先得!

:point_down: 点击阅读原文,查看算法训练营 课程大纲 哦~

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章