假期即将结束,和高中时候不同了,感觉假不假期的无所谓了,在哪儿都是坐电脑前面。

技能树

看看大学这一年半都卷了哪些技术吧···

虽说有种先射箭后画靶的感觉,但也是有参考价值的。

这是我在高中时期画的图:

能力树.drawio 拷贝.jpg

这是现在画的图:

能力树2-nmxv.jpg

对比两图,后面图多了很多绿点,我们逐个来总结。

Kotlin

编程语言间是相通的,这个语言并没有特别去学习,肯定也不能算精通,可以说是学会这门语言应该是在https://srcblog.ffeng123.win:23443/archives/d468711a-41b1-46ae-97f3-b3f212ed235a学SpringBoot的时候,用SpringBoot写了一个项目,完全用Kotlin写的。

Kotlin的控制流表达式我很喜欢,但是SpringBoot写业务逻辑并没有复杂的程序逻辑,并没有用到。

这个技能不是特意点的,点SpringBoot送的技能?等级提升送的技能?( •̀ ω •́ )✧

C#

这个技能点是为了Unity特意点的,为它写过HelloWorldhttps://srcblog.ffeng123.win:23443/archives/4259ff51-6abe-461f-a9f8-d5606991b8a4,又写了从C++转C#一个小记录https://srcblog.ffeng123.win:23443/archives/b9f02f36-1401-480f-8d50-0fdb83954379#%E4%B8%8Ec%E7%9A%84%E5%AF%B9%E6%AF%94,不过现在已经很久没有用C#了(因为好久没用Unity了),而且就算用,C#里面的很多东西也不会去用,所以关于C#,我脑子里装的东西是小于学习记录的东西的。

C#这个语言,锐评一下,给我的感觉是挺没用的,GC语言,执行的是字节码,只能在Windows上跑,咱也不写原生Windows开发,除了写Unity感觉哪里也用不上。

但谁会因为多点一个技能而烦恼呢?但我会因为消耗了技能点烦恼

Golang

在我的记忆中,这个语言是我刚上大学时最自信的语言,当时老师问我最拿手的语言是什么,我说是这个。

对照高中时期画的技能树,我画技能树时居然还不会Golang。

最初出于什么心态已经不记得了,可能是听说这个语言好用?可能是听说效率高?

它足够底层,但也不太底层这个特点,在我高中时期写各种异想天开的项目时给我打下了很多基础(各个网络协议层···NAT原理···进程线程协程···)

现在我不怎么用它了,但我依然觉得它是很好用的,只是随着其他技术往上叠,我发现我的Golang一味着造轮子已经赶不上其他语言了。

如果有时间有契机的话,我学学框架,再把它作为真命语言也不是不行ψ(`∇´)ψ

C++进阶

这个是指,虚函数啦,模板啦,编译原理,动态链接库、生命周期、引用计数什么的。

这是一个比较杂的东西,这些不好叫做一个技能点的东西我把它们整理整理就叫做C++进阶啦。

这里几乎没有东西是特意学习的,是平时用到的积累。

虚幻引擎基础

这是最近(其实也不能叫最近啦)做的事情。

以前觉得这东西离我很远,现在感觉这就是未来(~ ̄▽ ̄)~

虚幻引擎要是只是摆摆场景门槛应该是不高的,对着B站大学去学应该也是很简单的,但是呢,我一开始就是冲着能完整开发可交互应用(游戏)去的,而且还想尽可能写的符合规范,所以感觉是挺复杂的。

我能入门虚幻,应该得多亏了做那一次3D设计大赛项目https://srcblog.ffeng123.win:23443/archives/4d90cdeb-dc72-42b1-b4bb-de0b56e85924

如果像我一样的想法入门虚幻,建议先把GamePlay框架看明白。

写东西之前先把API和文档看完,在虚幻引擎这里并不适用,文档规模很大,C++API更是多到浏览器会卡住。

说这是我和附近的人相比,最突出的技术也不为过啦。

Unity基础

大学刚开学,刚刚进入工作室,学姐在做的——Unity

大学写的第一个项目——Unity虚拟现实。

我大一时用的最多的应该就是Unity啦。

拿C#对接Golang,我记得当时跟学长协作,C#的胶水代码写了好像有一千行(大部分都是重复的就是啦),Golang写了也有两三千行,现在看来,轮子呀。

UE取代不了Unity,对于高端平台,UE确实很棒,但对于移动端嘛,还得Unity。

学校里教这个(虽然不是我这个专业),但别人都会的东西,咱也不能不会是吧,而且用Unity产出了不少成果呢。

很有用的技能呢!

Git

牵扯到多人协作,那就Git啦。

Git是个有一定学习成本的工具,与我合作的人,我会先让他去学习用Git。

早晚都需要的东西,总不能一个人把项目肝完吧?

SpringBoot

身边搞后端的人似乎以它为主,理由也很简单,学校教。

一开始学习这个我是排斥的,但是后来发现它真的是个好轮子,而且可能是出于大环境考虑,中国SpringBoot用的还是很多的,所以就点了这个。

https://srcblog.ffeng123.win:23443/archives/d468711a-41b1-46ae-97f3-b3f212ed235a

Nodejs后端

会前端,会用Nodejs,但不会用Nodejs做后端,这正常,毕竟咱学的是前端嘛。

会写后端,会写前端,不会用Nodejs做后端,这怎么可能?

这个技能点是NextJS框架带的。

NextJS学着学着发现不对劲,学前端被骗到后端来了。

于是我们学会了Nodejs做后端。

前后端都用JS写开发效率上是很有优势的,虽说JS可能效率低了点,但业务逻辑是IO密集也不是计算密集。

React框架

假如有不那么聪明的人问我前端要学什么,我会告诉他,啥都行,别学React。

拉着长长的战线,真正学明白是在https://srcblog.ffeng123.win:23443/archives/4d109cf1-b37c-4e42-bc23-90c7ddedc4d2,在此之前就是在JS里面写Html

现在让我写前端,我会直接用React(因为我不会第二个框架),但是感觉上,可能很多时候单论开发效率React并不如原生开发。

但只要体会过乱糟糟代码的痛苦应该就不想写原生了(我最开始的博客不会框架用的原生开发,以至于我不想再维护它的代码了)(其实就是代码写的菜,和原生无关,React写的更难看)

NextJS框架

前端无感调用后端异步函数,好强~

数据不用前端获取,后端直接注入,好强~

后端写React,好强~

我要学这个!

学了之后发现这玩意儿占的服务器资源真的好大,不太敢用了`(*>﹏<*)′

但JS写后端,真的没什么坑,热更新,不会轻易出错误,出了错误也很清晰。

Web套壳

Web套壳,在我不会React时就已经开始套了。

每个平台的原生开发成本都很高,为什么不零成本Web套壳呢?

我套壳主要有两个目的:

  • 开发某平台的应用

  • 把别人的东西变成自己的(~ ̄▽ ̄)~

通过套壳+特殊的缓存方式+注入一些友善的JS清理垃圾+阻断网络请求,就能把东西变成自己的啦。https://srcblog.ffeng123.win:23443/archives/84356b73-8e86-4eaf-8916-acf2c9a3b858

前端必学技术!YYDS

ThreeJS

对于经常搞数字媒体技术相关的我来说,这个东西是很有必要的,它给了网页展示3D的能力。

浅浅的使用,会显示模型就已经能够满足大部分情况了,要说完全会用这个,我并没有做到这种程度,WebGL、写着色器,这学习成本是不是有点太高了啊。

个人感觉,不会什么能可视化的游戏引擎,学习这个的成本是挺高的。

同样是前端,我写的网页能渲染3D(卡死)

任一UI库

UI库是没有学习成本的,放在技能树里,可能是说···造轮子的前端不叫前端···

用顺手了一个库真的完全不想换其他库了呢。

Ant Design是我最开始学习React时就用的UI库,现在依然是它。

后端基础

我把数据库、Http协议、身份认证方式什么的零零散散的东西放在了这里。

数据库这个东西说大也挺大的,说小就是个电子表格。

这个也不是刻意点的,是升级送的。

大语言模型微调

https://srcblog.ffeng123.win:23443/archives/bd043fde-0d67-4b93-a3c5-2648e8f2ee29结尾有个小遗憾,这个小遗憾一直伴随着我到学会模型微调,大模型不听话乱输出。

https://srcblog.ffeng123.win:23443/archives/d31fa8ce-6b19-4352-b0dc-3782155e66bb用一种较为通用的方法,对大语言模型做了微调,这里有个小遗憾,量化的大语言模型无法融合Lora权重。

大语言模型刚刚问世时我竟没想到大语言模型会成为一个小方向。

通用Lora微调

点大语言模型附赠通用Lora微调。

稳定扩散模型微调

这是通过大佬的脚本实现的,随着AI的学习,这可能渐渐的就不是一个技能点了。

https://srcblog.ffeng123.win:23443/archives/6b46617f-eacd-4104-adee-a8512aa15ff3

程序化建模思想

一些点,一层一层,过来过去···

复制···挤出···倒角···布尔···

程序化建模不像传统建模那样每个位置都精细调整,程序化建模做不了很精细。

程序化建模的作品不是模型,而是程序。

程序化建模的工具能够符合建模思想,我要的功能他有,那它就是一个好工具。自己菜,赖软件

Houdini程序化建模

程序化建模的神?

用起来,除了保存比较难受,其他都挺舒服的。

教程比较少,软件官网上的教程很不错。

学程序建模,真的好像只是因为,它很酷( •̀ ω •́ )✧

https://srcblog.ffeng123.win:23443/archives/28823db3-c0cf-4d06-bb30-7c6f25e58b47

虚幻PCG

虚幻PCG感觉很有局限性,撒点PCG更方便,稍微高级一点的事情,还是推荐Houdini啦。

这个现在算是学明白的状态,当时以为可以用它做程序化城市,但是开始做后发现并不行。

计算机图形学基础

光栅化···延迟着色法···着色器基础···

散装的一个点,这也不是刻意点的。

这里相关的知识对与显卡沾边的(材质、着色器···)特别重要。

好像以前理解不了着色器的我渐渐理解了呢,等级提升送的?

比技能更重要的

技能树加点是挺重要的。

但我们处了技能以外,还有属性。

解决问题

比起很久以前遇到问题就上搜索引擎,搜到就一个一个试,搜不到就结束的我,我太喜欢大半夜几万行代码断点一个一个硬调的我啦。

比起解决问题,能提出解决问题的方法是更让人开心的事情。

无法列出的

对着技能树复制一个人,他在这些对应的技能点上会具备和我一样的能力吗?我认为技能树列出的只是一部分,很多零零散散的小知识,走过的路,踩过的坑,解决的问题都是无法呈现在树中的。

总结

高中时的我一拍脑袋,“我能想到的,最大的成功就是无愧于自己的心。”,FFeng,我不知道你心里想的是什么,你觉得成功了吗?

我以为我没做什么事情,列出来一看,嘻嘻,也挺多的嘛ヾ(^▽^*)))

再接再厉咯~

看了一下新技术,接下来的短期计划呢,准备去学一学新技术,如下:

我能想到的,最大的成功就是无愧于自己的心。