天天看底层有什么用

疑问

其实之前我一直有个疑问, 每天工作在应用层, 就算知道 TCP 的传包, 包的校验等等, 在工作中其实是用不到的, 每天看这些东西用什么用呢? 其一, 对工作的内容其实是起不到任何作用的, 其二, 浪费的时间如果将其用在工作上是可以产出更多效益的. 那么, 带给我的到底是什么呢?

解惑

说实话, 我看各种书籍, 一直都是兴趣使然, 但是, 今天我就要为自己找一个理由, 就算有些牵强.

这就好比: 你是一个司机, 但是你每天都研究怎么造车, 如何让车正常行驶, 尽管你每天的工作(开车)并不会涉及到这些内容. 当然, 你可以说这是你的兴趣, 就算你一辈子都不会涉及的造车的领域, 但是你就是想知道一辆车是如何从一堆零件一步一步拼装成一辆车的, 这当然没问题. 对于很多人, 确实是这样.

但是, 如果有一天, 你自驾游, 开车到了沙漠, 这时候车突然熄火了. 请问你能怎么办? 打电话叫拖车? 大哥, 这是沙漠, 前不着村后不着店的, 就算你把电话打出去了, GPS 都够呛能定到你的位? 这个时候能够靠谁? 求人不如求自己, 如果你对车的构造有些研究, 就算你不知道问题出在了哪里, 但是你看到各种零件至少知道它们都是干什么的吧, 你根据自己对造车的了解, 倒推一下, 也能大概定位倒问题所在吧. 然后经过多次尝试, 可能到最后你都不知道为什么动一下这里, 车就好了, 但是, 它就是真的好了.

那对于一个单纯的司机, 他根本就对造车的部件一窍不通, 他遇到这种情况能怎么办呢? 没有办法, 只能打电话求助, 如果电话没有信号?? 那就悲催了. 因为他想尝试自己动手的时候, 发现看着各个部件根本不知道是做什么用的, 哪里都不太敢下手动. 可能这个单纯的司机就只能在沙漠里苦苦的等待救援了, 甚至等到最后都没有等到?

而对计算机各种底层的了解, 就和上面造车的知识一样, 平时你当然是用不到这些内容的, 但是, 如果出现了紧急问题, 当所有人都一筹莫展的时候, 你依靠着你对各种底层的肤浅了解, 简单推测了一下可能是哪里的问题, 经过验证后发现确实是, 这个时候你会不会觉得自己之前学到的所有内容都是值得的?? (尽管作为一个应用层工作者, 可能一辈子都遇不到这种情况).

总结

如果能够将学到的东西应用到解决具体问题上, 那当然是再好不过了. 毕竟, 所有知识的最终目的, 都是服务于人类. 但是, 我工作差不多一年了, 目前还没有遇到过需要用到这些知识的地方. 那是什么驱动着我去看计算机的相关内容呢? 即使看到的内容可能对工作没有任何帮助, 也不能为我带来任何收益.说实话, 是兴趣, 或者换个说法, 是好奇心. 这就像, 如果你每天都在用铅笔写字, 那就不由的会产生一个疑问, 铅笔为什么能写出字?. 如果你每天都在将水和土混在一起和成水泥, 那就不由的会产生疑问, 为什么水和土搅拌之后就变成了水泥呢? 如果你每天用电脑进行编程, 那就不由的会产生疑问, 为什么我写的代码就能够执行了呢? 为什么计算机只能执行简单的加减和逻辑运算, 经过编程却能够实现很多复杂的逻辑呢?

我承认, 探究的过程和结果, 就我目前看来, 确实不会对我的工作上有半点帮助. 但是, who cares??? 就算它没有给我带来实质性的好处, 但是他满足了我的好奇心, 我觉得好奇心这玩意还是挺重要的, 至少他是我追求技术热情的保证, 兴趣使然吧. 当然如果在未来的某一天, 我所学的内容能够在工作中切实的解决我遇到的问题, 那就更好了.


最后, 归根结底, 可以将以上总结为一句话: 千金难买老子愿意

以上....

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求最大连续子集

问题 前两天看到一道算法题, 想了几天, 然后到网上搜了搜, 基本和我想到的相契合. 来, 题目如下: 给出一个数组, 求出和最大的连续子集. 举个例子: 数组 [1, 2, 3, 4, 5] 那和最大的就是数组本身了. 但是, 如果中间出现负数, 那情况立刻就不一样了, 你需要考虑是否能够将负数…

数据压缩算法

概述 之前在听到数据压缩的时候, 想着肯定是某些高深莫测的算法, 能够完成数据的压缩这种事情, 最近看了看, 嗯, 至少咱还是能看懂的. 无损压缩 众所周知, 不管你是exe, word, txt, dmg等等, 在存储上都是以二进制进行存储的, 所以, 在讨论压缩时, 忽略文件格式即可, 只要将…

何为真何为假

还记得第一个提出日心说的人是谁么? 没错, 哥白尼. 但是在那个年代, 所有人都认为太阳围绕着地球转的年代. 哥白尼的发现打破了大家的常识, 甚至于有过了很多年, 日心说才逐渐被大众所接受. 即使到了现在, 生活中仍然留有地心说的影子, 比如"日出" “日落” 等等, 就…

TCP 三次握手的意义

概述 在网络的传输层协议中, 存在着两大悍将: TCP 和 UDP . 从前, 我傻傻的以为自己对他们虽谈不上精通, 但还是知道的, 但是, 我错了, 我被自己问住了, 我傻了. 啥也不是. UDP (这里为了介绍简单, 就不提数据在传输过程中的失真(纠错码)等情况了. 简单介绍一下, TCP才是今天…

随机数是如何生成的

引出 在现实中, 会有抛硬币猜正反的操作, 硬币要么是正, 要么是反, 在揭晓之前, 我们谁也不知道它现在的状态. 而这, 是因为其中存在着很大的不确定因素, 如抛硬币的力度、抛硬币的角度、接硬币的力度和角度、硬币的重量、当前风速等等. 但是在计算机中, 要想生成一个随机数,…

GO 文档笔记

前言 最开始写 GO 的时候, 发现方法的注释并不支持param, return等参数, 搞得我都不知道该如何给自己的方法写文档说明了. 而且网上搜了搜也没有搜到教程, 甚是郁闷. 今天找到了GO内置的文档工具: godoc. (我用的1.14.3版本貌似不是自带工具了, 需要安装(配置代理): go get g…

长整数的乘法运算

概述 都知道, 计算机中存储整数是存在着位数限制的, 所以如果需要计算100位的数字相乘, 因为编程本身是不支持存储这么大数字的, 所以就需要自己实现, 当然了, 各个编程语言都有大数的工具包, 何必重复造轮子, 但我还是忍不住好奇他们是如何实现的, 虽然最终没有翻到他们的底层…

如何将数字转换成口语中的文本串

概述 今天突发奇想, 写一个将数字转换成中文字符串的函数. 并不是将 1234 转成 1234 , 而是将 1234 转成 一千二百三十四. 本来以为很简单, 写下来之后发现还是有些坑的. 尝试 因为我是在写完最终版本, 回过头来整理的这篇文章, 所以中间很多尝试的步骤会有所遗漏. 以下简单…

设计模式故事会

想着用讲故事的方式对各个设计模式进行一个稍微形象一些的描述. 当然, 某些因为没有想到特别好的例子, 可能比喻的并不是那么的恰当, 望赐教. 绞尽脑汁啊, 尽力贴近设计模式其本来的意图. 主要为了加强一些自己对设计模式的理解. 进入正题: 小王是一名心怀梦想的90后青年, 他独…

有了 elseif 为什么还要 switch case

引出 你有没有想过既然有了if elseif, 为什么还要设计一个switch case的语法出来呢? 按理说, 一个语言的设计角度来说, 关键词越少越好吧, 而且多出来一种选择分支也没有看出太大用处. 以下几种switch case均可以写成if else的形式(java 代码): // 形式一 switch(a){case 1:…

计算矩阵中全1子矩阵的个数

前言 最近被我大哥安利了一道算法题, 这道题说难, 还不至于我做不出来, 说简单吧, 我还想不到最优解, 等把最优解告诉我之后, 我还正好能理解. 我甚至曾经怯怯的认为, 这题就是我哥专门给我找的, 嘿嘿, 心中说不出的小欢喜. 题来了, 此题出自力扣, 原题链接: https://leetco…

GO 的方法集

前言 之前在写 GOdemo 的时候, 写了这么一段程序(大概意思): package maintype Test struct { }func (test *Test) print() {println("test fun") }func main() {Test{}.print() }结果一编译就报错了: cannot call pointer method on Test literal 差不多意思是不…

GO 切片实力踩坑

概述 GO 语言的切片这两天用了用, 可以支持切割数组的中间部分. 但今天使用中, 出了 bug, 查了半天, 发现是切片的问题, 简单写个 demo 复现当时的情况: package mainimport "fmt"func main() {a : []int{1, 2, 3, 4, 5}b : a[2:4]b[0] 9fmt.Println(a) }你以为输…

搭建本地 HTTPS 环境

前言 之前写自己的网站时, 申请过免费的https证书. 最近想在自己本地搭一个, 结果忘了当初证书是怎么来的了. 本来想着去申请个免费的证书, 但想了想, 我只需要在自己本地能使用就行了, 我自己的环境, 那当然是我说了算了. 只要能够将证书构造出来, 安装到本地就可以识别了. 搜…

《人人都是产品经理》读后感

之前读书, 一般看的都是技术、算法、数学、哲学这些方面的, 为什么突然想看这本书呢? 身为一个开发人员, 每天打交道最多的, 除了开发和测试, 就是产品了. 还记得我刚来公司的时候, 在和产品的沟通过程中, 听到最多的话估计就是: 你要懂产品, 你懂了就不会做错. 确实有很多需求…

nginx 端口转发

概述 这两天在写 go 项目, 一个 HTTP 服务器. 之前写的是 php 项目, nginx 监听80端口, 根据域名将请求分配给不同项目. 现在换了 go, 自然也想延续这个操作, 毕竟都是跑在同一台服务器上. 那么问题来了, 我的nginx 监听80端口的同时, go 服务器是无法同样监听80端口的. 这该如…

2020-08-20

前段时间有些迷茫, 有时看着自己写的代码感觉就像一坨屎, 有时写了一段逻辑总是感觉有问题, 测了一遍又一遍, 逻辑也要理好几次. 就像是进入了一种不可描述的状态, 这感觉让我很不自在. 敲代码的时间说长不长, 说短不短, 从大二开始, 到现在也小四年了, 还没有碰到过这种情况. …

beego 优雅重启

前言 最近在写 go 的项目, http 用的 beego 框架. 因为 go 不想 php, 每次代码改动都需要重启服务, 所以代码发上线之后, 如何重启服务就成了一个问题. 如果强行重启的话, 不光在重启期间的所有访问都被拒绝了, 而且在杀掉进程的时候处理中的请求也挂了. 对于一个向用户正常提…

由 go orm 引发的探索

前言 今天遇到了一个 bug, 是 golang 的orm导致的. 使用了gorm框架. 通过实现Scan与Value可以将数据库中的 json 内容解析出来, 免除了 字符串再解码的步骤. 当时报错的代码大概是这样的: type TestContent struct {Id intContent Content // 数据库中的 json 结构 }type Con…

MySQL 数据恢复

MySQL 数据恢复 前言 前两天因为没注意的误操作, 直接把某个数据表清掉了, 心慌慌. 怪自己学艺不精, 当时整了一下午也没把数据找回来. 当晚回来闭关研究, 终于在凌晨1点多整出来了, 特此记录, 以备不时之需. 对于 MySQL 数据的备份, 主要有两种: 全量备份和增量备份. 全量…