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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

现在,我自己体验到了。

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

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

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

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

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

相关推荐
一只爱撸猫的程序猿2 小时前
简单实现一个系统升级过程中的数据平滑迁移的场景实例
数据库·spring boot·程序员
本当迷ya8 小时前
💖2025年不会Stream流被同事排挤了┭┮﹏┭┮(强烈建议实操)
后端·程序员
程序员小范1 天前
孙玲:从流水线工人到谷歌程序员
人工智能·程序员·谷歌·远程工作
程序员鱼皮1 天前
我发现很多程序员都不会打日志。。
计算机·程序员·开发·编程经验·java程序员
demo007x2 天前
「创意故事卡片创作助手」扣子模板使用教程
前端·后端·程序员
酷熊代理3 天前
网络安全:我们的安全防线
运维·网络·安全·web安全·网络安全·程序员
一只爱撸猫的程序猿3 天前
简单实现一个苹果支付的场景
spring boot·后端·程序员
豆包MarsCode3 天前
基于豆包MarsCode 和 Threejs 实现3D地图可视化
大数据·开发语言·人工智能·python·3d·程序员
狼叔3 天前
解读前端大牛TC39 成员Hax贺师俊:如何保持个人竞争力-浪说播客04
前端·程序员