技术是什么?

📅 2021.05.04

一条朋友圈评论所引发的一系列思考

背景

我发了朋友圈:做了个奇怪的梦,梦见被离职了,理由竟然是:你技术太菜了
我补充评论:我还没想明白怎么回事,就醒了。有点遗憾的是:想再努力反驳两句,结果没机会了…
很多人评论:梦是反的
我的回复:那就是到技术的瓶颈期了
YaoL.in评论:这衍生出一个很好的问题:「你如何证明技术不菜?」
我的回复:个人感觉还是影响力,即使你的技术很厉害,没人知道,或者别人也不会去使用你的技术,似乎一切为零(为零仅代表这个技术所产生的影响力,不代表技术本身的价值)


我对技术的理解

技术本身并没有价值,衡量一个技术的标准,应该是这门技术所产生的影响力。

我之前也一直认为只需要专心做好技术就可以了,是金子总会发光的,这句话没有任何问题,但是缺少了一个很重要的前提,何时才会发光? 人的生命是有限的,我认为能够更快的将自己曝光,用自己的技术或文章去影响到一些人,还是很有“必要的”(自己体会,这里可以代表着名,利,精神上,物质上等)。

我参与 GitHub 开源及写文章博客也很久了(惭愧,文章博客输出有点少),慢慢发现,很多好的技术,文章,项目都属于被埋没状态。一直被埋没,就不会产生价值,这就会造成一个很大的问题,技术自身有价值,但却不能用来解决问题,该如何去衡量这个技术?

自己封神,不如别人对你称神

帮别人解决问题,来体现自己的价值

回答别人提出的问题,也是对自身技术的 reviewreview 的次数多了,这些技术点就会刻在骨子里。当一个问题讨论的深入时,往往引发的是一系列的知识点。由点成面,再成网(单纯靠回答问题,很难构建出知识网,但是可以作为一个切入点)。

当我学习技术累的时候,就喜欢在技术群里看别人提问题,能回答的就回答,不能回答的时候就看别人如何回答。

闷头搞技术,提升的只是一个人的能力,分享,提升的是一群人。有些人可能会觉得技术如果拿来分享,别人比自己强了,怎么办,那岂不是越来越卷了? 不知道别人有没有这么想,反正我以前有过这种想法,但是随着自己做开源,写文章,回答别人的问题,不但没有这种想法了,反而想把更多的技术拿来分享,进行探讨。

原因有以下几点:

  • 表达能力:能够把自己掌握的技术,抽象表达出来,这个很难。要达到这个目标,让什么都不懂的人听懂你在说什么,就需要做到知识深入浅出。
  • Review & Share:每次分享,都是对技术的一次 “review”,会产生新的理解或者引申出新的知识点。用分享的方式去学习(共赢)。
  • 技术探讨:可遇不可求,分享技术,如果遇到知己,也是莫大的幸运。
  • 成就感:这属于学习的一个正反馈,奖赏机制在学习技术方面,我觉得还是很有必要的,因为学习本身就比较枯燥,能找到一个坚持下去的理由,不容易。举个例子,我个人就拿 每天一个 github 小绿点(github commit 记录),让自己持续学习与输出 作为目标。
  • 无形监督:这个其实是为了防止自欺欺人,以为自己不分享别人就不会学习了...,有压力才会有动力,因为当自己再无可分享的东西时,则证明自己已经没有了知识的输出,需要进行自我反思。

在各大技术群里呆的久了,发现群友们提出的问题虽千奇百怪,但整理下来其实也就几大类:

  • 想吃现成的:遇到问题不管三七二十一,先丢群里,等待别人的回答,如果有人回答,能吃到嘴也算“不亏”;运气不好的,直接让群变得安静起来(群静音神器);还有就是群友们会围绕这个问题开始风马牛不相及的吹水。等不到问题的解决方案,则白白浪费了时间。
  • 不会提问的:这种人似乎还不占少数,比想吃现成的能稍微“好点”吧,因为不光浪费自己的时间,还浪费了看问题回答问题人的时间,有效地防止了内卷。不会提问通常表现为问题没有上下文,只有一个报错信息,问怎么解决,在线急等。如果有人解决过类似问题还好说,没有解决过这类问题的则表示一脸懵逼,连个插话的机会都不给(抠门,惜字如金,只发问题不发产生背景及预期)。
  • 会提问的:这种人一般都是思路清晰的,也做过了大量的技术方案尝试,能够言简意赅的说明目前困境,希望能够得到什么样的帮助,目的性很强(褒义词,知道自己想要什么总比什么不知道要好)。
  • 进行探讨的:强烈推荐的方式,要讨论,就避免不了问题的梳理,在梳理问题的过程中,可能会发现自己漏掉的一些细节。小黄鸭调试法 值得拥有,有些问题解决不了,很可能也是因为自己钻了牛角尖,讨论也可以让自己快速走出思维误区。

学会提问

遇到问题,不要慌,常见的百分之八九十问题,网上都是有解决方案的。当搜索引擎都不能帮助你解决这个问题的时候,证明你遇到的问题“有点东西”了,这是好事情。需要去一些专业的技术提问社区去转转了,比如 Stack Overflow,或者 GitHub Issues(主要针对开源项目),还有就是此技术相关的社区,论坛,SlackDiscord等。

一个好的问题模板,例如 vite ISSUE_TEMPLATE/bug_report 一般包含以下几个要素:

  • 问题描述:简短的表述清楚问题,切记啰嗦。
  • 环境信息:问题发生的环境(系统信息,软件版本,浏览器版本等)。
  • 如何复现:提供问题复现步骤1,2,3,可以配合适当的错误截图及说明。
  • 预期结果:希望达到什么样的结果。

解决问题,根据我多年来的实践总结,一般分为以下几步:

  1. 抽象: 用技术关键词去描述问题
  2. 搜索:根据关键词去搜索问题
  3. 延伸搜索:围绕关键词,扩大搜索范围,查看一些相关链接

🎉 Google高级搜索的10个技巧
1)准确搜索(Exact phrase)
2)排除关键词( Exclude terms)
3)用 OR (或)逻辑进行搜索(Either OR)
4)同义词搜索 ~(Synonym search)
5)站内搜索(Search within a site)
6)善用 * 星号(The power of the asterisk)
7)在两个数值之间进行搜索(Searching between two values)
8)在网页标题, 链接和主体中搜索关键词(Search for word in the body, title or URL of a page)
9)搜索相关网站(Search for related sites)
10)搜索技能的组合使用(Combine them)

总结

所以再次回到文章的标题,技术是什么?,技术就是问题的解决方案,与编程语言无关,与人无关,当遇到的问题无法解决时,能够把这个问题解决掉的东西,我认为这就是技术。技术本身并不高大上,概括成一个流程就是:遇到问题 -> 分析问题 -> 抽象描述 -> 提供步骤 -> 解决问题。当问题被解决后,技术本身也就产生了价值。能解决问题越多的技术,其影响力也就越大,提供此问题解决方案的人也就越厉害(此结论只是站在一个角度的个人观点,请勿过度解读)。所以要证明自己不菜,就要不断地去解决问题,帮助的人和解决的问题越多,你就是别人眼中的“神”,而不是自封为神。自己时刻要保持着对知识的敬畏之心