跳到主要内容

谈谈个人对新技术的看法

· 11 分钟阅读
愧怍

目前技术圈的发展速度可谓是有共目睹,尤其是前端,每隔一段时间就出新的技术,可以说让很多初学者非常畏惧,没有一个明确的方向不知道从何学起。

同时也有很多人,只局限于使用手头已掌握的技术,而不去尝试新技术。举个例子,如今 vue3 都已经,但仍然还停留在 vue2 不愿尝试 vue3。java 都 18 了,很多人都还使用 java 8,这种现象可以说是非常常见了。

这里说说我个人编码经验与看法,仅作为个人观点,没别的意思。

熟悉我的人应该都知道,我对很多新鲜的技术有一种难以用言语表达的情感,又哭又笑。属于是那种看到感兴趣的就会开始尝试,在之前也许更强烈。

驱使我去接触的原因无非就以下几点:

  • 开发体验、性能提升
  • 对已有技术的厌倦感和对新鲜事物的好奇心
  • 更多机会与方向

写不完的代码

首先要知道一点,在任何的软件开发迭代中都没有最终形态的代码。说白话就是代码都是不断更新的,永远写不出最好的代码。

你能看到如今很多开源项目或者商业项目都在不断新增代码或者功能,除非作者不维护了,不然这份代码可以说写到世界末日。

究其原因还是因为社会不断在发展,硬件升级,性能提升,不断的业务需求。毕竟人都在进步,社会难道还不能进步。所以必然会有新的技术出现,只是出现的时间快慢,与技术难点突破。

开发体验、性能提升

毋庸置疑,在购买方面,肯定是买新不买旧,同样的在技术(软件更新)方面也是则从用新不用旧。驱使软件和框架更新的原因也就是新增了某些功能(特性),对用户(开发者)的体验有所提升。一般而言比较少的会存在反向更新的操作,这里除了某些国产软件(如某信,某 Q 等等)

就我对此的看法也是如此,假设一个开发工具启动花费了 5s 钟启动,而在它的最新版只需要 1s 钟就能够启动,你会选择更新尝试吗?。再比如一个框架原先的代码需要 10 行代码才能实现的功能,由于新版本提供一个语言级别的语法糖,使该功能只需一行。

要我肯定毫不犹豫的更新去使用,但有些人可能对此提升不是很在意,又可能是因为这个开发工具(框架)他用的比较少,更新的意义自然就不大。

这里又要开始谈论起舒适圈。

总是活在舒适圈

在圈内有着熟悉的环境,与认识的人相处,做自己会做的事,所以会感到很轻松、很自在。但是当踏出这个圈子的界限的时候,就马上会面对不熟悉的变化与挑战,因而感到不舒适,很自然的想要退回到舒适圈内。

我在阅读英文博客的时候,我也时常感到不舒适,阅读不下去。我也很想回到舒适圈,使用翻译软件来翻译但是这样就会导致我非常依赖翻译软件,就间接失去了一次英文环境与英语能力的提升。

长时间待在舒适圈,会让自己过得很舒服,但是却很难提升自己。不过想想也是,提升的过程不就是苦尽甘来

更多的机会与方向

技术更新迭代越来,也带来越多的机会,这对于接触前端的我感到尤为明显。假设当下又出了某某技术,那么必然会引起软件开发者的关注,于此同时就带来了维护者,贡献者,甚至是一些金主投资商。像 Tailwind CSSVercel 就是一个很好的例子,两个前端明星项目,有兴趣可以了解它们的故事。

没有目标的学习,等同于乱学

没有一个明确的目标,学任何(新)技术都是乱学,充其量也就只比不学好一点。

这在我初学阶段尤为明显,我一开始也不清楚我以后会从事什么行业,可以说是什么都乱学一顿。在我的一篇年终总结 2019.7-2020.7 编程年记 中可以说是尤为明显,尤其是在 定一下明年的目标 的段落中,我真正深入学习的也就是只有 Web 开发。

我相信很多初学者也会遇到类似的问题,不知道学什么,想学好找工作的但是薪资不高,想学感兴趣的但又不知如何下手。说实话,要我回到当初,我也难以抉择。也有可能处于摆烂状态或是乱学一同,到头来啥都会一点点,但是又好像啥也不会的样子。

这里我是奉劝先定一个短期的目标,为了这个目标我要去学习哪些技术知识。这里就说我未来一年的目标为例:我未来一年想写开源项目,为开源社区做一份微薄贡献,乃至从事开源行业。那么我就需要了解写开源我需要那些预备知识,例如 Github 的使用,项目规范,英文交流等对应开源项目的技能知识,这次才是我所该学的,并且能够实实在在用到的。

对代码厌倦和对新事物的好奇心

我写代码时常处于三分钟热度的状态,有些东西可能也就一开始的时候感觉比较新奇,然后就不了了之了。我对此的看法主要还是容易对代码产生厌倦感,不想写代码,不愿意学习。当厌倦感产生了,自然而然就放弃编写,也就是三分钟热度的状态。不过也能侧重体验一点,那就是肯定我对此不是那么感兴趣,既然不是那么感兴趣的东西,又何必在写下去呢?

接着过段时间又遇到了一个新的技术,冲击了我的好奇心,开始尝试。 如此重复,就会发现啥都学了一点,但实际是啥都没学到。但至少,让我肯去学习,而不是在原地踏步。而从心底里就想接触的新鲜事物,每次接触到就能满足自己内心的好奇心,就这一点我便知足了。

重构的艺术

如果回头看看自己 1,2 年前写的代码,会发现原来自己也曾写过丑陋不堪的代码,也成为过自己所讨厌的样子。如果这份代码我将来还会用到,那么我就尝试去重构,也许在当时还不支持某种特性,代码就无法简化。基于现有的水平,便会发现很多代码都有可改善的地方,可以化繁为简。代码重构属于将杂乱摆放的东西,收拾的整整齐齐的样子。重构是在提升观赏度和舒适度的同时,还减少 bug 的诱发概率。

在编程语言级别水平上,也就是我为什么会想去使用最新的版本(ES2022,TypeScript 4.9),即便是兼容性的问题,我也会去使用,就是因为能够满足我对代码的舒适度,这便足以。

生态与解决问题方面

我是很感谢新技术的出现,他实实在在的解决了一些我已有的痛点,提升了我的开发体验。当然它也让我踩了无数的坑,也折磨过我。但不可否认的是,我的自我解决问题的能力也在不断提升,如果我学的是一门比较流行的技术,那么我所遇到的问题,很有可能别人也遇到过,并将他的解决方案分享出来。而我就很容易根据报错描述找他的解决方案来解决我的问题。但在新技术下,用的人自然而然就少了,所分享的问题解决方案也就少了,所以在这种环境下,我就需要自行翻看源码,查阅文档,提出 issues 才能够解决问题。自然而然解决问题的能力也就有所提升。

像流行框架能有这么有问题解决方案,就是因为强大的生态,同时这也是生态好处之一。

因此也有很多人顾忌使用新技术,就是因为遇到问题不知如何解决。包括我也是,但通常我会观察一段时间,等成熟了我才去尝试,而不是直接上手,避免踩一些不必要且耗时的坑。

我是如何了解到这些技术的?

也许有些人并不在意新技术是否学习,而是好奇我是如何知道这些技术的。这个问题非常好,我自己简单总结通过那些途径来获取到这些相关技术的新闻。

主要有以下几种来源:

  • 多加技术群,不定时看群聊
  • 多刷技术大佬文章(推特),或者是技术公众号和掘金(最多的也是最有效的)
  • 订阅一些技术周刊,或订阅某个项目

没啥技巧,就靠刷技术文章,自然而然的了解也就越来越多了。

尤其是第二点,也是我了解这些新技术的最直接途径。与其自己去主动了解新的技术,将刷抖音的时间改成刷技术文章,了解新技术就是分分钟的事情。可以说我写博客是因为这个契机,记录自己用到的技术的开发过程,并分享个人的开发体验,让更多人了解到这些新技术。

最后感悟

不必抱怨新技术发展的过快,自己来不及学,学不完。或者担心自己学的东西在未来将会淘汰,等同于白学。更多时候,不应该只学如何使用,而是该想想这东西是在什么样的契机下如何被创造出来的,解决了什么问题。而这个问题在未来有没有什么更好的解决方案可替代,如果有更好的解决方案,那么必将又将发展出新的技术来更好的解决这个问题。大部分新技术也是在这样的环境下出现的。

必须要承认的一个事实,如今技术发展过于迅猛,加上目前就业行情不容乐观,当别人了解过的东西,你却不了解,那么别人所能遇到的机会自然就比你多。说的难听点也就是没有对技术提升的想法,今后项目迭代的过程中使用到一些前沿技术就难以胜任。

所以在回到个人对新技术的态度,我是希望越来越多的新技术出现,无论它是为了解决什么,必然能解决某些人的一些需求,那么它的出现就很有意义。至于未来该技术和相关生态发展如何,不得而知。也没人敢笃定未来这个技术必定会火,就去学这门技术。大多情况下都是比较看好这门技术,认为未来可期,同时又感兴趣,就开始学习并使用。