TA的每日心情 | 慵懒 2014-11-5 09:39 |
---|
签到天数: 281 天 [LV.8]以坛为家I
|
偶尔会听到软件开发的外行人说:听说大学老师当老板让学生打工的很多啊,用你们的社会关系,接的软件项目来让一帮学生做,不要自己搞得这么辛苦嘛。 可以这样搞的专业的很多,比如什么地质勘察、林业勘察、社会调查类的,还有一些微电子、化学、生物、农业要在实验室或试验田操作的,还包括写编造材料、查阅资料啊,只要让学生做的工作不需要特别久的经验,就能达到基本的操作要求,并且老师很容易检查出学生工作中潜在的问题,很容易自己操刀返工的专业工作,其实都可以这样干。但计算机专业的软件开发肯定不行!
很多学生对软件开发技术很感兴趣,觉得能够编程控制计算机很神奇有趣,又可以成为一种挣钱的技能,何况这也是自己的本专业,应该通过实践来真正掌握,所以从心里面来说,绝大多数学生都很想精通一些开发工具、开发方法。
但最后做下来,学到的东西不多,对项目的贡献不大,无法善始善终者不少。拖累了项目的进展,增加了管理的代价,消减了成员的士气。
从学生方面来说,主要原因有这几种:
1、基础太差,努力程度不够。因为做软件需要的基础比较多,这决定只有极少数的学生适合跟老师做软件项目。
2、有点基础和潜力的学生,自以为是,对有经验的人说的话没有足够重视,开始被老师寄予厚望,但后来发现无法委以重任。
3、学生不以项目为重,重点研究自己想弄的东西,没有认真完成所有安排的任务,有些任务甚至不做也不报告。
4、在学校养成拖的习惯,没有商业意识,没有团队配合意识。
从老师方面来说,也会有一些原因:
1、没有把握好学生参与项目的心理,学生主要是想学习为主,但老师只布置任务,而不做示范性的操作,不帮助解决卡住学生的难题,让学生觉得参与项目无法快速提高水平,和自己瞎折腾没有多大区别。
2、老师作为组织管理者没有做好其它各方面的服务工作,比如老师因为偷懒没有仔细分析需求,瞎安排任务,导致返工太多。又比如老师经验不足,对整个项目无法把握驾驭,指望学生来解决一些关键技术问题。
3、没有仔细筛选甄别学生,以为人多热闹,来的都欢迎,结果认真做事的和凑热闹的没有区别对待。
除了注意以上问题,要回答本文标题的两个问题,还需认识清楚几个问题:
一、软件开发是一项隐蔽工程
隐蔽工程就意味着很多潜在的隐患不会马上暴露,如果没有严格的测试手段,要想以后少出问题,主要就靠开发者的责任心、思维严谨性。但是再负责再严谨的人,也会留下若干bug,这时候就要需要代码的规范性保证代码的易读性,需要架构的合理性保证bug可以在小范围内被集中消灭,不会补了东墙垮了西墙。但架构性的东西,是经验要求非常强的东西,必须由老师来把握,不能让初次参加项目的学生“大胆锻炼”。
二、学生应该以这样的心态跟老师学习
1、认识到老师带学生做项目,不是以传授知识为目的,而是以完成项目为目的。在做一些无技术挑战的重复劳动的时候,自己可以考虑更好的办法减少重复劳动,也可以跟老师讨论研究某个办法来更好的解决这个问题,但是前提是保证项目的进度不被影响。否则可以先用笨办法解决,自己以后有空再研究更好的办法。老师会在必要的时候专门培训相关知识,或者在空闲的时候聊到一些方法,更多的知识是老师无意传授,但学生在跟项目的过程中自己体会到的。
2、根据自己的特点选合适的指导老师,一些老师对编码规范、编程风格,甚至一些架构方法要求很高,一些老师很随和,不干涉你内部怎么实现,看上去基本满足需求就行。无论怎样,一旦选择了参加一个项目,就要尽量配合老师和客户的需求,自始至终完成好项目,即便有特殊情况要离开,留好说明文件,让接手的人能够快速上手,这是基本的职业道德。
3、在费用报酬上,一般学生以学习为目的,不会在乎拿多少,但要命的是:不拿钱很容易没责任感,想做就做,不想做随时就撤退了。所以学生必须认识到:参与老师的项目,这种互惠互利的活动,不是用报酬来衡量的。我个人的衡量标准是:如果没有教会学生很多新东西,主要是发挥学生自学的知识来完成项目的工作,那么就参考相应水平的社会兼职员工支付报酬。如果以手把手教学生为主,也应该让学生得到各种资料、电话、误餐、车马等费用,另外再发放一定电脑设备更新费用。多数做到一定贡献的学生,介于前述两者之间。另外,一般单个学生不会对老师发的报酬有多大意见,但是有多个学生,一些做出更多贡献的学生,甚至教会其他同学完成很多模块的学生,如果和其它同学拿一样多的报酬,可能会有的不好说出来的意见,如果有这种贡献突出的学生,可以考虑把相应费用交给他去分配,他平分给其它同学,是他的大方,他没平分给其它同学,也是他应该的。
4、兴趣不要转移太快,一会想学WEB开发,一会想学OpenGL三维游戏设计,一会觉得手机软件热门,又转来学智手机软件开发。计算机软件开发的新技术虽然层出不穷,但是很多永远不变的东西,必须在一个项目里面做深做久了,才能体会到。这次一个参与项目学生说他们对安卓开发比较熟了,但是想把一个界面的灵活性稍微做好一点,就是拿不下来,我们几个老师立马学习安卓这一整套,从跟学生学习最基本的安卓开发环境和开发模式,再到界面设计模式,很快拿下了这块,原因就是很多开发理念是相通的。
|
|