明亮的天空

后来太阳才慢慢地冲出重围,出现在天空,甚至把黑云也染成了紫色或者红色。这时候发亮的不仅是太阳、云和海水,连我自己也成了明亮的了
个人资料
  • 博客访问:
正文

培训

(2008-03-03 16:51:05) 下一个



从这周开始,我被彻底调离原可以吃喝玩乐看窗外风景温馨的小窝,发配到大教室做培训一周。那里每两个人虎视眈眈看一个电脑,还要认真学习老师讲课内容,做练习。最发愁的事情是要打乱我目前晃悠上班晚来晚走的作息时间,要提早起床一个小时。

今天是培训第一天,我尽最大努力做到了没有迟到。结果到了之后,后排的好位置电脑已经被早起的鸟儿占用了。我四下观望半天,每走到一个位置,就有人提醒我,“那个位置已经被人占了。”果然,我看见一些笔记本占着位子,就好像大学自习室占位置一模一样。我很有把他们的笔记本扔到一边的冲动,想了想还是忍了。终于,在走过N个我认为的好位置之后,只能坐在头一排,和老师脸对脸了。这意味着我想利用培训时间做些私活的计划,彻底破产了。 

培训照例一来就大家自己介绍自己,说明自己到底想通过这个培训达到一些什么目标。教我们的老师J眉清目秀的,看着还算顺眼。另一位是他们的VP,也是负责回答问题,控制进度,查看学生做练习的。我们一个班,大概10多个学生,都是从不同组凑过来的。大家都纷纷介绍了自己项目,很自豪。我发现来的程序员分成了两个阵营。红方就是我方,属于JAVA阵营,蓝方是微软那套.NET阵营。双方互相看不起对方,也有悄悄向对方转型的,打算脚踏两只船,以后见风使舵。 

培训是关于一些自动检测的方针,自动检测的工具等等。上面想让我们把这部分做好,加强我们写的软件质量。很久没有做培训,发现目前IT行业还是与时俱进的有些新名词。比如,今天学的就是TDD,全称为Test Drive Development,当然还有BDD。这个老师喜欢捉对写程序的方式。我也喜欢,因为可以一边聊天一边写程序,还可以显摆一下自己聪明的地方。而且,主要是承担责任的人,一下就多了一倍。不过,最好还是能和聪明人配对,要不还是自己累。 

我们练习了一种叫乒乓球模式的写程序方法。这个真是好玩啊,不过效率其低。比如,我们练习写一个做阶乘的程序。要一个人先把测试程序写好,另一个人写真正的程序,但是只要写到刚刚能够让这个测试程序通过就可以了。然后这个写程序的再写一个测试程序,让测试程序失败。然后让头一个人在去修改原程序,然后再写一个测试程序,也让测试程序失败。就好像打乒乓球一样,你推我挡。直到最后一个人,实在懒不下去了,写好真正的程序。这样测试程序已经在这个过程中全面建立,而且双方都用了脑子,想到了很多种可能的情况。 

和我配对的是以前我们一起做过一个特复杂问题的另一个组的.NET程序员。我们一听这个比试聪明的办法,就叫上劲儿了。这个和大家玩过那种搭积木,每次抽出一个方块,看谁把这个积木最后弄倒谁输的游戏一样,就看谁写不出很多很多if else,必须写真正的代码了。我和这个.NET的程序员推挡了至少7个回合,最后还是以他先低头了告终。我们还为阶乘可不可以用负数争执起来,我说不可以用负数,他说是可以的。官司打到老师那里,老师推荐清官Wiki,再仔细阅读了Wiki的定义之后,他心服口服的认输了。 

这种培训都很讲究互动,老师每讲一段就让大家做练习,还总结一些我们应该接着做些什么,少做些什么等等。大家都写了小条贴到前面的白板上。老师一个个读给大家听,采纳建议。在一个我们应该更多的有什么的栏目下,竟有人写了:我们要更多的好吃的,要提供我们免费午餐。这本来是我的风格啊,看来这个班里真是卧虎藏龙不少喜欢吃的人。结果,老师看了这个条子,想了想,说周四带大家去好好吃一顿,他们公司请客。班上一片欢呼雀跃,觉得民主就是好。 

培训还是学到了很多东西,班上有些同学知道很多偏门黑道的技术,让人叹为观止。学无止境,的确如此。 



[ 打印 ]
阅读 ()评论 (21)
评论
明亮 回复 悄悄话 我去我们楼下的那家。呵呵。差不太多吧。punny你去过黄石公园吗?
punny 回复 悄悄话 你去哪家clyde啊,好像menu都不一样的诶
明亮 回复 悄悄话 Outlier,嗯,你说得很对,练习其实可以,但真正要写程序,推档打和平球,这个程序永远写不完。但这其实是教你一种思维方式,就是先攻后守,所有攻击都能化解了,内核也就robust了。而且,这个用在unit test多。真正用在functional test还是少。
做test其实是门学问的,行行出状元的。最重要还是要学深学精一些。市面上还有很多关于测试的书,讲得也很科学全面。做软件难得是理论和现实需要平衡。大家都知道完美的应该怎么做,可实际解决,全都受各种限制,执行起来就不是那么回事了。
Outlier 回复 悄悄话 这个乒乓球模式的“游戏”好玩,甚至可以打“和平球”,这样可以永远地推挡下去。不过,难道这种设计测试程序的方法是真在被用吗?似乎觉得testing是很有意思的一个问题,但是好多人第一份工作拿到tester,都愁眉苦脸的。

阶乘可以推广的,程序就没有那么好写了。

回复sorrowman的评论:

:) 你看样子在干很fundamental的东西,我是一点都不懂得。但是,如果你要做一个什么graphical visualization的,我可以给你一些pointers。比如, OpenGL 当然可做 orthographic projection,更简单一些。

关于阶乘是不是可以有负数,你的对手如果是学数学出身的,也可能可以解释。
sorrowman 回复 悄悄话 非常感谢!!!
明亮 回复 悄悄话 sorrowman, 你看看这个link:http://www.china1000.net/downinfo/9819.html 你还可以找找别的软件也能做的。

呵呵,Mousa,我觉得写程序大多都这样的。

探长,你可以有以下选择,1,写个小程序,实时监控这个你要去的博客,用httpstream 传回来contents,比较更新,送出个alert,可以发你邮件,然后你抢沙发。先进一些的,还可以自动post你的占沙发评论,甚至可以每天用不同评论占沙发。
2. 掐着孤草的脖子,让她告诉你沙发出来了没有。:)

阿贝,我新学了个dynamicProxy,貌似很有用。:)

punny,我们决心去clyde大吃一顿了。我这就预订。回来向你汇报战果。

墨浅,呵呵,是啊。不过不好一对多,那真成了天桥卖艺比武啦。:)

墨浅 回复 悄悄话 真热闹。乒乓球模式最好玩。有没有多方混战:几个人写测试程序,一个人写真正的程序,要逐个单挑?
punny 回复 悄悄话 嘻嘻,明亮就那么"轻描淡写"的把人家给PK掉啦,这个过程肯定也很带劲吧 ;-)
周四可以大吃一顿,好!回来汇报一下哦。
p.s. 我小时候最喜欢玩这个抽积木的游戏了,还有游戏棒 :)
阿贝 回复 悄悄话 回复明亮的评论:

我爸爸妈妈快要回去了,5555~~~
这样的培训真好玩儿,明亮好厉害,两次让你的partner认输。我对你们课堂间交流的偏门黑道的技术有很强烈的好奇心。:)
agentsmith 回复 悄悄话 有没有关于如何占沙发的偏门黑道的技术啊?:)这篇很有趣,呵呵。
白云下的橄榄树 回复 悄悄话 哈哈,跟数家珍一样. 看来你在做你很感兴趣的工作. 写程序很累脑细胞, 等你妈妈来了真得给你做点好吃的. 每天盯电脑, 眼睛和脖子一定酸得要命.
Mousa 回复 悄悄话 我也是“晚来晚走”。作什麽事都没有当过“早起的鸟儿”。
明亮 回复 悄悄话 呵呵,橄榄树,你说得这几种语言我大概都用过。最早是C,后来出现了object oriented在C基础上C++大行其道,而C++复杂的memory allocation管理,thread管理等等,不如后来出生的JAVA 更灵活方便。但Java当初一直被认为performance不行,好多重要后台系统都不用Java,依旧用C++,甚至C。后来出现J2EE,发展了java可以用在enterprise的application上。而.NET是微软跟大家open standard对着干的,这个平台的确也有很多优点,又是一家控制,于是避免了一些争吵浪费在standard制定上。
做系统之前一定要先做构架,好的构架要有open,flexibility等等特性,大系统里面会有小系统,再往下分模块。每个模块也要有好的设计,容易读,容易改动,稳定等等。做好一个系统,和建一个漂亮的大楼一样,可以有自己的“艺术”风格的。:)
明亮 回复 悄悄话 呵呵,孤草,学了不用就忘脑后了,也没真正学到。当然最好要用了。要没用的,干脆就别学了。你放心,耐心地等,夏天还会卷土重来的。
白云下的橄榄树 回复 悄悄话 明亮,一个女子写程序,不简单啊. 问个问题,那C语言或C++ 和JAVA , .NET 有什么区别吗? 写代码之前,是不是先需要架构啊?
孤草 回复 悄悄话 夏天太短了,就好像这样好玩的培训,总是很快就过去了,然后就又要做牛做马的干活。

我很喜欢去参加培训,学习新东西总是好的,不好的是要学以致用。
明亮 回复 悄悄话 孤草:我看你最近吃喝玩乐真是幸福啊。你别抱怨秋天了,你过夏天的时候,我们忍了很久很久啊。
还有阿贝姑娘,上次见了没好好说上话,你父母也要过来了陪你了啊?恭喜。还有别气孤草了,她本来就林黛玉,回头她悲秋嗑血咱们可是担当不起啊。:)
孤草 回复 悄悄话 沙发!
登录后才可评论.