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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

现在,我自己体验到了。

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

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

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

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

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

相关推荐
程序员鱼皮8 天前
学弟去字节面试,一小时被问了 50 题。。
计算机·面试·程序员·互联网·编程·开发·项目·简历
冰 河10 天前
《Nginx核心技术》第16章:实现Nginx的高可用负载均衡
运维·nginx·程序员·负载均衡·高可用
Android技术栈13 天前
鸿蒙(API 12 Beta6版)图形【 请求动画绘制帧率】方舟2D图形服务
程序员·harmonyos·鸿蒙·鸿蒙系统·openharmony·方舟2d图形·动画绘制
程序员鱼皮16 天前
大厂为啥都发苹果电脑?哪个系统是开发之王?
计算机·程序员·互联网·开发·编程经验
Android技术栈16 天前
鸿蒙(API 12 Beta3版)【通过字节数组生成码图】
程序员·移动开发·harmonyos·鸿蒙·鸿蒙系统·openharmony
Android技术栈19 天前
鸿蒙(API 12 Beta5版)【通过文本生成码图】
程序员·移动开发·harmonyos·鸿蒙·鸿蒙系统·openharmony·扫码
一丝晨光19 天前
你真的理解编程语言里的数据相等吗
java·开发语言·c++·面试·程序员·编程·相等
Android技术栈21 天前
鸿蒙(API 12 Beta3版)【使用ImageEffect编辑图片】图片开发指导
程序员·harmonyos·鸿蒙·鸿蒙系统·媒体·openharmony·图片
Android技术栈23 天前
鸿蒙(API 12 Beta3版)【使用智能PhotoPicker】Media Library Kit媒体文件管理服务
程序员·音视频·harmonyos·鸿蒙·鸿蒙系统·openharmony