前言
我在 最近很多人都在说 “前端已死”,讲讲我的看法 这篇文章中分析了前端开发者目前的现状:市场环境不佳、外部竞争激烈(例如像 ChatGPT 这样的 AI)、前端开发人员过剩、需求减少等多种因素影响下,前端开发者的处境不容乐观;
可以想象,当公司面临裁员选择时,前端因为相对远离“业务”,可能比后端更容易成为裁员的目标;同时,前端的护城河比较浅,从业 5 年后,基本遇到瓶颈期,国内公司做的项目 90%以上 是业务驱动型,不需要太复杂的技术深度,导致前端开发者很难形成自己的核心竞争力,沦为“搬砖”的角色;
而且前端在技术团队中还会遇到这些问题 摘自:
- 地位低
- 背锅侠
- 晋升难
- 可替代性强
- 局限性大
破局之路
传统前端追求突破一般会尝试这几个方向:
- 往大前端方向卷,跨端开发,pc、h5、小程序、移动端开发技术等。
- 往全栈方向卷,一般是学习 Node 做中间服务,或者转 Java 后端。
- 往前端分支技术方向卷,如可视化 webgl、web 办公类、工具类软件如 photoShop、编辑器、canvas 游戏、等方向,虽然这些技术含量高,但是市场需求较少,路会越走越窄。
- 前端架构师,搞搞项目架构,写写 npm 工具,自动化工具啥的,不过一般大公司才有这个岗位,而且前端貌似并不需要传统意义上的架构师。
- 没有目标,盲目奋斗,疯狂内卷型,学习各种框架、轮子、觉得会的越多越有优势,实际上解决的问题还是那些。
- 转项目管理岗,前端转管理没有后端有优势,主要体现在对“业务”的理解和把控上。
以上这些都无法保证你能度过中年危机,特别是互联网下行期间,所幸还有以下几种选择:
- 转实体行业、进国企、搞自媒体副业一条龙;
- 考公考编;
这几个方向还是挺好的,以实体行业为例,互联网寒冬时候实体行业表现相对还好些,而且稳定性和工作强度更有优势,可以实现 work-life blance
, 虽然薪资可能低一些,但是个人时间多了,可以尝试自媒体啥的,搞搞副业也挺好的。
说了这么多,其实上面的都是偏被动的方案,想象力空间有限,雷军有过一个著名的 飞猪理论,创业,就是要做一头站在风口上的猪,风口站对了,猪也可以飞起来;
那么下一个风口会是什么?我觉得有可能是 web3, 即便它还没证明自己对现实世界真的有不可替代的作用, 其引起的资本风浪已经足够大了,现在国内很多大厂也开始研究和部署 web3 相关的产品,而且 web3 貌似特别适合前端开发者。
web3 是什么
知乎有一个话题, 什么是 web3,有 224 个回答 150w 的浏览量,很多人提出了自己对 web3 的看法,值得一看;
web3 给我们的第一印象是数字货币、元宇宙、NFT,比特币、以太坊等,好像 web3 和 数字货币交易/合约 挂上了等号,其实这是一种误解;
数字货币和web3是两个不同的概念,它们之间有一些联系但也有一些区别。
用 table 展示如下:
特点 | 数字货币 | web3 | 相关部分 |
概念 | 一种数字资产,使用加密技术进行安全的交易和管理。 | 互联网的下一代版本,是去中心化互联网的一种实现方式。 | 数字货币可以在web3技术的基础上进行交易和管理,数字货币也可以成为web3生态系统中的一部分。 |
应用领域 | 交换、购买和出售商品或服务。 | 提供更安全、透明、可信和去中心化的互联网体验,重构互联网的基础设施和生态系统。 | 数字货币可以成为web3生态系统中的一种交换媒介,web3技术可以支持数字货币的管理和交易。 |
技术实现 | 包括加密技术、区块链技术等。 | 包括去中心化技术、区块链技术、加密技术等。 | 数字货币的安全性和匿名性需要依赖加密技术,而去中心化技术和区块链技术可以保障数字货币和web3生态系统的去中心化特性。 |
代表应用 | 比特币、以太坊、莱特币等。 | IPFS、Solidity、web3.js、ethers.js等。 | Solidity是一种用于智能合约编程的语言,可以用于数字货币和其他应用的开发。IPFS是一个去中心化的文件存储和传输协议,可以为web3应用提供数据存储和传输功能。 |
重要性 | 作为一种新型的数字资产,有望在未来成为主流货币之一。 | 作为互联网的下一代版本,有望对传统互联网产生深远影响,重构互联网的基础设施和生态系统。 | 数字货币和web3技术的发展都有望为全球经济和互联网带来革命性变革,推动未来的经济和社会发展。 |
web3 为什么对前端友好
JavaScript为主要编程语言:Web3的大部分库和工具都是基于JavaScript编写的,这使得前端开发人员可以直接使用自己熟悉的编程语言进行开发。通过使用 Web3.js 或 Ethers.js 等 JavaScript库,前端开发人员可以方便地实现与以太坊网络的交互,例如账户管理、交易签名、合约部署等。
开放的API:Web3 提供了一系列开放的 API,使得前端开发人员可以轻松地调用和使用以太坊网络的各种功能。这些API通常使用 RESTful 或 WebSocket协议进行通信,前端开发人员可以通过发送 HTTP 请求或 WebSocket消息与以太坊节点进行交互,从而实现数字货币和去中心化应用的开发。
易于集成:Web3 可以很容易地集成到前端应用中,例如使用 NPM 包管理器安装相关库,或在HTML文件中引入相关脚本文件。这使得前端开发人员可以直接在自己的应用中使用 Web3 的相关功能,从而实现数字货币和去中心化应用的开发。
基于浏览器插件:Web3 还可以通过浏览器插件来实现与以太坊网络的交互,例如 MetaMask。通过安装MetaMask 等浏览器插件,前端开发人员可以在浏览器中直接与以太坊网络进行交互,而不需要编写任何复杂的代码。
开源大佬 Chris Bongers 曾说,如果你要学 web3, 请先把 web2 学好,这里特指 JavaScript 等技术,以此看来 web3 开发是很适合前端工程师的。
特别是现在很多去中心化的产品和平台,如交易所都是在浏览器中使用的。
web3 开发需要学习哪些技术
区块链技术:Web3 开发的核心是区块链技术,开发者需要了解区块链的基本原理、共识机制、加密算法等基础知识。
智能合约开发:智能合约是在区块链上运行的程序,开发者需要了解智能合约的编写语言(如 Solidity)和开发工具,以及合约的部署和调用方法。
去中心化应用设计:Web3 应用需要具备去中心化的特点,开发者需要了解去中心化应用的设计原则、用户体验和开发流程等。
分布式存储技术:Web3 应用通常需要使用分布式存储技术来存储和管理数据,开发者需要了解常见的分布式存储方案,如 IPFS。
前端开发技术:Web3 应用的前端部分和传统的 Web 应用类似,开发者需要具备基本的前端开发技能,如 HTML、CSS 和 JavaScript,同时需要了解一些 Web3 前端框架和库,如 React、Vue.js、Web3.js 等。
安全性和隐私保护:Web3 应用需要具备更高的安全性和隐私保护能力,开发者需要了解如何进行合约审计、安全防范和数据加密等方面的知识。
总之,Web3 开发是一个比较新的领域,需要开发者具备多方面的知识和技能,需要不断地学习和探索,才能够开发出安全、高效、可靠的 Web3 应用。
学习资料有哪些
- 比特币白皮书
- 以太坊白皮书:以太坊是 Web3 中应用最广泛的区块链平台,学习以太坊的白皮书是了解区块链和智能合约的重要基础。
- 据说是中本聪的个人博客
- 廖雪峰的区块链技术教程
- github 入门学习仓库
- 北大肖臻的区块链课程
- Solidity 入门教程
- Solidity 官方文档:Solidity 是以太坊智能合约的编程语言,学习 Solidity 官方文档可以快速入门智能合约的编写和部署。
- Truffle 官方文档:Truffle 是一个常用的以太坊智能合约开发框架,学习 Truffle 官方文档可以了解如何使用 Truffle 编写和部署智能合约。
- Web3.js 官方文档:Web3.js 是以太坊 JavaScript API,学习 Web3.js 官方文档可以了解如何使用 JavaScript 与以太坊进行交互。
- Solidity by Example:这是一个 Solidity 智能合约的学习资源,提供了各种不同类型的智能合约示例,可以帮助初学者快速了解智能合约的编写方法和实现原理。
- CryptoZombies:这是一个以太坊智能合约编程的互动式教程,通过编写游戏来学习 Solidity 的基础知识。
- Ethereum Stack Exchange:这是一个以太坊社区问答网站,可以在这里查找和解决各种与以太坊和 Web3 相关的问题。
- Web3 Summit:这是一个 Web3 社区的年度会议,会议上会有许多 Web3 领域的专家和实践者分享他们的经验和见解。
- 区块链中文技术社区
- 以太坊中文开发者社区
总结
简单介绍了下 web3 的概念,咱也不知道 web3 未来前景到底如何,毕竟去中心化这个概念和中心化的社会现状还是冲突比较大的,未来市场表现如何我觉得肯定不在于技术本身,而在技术之外,不过从打工人的角度而言,还是很值得学习一下的,也许能发现和抓住一些机遇。