[前端]年轻人第一次计划辞职,虽然工作了两年感觉自己毫无竞争力怎么办

2021-07-20 12:08:31 +08:00
 hisa
垃圾三本毕业,培训班出身,19 年培训完在北京用三年假简历得到了现在的工作。

第一年公司算上我只有两个前端,疯狂加班,基本是坐着地铁末班车回家,通宵了几次。第二年又招了两个前端,我也终于闲了下来。刚入职时到手 11k,第一年结束被评了个优秀员工,现在到手 12k 。

公司有两套技术栈,一套是 react,一套是 jq+bootstrap+echarts (老项目)。我前半年还在写 react,后面一年半就被安排负责老项目了。每天写的东西都是毫无营养,稍微有点难度的东西,也都是上网找了找插件框架之类的解决的,对比两年前的自己甚至可以说退步了。

前阵子上海的几个同学来北京玩了几天,交流了一下,都在劝我辞职换个工作。我也想换工作,但是我觉得自己毫无竞争力,本来就是底层纯搬砖的,每天做的都是页面元素的 curd,到时候面试问起来我说写了一年半的 jq,感觉会被笑死。

每天晚上睡前都有点焦虑,想接下来两个月赶紧学些东西,又不知道从何学起。所以想来问问大佬,我该怎么提升一下自己,如果要辞职该怎么准备。
7174 次点击
所在节点    职场话题
63 条回复
MorningStar0
2021-07-20 14:02:36 +08:00
@A388 对于大项目,我理解的话一般来说就是业务逻辑基本全部在前端交互上,比如 ps online 和其他的一些低代码平台
Yc1992
2021-07-20 14:03:21 +08:00
@hisa 总的来说就是不要沉溺于舒适区,不论是刷题,学习新技术,还是旧代码重构之类的。如果自身驱动力不足,就依赖外部压力,换一份压力更大的工作,当然不能是重复的无意义加班,最好是技术上的挑战,团队必须有大牛并且愿意带自己,自己体会吧
q673115816
2021-07-20 14:05:20 +08:00
跟我情况差不多,我更是写了三年 JQ
3dwelcome
2021-07-20 14:11:16 +08:00
@MorningStar0 "业务逻辑基本全部在前端交互上"

前端代码写太多逻辑,并不是好事。自从 5 年前有了 WASM 后,现在除了前端和后端,还有中间端粘合层的 WASM 。

特点就是能集合所有语言的大成,JS 没有完善的单元测试,有些代码 BUG 只有运行期才蹦出来,不好查错。而 WASM 可以化身任何成熟的语言,比如用 Java 写前端。粘合层是很强大的,同一套代码,前端后端都能用。
Desiree
2021-07-20 15:04:02 +08:00
多去面试才能知道自己的不足,既然对编程没有天生的爱好,那就面向工资编程嘛。这也比忙头苍蝇学习好
A388
2021-07-20 16:01:28 +08:00
@MorningStar0 好像懂了那么一点点。
A388
2021-07-20 16:01:42 +08:00
@3dwelcome 谢啦
NotreDame
2021-07-20 16:17:34 +08:00
@WasteNya 老哥,你说的挺在理的,不知道为啥这还有人杠。
baojie223
2021-07-20 17:00:23 +08:00
@3dwelcome 好奇问一下,你们公司现在有项目在用 wasm 了吗
3dwelcome
2021-07-20 17:05:42 +08:00
@baojie223 有啊,当成 side 库,可以用为啥不用。

别的语言有不少代码积累,转译一下就可以了,特别适合零依赖少的小型算法。

现在的浏览器,包括 webview 都支持 WASM 的。小程序不支持,可以把 WASM 退化为 asm.js ,那样也支持了。
ccsulzf0627
2021-07-20 17:35:51 +08:00
我工作 5 年也是
MorningStar0
2021-07-20 17:41:27 +08:00
@3dwelcome
2021 年的今天,wasm 依旧没办法直接操作 dom (请不要说通过调用某个 js 提供的库进行操作),且 wasm 基本是用于解决 CPU 密集的并行任务的(比如音视频解码),我所说的交互逻辑指的是:对 UI 界面有大量的交互操作,产生的状态需要实时展示,状态的数量级在 4 位数左右,上述产生的状态不需要关系存储,频繁的读写操作发生在客户端的内存或缓存中。

综上所述,wasm 目前( 2021 年)并没有提供对前端强交互场景的强力支持,只是对一些垂直领域,例如:音视频的简单编码,加密文档生成提供了一些支持。你提出 wasm 并不能很好的支持你的论点

且上述 wasm 提供的特性,对转译成 wasm 的程序的原始代码有一定要求:
1 、 并发计算。wasm 目前没有提供 webwork 的调用
2 、 系统 API 支持,例如 linux 的 fork

再讨论 wasm+三方库可操作 dom 的方案。这一方案中,由于 wasm 的运行,目前仍然依赖 JS 胶水脚本,对 wasm 暴露的 event 进行调用。所以,如果在非 CPU 密集场景下,使用 wasm 甚至会带来系统性能的降低。
nutcloud
2021-07-20 17:43:49 +08:00
可以投递坚果云前端岗位试试哦,joinus@nutstore.net ,我们刚好在 V2EX 上发了招聘贴 https://www.v2ex.com/t/790648#reply7
3dwelcome
2021-07-20 17:50:39 +08:00
@MorningStar0 我总觉得你对 wasm 有误解,wasm 又不是为了浏览器而生,而是为了让浏览器成为它众多运行平台之一。

本质上目标是用 IR,把所有语言通过堆栈虚拟机的方式,彻底打通,能相互调用。

你说 wasm 不能操作 DOM, 我贴一段 wasm 编译器的 example 代码,你如果觉得这都不算是操作 DOM,那我也无话可说。

MorningStar0
2021-07-20 17:56:39 +08:00
@3dwelcome 如果你说的操作 dom 是编译之后,通过 js 操作 webapi,也算是直接操作 dom 的话那就是吧。。。。

一段 mdn 原文:
Emscripten first feeds the C/C++ into clang+LLVM — a mature open-source C/C++ compiler toolchain, shipped as part of XCode on OSX for example.
Emscripten transforms the compiled result of clang+LLVM into a .wasm binary.
By itself, WebAssembly cannot currently directly access the DOM; it can only call JavaScript, passing in integer and floating point primitive data types. Thus, to access any Web API, WebAssembly needs to call out to JavaScript, which then makes the Web API call. Emscripten therefore creates the HTML and JavaScript glue code needed to achieve this.

其链接: https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts
MorningStar0
2021-07-20 17:58:30 +08:00
@3dwelcome 并且,我举出例子,尝试定义了下什么是大型前端项目。目前还是没看懂 wasm 对这个“大型前端项目”的定义有任何的补充
Lemeng
2021-07-20 17:59:18 +08:00
有经验,不太弱,一般也能找到的,别有太多心理负担
3dwelcome
2021-07-20 18:08:58 +08:00
第一,我贴的代码并不是 Emscripten 的,所以这段 mozilla 引用没太大价值。(虽然 Emscripten 也有提供类似 DOM 胶水库)

第二,WASM 传值都是浏览器兼容的 Raw 指针,一大堆状态可以批量传递,对运行速度不会有太大损失。举个例子,C++ COM 的每一次调用,都是通过 vtable 中转的,也没人说慢。那么 WASM 操作 DOM 中转一次也是很正常的。设计成 DLL/SO 一样,用之前导入 /导出函数,都和主程序进行动态地址绑定,这才是最合理的模块分离技术。

如果有人觉得 WASM 运行太慢,那只能说代码接口设计有问题。
MorningStar0
2021-07-20 18:43:01 +08:00
@3dwelcome
1 、所以,我始终说的都是 wasm 无法 "直接"(引号表强调) 操作 dom 有什么问题么?
2 、说慢是和直接用 js 操作都没进行比较的。或者说 wasm 解析 arraybuffer 的过程甚至会比 webapi 操作 dom 快?
3 、“导入 /导出函数,都和主程序进行动态地址绑定”,一个客观事实是,就目前生态而言,对 wasm 相关的 debug 工具链仍不完整。另一个主观疑问是,“最合理的模块分离技术”是指的,换个操作系统平台运行的时候,各种 DLL lost 么?
4 、 “如果有人觉得 WASM 运行太慢,那只能说代码接口设计有问题”,从来没有人觉得在 CPU 密集的场景下,wasm 运行慢,只是说在强调交互,并更新交互状态时,wasm 没有直接用 JS 操作快。

最后能否说明:wasm 对这个“大型前端项目”的定义有任何的补充
3dwelcome
2021-07-20 19:01:29 +08:00
@MorningStar0 所谓主流“大型前端项目",大多都是基于自己的 DIFF DOM TREE 框架的。正常来说任何程序,不管是不是 WEB,算法才是最核心,最耗时间的部分。

就算你 UI 刷新率是 30fps,把 VUE 框架代码换成 wasm 来写,就会拖慢系统运行速度?我觉得不会吧。

你老是说有胶水层很慢,但又没拿出合理的数据来支撑这个说法,很难让人信服。

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

https://www.v2ex.com/t/790577

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

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

© 2021 V2EX