咱们程序员不光要提升技术能力,也要培养自己的工作技能,拥有高质量的软技能与掌握牛X的技术一样重要。
聊几个重点的:
- 时间管理
- 任务分解
- 偷懒
- 知道什么时候休息
- 解决问题
1. 时间管理
我们可以使用todo list
记录自己的任务和各自的截止时间,以免漏掉。
把任务写下来以后,可以减轻大脑的负担,不然大脑总会下意识的琢磨 “我要做xxx、我可别漏了xxx”。
大脑是计算系统,不要当做存储系统来用。
推荐一个小技巧:吞青蛙。
这是一个比喻,把青蛙比作我们今天的很重要、很难做的任务。
吞青蛙就是在一天的开始就把重要的任务解决掉,这样你一天就会感觉很爽,你想你已经把重要的那点东西搞定了,是不是就会很有成就感,感觉自己很牛X,其他任务都是a piece of cake
。
所以时间管理方面用好这两个方法就会轻松很多:
- todo list
- 吞青蛙
2. 任务分解
任务分解能力很重要,我们收到的任务通常是粒度比较大的,例如:
- 你做这个xxx模块
- 这几个页面功能都归你了啊
我们要有微任务的意识,就是把我们的工作任务打碎,任务小到每一块儿都清楚的知道怎么做。
例如上面第2个任务,我们要列出来具体是哪几个页面、每个页面的业务逻辑是什么、前端 html css js 各需要做哪些开发、后端需要哪些接口、接口怎么测试、前后端怎么联调、需不需要和其他同事协作 ……
把问题捋顺了,拆解出足够清晰的小任务,你就舒畅了。
还有一点非常非常重要:感觉自己搞不定的一定要及时上报,例如技术上有难度、时间安排上来不及。
别让不好意思害了你,比如这个技术我没底,需要领导你安排人支持我一下;再比如我时间太紧,手上有xxx这些活儿,实在没时间,这个新任务整死我也完不成。
领导都喜欢尽早的了解风险点,只要你不是故意矫情,他肯定会尽量解决,就算解决不了,他也会想办法把锅转移出去,别让自己团队背。
3. 偷懒
不是让你偷奸耍滑不干活啊,是要有效的懒惰。
要关注效率,比如某些操作是经常做的,能不能做个脚本去做。
再比如某个功能的代码你都拷贝粘贴好几次了,想想是不是可以封装一下,以后直接调用,其他人、其他项目是不是也常用这个。
像大点的架构中会有一个公共服务层,其中例如验证码服务,就是这么一点点抽出来的。
4. 知道什么时候休息
程序员都快成高危职业了,我们一定要珍爱自己的身体。
当你感到某个问题很难搞的时候,暂停一下,去趟卫生间、去接杯水、在走廊里转一圈,几分钟的时间就可以让脑袋回血。
和同事聊聊天,吐吐槽,也是比较好的放松方式,但要把握好度,别人家正忙的时候拉人家唠嗑。
运动是必须的,在公司可以做些伸展运动、爬爬楼梯,不上班时方式就多了,去健身房、在家练keep都行。
总之一定要经常运动,时间长度随意,哪怕几分钟也好。
像乔杉一样去捏捏脚也是不错的放松方式。
5. 解决问题
这是非常基础的能力,不管你以后做不做程序员了,都应该掌握解决问题的思维方式。
举个例子,看解决问题的思路:
问题:我想喝水,但现在我没有水。
为什么:水是支撑人体机能所必须的。
如何解决:
1)首先,定位问题的根源
缺水。
2)把问题分解为一个个的要素
带钱、带钥匙、锁门、上车、确认汽油足够、导航定位到商店、开车到商店、找到卖水的货架、选择水、去收银台、排队、交钱、打开瓶子、喝水。
3)解决每个要素,直到全都解决
例如"带钱"这个要素,需要执行的动作:找到钱包、估算买水所需金额、拿出钱。
4)把所需的动作排好序,确保正常工作
举这个比较白痴的例子是为了更好的说明解决问题的思路:
- 描述问题(what)
- 思考为什么要解决这个问题(why)
- 拆解问题,列出执行步骤(how)
例如对于"渴了"这个问题,可能我们通常直接想的就是:去买瓶水喝,但实际这个过程所需的动作还是不少的。
解决问题时,就需要思维尽量下沉,关注细节。
小结
时间管理
- 2个技巧:todo list、吞青蛙。
任务分解
- 把收到的工作任务拆解为自己可以明确执行的微任务。
- 发现搞不定的及时上报。
偷懒
- 高效的工作。
休息
- 工作中适当的暂停,让大脑回血。
- 多运动,哪怕几分钟。
解决问题
- what、why、how