We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本篇文章是 B 站视频《只想做开源项目、技术项目,不想做业务,有办法吗? 》的文字版,欢迎大家直接去 B 站观看视频,体验更佳。B 站搜索「前端技术砖家」,关注不迷路。
连续两期视频都有朋友问类似问题:“我只对开源项目、技术项目感兴趣,不想做业务,怎么办?”。
这种工作可能是所有人梦寐以求的,又能提升自己前端技术,又能提升社区知名度,还不用被业务左右。这么好的工作怎么找?今天我们来分析分析~
首先我们从公司角度看看,为什么公司需要做技术项目?
我们需要先明确一点,公司是逐利的,不管是做技术项目,还是做业务,一定是要给公司带来价值的。业务的价值就不必说了,那技术项目能给公司带来什么价值?
举个知名开源库 ant design 的例子吧~
公司有几千个中后台应用,antd design 组件库的诞生,统一了此类应用的设计风格,同时极大提升了开发效率,对公司来讲,节省了极大的人力成本,这就是技术项目给公司带来的实打实的价值。
技术项目的价值一般是要这么计算的:覆盖了 xx 项目,提升了 xx% 效率,为公司节省了 xx 人力。
你不会以为做 ant design,最终汇报的时候,就是说自己做了 xx 个组件吧~
你不会以为做 ahooks,最终汇报的时候,就是说自己做了 xx 个 Hooks 吧~
所以公司为什么要做技术项目?那就是技术项目能给公司节省成本,带来价值。
答案很简单,因为开源能给公司带来价值。那价值是什么?
还是举 ant design 的例子,公司把 ant design 开源之后,收益至少有两部分
借社区无穷的力量,打磨 ant design 组件库,把它里面隐藏的 bug 都捉出来
吸引人才。君不见多少优秀的前端是被 ant design 吸引进去的?
举几个我熟悉的开源项目,让大家看看技术项目都是怎么诞生的吧。
最开始我负责了 N 个中后台项目,整天就是 CRUD,表格表单一把梭。
随着 React Hooks 的诞生,我开始在项目中引入 Hooks,我发现表格的逻辑、网络请求的逻辑都是类似的,可以封装起来,然后就封装了几个原始的 Hooks,在我的 N 个项目中复用。
后来我在组内组外分享了一下,发现大家都有同类诉求,还是很乐意尝试用用我封装的东西的。
再然后我就开始基于我的业务经验,封装了更多好用的 Hooks,一步一步走到了今天。
再来讲讲著名微前端框架 qiankun 的诞生故事吧。
大概就是 qiankun 作者负责了一个比较特殊的项目,需要把几十个前端项目组合到一起,类似阿里云那样。这几十个项目都使用不同的域名,切换之后域名变来变去,浏览器还会刷新白屏,用户体验贼差。
为了解决这个问题,大佬怒而创造了一套微前端架构,解决前端项目组合问题。解决了自己的问题之后,他把通用能力抽取出来,就成为了我们看到的 qiankun~
从以上两个技术项目中,大家发现了什么共同点?那就是技术项目都是从业务中诞生出来的!
如果没有深入做过几年业务,都不知道业务的痛点在什么地方,怎么造轮子?万地高楼平地起,空中楼阁不可取。
很多朋友向我抱怨业务太多,整天 CRUD 没意思,其实你们在守着金矿,试着挖掘一下!
细想一下,如果现在你来负责 ahooks,你会加入哪些新的功能?如果你没做业务,你都没有输入来源。
另外我还要打击你的一点就是,公司内大部分有开源项目的同学,仍然有 60% 以上时间是做业务的,基本上很少很少有人全职做技术项目的(至少我没见过)。
基于以上内容,我的建议是:多做业务,多做业务,多做业务!业务做的多,痛点自然有了,那技术项目自然而然就来了。
不做业务,只造轮子,先问问自己做什么轮子?做出来给谁用?
当然啦,还是有一类岗位是比较适合这个朋友诉求的,那就是前端基建团队,比如 Web IDE、Serverless、前端流程管控平台、低代码等。这种项目不同于我们常见的业务,它们的目标用户是前端开发人员。
这类项目的一般都是前端开发一把梭,深度使用 Node.js,可以极大提升前端技能。
但这类项目做起来其实很难,可能做了好多年,发现投入产出比极低,没有给公司带来价值。
最终我还是建议先深入做几年业务,发现业务痛点,去解决它,技术项目、开源项目自然而然就来了!
The text was updated successfully, but these errors were encountered:
No branches or pull requests
连续两期视频都有朋友问类似问题:“我只对开源项目、技术项目感兴趣,不想做业务,怎么办?”。
这种工作可能是所有人梦寐以求的,又能提升自己前端技术,又能提升社区知名度,还不用被业务左右。这么好的工作怎么找?今天我们来分析分析~
为什么公司需要做技术项目
首先我们从公司角度看看,为什么公司需要做技术项目?
我们需要先明确一点,公司是逐利的,不管是做技术项目,还是做业务,一定是要给公司带来价值的。业务的价值就不必说了,那技术项目能给公司带来什么价值?
举个知名开源库 ant design 的例子吧~
公司有几千个中后台应用,antd design 组件库的诞生,统一了此类应用的设计风格,同时极大提升了开发效率,对公司来讲,节省了极大的人力成本,这就是技术项目给公司带来的实打实的价值。
技术项目的价值一般是要这么计算的:覆盖了 xx 项目,提升了 xx% 效率,为公司节省了 xx 人力。
你不会以为做 ant design,最终汇报的时候,就是说自己做了 xx 个组件吧~
你不会以为做 ahooks,最终汇报的时候,就是说自己做了 xx 个 Hooks 吧~
所以公司为什么要做技术项目?那就是技术项目能给公司节省成本,带来价值。
为什么公司要把技术项目开源
答案很简单,因为开源能给公司带来价值。那价值是什么?
还是举 ant design 的例子,公司把 ant design 开源之后,收益至少有两部分
借社区无穷的力量,打磨 ant design 组件库,把它里面隐藏的 bug 都捉出来
吸引人才。君不见多少优秀的前端是被 ant design 吸引进去的?
技术项目是怎么诞生的
举几个我熟悉的开源项目,让大家看看技术项目都是怎么诞生的吧。
ahooks
最开始我负责了 N 个中后台项目,整天就是 CRUD,表格表单一把梭。
随着 React Hooks 的诞生,我开始在项目中引入 Hooks,我发现表格的逻辑、网络请求的逻辑都是类似的,可以封装起来,然后就封装了几个原始的 Hooks,在我的 N 个项目中复用。
后来我在组内组外分享了一下,发现大家都有同类诉求,还是很乐意尝试用用我封装的东西的。
再然后我就开始基于我的业务经验,封装了更多好用的 Hooks,一步一步走到了今天。
qiankun
再来讲讲著名微前端框架 qiankun 的诞生故事吧。
大概就是 qiankun 作者负责了一个比较特殊的项目,需要把几十个前端项目组合到一起,类似阿里云那样。这几十个项目都使用不同的域名,切换之后域名变来变去,浏览器还会刷新白屏,用户体验贼差。
为了解决这个问题,大佬怒而创造了一套微前端架构,解决前端项目组合问题。解决了自己的问题之后,他把通用能力抽取出来,就成为了我们看到的 qiankun~
从以上两个技术项目中,大家发现了什么共同点?那就是技术项目都是从业务中诞生出来的!
如果没有深入做过几年业务,都不知道业务的痛点在什么地方,怎么造轮子?万地高楼平地起,空中楼阁不可取。
很多朋友向我抱怨业务太多,整天 CRUD 没意思,其实你们在守着金矿,试着挖掘一下!
细想一下,如果现在你来负责 ahooks,你会加入哪些新的功能?如果你没做业务,你都没有输入来源。
另外我还要打击你的一点就是,公司内大部分有开源项目的同学,仍然有 60% 以上时间是做业务的,基本上很少很少有人全职做技术项目的(至少我没见过)。
建议
基于以上内容,我的建议是:多做业务,多做业务,多做业务!业务做的多,痛点自然有了,那技术项目自然而然就来了。
不做业务,只造轮子,先问问自己做什么轮子?做出来给谁用?
番外
当然啦,还是有一类岗位是比较适合这个朋友诉求的,那就是前端基建团队,比如 Web IDE、Serverless、前端流程管控平台、低代码等。这种项目不同于我们常见的业务,它们的目标用户是前端开发人员。
这类项目的一般都是前端开发一把梭,深度使用 Node.js,可以极大提升前端技能。
但这类项目做起来其实很难,可能做了好多年,发现投入产出比极低,没有给公司带来价值。
最终我还是建议先深入做几年业务,发现业务痛点,去解决它,技术项目、开源项目自然而然就来了!
The text was updated successfully, but these errors were encountered: