天天看底层有什么用
疑问
其实之前我一直有个疑问, 每天工作在应用层, 就算知道 TCP 的传包, 包的校验等等, 在工作中其实是用不到的, 每天看这些东西用什么用呢? 其一, 对工作的内容其实是起不到任何作用的, 其二, 浪费的时间如果将其用在工作上是可以产出更多效益的. 那么, 带给我的到底是什么呢?
解惑
说实话, 我看各种书籍, 一直都是兴趣使然, 但是, 今天我就要为自己找一个理由, 就算有些牵强.
这就好比: 你是一个司机, 但是你每天都研究怎么造车, 如何让车正常行驶, 尽管你每天的工作(开车)并不会涉及到这些内容. 当然, 你可以说这是你的兴趣, 就算你一辈子都不会涉及的造车的领域, 但是你就是想知道一辆车是如何从一堆零件一步一步拼装成一辆车的, 这当然没问题. 对于很多人, 确实是这样.
但是, 如果有一天, 你自驾游, 开车到了沙漠, 这时候车突然熄火了. 请问你能怎么办? 打电话叫拖车? 大哥, 这是沙漠, 前不着村后不着店的, 就算你把电话打出去了, GPS 都够呛能定到你的位? 这个时候能够靠谁? 求人不如求自己, 如果你对车的构造有些研究, 就算你不知道问题出在了哪里, 但是你看到各种零件至少知道它们都是干什么的吧, 你根据自己对造车的了解, 倒推一下, 也能大概定位倒问题所在吧. 然后经过多次尝试, 可能到最后你都不知道为什么动一下这里, 车就好了, 但是, 它就是真的好了.
那对于一个单纯的司机, 他根本就对造车的部件一窍不通, 他遇到这种情况能怎么办呢? 没有办法, 只能打电话求助, 如果电话没有信号?? 那就悲催了. 因为他想尝试自己动手的时候, 发现看着各个部件根本不知道是做什么用的, 哪里都不太敢下手动. 可能这个单纯的司机就只能在沙漠里苦苦的等待救援了, 甚至等到最后都没有等到?
而对计算机各种底层的了解, 就和上面造车的知识一样, 平时你当然是用不到这些内容的, 但是, 如果出现了紧急问题, 当所有人都一筹莫展的时候, 你依靠着你对各种底层的肤浅了解, 简单推测了一下可能是哪里的问题, 经过验证后发现确实是, 这个时候你会不会觉得自己之前学到的所有内容都是值得的?? (尽管作为一个应用层工作者, 可能一辈子都遇不到这种情况).
总结
如果能够将学到的东西应用到解决具体问题上, 那当然是再好不过了. 毕竟, 所有知识的最终目的, 都是服务于人类. 但是, 我工作差不多一年了, 目前还没有遇到过需要用到这些知识的地方. 那是什么驱动着我去看计算机的相关内容呢? 即使看到的内容可能对工作没有任何帮助, 也不能为我带来任何收益.说实话, 是兴趣, 或者换个说法, 是好奇心. 这就像, 如果你每天都在用铅笔写字, 那就不由的会产生一个疑问, 铅笔为什么能写出字?. 如果你每天都在将水和土混在一起和成水泥, 那就不由的会产生疑问, 为什么水和土搅拌之后就变成了水泥呢? 如果你每天用电脑进行编程, 那就不由的会产生疑问, 为什么我写的代码就能够执行了呢? 为什么计算机只能执行简单的加减和逻辑运算, 经过编程却能够实现很多复杂的逻辑呢?
我承认, 探究的过程和结果, 就我目前看来, 确实不会对我的工作上有半点帮助. 但是, who cares??? 就算它没有给我带来实质性的好处, 但是他满足了我的好奇心, 我觉得好奇心这玩意还是挺重要的, 至少他是我追求技术热情的保证, 兴趣使然吧. 当然如果在未来的某一天, 我所学的内容能够在工作中切实的解决我遇到的问题, 那就更好了.
最后, 归根结底, 可以将以上总结为一句话: 千金难买老子愿意
以上....