第四份工作(16),得心应手及之后

曾经有过一段时间,我觉得自己是厉害的,不管怎样的玩法、功能,我都能搞定,工作做起来得心应手、游刃有余。

我为什么会有这种感觉呢?

作为程序员,做一个新功能之前,往往需要先研究技术可行性。

以我曾经做过的一个战斗回放功能举例:

回合制游戏的战斗是许多自定义指令的集合,服务端按照顺序生成指令之后,由客户端一一展现。回放,便需要将这些指令集存下来,我们决定将它们存储在客户端。

为了防止别人一眼看清整个战斗过程,我们决定对这些指令集进行加密。

是否可以加密?如何加密?便成为这个新功能需要研究的技术点。

研究的流程呢?首先查看引擎是否有相关API能够直接调用。没有的话,引擎是否已经有对应功能但未暴露出接口?如果没有,选择哪一种加密算法?如果需要自己实现加密,是放在脚本层用Lua写,还是放在引擎层由C++实现?

如果要自己实现,最简单的肯定是直接用Lua写。用Lua写,效率如何呢?由C++实现,速度又会快多少呢?如果放在引擎层做,怎样将接口暴露给Lua使用呢?

将所有问题列出来,并一一做解答,便能确认战斗回放是否可以做了。

是可以做的。Cocos-2dx引擎自带一个xxtea加解密库,只需要封装接口暴露给Lua就好。

研究技术可行性,将可行的技术用代码实现,完成一个玩法或功能。在一款游戏的生命周期内,是一直重复这种"学习到应用"过程的。

一款游戏(或者一款产品),在类型、风格、主方向确认之后,创新点并不会太多。于是某段时间内,我做的工作内容,便都是用之前已经熟悉的技能,在自己熟悉的游戏中做新的玩法。不一样的,只是"逻辑"。

于是,便自然生出得心应手感觉。

这种由生涩到熟练的进步,在看过《学习之道》之后,才知道,或许世界上所有技能的练习,都是这样的一个流程。"熟能生巧"、"庖丁解牛"、"无他唯手熟尔"......等一系列成语也都说过这些道理。

现在,我自己体验到了。

这种游刃有余感觉,被后来的几次面试,击碎过。我说不出如何归并,我记不清面向对象三要素,我没用过Python的collection库......我不知道的技能,我知道但记不住的概念,我知道且记住过但又忘记的东西,太多太多。

我陷入了侯捷老师说的"信息焦虑症候群","不去面试,慨叹自己彷佛井底蛙,真正面试后才知道自己真的是井底蛙;整天看自己这里也不行,那里也不对"。(我将原文中的"上网络"改成了"去面试"。我的"上网络",只看了些自己喜欢的内容。)

或许我曾经的焦虑,与证实自己是井底蛙也有些关系的。

得心应手之后,是信息焦虑症。

再之后,是就自己工作中所用到的内容,知其然,并尝试知其所以然。

相关推荐
炫饭第一名4 小时前
速通Canvas指北🦮——基础入门篇
前端·javascript·程序员
NineData4 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
BugShare5 小时前
写一个你自己的Agent Skills
人工智能·程序员
会员源码网6 小时前
闭包中未正确引用外部变量(遗漏`use ($var)`导致变量未定义)
程序员·代码规范
会员源码网6 小时前
类继承中父类方法被错误覆盖(如父类`final`方法被子类重写)
程序员·全栈
七月丶12 小时前
别再手动凑 PR 了:这个 AI Skill 会按仓库习惯自动建分支、拆提交、提 PR
人工智能·设计模式·程序员
古时的风筝12 小时前
花10 分钟时间,把终端改造成“生产力武器”:Ghostty + Yazi + Lazygit 配置全流程
前端·后端·程序员
京东云开发者13 小时前
移动端里的AI,用户到底要什么?
程序员
京东云开发者13 小时前
保险AI落地密码:技术实战分享
程序员
SimonKing13 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员