看完《js 不使用 promise 完成一个 sleep 函数》真诚发问,技术领域什么才是值得深入学习的?

20 天前
 superhot

原帖提了一个面试题,用来考察对 JS 异步控制的熟悉程度。

个人在学习 JS 时特意看了一遍 Promises/A+ 并尝试实现过,感觉这类东西跟算法等计算机基础课一样,平时工作中肯定用不到,99% 的概率不需要你手搓一个 Promise 或事件循环之类的东西,但仅读过文档说明,跟真的参考规范并尝试实现过,理解程度肯定是不一样的。

又或者以 Java 举例,仅了解 Java 语法和标准库,和深入探索过 JVM 的各种机制与细节,在线上排查 OOM 问题的时候,思考的层次和维度就会不同。

然而人生苦短,学海无涯,没人且没必要事无巨细地深入到这种程度,需要将有限的精力投入到更重要的地方去,所以才有此疑惑:

对一个软件工程师(而非研究人员或特定领域的技术专家)来说,技术领域什么才是值得深入学习的?

或者回过头来,仅以 Promise 为例,如果不去了解 Promises/A+ 等规范,想要加深对异步本质(是什么,解决了哪些问题、如何解决)的理解,应该去学习哪些方面的内容呢?

3641 次点击
所在节点    程序员
49 条回复
MonikaCeng
20 天前
我面试也遇到过让我手动实现 promise 功能
murmur
20 天前
深入只限于面试,一个企业能在轮子层面有创新的就那么几个,还得是大厂,一般的公司能把轮子用明白就不错了

轮子要的是稳定性和工程性不是创新,你的轮子转的比别人快 10%,但是 3 天就断轴,也没人敢用
yaodong0126
20 天前
那个人我已经 block 了,我说一个不同的,技术领域没有什么是值得深入学习的,所有的技术达到面试可过的程度即可,哪怕是死记硬背都可以,反正工作也不会用到,把其他时间多留给自己和家人,如果你是一个技术狂,那当我没说
Rickkkkkkk
20 天前
所以工作上遇到的实际困难/问题要把握住,是快速学习的好机会。
superhot
20 天前
@murmur
@yaodong0126

仅以通过面试为标准来学技术,感觉这种说法有点绝对了,工作中确实会遇到自己知识盲区而束手无策的情况,比如我之前遇到过 JVM OOM 的问题,当时对 JVM 一无所知,连 Heap Dump 都不懂,就觉得如果对 Java 的认识足够深入的话,遇到这种问题应该马上就会有思路,至少有方向才对。
craftsmanship
20 天前
@MonikaCeng 这种面试问题出发点是考察基本理解 本意是好的 但形式确实不理想
xtreme1
20 天前
arch compiler os
murmur
20 天前
@superhot 现在你问 AI 可以获得一个相对准确的思路
coefuqin
20 天前
所有的一切所谓的“技术深度“,无非是孔乙己研究的茴香豆的茴字有几种写法罢了。原帖提 js 的问题,那我问他 golang 的问题呢?问他机器学习的问题呢?他不会是不是就意味着他技术实力不行?
现在前端领域被 llm coder 挤压了,他在前端领域积累的这些技术领域的深度还有发挥空间吗?市场都快没了,会一百种复杂的茴字写法也没用的。
Dreamful
20 天前
@coefuqin 很难不认同
superhot
20 天前
@coefuqin 正是如此,所以才想知道,哪些是相比茴字写法更重要的东西,更值得深入,性价比更高
murmur
20 天前
@superhot 但事实上有些东西你不做一个大项目,甚至不踩坑经历过生产事故或者性能问题,相关的点是靠看书和背是学不会的
coefuqin
20 天前
@superhot #11 没有性价比更高的东西。真正最重要的是学习能力,不分横向和纵向。
横向,能不能快速的( 2~8 周)切换领域,比如从前端、移动端快速地切换到后端(各种七里八里的逻辑,姑且把底层开发也攘括进来),后端快速地切换到算法(传统 cs 算法(计算机程序设计艺术),机器学习)。
纵向,遇到你在工作的某个领域里的陌生问题,能不能快速的( 1~2 周)通过各种手段( llm deepresearch,搜索引擎,个人人脉(你认识某些领域的大腿),花钱去论坛或者群套路......)分析问题,找到解决方案。
你所说的深度都是领域纵向的一些 trick ,这种 trick 谁去死记硬背啊,某一次靠它搞定问题了,下一次遇到同样的(同类型的)问题,你只要知道有这么个 trick 并且曾经做过笔记,能快速找到即可。记的多不能代表什么。在真正有智慧的人眼里,只会显得更蠢。
这种抽象的共性学习能力,才是最重要的,但肯定不会是性价比的,因为它需要各种机遇(或许大部分人的过程并不相通,有人很早就得到,有人花了很长时间才得到(比如我))才能修炼得到。
sunwellselfheart
20 天前
我觉得系统的范式或者说结构是最重要的,系统内部各个组件是如何组织以及各个组件内部是如何运行。
acthtml
20 天前
前期宽度,后期深度。

前期什么都会点更容易左右逢源;但人的精力是有限的,你不聚集一个领域很难有更高的竞争力。
msg7086
20 天前
这事儿吧,本来就挺难的。你要是搞标准化考试,肯定有人跳出来说深究这些东西鸟用没有。但是你不考这些,你考啥?
就和简历筛选一样,一千份简历放在你面前,第一步你先把硕博的跳出来,别的直接丢进废纸篓里,硕博的面完不理想的再回去捡几份出来。面试也是,假如现在 20 个人等着让你面试,你问他们什么东西能帮助你选出你要的人?

所以现在大企业招人就是标准化流程,起手白板 coding ,然后面一圈系统设计,最后留点时间问 behavior question 。你说这样就能招到合适的人了吗?未必,但至少大差不差,现实里能用。

反正就我现在这几年在我们团队里的感觉,开会占 50%,写文档审文档审 PR 占 40%,写代码占 10%并且现在都鼓励用 AI 写了,有时候一个月下来写代码不超过 1 小时。你天天刷 LC 的成果,其实也就是送你上岗位的敲门砖而已。
yanulg
20 天前
手写过 promise 确实对这块理解会更深入一些,那个我也是看标题就想到 thenable 了,但是就算没了解过也不会怎么影响工作的,除非你做的很底层,但是 99%的程序员都是做的很普通的工作,有时候你想到一个多一个解法会让自己开心一下,但是用笨方法实现依然是完成了工作
icyalala
20 天前
最珍贵的是学习能力、好奇心、精力。
问这些不是说工作中一定会用到,而是看你这个人还有没有动力和好奇心愿意去探索。
你要是说技术够面试就行了工作都用不到,那就是说甘愿作为螺丝来用,够用的话那也不差。
jybox
20 天前
我觉得很多面试者和面试官有个误区:这类问题不应该以是否能够快速、正确地回答上来作为评价标准。如果很快就一次性写出,只能说明之前准备过,起不到太多考察的作用。更重要的其实是回答的过程,以日常使用的特性/接口去推测其实现,可以考察相关的知识储备和解决问题的思路。
iOCZS
20 天前
跟肌肉是一个道理,用进废退

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140614

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX