新入行程序员成长的一点思考

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/twoconk/article/details/52327773

最近接触刚毕业的学生比较多,本科生和研究生都有,总感觉他们现在和刚毕业的自己很像,一个人摸索,别人的建议只是建议,悟性似乎还没有到那个境界,似乎必须经历过,才能长大,难道成长有没有捷径?

先说说在做Android的几个学生身上碰到的问题:

1、数据库操作,db打开后没有关闭,cursor游标用完没有关闭;

2、生搬硬套MVC/MVP,接口定义混乱,说不清接口作用或者参数作用;

3、函数名字随意,代码一致性和可读性差,类名小写开头,或者全大写;函数名大写开头,或者全小写;变量名大小写混用和小写加下划线命名混用;

4、syschronized关键字使用,修饰函数和修饰代码块作用不清楚;

5、单例模式滥用,static满天飞,同步互斥不知道怎么用,搞不清内存泄漏或者内存回收是怎么回事;

6、代码结构,那还是理不清捋还乱。

根据之前在HW的经验,这些应该都是军规红线,不能触碰的,难道是技术和基础不够?不知道是不是个例,但感觉挺心累的,不想他们和我们刚毕业那会那样一行代码两个bug,但如何快速的引导与提高?

最近几天一直跟着三个实习生做项目,想了想这块怎么提高他们的能力和整个项目的质量,或许对他们也是一种帮助吧。

1、细粒度拆分任务,以天为单位跟踪,主要的组织活动是:每天早上晨会确认前一天做了什么,以及今天做什么,有什么问题需要协助,另外当天安排的任务晚上就确认状态和问题。

之前接触他们有一个很明显的感觉就是,分配的任务做完之后,不主动反馈结果,过程中碰到的问题不主动沟通,等到最后节点问状态时,才发现有问题;所以主要对这几个问题考虑在一个项目能培养他们的职业习惯。

我们的项目是Android的APP,以类敏捷的方式开展,STORY的划分是主程来负责,然后拆分的任务基本上涵盖界面,界面的业务逻辑以及数据抽象上。

第一天的任务安排是熟悉产品的交互设计和各自分配的STORY,晚上加班两小时,找了几个老员工,让他们逐一讲解所负责的功能点,从做什么到怎么做都说清楚,并说明那些功能点需要做概要设计,概要设计需要包括复杂功能的业务流程,接口的功能定义和说明,数据库表结构的设计和说明;

第二天的任务是做概要设计和DT测试用例,同样是晚上加班两小时和找了几个老员工,对概要设计和用例做功能评审,并对可能存在疑问的地方做进一步确认;

第三天进入编码阶段,并根据STORY工作情况安排代码检视活动,确认DT用例执行结果后代码上传GIT库。

后续是测试活动,测试问题修改,代码检视和修改提交。

检视活动主要从功能实现、代码架构、代码风格是否遵循编程规范等方面给出建议,并在修改后需要进一步确认。

2、尽管有了流程,但结果或许不一定如你最初所想顺利实现所有的功能,所以适当的在他们的活动中加入老员工的协助很重要,主要包括:

某个功能点上有指定的老员工协助;

新增功能的接口设计上面由老员工来完成,做好框框,然后辅导实现;

复杂功能的实现上面有详细的流程图指导实现。

3、工作习惯上面的培养,事无大小,每一个问题都要严格对待,不放过任何一个问题,这个态度的培养可能需要老员工持续的跟踪,过程会比较累。

猜你喜欢

转载自blog.csdn.net/twoconk/article/details/52327773
今日推荐