多年前的一封邮件

多年前的一封邮件 昨晚在整理邮件,翻阅到这样一封邮件,它来自我的老师郭军,曾经教我COP(面向组件编程)课程的老师。这个邮件的始末是这样的,郭老师在课上扯到了一道题,在现在看来是再简单不过的题目了,对于给定的n,要求只允许用一层循环,打印这样的星号(下例中n=3):

  *
 ***
*****
 ***
  *

因为只能用一层循环,所以当时是这样实现的:

	int n=3;
	int row,col,mid;
	for(int i=1;i<=(2*n-1)*(2*n);i++){
		row = i/(2*n)+1;
		col = i-(row-1)*(2*n);
		row>n?mid=row-n:mid=n-row; //相对于中间行恒正的行偏移量
		if(!(i%(2*n)))
			printf("\n");
		else if(col>mid && col<n*2-mid)
			printf("*");
		else
			printf(" ");
	}

现在看来似乎题目是没什么大不了,但对当时的我来说,课上在脑子里记下了题目,觉得好像可以解决,课后完成以后就发给郭军老师。没想到他给我回复了邮件,邮件说:

发件人: 郭军
发送时间: 9月8日 09:14
收件人: Ray Chase
主题: 回复:星号题目 一层循环 我的方法

很好!
对于平庸的开发者,这是个难题。对于优秀的开发者,这太过简单。
希望你能够永远保持一颗谦虚、向上、进取的心,并且能够和别人愉快地合作,做出一番事业来(不一定是大事业,但一定是有意义)。
郭军

邮件写得很简单,但是对当时的我来说,还是莫大的鼓励。工作以后发现,对于梦想的坚持,无疑是艰苦和孤独的。一封小小的邮件,确实可以改变一个人。

老师的意义在于传道授业解惑,但是老师难做地方在于,这个职业太容易对学生施加影响,无论是什么性质的影响。正所谓有心栽花花不开,无心插柳柳成荫,那些课堂上的故事未必记得太多,可是某些细微的举动,却能对学生有长远的影响。因此,那些特别优秀的老师,没有必要过于纠结他在课上的教学,不如看看他在课下、在业余时间是怎样影响学生的

反之,许多牛人、高手、顾问却只热衷于自己的小圈子里,对同样的知名人士热忱相待,积极互动,但是对于一些资历尚浅、身份普通的朋友却毫无兴趣,冷眼相待。要不就对于他们的来信和言论摆出一副老资格的样子,言行中充满强势和不屑。这兴许是这个行业的通病?

而另一方面,很多入涉软件行业不深的程序员,却自惭形秽,自嘲码农,觉得自己做着苦逼的简单劳动,觉得只是要混个青春饭吃。可是中国的互联网环境,终究要靠他们来拯救,而不是现在那些卖弄成就和故事的“成功人士”。我想,都是对软件的兴趣培养了那么多人,倘若给这些不够自信的程序员一个更宽松和更多支持的环境,他们会做出更有价值的东西来。而老师,有着不可替代的意义。希望在适当的时候,我也可以尽一份力。

教师节马上要到了,祝愿天下的老师节日快乐。

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接《四火的唠叨》

分享到:

3 comments

  1. west 说道:

    很好的老师!我特意过来顶

  2. 值得看 说道:

    文章确实不错,支持下先,欢迎您也来我的小站www.zdkan.com壬辰年(龙)七月廿五 2012-9-10

  3. 匿名 说道:

     
    自己写了个,完了才发现我其实还是用了二重循环。。。
     
    val n = 3
    var i = 0
     
    while (i < 2*n-1) {
      var step = i
      if(i>= n) 
        step = 2 * n – 2 – i
     
      print( " " * (n-1-step))
      print( "*" * (2 * step + 1))
      print( " " * (n-1-step))
      println()
      i += 1
    }
     

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Preview on Feedage: