前言
在日常工作的过程中,你是否存在以下几种情况:
- 某个时间节点突然产生迷茫,不知道自己当下应该做哪些事情,学哪些东西?
- 不知道如何在工作中提升自己的技术或能力?
- 你似乎对自己做的系统都熟悉了,但是在谈及某个功能的时候,却说不上来是如何实现的?
- 需求一个接一个,一段时间之后,却回想不起来自己从中学到了什么?
- 网上看了一大堆优化手段,同时目前项目存在哪些问题,但不知如何下手优化?
- 想写技术文章,但是却不知道应该写什么?或者说无法坚持写下去?
- 想学算法数据结构、网络知识或全栈知识,却总是半途而废,坚持不了几天?
我曾经历过并且也正在经历着上面的一条或多条,这篇文章的目的也刚好为我入职四个月做一次度盘反思,并与君共勉!
透过现象看本质
以上皆为现象,脱光事物的衣服看根本,究其原因,我总结为以下几点:
内在原因
- 缺乏明确的职业规划:不知道自己要成为什么样的工程师,是走垂直技术路线还是技术管理路线呢?
- 缺乏明确清晰的学习目标和工作目标:不知道要学什么、如何学习以及在工作中不清楚应该如何步入下一阶段,去更大的平台
- 有目标但缺乏明确可量化的指标、可执行的实施计划,同时缺乏期限性
- 进入舒适区不愿尝试新的技术和主动解决新问题
- 自身焦虑或压力大,形成负面情绪产生内耗
- 缺乏阶段性复盘反思,在日常生活中逐渐忽略目标
外在原因
- 工作内容过于单调,缺乏挑战性,业务发展方向不明确
- 缺乏与他人进行技术经验交流,缺少分享和成长的机会
- 没有合适的学习资源和指导,不确定方向是否正确
- 大环境情绪低迷,对行业发展保持担忧,缺乏信心
知道问题所在,如何做出转变?
我总结了十点在工作中提升自己的关键点,并以此来提醒自己:
提升建议
1. 把自己当做owner的角色,发挥主动能动性
如果我们的角色并不是部门管理者或者没有做过管理岗位,几乎不会把自己当做owner
,而我想表达的是,只要把自己当做是任务的主导者
,其实很多事情都将会发生潜移默化的改变,它将体现在我们的沟通力、执行力、全局思维力以及领导力。而我目前自检是没有完全做到的,这是我最近反思过来最大的问题。
如何在工作中转换这种角色?
比如在接受一个任务时,首先站在管理者的角度思考,我该如何把控进度?如何在deadline前保证交付?开发过程中应该考虑系统维护性、性能优化、用户体验甚至方案实现的投入产出比(ROI)是否合理。
其次,过程中发现问题,是主动反馈给各职能岗位还是等到开发完毕等测试发现才考虑解决,你还别说,我真遇到明明在过程中需求出现问题,却说等测试反馈再考虑改进的。
2. 在条件允许的情况下,把工作做到极致
什么是极致?
我对极致的理解是细节
。
完成一件事情有三个标准:做了,做完了,做好了! 不得不承认,大部分职场人都觉得把事情做完了 就算结束,因为这是我们做事情最常见的标准。想要达到做好了 这个标准,全靠细节
,魔鬼
都是藏在细节里面。
在日常工作中,如何把工作做到极致? 可尝试从以下几方面着手:
- 测试反馈一个
bug
过来,不单纯想着把它fix
完,再想多一步,它的影响面是多大?设计是否有缺陷?除此之外可能还存在哪些场景会有类似问题? - 发现控制台有不少历史遗留的
eslint
警告?组件中存在副作用但未被清除?尝试去fix
它们
永远记住,把事情做好
。
3. 记录并总结你在工作中踩过的坑和学到的知识点
犯错并不可怕,可怕的是同样的错误重复犯,一个成熟的程序员时刻要记住不能重蹈覆辙
,最好的方式就是记录你遇到过的问题,犯过的错。
如果你不知道如何记录,可以参考我的这篇文章:
# 通过Vs Code调试,我找到了Ant Design Table运行报错问题~
除此之外,在工作中get
到新的知识点也很有必要记录下来,它是你的经验所在,这也是未来你面试的资本之一。
4. 站在产品和用户的角度思考问题
前端这个名字顾名思义表示站在离用户最近的关卡,它直接影响着用户的情绪
和行为
,而产品永远都是为服务用户而存在,作为前端工程师这个角色,想要成为优秀就必须站在用户的角度思考问题。如:
- 用户使用这个功能是否方便快捷,行为操作、视觉效果是否符合日常习惯
- 用户界面设计是否能够激励用户产生付费行为,价格是否有吸引力等
5. 时常观察自己的系统存在哪些问题,如代码规范、可维护性、开发效率
关于这点,在入职一个新部门时最为明显了,拿我举例,由于前端组刚组建不久,我入职的时候才两个人,没有新人熟悉文档,没有组件文档,也没有业务介绍文档,前端开发规范、开发流程规范就更不用说了。再者,前端构建产物上传到本地环境还是用可视化窗口操作,小程序上传也如此。
为此,我编写了新人快速上手文档,梳理一遍微前端项目架构,推出了前端开发规范,package包管理规范,写了一个Node
自动上传脚本,当然,现在还有很多方面等待要去做的。
6. 总结项目中通用的技术方案
前端项目中有很多方面是可以共用的,比如Vue
权限管理、React
自定义Hooks
工具、自定义utils
工具库、给页面添加水印以及前端调试技巧等,关于调试文章可以看我之前整理的:
7. 思考哪些地方可以提升效率
在日常工作中我们做的大部分任务都是吃老本的,凭借以往的经验就可以完成,这样也容易导致人做一些重复性的事情,思考是否可以用工具替代人工是个很重要的思维,比如我前面说到的用脚本替代手动上传。
除此之外,我最近也在部门推行低代码amis
框架,它完全有能力替代大部分的后台管理系统表单、列表的开发,但基于种种原因只能在小范围落地测试。但从个人角度来看,我已经获得了在这方面的经验。
8. 时常调试源码,阅读优秀开源代码
阅读源码、调试源码在开始阶段的确会比较痛苦,也很耗时,这是个反人性的过程,但唯有反人性才能够让人成长。作为程序员,调试应该是最基础的技能,但我发现这项技能大部分人都还不会,大部分人离真相很远。
我最近也写了一篇寻求问题真相的文章: # 通过Vs Code调试,我找到了Ant Design Table运行报错问题~
在这方面我受到启发是因为光哥 的调试技巧,他写过一本小册前端调试通关秘籍很值得推荐。
9. 吃透你部门业务,提升不可替代性
从某个层面来讲,一个懂业务的开发比一个只懂做需求的开发更具有不可替代性,懂业务代表着至少清楚为什么要做这件事情,从而让你具体有高的视角去看待问题,写的程序逻辑更具有扩展性。
如我们在做技术选型的时候,离开业务去做技术就是耍流氓,契合了业务发展再谈技术优势、社区活跃度等。
10、每天都要有计划,不管是学习还是工作,学会阶段性复盘
大部分程序员来到公司第一件事是吃早餐,接着就撸起代码了。但我的第一件事情是核对今天事件的优先级,接着就按照PDCA
去执行了,允许自己有懒惰,没有百分比执行到位,但是不能够一直懒惰下去。
用PDCA
很重要的一点是Check
部分,聪明的人很会Check
自己,这点我也一直在学习,比如写这篇文章就是在阶段性Check
自己。
11、多与同行交流分享经验,尤其是比自己牛逼的
在过去一年空窗中我看技术方面的资讯不多,却是我与人交流最密集的时间段,克服了自己不喜欢交谈和社恐的心里屏障,这给我目前的工作状态带来了很大的正面效果,总结一句是:与人交流可以快速学习别人的优点,而且成本最低。
但我重新入职一段时间之后发现,技术部门就有这种氛围,好像我又回到了从前的自己,做技术的大部分同学都有轻微社恐,甚至有的见到女生就脸红😳,不善交流导致与同行之间的经验沟通甚少,也很容易遇到瓶颈。
相信有很多同学加了同行大佬的微信,当然我也一样,比如神光
、卡颂
,在他们身上看到对待技术的纯粹,有问题他们都会热心帮你解答,为此我也无偿帮一些朋友诊断简历。有同学说,他们太高位了,存在一定的隔阂,不知道如何交流?真的是这样吗,我觉得还是太在意自己的感受了,虽然他们时间可能很有限,但你不去撩怎么知道?
为此,我新建了一个【技术与生活深度交流群】,分享技术生活日常、职业规划等深度话题,加我私人微信:followJavaScript
,备注交流
拉你入群。
总结
以上,是我5年
工作经验和认知的总结分享给大家,同时也是我下一个阶段需要去做到
的地方,你们每一次的点赞、评论、收藏,都在不断重复提醒我自己!
最后,欢迎大家跟我一起交流生活、技术、人生,少点emo
,多点憧憬
!