计算机学习心得

先看个小故事。

有一天我问我媳妇:你觉得操作系统复杂么?
我媳妇想都没想就来了一句:复杂!
我又问:为什么觉得操作系统复杂?或者操作系统复杂在哪里?
我媳妇眼睛转了两圈之后说:不知道!

我说:操作系统其实不复杂!

然后,我兴高采烈地给我媳妇讲起来了“搞技术也是有境界的,也讲究看山就是山,看山不是山,看山还是山”。

再然后,我看到了鄙视的眼神。

最后,故事结束。

PS:我媳妇本科是计算机专业,还正儿八经地干过几年软件测试,虽然这几年转行了,但也算是科班出身。

我大约是11年左右开始接触大数据领域的,当时带我入门的是一位来自百度的导师,除了经常自嘲自己是农民工,就念叨他那句话:搞技术,就得看源码。那个时候自己还太年轻,也没有问问具体怎么个看法,但就知道看源码是对的。

那会儿比较推崇谷歌的三驾马车,开源社区的就是 Hadoop 和 HBase,实习生有的是时间,打开官网把代码下载下来,然后就一个字:看!

最开始的时候确实不知道如何下手,我就在网上到处搜索源码分析之类的文章,稀里糊涂地看了一大堆之后,慢慢地还真摸到了路子。现在回想起在寝室边刷剧边看代码的日子,真爽啊!

代码看进去之后,马上就有一个很强烈的冲击:

Java 原来是这样用的啊!
Java 还可以这样用的啊!

反射、动态代理、多线程、IO,...,这些费劲巴拉学会的东西,真的是有用的!

真正体会到了,不是编程语言不行,而是我不行!

后来我琢磨出了一个自己的 What - How - Why - Create 理论:

What:这个东西是干什么?
How:这个东西是怎么实现的?
Why:这个东西为什么这么实现?
Create: 我能不能自己写一个新的?

大概过程就是从文件研究到字节,再从字节研究到位,把 Hadoop 和 HBase 的大部分代码翻了个遍,明显能感觉到自己的技术能力快速提升。

进入工作岗位之后,因为对源码熟悉,明白实现原理:

系统性能有瓶颈的时候,可以调整参数;
系统需要扩展功能的时候,可以写插件;
系统需要更换模块的时候,可以写模块;
整个系统不行了,带着团队,我们自己写一个!

现在回过头来想,看源码就是少林和尚挑水劈柴,日复一日地重复,看似枯燥无味,慢慢地就打下了基本功。

一开始的时候,Hadoop 就是 Hadoop;到看 HBase 的时候,发现这个地方和 Hadoop 差不多嘛;再看其它的时候,这不也是那么回事儿嘛。

嗯,搞技术真的是讲境界的。

posted on 2022-09-28 11:53  非著名野生程序员  阅读(49)  评论(0编辑  收藏  举报