预备队成立大会会议记录byttlee

注:ttlee是我做教练的时候的第一个女生,当初她加入预备队时的申请书写得非常漂亮,但很可惜她最终由于兴趣问题离开了团队,非常感谢ttlee给我们留下了这篇详尽的会议记要,虽然已经过去近两年,但一切尚可回味,如果ttlee有幸看到这篇帖子,你会记得起当年的你吗?

发信人: ttlee (ttlee), 信区: dianprep
标  题: dian预备队成立大会会议记录
发信站: 喻信星空 (2004年11月08日16:37:07 星期一), 站内信件

会议时间:2004年11月7日晚18:45
会议地点:西五楼206
应到人数:13
实到人数:10
主持人:xbull
会议记录:ttlee
    会议的开始由主持人xbull欢迎了大家加入dian这个大家庭,并且就"培训目的","Dian的性质","培训内容","对个人的定位"四个方面分别做了以下论述:
1.培训目的:寻找方向。
xbull先从个人的经历指出许多大二的学生很茫然,大一或许由于高三的惯性还好好学习,但是到大二会懈怠和丧失方向,许多人都会觉得自己所过的生活并不是自己想要的生活.Dian就可以给大家这样一个方向.同时为DIAN的一线队培养高质量的后备力量。
2.Dian的性质:培养精英的团队.
xbull特别强调是"培养"而不是"精英"的团队,意即告戒大家初进时觉得自己许多东西都不会不要紧,重要的是出去的时候成为精英.并且还分析了dian与普通社团的不同,普通社团多是自发的,但dian是真枪实战的接客户的项目,是有需求的,要承担责任.
接着,xbull就"何为精英"谈了自己的看法:
(1).有良好的态度!态度决定一切.
(2).学会独立思考且解决问题的能力.不仅要是能力,更要是习惯.许多东西在不深究的时候并不能发现其背后更深入的东西.
(3).与人交流的习惯和能力.
3.培训内容:驾驭C语言的能力.
在这次会议上,xbull布置了本学期预备队员的作业:
内容:用C语言模拟桌面型数据库管理系统对表的操作,包括查询,修改,插入,删除,排序等基本操作和增减字段,数据加密等高级功能.
具体要求:
*不推荐使用Windows图形界面,使用命令行输入,注意对非法输入的处理和
提示信息.
*自由设定表的内容和结构.
*数据必须从外部输入.
*算法选择.最好把数据结构课程的内容结合起来.
*代码规范化.(这一点dian老师也着重强调,并且说解决这一问题刻不容缓!要求大家把代码规范化问题摆到一个足够的高度来认识!)
*不要有两个函数的长度超过100行代码,代码注释不低于30%.
4.对个人的定位.
xbull表示对于预备队队员的问题一定耐心细致的解答,有问必答.并且表达了自己想大家跟他成为学习和生活上好朋友的希望.
会议的最后,dian老师给出了三点补充:
1.要求严格.虽然预备队成员可能是低起点,但是要求一定要严格,而这种严格的目的只有一个:把大家培养成为精英!要大家都有良好的承受能力,因为在这里你的代码会接受所有人的评审,大家会尖锐,深刻,一针见血的提出你的问题.当然这些对于个人的进步也是很有帮助的!
2.培养讨论沟通的习惯.每周日晚上的例会必须雷打不动.只要有两次未参加例会的同学视作自动退队.并且希望预备队队员有良好的与人讨论沟通的能力,在沟通中学习和成长.讨论中做到你优秀但不骄傲,你基础稍差但努力提问.
3.预备队的前途.成熟一个发展一个.要由教练考察个人的业务能力,人品,态度,工作习惯和作风.并告诉大家:好的态度会赢得机会!希望大家不急不躁,是金子总会发光的!
会议在大家对dian预备队生活的期待和信心中圆满结束!

※ 来源:·喻信星空 eibbs.dhs.org·[FROM: 222.20.73.204]

预备队讨论会记录(2004.11.14byliyong)

发信人: liyong (liyong), 信区: dianprep
标  题: 点预备队讨论会记录
发信站: 喻信星空 (2004年11月14日22:53:44 星期天), 站内信件

点预备队第二次会议记录
时间:04/11/14
地点:西五206
参会人员:刘玉老师,颜庆华教练,预备队全体队员。

会议内容与议程:讨论,交流预备队作业

1. 作业时间安排与任务计划。
2. 肖振宇同学发言
3. 李勇同学发言
4. 老师,教练点评,总结。

一、学习时间安排及任务计划
      1.12――13周:学习领会代码规范相关资料
               14周:开始作业
      2.检查督促办法:
           1.  准时提交周报。
           2.  分批量检查完成情况。

二、肖振宇同学发言(技术指导)
      1.  解题
          逻辑结构:线性结构处理链表。
          存储结构:结构体设计,十字链表及相关操作。
      2.  加密算法自选。
      3.  文件INPUT与OUTPUT 的处理
          在文件开始处存储结构体,链表等相关信息,方便只把链表的数据域存入文件中(不保存链接地址信息)

三、李勇同学交流自己的一些想法
      1.对自己的要求
      2.可能遇到的困难与希望。
      3.具体的时间表的安排。

四.点评
      颜教练:   
      1. 作业相对繁琐,一定要做深入思考
      2.在处理链表时要”慎待”指针
      3.内存分配与回收问题
      4.勇气于人生很重要,肖振宇和李勇今晚的表现值得肯定
      5.完成作业时要了解软件设计的全过程也十分重要。

      刘老师:
      1  一定要在预备队中形成讨论气氛
      2.在点团队里干学技术?NO!!!要学习提高自己的综合能力与素质。(体验开发项目工程的全过程,         重视点提供的交流机会,快速提高自己的开发能力与水平)。
      3.肖振宇同学–谦虚难得,值得大家好好学习!!!
      4.要大胆的say自己的想法.

※ 来源:·喻信星空 eibbs.dhs.org·[FROM: 222.20.74.206]

谢谢大家关心我的牢骚

       其实我自己语气也有点问题,要别人帮忙的时候,一定要态度诚恳,语气和缓!
       前几天wephone把我推荐给一家公司,给我打了好几次长途,想得很周到,wephone不愧是个军人,非常讲感情的一个人,我有种难以拒绝的感觉,而且我的确喜欢这样的机会,人家也对我比较感兴趣,不过我深知孤军奋战的辛苦,所以我就跟wephone说,什么时候他要是转业了,出来我们一起干,他也考虑过这样的可能性,只是有点身不由己,暂时还只能是在计划阶段吧。这两件事情几乎同时发生,所以我不由得特别生气。我希望我们不管在学校,还是步入社会,都要团结,只有团结,我们才可能一起做大事。我们是有战斗力的队伍,即使步入社会,我们也要继续团队的事业,我希望团队不是在培养一批高级打工仔高级打工妹,我们要有自己的事业!
       我相信这一天终将到来!

资源掌握在别人手里,你就只能徒叹奈何

说明:文中跟我聊天的,是我相当不错的同学(所以我和他说话或者说他和我说话都毫无顾忌,随便瞎说),也是团队出去的,昨天我向他打听他们公司的一些情况,结果搞得很不爽。也许我的确应该直接到网上查的,但是有人在那公司呆着,说出来的话肯定更可信,更真实(我上网查过,众说纷纭,不知道该信谁的),更何况我们好歹堪称一个团队的,如果连点人脉关系都攀不上,那这样的团队的队员出去还怎么混呢?VPN我知道是什么,但UTM倒是没听过,不过这也就是一句话就可以说明的问题,我想他自己出去的时候这些问题还不是不懂,有谁在学校做什么出去就能完全对口呢。嗯,不发牢骚了,凡事还是要靠自己,掌握资源的人,你让他多说一个字,他都会觉得你是在求他。

2006-09-26 21:12:03 小不点牛
人渣,有没有时间?  

2006-09-26 21:16:46 
好,有 

2006-09-26 21:13:21 小不点牛
你们公司爽不爽?研发有哪些方向? 

2006-09-26 21:15:32 小不点牛
死了? 

2006-09-26 21:20:02 
你想来,还要努力[screen.width/2)this.style.width=screen.width/2;>

2006-09-26 21:16:59 小不点牛
妈的,先问问,我没说我来啊,快说 
  
2006-09-26 21:21:30 
VPN,UTM…… 

2006-09-26 21:17:45 小不点牛
UTM是什么? 
  
2006-09-26 21:18:00 小不点牛
你们公司在业界是什么地位啊?有多少人? 
  
2006-09-26 21:22:55 
在国内属于领先水平 

2006-09-26 21:18:56 小不点牛
竞争对手有哪些? 
  
2006-09-26 21:23:18 
比起国外,还有一些差距 

2006-09-26 21:19:18 小不点牛
小不点牛 21:18:55
竞争对手有哪些?  

2006-09-26 21:24:14 
你又不懂这,说了你也不知道 

2006-09-26 21:20:31 小不点牛
你说咯,你说了我不就知道了 
  
2006-09-26 21:25:10 
唉,你上网一查就知道了 

2006-09-26 21:21:07 小不点牛
你告诉我不是很快吗? 

2006-09-26 21:25:37 
你上网查更快 

2006-09-26 21:21:45 小不点牛
我没有时间,你不说我以后就不理你了 
  
2006-09-26 21:27:08 
唉,你哪来那么忙啊?

2006-09-26 21:23:03 小不点牛
你爷爷一直这么忙啊 
  
2006-09-26 21:27:29 

2006-09-26 21:23:34 小不点牛
现在我在看公司,我想去中小型有前途的公司,我跟你认真的,你小子认真一点好不好 
 
2006-09-26 21:29:30 
那你应该自己先了解一些基本的东西,比如什么叫VPN,什么叫UTM,有哪些公司在做,每个大概怎么样。等你这些清楚了,你再问我 

2006-09-26 21:29:37 
我自己忙着呢 

原今天重新看了以前的帖子,发现自己好拽

    今天看到DianPrep上的帖子,简直不能忍自己了,发现自己好拽的样子,liyong、nevsaynev等牛人都未能幸免,难怪chenjianwu说我当了教练后就摆起架子来了。
screen.width/2)this.width=screen.width/2; >
    当时真是年少无知啊,我是和众多队友们一起成长的,我得到的远比我付出得多,感谢大家带给我的进步,同时也向曾经被我“拽”过的兄弟们道歉!

原是时候总结一下预备队的生活了

    最近经常很伤感,越来越留恋起学校的生活,越来越喜欢回味过去的生活,可能是自己还不够充实,有句话说得好,说是人的心脏分成了左心房和右心房,一个心房里住了天使,另一个心房里住了魔鬼,如果你不让天使常驻,魔鬼就会趁虚而入,占据你的全部,我似乎有点着魔了,呵呵。
    但是,有时候也在想,回味过去也不算坏,有总结才有进步吗!

    所以我想把自己担任预备队总教练这段时间总结一下,在这里留下我的回忆、教训和经验,希望可以给自己,给众多预备队毕业的兄弟们一点可以分享的果实,这里就先开个头吧。
    首先,我要感谢cactus和qja两个活宝,是他们提议建立预备队,而且是他们提议由我出任预备队总教练。记得那天,是我第二次去梧桐雨喝茶,大家没有办法说出什么具体的建设性意见,只是希望预备队可以成为二线到一线的一个缓冲池,希望预备队可以减轻一线队伍在培养人方面的压力。    
    第二天,dianprep版就成立,dianprep版第一帖就宣布了预备队的成立,并宣布了对我的任命:

    screen.width/2)this.width=screen.width/2; >

    故事就这样开始了…(注意,上面图中dian的签名档还只有两句话,^_^)

scanf、fgets和cin

    偶然一个机会,在linux下发现了这个问题,现在列举他们的区别:
    1. scanf用于格式化接受用户输入,他与cin区别不大,用惯了c的哥们肯定更倾向与直接用scanf做格式化输入。格式化输入是格式化输出的逆向过程,大家想象下面这个scanf会是什么现象呢?
    char s[40] = “12345678”;
    scanf(“%s
“, s);
    你调试一下就会发现,这个时候你必须敲两下回车,scanf才会返回,两个回车符中,第一个就是格式化串”%s
“中的
,第二个就是系统默认的字符串结束符。
    2. fgets用于获取文件流中的字符,注意,
当然也算字符哟,而且文件流不仅仅包括磁盘上的文件,也包括内存文件,标准输入(stdin)、标准输出(stdout)等等,在linux下,文件流更是包含了串口、网络、驱动程序等等抽象的输入输出接口。
    呵呵,别扯远了,看看下面这个例子,就可以很好的理解fgets和scanf的区别了:
    scanf(“%s”, s);
    cout << strlen(s) << , << sizeof(s) <<  ;
    fgets(s, 39, stdin);
    cout << strlen(s) << , << sizeof(s) <<  ;
    也许你会想,第一个scanf用于接受用户输入,用户敲回车后,第二个fgets会接受用户的另一个输入,但是结果不是这样的,比如你这样敲:
    > 123456回车
    那么程序会一直执行到第四条语句,如果单步调试,你会发现当你回车后,s首先为123456

循环是否一定该合并?(转载)

摘自《游戏之旅--我的编程感悟》

程序1:
for (int i = 0; i < 100; i++)
{
   do_something_1();
   do_something_2();
}

程序2:
for (int i = 0; i < 100; i++)
{
   do_something_1();
}

for (int i = 0; i < 100; i++)
{
   do_something_2();
}

    如果do_something_1()和do_something_2()这两个函数没有关联, 则程序1和程序2的运行结果相同.哪个程序更好?  或许有很多讲究效率的程序远喜欢第一种, 很多人喜欢在一个for循环中干太多的事情, 或许他们想当然的认为, for循环累加i也是一种时间消耗, 如果能减少对i的操作也是一种优化.但实际上事与愿违,两段程序的性能比较取决于do_something_1和do_something_2的具体实现.

    如果两个函数都实现的很简单, 则通常程序1会比较有效率.而如果两个函数都干了较为复杂的事情,那么程序2会变得比程序1高效.导致这个结果的是cpu的代码cache机制.通常, 程序代码第一次运行的时候,速度会比较慢(比如for循环的第一次进入).这存在一个代码从内存加载的时间,代码用到的内存数据的加载时间、还有分支预测缓存的建立,甚至还有cpu对指令的解码时间(对于现代cpu, 为了兼容以前的指令集且保持高效率,在内部需要使用一套高效的微操作指令的同时,需要做从外部的指令编码到内部微指令的转换工作)。如果循环体内涉及到的代码超过了cpu的代码缓存的容量(通常是8k,到p4加到了16k),就使的循环中代码每次的进入都要重新作一系列缓慢的操作,如果我们能尽量维持循环内的代码在一个较小的尺寸,就能提高效率。

    如果do_something_1()和do_something_2()干的事情逻辑上联系不大,仅仅是想把两个函数各自循环调用若干次,则从软件设计角度讲,程序1也是个糟糕的设计。

今天被灌醉了

    本科班班搓,这群小家伙都很不错,已经连续两个学期取得了年级第一的好成绩,上个学期加权分上90的达到了5个,平均分达到84分多,真是太厉害了。
    所以我心里也非常高兴,能带这样一群优秀的学生,真是一种幸福,虽然我感冒了,但还是很努力的醉着,这是一种幸福的醉,畅快淋漓的醉。
    黄悦好强,喝得跟我差不多多,但还是这么强硬,似乎还能喝的样子,这位新班长进入角色很快,我们班以后肯定还有更佳表现。
    年轻人,最重要的是自信,我已经感觉到了他们的自信,我相信他们可以做到更好。要做到这种自信有很多方法,一个高标准是最基本的,一开始就定一个高标准是有益无害的,人都是这样,当你把目标定在100分的时候,你最终可能只能做到80分或者90分,当你把标准定在80分的时候,你就只能做到60或者70分。我一开始就得给他们很高的目标,虽然他们刚开始最能做到80或者90分,但等他们积累一定信心之后,虽然他们的目标还是定在100分,但却有可能做出120分的成绩,这就是我带小家伙们的诀窍。
    我相信下个学期就是他们做出120分的时候了!

网络字节序和主机字节序(转载)

    谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是little endian呢?

    其实big endian是指低地址存放最高有效字节(MSB),而little endian则是低地址存放最低有效字节(LSB)。 
    用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:

Big Endian

 低地址                              高地址
   —————————————–>
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     12     |      34    |     56      |     78    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Little Endian

低地址                                    高地址
   —————————————–>
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     78     |      56    |     34      |     12    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    从上面两图可以看出,采用big endian方式存储数据是符合我们人类的思维习惯的。而little endian,!@#$%^&*,见鬼去吧 -_-|||

    为什么要注意字节序的问题呢?你可能这么问。当然,如果你写的程序只在单机环境下面运行,并且不和别人的程序打交道,那么你完全可以忽略字节序的存在。但是,如果你的程序要跟别人的程序产生交互呢?在这里我想说说两种语言。C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而JAVA编写的程序则唯一采用big endian方式来存储数据。试想,如果你用C/C++语言在x86平台下编写的程序跟别人的JAVA程序互通时会产生什么结果?就拿上面的0x12345678来说,你的程序传递给别人的一个数据,将指向0x12345678的指针传给了JAVA程序,由于JAVA采取big endian方式存储数据,很自然的它会将你的数据翻译为0x78563412。什么?竟然变成另外一个数字了?是的,就是这种后果。因此,在你的C程序传给JAVA程序之前有必要进行字节序的转换工作。

    无独有偶,所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。ANSI C中提供了下面四个转换字节序的宏。

    Intel 8080 和 Motorola 6800还有一个有趣的不同点:在两种微处理器中,LDA指令都是从一个特定的地址处装载到累加器。例如,在8080中,下列字节序列:

screen.width/2)this.width=screen.width/2; >

    将把存储在地址347Bh处的字节装载到累加器。现在把上述指令与6800的LDA指令相比较,后者采用称作6800的扩展地址模式:

screen.width/2)this.width=screen.width/2; >

    该字节序列把存储在地址7B34h处的字节装载到累加器A中。

    这种不同点是很微妙的。当然,你也可能认为它们的操作码不同:对8080来说是3Ah,对6800来说是B6h。但主要是这两种微处理器处理紧随操作码后的地址是不同的,8080认为低位在前,高位在后;6800则认为高位在前,低位在后。这种Intel和Motorola微处理器保存多字节数时的根本不同从没有得到解决。直到现在,Intel微处理器在保存多字节数时,仍是最低有效字节在前(即在最低存储地址处);而Motorola微处理器在保存多字节数时,仍是最高有效字节在前。

    这两种方法分别叫作little-endian(Intel方式)和big-endian(Motorola方式)。辩论这两种方式的优劣可能是很有趣的,不过在此之前,要知道术语big-endian来自于JonathanSwift的《Gulliver’sTravels》,指的是Lilliput和Blefuscu在每次吃鸡蛋前都要互相碰一下。这种辩论可能是无目的的。先不说哪种方法在本质上说是不是正确的,但这种差别的确当在基于little-endian和big-endian机器的系统之间共享信息时会带来附加的兼容性问题。