wps 实习四个月后的一些思考和新规划

wps 的实习已经告一段落,玩了一段时间,迷茫了一段时间,整理代码一段时间,现在写一篇思考。

wps 实习内容

在 wps mac 组实习四个月,接手的需求有:

  1. 移植 pc 功能
    1. Excel 批量计算
  2. 交互功能
    1. 空格键进入图片预览
    2. 双指滑动(滚轮)移动图片
    3. 双指拍&双指捏缩放图片
    4. 双指旋旋转 wps 对象
    5. 双指/右键拖复制 wps 对象
  3. 优化需求
    1. 多级窗口 modal 规范
    2. 新建文本框默认设置添加选项
    3. 复制图片清晰度优化
    4. Excel 单个单元格复制形式改为纯文本
  4. 半成品需求
    1. 光标 icon 替换为高清图
    2. Excel 底部 sheet 平滑移动
    3. 文本框添加只复制文本功能
    4. 三指捏需求

感觉这些需求都挺无聊的,所以才交给一个实习生写吧。多级窗口 modal 规范,该需求阅读了大量 qt 源码。触控板扩展需求考察了一堆开源代码,学习了 objective-c 和 swift。也就这两个需求有点意思。

实习过程技术成长

刚入职先学习公司代码规范、工程规范,和一些工作流程。第一次用到心心念念的 mac,也花了点时间来熟悉,用过很多发行版 Linux,上手 mac 也很快。wps 产品由用 qt+c/cpp 完成,技术方面先学习 qt。第一个需求移植 pc 已有的 Excel 批量计算功能,需要添加的代码都在一起,不需要调试,直接上手敲码就好,qt 方面也只需要学习 dialog 的创建,和事件的处理。第二个需求空格键进入图片预览,该有的 api 都有,但需要找到适合修改的代码块,因为不会调试所以花了一个多星期,还是最后组长教会了我调试来定位代码和了解功能的执行流程。后面都是一些调 api 的需求,以及学会 qt 某部分的使用就能写的需求。多级窗口 modal 规范需求,考察了很久才定位到 qt 的 bug(pc 没问题,mac 有问题,应该第一时间就测试一下是不是 qt 的 bug),为解决 bug 阅读了大量 qt 源码,对 qt 的一些特性有了更深了了解,学习框架还是得直接读源码。qt 源码面向对象,以 c++11 为标准(qt6 以 c++17 为标准),范型编程到处都是,可读性很好,比 wps 代码好的多。离职前的需求是 mac 触控板相关的,网上资料很少,只有 github 上有几个项目,为了看懂代码就去学了 objective-c,顺便学了 swift(语法方面 c/cpp yyds,oc 真反人类,swift 也习惯不了)。做了一些考察才知道 apple 有 Private API 这个东西,mac 触控板增强软件都用了这部分 api,wps 不可能用的,产品的一些需求也就得打回了。不用写多指需求了,但多指滑、多指捏在继续考察,应该可以通过触控点的坐标识别手势,但自定义手势多了可能就不能做到精准识别了。

实习过程不足

实习过程还是有一些问题暴露出来。最大的问题应该就是不喜欢码字,提测邮件都不想写,周报和提测邮件被 cue 过,组长让我写开发文档也一次没写过。感觉码字的问题需要正视一下,不仅是工作流程中的常规码字,还有一些技术分享内容,这也是对个人和工作都有帮助的。所以打算以后以该 blog 为契机多写一些技术分享内容。由于实习疏忽了算法题,现在很多题的解法都生疏了。现在回头看刷算法题确实可以提升思维,也是为了以后面试做准备,应该让刷算法题成为一个习惯。之前刷了一堆不同难度的算法题,几乎覆盖了所有类型的算法,但没有做过一次归纳总结,也没写过一篇算法文章。今后每天刷一定量题,也要做归纳总结写稿。大学技术积累只有 c/cpp,其他技术都不会,不会一个框架,没有达到技术上的广度。今后需要多积累一些其他技术,学习一下 go、web 前端、机器学习,和一些较火的框架。新技术的积累是从头开始,学习过程也要通过 blog 形式记录一下。虽说大学只学了 c/cpp,但深度也是没达到的,引以为傲的语言方面和大佬交流后发现,还是有一堆东西不知道的。c/cpp 的一些附属技术也只是了解。短期内没有转技术的想法,所以技术方面还是以 c/cpp 方面为主。wps 实习是一次接触大型的工程代码,为了更好的写工程代码,还需要学习重构相关的技巧,架构知识入门,熟练掌握范型编程,设计模式熟练选择和运用。

对未来的焦虑

老实说工作和我想象中的并不一样,你不是只需要一心一意的写好你的代码就好。还需要和其他人对接,完成自己的 okr,完成小组的 okr。牺牲个人,顺应小组的方向。个人对公司来说就是一颗螺丝钉,在我所做的工作压根看不到自己的痕迹,做的技术也是没意思的 CURD,写一些 shit 需求的业务代码,和一些前辈聊了之后发现大厂也有这般问题。之前从来没想过这个问题,就算想到了也不会觉得这是个问题。实习离职后也思考一番人生,还冒出自己创业的可笑想法。b 站 UP 主推荐《软技能》一书,在书中找到了一些问题的答案。工作了就要尽量别让工作侵占生活,下班后可以自己做饭、去健身,养一只猫,做一些技术之外的事。而打工这件事应该要以平常心对待,工作是公司的,个人发展是自己的。技术方面下班后刷几个算法题,看几篇技术文章,也要做到技术产出。

好好学习吧。技术和 money 都会有的!