最近经常会有同学跟我说前端不景气,想转WebGL,希望我给他一些指导。
其实我并不觉得自己有多厉害,所以说不上指导,只能给大家分享一些自己的经验和学习路线 。
先简单说一下我对当下2024年的市场背景的认知。
2024年的市场背景之我见
现在的市场极其不好,我不是在贩卖焦虑,是真的不好。
因为我自己也在找工作,对比之下,还不如去年。
去年我也找过工作,那时还能拿到很多offer,还可以挑挑拣拣的。
而今年再找工作,我是四天前开始找的,感觉画风有点变了。
以前的猎头都是来者不拒,现在的猎头变成了大爷。
以前找工作久了,我也结识了几个不错的猎头朋友,他们跟我说得都差不多,就是现在找工作的人非常多,招工的公司又特别少,今年这种供求关系的不平衡比前些年都要严重。
实际上,根据我去年在北京的亲身体验,也确实如此,很多黄金地段的广场开不起来,中关村中央地带的食宝街都拆了。
还有许多软件园也开不起来,中关村的数字山谷空了,2019年的熙熙攘攘变成了追忆。
我2023年底在中关村壹号的滴滴待了一段时间,那里倒还可以,不过很多楼还是不满的。
虽然现在的市场环境不好,但我相信冬天终将会过去的。
就比如义乌,始终热火朝天,没怎么受大环境影响。
现在在我老家的小镇的街上,倒闭的店铺也重新开张了,虽然大部分换了新的门面,但热热闹闹的生活氛围又回来了。
接下来咱们聊一下WebGL的学习路线。
WebGL的学习路线
1.熟练掌握高中数学。
这是我一直在强调的,高中数学是数学的精华和基础,是你走计算机图形学路线所必备的。
有许多WebGL教程或老师刻意回避数学,甚至鼓吹数学不重要,只强调实战效果,这是目光短浅的。
在WebGL里,以至计算机图形学里,越往后走,你会越发现,数学即代码。
2.深刻理解线性代数。
推荐3Blue1Brown 的《线性代数的本质》。
3.学习计算机图形学。
推荐闫大神的games101。
4.学习WebGL。
图书推荐《WebGL编程指南》。
视频推荐我自己的WebGL 课程。
5.学习three.js
three.js 我讲了一部分,可以给大家入个门。
three.js 官方也有教程,大家也可以照着three.js 里的官方案例,结合其文档和源码去学习。
网上的three.js 教程挺多的,但我看的不多,我自己一般都是看three.js源码。
学习顺序
当你掌握了向量和矩阵相关运算知识,就可以看WebGL,当你对WebGL的渲染流程有了一个基本的认知,你就可以学three.js。
满足了上面条件后,你就没必要先学完一块再学一块,他们之间是可以相互印证的。
比如你在three.js 里遇到了四元数Quaternion,你若不理解其运算规则和性质,那就可以再去数学里学这块。
亦或者,当你看到three.js 里许多透明度合成、模板缓冲区相关的参数,若不理解其意思,你就可以去WebGL里找,因为Three.js 就是封装的WebGL,你总是可以从源头找到答案。
反正最终,我们都是要把这些东西慢慢掌握,越走越远的。
总结
WebGL 无法一蹴而就,three.js 也无法像一些前端工具库一样现学现用。
若我们不理解WebGL 原理和图形学,即使我们可以暂时照着教程用three.js做一些炫酷的实战项目,但在实际工作中,也很难灵活自如的满足其多样化需求。
所以最终我们还是需要拿出一定的时间来稳扎稳打的。
对于WebGL 的学习时间,有图形学基础的话,至少是需要三个月的,我以前没有图形学基础,学了八个月。
换赛道的同学需要提前有个这样的心理准备。
希望大家都可以找到自己喜欢的工作,也希望市场环境早日恢复,越来越好!
后记
2024年7月29日,历时36天,我拿到了小米的offer,职务是开发机器人相关前端项目。
小米是一家非常有活力、有创造力的公司,这里有着很棒的学习氛围和生活氛围,我觉得这对我而言是非常幸运的。
附带一张小米超级汽车厂的靓照: