跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如果不是为了应付面试,对于技术我们真的有必要深入底层的去研究吗?
未分類
23 2 月 2021

如果不是为了应付面试,对于技术我们真的有必要深入底层的去研究吗?

如果不是为了应付面试,对于技术我们真的有必要深入底层的去研究吗?

資深大佬 : zzzzeno 2

如题是 lz 这几天在深入学习 Golang 时产生的困惑

毕竟时间总是有限的,除了需要工作,剩下的时间还得健身、学英语、学别的学科(例如经济学、理财)、敲一些自己的代码(自己的项目或者给开源项目贡献)、以及最重要的各种形式的娱乐等等等等(如果 996 这些就都不用考虑了

举个例子比如说这里,我们知道 Go 里被 defer 的函数的参数会被预先计算好,原因是调用 runtime.deferproc 函数创建新的延迟调用时就会立刻拷贝函数的参数,函数的参数不会等到真正执行时计算。但我其实不用学习底层原理,仅仅知道这个 tip 就够用了,甚至即使我不知道,发现问题的时候当场 Google 就行了。

那么学习底层原理的作用在哪,知其所以然真的有必要吗…把学习的时间花在纵向上是不是不如花在横向上,去掌握更多的技术栈(例如去学习一些前端的知识或者分布式、k8s 这种自己没有接触过的新玩意)

大佬有話說 (29)

  • 資深大佬 : hxndg

    以我个人的例子而言,如果只做 CRUD boy,确实不怎么需要,但是会给你修复 BUG 和解决问题带来很多问题。
    比方说,知道 TLS 和公钥密码学,不深入研究就能够提供在应用时的单向加密功能,但是如果设计 TLS 自动机的时候就会出现知识储备不足的问题导致安全性设计不到位(尤其是设计私有协议栈)
    再比方说,X86 是 TSO 体系,线程同步没有什么大的问题。但是代码迁移到 ARM 上出现一堆多线程问题怎么办?怎么做用户态的优化等东西的时候,就需要了解底层知识了。

    但是这不代表就不需要了解其他方面的知识,深刻和广播,都不可或缺

  • 資深大佬 : a62527776a

    我感觉 学原理 学底层 有一部分原因是以史为鉴的因素 至少可以在遇到一个场景时 能从曾经所学中获得一些参考

  • 資深大佬 : wzb0909

    呃,我认为基础知识,看课本上的就好了。

    初学就看初级书。初学看高级书只会让你输在起跑线。
    看书挑作者,不要随便是个人写的书就看。你的时间很宝贵。

    然后,底层当然要学,但是「要不要学」这个问题的答案,一定是不要。你要学的时候,你一定是明确知道自己要学的。
    有些事情不能急,时候没到,学了也白学。时候到了,你再怎么不情愿,自己就会去学。

    你要是觉得学了没有,你应该相信你的感觉。

    (哎完了我怎么总是这种语气,,,,

  • 資深大佬 : IsaacYoung

    书到用时方恨少

  • 資深大佬 : ggbdpq

    老板用枪指着你去学,你就去学吧。
    新华字典那么多中文汉字,你可能就学会了几千个常用的。
    牛津词典那么多英文单词,你可能也就学了上万个。
    不然,你合理享受所剩时间的丰富安排吧。

  • 資深大佬 : love

    没必要,大致知道些原理就行,细节不是做这方面的就别去扣了浪费时间
    底层又!=高级,反而上层编程模式更考验经验和能力

  • 資深大佬 : night98

    没必要,否则按照这个逻辑学习编程应该先从电路学起,现阶段所谓研究底层除非你是在企业基础架构部门,否则没有任何必要,面试问这些只是内卷的体现,和金融业差不多。在我看来编程的艺术就在于封装,不可见的内部细节和可预期的输出构建成的软件世界是一种美好

  • 資深大佬 : RedBeanIce

    造轮子和 CRUD Boy 是两种人。也是两种思想。

  • 資深大佬 : Claar

    这就跟要不要继续读书进行学术研究一样,很多东西如果你不想去面对的话是不需要面对的,我认为学习底层的目标是自己能够实现。哪怕部分底层 bug 无法解决也不是个人问题,就像你一个敲代码的无法直接替代财务一样:各有分工,你只要能做到自己需要做的部分就够了,能胜任工作就可以了。现在人人都说要懂点底层知识主要是卷

  • 資深大佬 : ipwx

    如果想做这么多事情,谁都做不完。我这么多年的人生经验就是,动手前先规划,尽可能一件事达成两个以上的目标。很简单,小学就学过的统筹思想,华罗庚它老人家的,可是越大越难以身体力行啊。

    举个例子,你说又想写代码又想学经济学,为啥不做量化。。。无论是全职量化系统开发,或者业余(开源项目)的量化算法研究,你这相当于一件事达成了两个目标。。。

  • 資深大佬 : gouflv

    老师常说,学习为了自己。应试应该看作是学习的结果之一

  • 資深大佬 : l00t

    需要接触到什么层次主要取决于在哪一层干活,一般比干活的那层稍微往下一层就够用了。再深没必要。

  • 資深大佬 : waiaan

    当你要学的时候,你会知道的。

  • 資深大佬 : zw1one

    如果学这些知识对面试和当前工作无用的话,我确实是不会去学的,都是有必要才应试性的去学。
    本来每天上班做在电脑前,就开始肩痛腰痛脖子痛了。有这个时间,多锻炼身体,做做饭,和朋友出去走走,收拾一下自己找个女朋友,有女朋友的多陪陪女朋友,它不香么。

  • 主 資深大佬 : zzzzeno

    @hxndg
    @a62527776a
    @love
    @night98
    @Claar
    感谢!

  • 主 資深大佬 : zzzzeno

    @ipwx 「一件事达成两个目标」和做量化提供了很有意思的思路,感谢!

  • 主 資深大佬 : zzzzeno

    @zw1one 真实..想学的东西不少但周末可能还是陪女朋友玩去了…

  • 主 資深大佬 : zzzzeno

    @wzb0909
    感谢您的建议但是我想本帖并没有在讨论「初学」和「基础知识」

    不知道您说的「课本」和「初级书」是指什么样的书呢,国内大学的课本我能想到的就只有诸如谭浩强老师的著作以及各大学自研的由各种国内知名教授挂名实则是研究生写出的著作这样的书

    我想我并没有「随便是个人写的书就看」,这本 [Go 语言设计与实现]( https://draveness.me/golang/) 是 Draveness 大佬这两年最新完成的正准备出版的作品,比之前我看过的一些 Go 的经典书籍都更深入底层,我个人认为这本书是目前能找到的最好的 Golang 源码实现的中文著作

    抱歉没有冒犯您的意思我只是想为我看的这本书辩解一下哈哈

  • 資深大佬 : wzb0909

    @zzzzeno 呃。

    我(之前就简单)查了作者的资料(,听你说完又确认了一次)。他可能是个合格的软件工程师,但作为书籍作者,在我还是归入「是个人」这个分类。

    我(之前就认真)看了你链接的「书」。我并不是「大佬」,所以我不想去仔细评价这本「书」哪里不好。简单说,就是没有重点,堆砌内容,不知其所以然,自言自语心中完全没有读者。

    「课本」就是指《计算机程序的构造和解释》之类的书。
    「初级书」举一个例子比如 Stroustrup 的《 The C++ Programming Language 》。
    「高级书」,比如《 Java 编程思想》?

    名词引起误会很抱歉。

  • 主 資深大佬 : zzzzeno

    @wzb0909 明白了,感谢!

  • 資深大佬 : wzb0909

    @zzzzeno 啊哈,说到量化交易我多 bb 几句。量化交易只有高频交易对 IT 有要求,但是高频交易又和经济学非常无关。所以,之前的朋友的推理连不起来。。。。

  • 資深大佬 : tiedan

    其实也有些必要

  • 資深大佬 : hzz2

    有必要 只是大部分时候发现不了解这些也能做出来产品 然后就。。。。。。

  • 資深大佬 : agagega

    首先不考虑个人兴趣这类因素。考虑一下,你在家里需要知道热水器和电视机怎么修吗?不需要,因为出问题了找人就行。但这不代表你一点基本的安全知识都不用了解。

    计算机也是一样,你几乎不用太考虑 CPU 的 bug 这种问题,因为离你隔了太多层。但离你越近的层,对你而言抽象泄漏的概率就越大,如果一点知识体系都没有,出了问题会非常麻烦。举例子的话,就是 React 程序员一点 DOM 知识都没有,你想想也难受是不是…

  • 資深大佬 : asanelder

    总是浮在表面, 时间长了你不觉得无聊么?
    你不好奇原理么?
    你就不想知道是什么实现的?
    你就不想知道那些是不明觉厉还是明觉不厉?
    你就不想知道那些人是真厉害还是在装 B 造各种名词?

  • 資深大佬 : xjbeta

    之前研究了一下 libass 一到性能优化就捉急了
    然后看了这么一篇 dalao 的文章

  • 資深大佬 : xjbeta

    https://www.cnblogs.com/qcloud1001/p/10403034.html

  • 資深大佬 : learningman

    @night98 计算机科班本来就要学数字电路啊。。。然后汇编

  • 資深大佬 : rodrick

    1. 为了面试
    2. 为了装逼
    3. 为了在需要用到的场景不需要临时查资料
    4. 好奇

    适度看看就好,不要深究,不然真的学不过来

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具