首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你知道入职时安排你改Bug的目的是什么吗

《5分钟从学生到程序员》第10课。

被凉在一边看代码基本上是每个程序员都会经历的过程,只是时间有长有短,短的几天,长的一两个月,这个跟公司文化、领导或师傅的时间有关系,领导或师傅自己在火烧屁股,就没有时间管你,让你在旁边自生自灭。

前面分享了很多主动学习、成长的方法,也知道理想会破灭,有挫折期这么个阶段,我们也简单的做了下心态调整。现在开始真正干活。

1. 程序员入行的两种方式

一般程序员入行,会有两种不同的方式:

1)做简单功能

我比较喜欢用这种方式。它是有一套方法的,不是说从功能入手,就安排一堆的功能给刚入行的程序员,这是想弄死他。我以APP端工程师为例,来分享这个方法的步骤:

步骤1:先做显示性的功能

比如静态页面,类似于关于我们,有界面调用,界面内只是显示,没有交互,有点基础基本上能做出来。

步骤2:再做有简单业务的功能

比如列表界面,从接口接收数据,用List控件把数据显示出来。

步骤3:然后做有简单交互的功能

比如修改名字、修改资料。

功能的难度可以慢慢增加,这样带一个项目,就可以独立负责功能开发。

有个原则,刚入行的程序员,不要安排核心功能、主流程业务的功能,做项目我们要能放能收,从简单的功能入手,带新入行的程序员,这个是放;如果安排核心功能和主流程的业务,他搞不定,领导就收不回来了。

2)改BUG

大部分师傅带徒弟,都喜欢从改BUG入手。因为做功能有风险,如果徒弟搞不定,会影响项目进度;但是改Bug不会影响进度,就算徒弟搞不定,自己可以出手帮他,改bug不会占自己太多时间。虽然从改Bug入手有很多弊端,不过做为最常用的入行方式,我们也从改Bug开始。

2. 正确的改Bug姿势

虽然,我比较少让新生从改Bug入行,但是这行做久了,Bug也改多了,所以还是可以给些建议的。

1)从低优先级的Bug入手

Bug都有分优先级,优先级1是流程性的、影响大的Bug,优先级4是界面性的、优化的Bug。新入行的工程师,业务的理解能力和流程的把握能力偏弱,所以刚开始不要去改优先级1和2的Bug,先从改优先级3和4的Bug开始。

2)不懂的要多问

中级工程师有独立解决问题的能力要求,初级工程师只有基本解决问题的能力,所以有遇到不懂得就问,特别是代码质量低的项目。

我以前见到一个项目,有个类似朋友圈发布功能,一个函数有三千多行,单单显示发布日期,就有六个地方,后面维护的人看不懂代码,不敢删,有的用透明字,有的把显示区域设成0,有的用隐藏属性,让前面的都显示不出来,再自己重新加一段显示的内容。有经验的都不一定找得到真正显示的那段代码,新人就更别想了。

这个案例比较好玩,我多讲一点,这个项目的负责人能力一般,他担心被老板知道,就想方设法把有经验的人挤走,后面的员工都是他招的,都是刚毕业的程序员。新人都改不动bug,他能改bug,就显示他能力强。我发现跟着他混的新员工,毕业半年,连bug都改不好。

我前面有讲,在一家公司里要工作两三年,才能学会一套完整的项目流程、开发方法和团队协作方式。但是,如果你进到这种公司,那就要赶紧跑,不然会把你的职业生涯搞残。

讲了题外话,我们回到这个话题,遇到问题,经过看代码、调试还是搞不懂,就问开发的人,或师傅。在入行的时候,所有问问题都对成长有帮助,对方会给你讲很多东西,不仅会讲这个问题怎么解决,还顺带会讲很多开发方法。这时,你就把自己当成海绵,拼命吸收他们的经验。

3)培养做记录的习惯

在Bug的过程中,或请教的过程中,会学到很多东西。有项目流程的,有开发方法的,有产品理解的,有写代码的技巧,有实现功能的优质代码,要养成习惯,把这些记录下来。下次再遇到就知道怎么处理,而且这个就是自己的经验库,随着记录量的增加,能力成长会越来越快。

3. 改Bug的目的

你要是问师傅说:“师傅,为什么让我改bug,而不直接带我做功能?”,他通常都会说:“你先别急,现在还没办法做功能,先改改bug,熟悉下业务,熟悉下代码。差不多了,我再带你做功能。”

大部分新入行的程序员也不会去问为什么要先改bug,所以对改bug的目的不了解。反正让我改bug我就改,总比坐在那里看代码来的好,至少不会那么无聊。这样认为也没有什么不对,只是把自己成长的掌控权丢给了命运,这样的操作,基本上都会混的不好,最后就是抱怨自己的运气不好,公司不好,领导不好。

我们要把成长的掌控权拿回来,自己为结果负责任。那我们就得了解改Bug的目的,实际上师傅已经说了很清楚了,熟悉业务,熟悉代码,加上熟悉流程和团队协作方式,这些熟悉了,你就可以开始做功能开发。

所以我们改Bug的时候,不能傻傻的拼命去解决问题,就算你把bug全改好了,也只能得个6分。你要通过Bug去了解业务,不懂的就问师傅或产品经理,去了解代码框架、运行环境、业务流程等开发相关内容,去了解项目不同角色的人是怎么配合的,这样你既把bug改了,又学会了初级工程师必备的能力,就可以得个10分。

4. 这个阶段常见的错误

1)解决不了的问题,不懂得求救

这个是最常见的情况,一个bug在那里搞一天,搞不出来。第二天师傅或项目经理问了,才说没有搞定,而他们经常一句话,就把你点醒,马上就改好。

2)对代码管理不懂,经常跟别人造成代码冲突

虽然git和svn都很好用,但是新生经常会搞不清楚,覆盖别人的代码,或者造成打包的问题。如果出现这种情况,就好好的向同事请教,把这个问题搞定,不然就会挨骂。

分享个案例:之前我有招个Java初级工程师,用来做梯队建设,他就经常覆盖别人的代码,刚开始测试经理受不了,来找我说:“陈总,那个某某出现好几次覆盖代码的情况,我们测试验收好的功能,又搞出问题,你处理一下吧。”,好,我处理。过几天项目的技术老大受不了,又来找我:“老大,那个某某还是覆盖别人的代码,这没办法搞了。” 我给他开个了玩笑,反问他:“要不要把他炒掉?” 他当下傻了,说:“不炒”。这种情况不会被炒,但是,你有看到,有多烦人。

3)改bug就是纯粹改bug

新员工一般是跟一个项目改bug,下个项目或版本,会开始做功能。而新生改bug,一般是界面性的、简单的业务逻辑的BUG,所以纯粹的改Bug,对业务和代码会有一定的熟悉,但综合能力还是偏弱,做功能开发的时候,就会比较困难。

5. 总结

这节课我们讲程序员入行,基本不是从“hello world!”(做功能)入行,而是从改Bug入行,就算是改Bug,我们也不能傻傻的改Bug,我们要知道为什么要改Bug,同时去了解产品、代码框架、运行环境、业务流程等内容,这样你才能既把Bug改了,又掌握了初级程序员要求的能力。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191118A0KB2600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券