中国电信实习结束

长达一个月的实习就这么结束了。。。。

我常常在思考,这个月我学到了什么。虽然我做的事情还很少,不过有两重原因,一是中国电信作为一个国企工作强度本来就不大,二是我作为一个实习生分配的任务本来就不多,因为经理的任务也不多。

国企原来是这样。

将近一半的时间都待在办公室,可以做任何事情;即使出去也可以做任何事情,包括私事;早上可以为了过早开车到堤角去吃牛肉面;然后去营业厅办点事情(交个表,谈哈话……)就回公司;中午睡觉;下午坐到3点再出去随便做点什么,也可能不做什么;然后回公司;最受欢迎的游戏—连连看,后来我去了后就变成红警;办公室电脑不能上网……

上面是看得见的,还有看不见的。

原来经理们的表面和气其实内心并不一致;原来销售不需要太高的文凭;原来业绩第一名的是采取“稳准狠”的违规操作;原来最努力的而且结果也不错的经理会因为绩效评估的“计算方法”落到没有奖金;原来有时候一句“对你有好处”的话其实是让你给讲话人好处;原来政策会时时改变但不变的目的是扣你工资;原来领导也可以说话不算数;原来……

原来看不见的才是我的最大收获。

不管怎么样,虽然实习没有任何的酬劳但是让我体验国企的工作环境以及办公室文化还是有所帮助。

国企是这样的。一个不太适合奋斗的环境。

Object Interactions–对象互操作(下)

方法签名:用来指代方法头中可被调用代码所“发现”的方面。简而言之,就是不包括 参数名 和 返回类型 的方法头。

比如:


Delegation 委托
如果对象A为了满足某个请求,而寻求另一对象B的帮助,就被称作A对B的委托。
简单说,如果A调用B的方法,那么就是A 委托 B做件事情。

那么如果引起对象A执行一个方法的代码,称作对象A的客户代码。
就是说,哪里调用对象A的方法,哪段代码其中包括对对象A方法的调用,那么这段代码就叫对象A的客户代码。

信息隐藏:就是只提供服务或者方法头,但是不告诉客户代码执行这些服务的内部细节。

可访问性(Accessibility)
C#提供的五种关键字:public , private ,protected , internal , protected internal
在声明特征时没有明确指定其可访问性,则会拥有默认值 private .

在类方法中访问本类的特征只要引用其名称即可。

Pascal命名法 增加一个公共attribute的名称。

那么从客户代码怎么去访问私有attribute呢?
有两种方法:取值/赋值,property
eg:


我们有3种例外不对attribute提供公共方法。
1 。attribute 只进行内部整理工作所用。

2. 有些方法也只用于内部工作。比如 private void DoSth(){…}可能会改变关键值,而这个方法只能被该类下其他方法调用,不能存在于客户代码中。

3. 不是每个私有 attribute 同时提供取值器和赋值器。
不如你要提供一个attribute为只读。那么只用提供get取值访问器。而不给客户代码set的机会。

在软件工程维护中,尽量只改变方法内部的细节私有部分,而不改变方法头,这样可以有效避免连锁反应。因为要知道一个应用程序可能成千上万的地方引用方法头。如果你改变类里面的数据结构即方法头的话,那么你在维护的时候就够受了。

通过编写自己的构造器可以对类进行方便为类设定默认值。

“无网周”圆满结束

说起无网周,其实很简单,总觉得自己一天到晚在网上面,可是一关电脑又回忆不起来面前那还有温度的显示器曾经显示过什么,总就是在上面闲逛,而且是无目的的闲逛。

于是,想脱网一周,看看什么感觉。以前人不也没有互联网吗,还不是过得好好的。

确实,这周过过来没有什么遗憾,也没有像电视剧里面的那样没有互联网要抓狂。白天上班,晚上看书,这么说来很多书都买了没有看。书看累了就去看电视,其实电视节目比互联网还要精彩,真的,只是以前没有发现。其实严格说来,也没有完全脱离互联网,只是偶尔要看哈邮箱,没办法,要和一个只知道邮箱的朋友联系。

不过,总的来说目的达到了。最浪费时间的事情就是:在互联网上无目的的闲逛。无网周验证了此观点的正确性。

昨天晚上,和XFly约好上线传个程序给他,于是就上QQ了,留言还真不少。准备传完了就下的,因为昨天还是周末,无网周还没有过。但是又一想,何必呢?既然目的已经达到何必怎么死板呢?

于是便开始了互联网的新生活……

做“锁”有的事

昨天晚上跑出门,跟朋友买生日信封。遇到一辆自行车,非常有特色,是“急开锁”老板的车。


把自行车的后备箱改装成一个锁的样子,走到哪里都知道骑在自行车上面是修锁的。后面的那个做“锁”有的事巧妙的应用了“做所有的事”谐音,有创意啊。


P.S.:因不知名原因,决定断网一个星期。这期间不能上来了。

Good Bye CET6

场景: CET四六级考试中心总部
时间: 2006年某月
事件: 两位领导级人物A和B的对话
地点: 某5星级酒店
内容:
A: 根据教育部的最高精神指示,要求我们对四六级考试进行改革。

B: 四六级考试挺好的啊,改了麻烦,就这样,每次通过和不通过的人依然还是呈正态分布。

A: 恩 话是这么说,可是我研究了一下特别是6级,考题有很大的弊端。

B: 你怎么知道的啊?

A: 据说啊 ,武汉有一位大学生,CET4级作文没写完就一次性通过,而六级考了居然3次都没有过。像这样极富潜力的学生会出现这种情况,应该引起我们全国CET领导的高度重视和极大关注……有消息称,这起个案已经惊动了教育部,怪不得今天“精神”下来了。

B:恩,那出现这种情况,还了得。我们必须改革。不过,我没有发现具体的问题。你说说看怎么改?

A:首先是听力,听力这块的份额太少了。现在推行全民学英语的热潮,马上08年奥运会,外国人跑到咱中国来,肯定对中国的地方不太熟悉,一不熟悉肯定要问路吧。所以这么一问,首先考察的就是咱们国民的听力素质。

B: 相当于每次外国人一开口,就意味着一次听力测试的发生。哇卡卡

A: 恩,知道你最喜欢考别人弱项,然后自己在底下偷笑
(A心里想,我怎么跟这个BT一起工作啊)

B: 恩,那确实。所以如果外国人一看,哦不,一问,我们都说“Pardon?”,那还了得。到时候中央怪罪下来国民的英语素质不高,肯定也到头来责怪我们的CET考试不行。

A:到时候我的奖金肯定也被扣。

B: 所以撒,加大听力力度是肯定的。什么情景对话啊,短对话,长对话,堆起来搞,还加上讲故事选择,怎么样?

A: 这哪够啊,这完全没有考到位啊

B:啊,这还不够,你还要怎么样?

A:起码也要加上一个听写啊,别人做选择题总有概率对吧,我一听写,嘿嘿。
(A想,怎么我也被他同化了,难道BT可以传染?)

B:哦 那就这么定了,听力可以了,阅读呢?

A:阅读方面以前老6级也是很大的弊端……

B:我看还好列,5篇长阅读,一下可以拉开档次

A:哦,你也知道可以拉开档次,但是5篇长阅读一下来,学生们容易迷失进去,人长时间注意到一些不容易被
注意到的问题,大脑容易变糊。再加上你带的那些变态出题小组问的问题也怪,答案都没有绝对对和绝对错的。要同学去分析,选项里面的那句话是对的成分多还是错的成分多,然后根据对的成分的比例排序,最高的就是正确答案。

B:这样已经非常科学了啊,按照数学概率统计的方法,绝对没有问题。

A: 你可别说,这样网上早就骂开了。有的题目别人排除法筛掉2个答案,剩下2个答案,可是那2个答案就模棱两可,从这个角度来说这个选项对的,从另外一个角度来说那个选项是对的。

B:对头,我就是要考考看大家和我想的角度是不是一样的。不一样,对不起没分;恰巧一样的,恭喜你加10分。要不别人说英语还是要点运气,就是这个道理。

A:阴险拉~
B:接着说

A:好的,阅读篇幅应该减少,不然你那样太多人抱怨了。记住唐太宗说的一句话:水能载舟,亦能覆舟。你把别人都搞烦了,那些作弊的销售商生意就来了。那么我们的考试可信度就不高了。现在,南极ABC共和国,北冰洋XYZ王国已经不承认我们的CET考试了,现在正往联合国申请呢。

B:那确实~~减阅读
……
(A B两位领导聊天至凌晨)

所以呢,呵呵,托这两位领导的福,这次我终于过6级了。
首先,感谢应涛先生,我的大学英语启蒙老师,曾亲手将我带过4级。
然后,感谢王长喜的英语预测卷,我考过3次六级,买过2次预测卷,2次真题卷。到第三次的时候,才知道具体该怎么去做卷子,怎么去消化,怎么去总结,怎么去达到“看得见的”进步。看来人必须要逼一下才行滴。
最后,感谢97.8MHz 每天晚上9点的English Evening。感谢兰兰和马克,是你们让我的听力得到了高分。

Good Bye CET6,Good Luck,Great Success!

P.S.:我的四次准考证。

又见军训

今天跟经理到中国人民解放军通信指挥学院办业务,经理一个人上去了,留下我和朱经理在车里面,正好看到武汉63中学的初一同学们军训,拍了几张。



太阳还不是很辣


初中都开始军训,看来现在的教育界,国防意识越来越好了。不过唯一让我疑惑的是,现在的家庭条件越来越好,怎么初中生平均身高都不高,甚至可以用矮小来形容,不知道是不是饮食习惯有关。

看着他们那些稚嫩的身躯,我感觉自己已经完全是个大人了,和朱经理坐在旁边已经感觉不到任何学生的感觉。

这时候,他们休息。他们也坐在我们旁边。我当时在旁边正在看长江商报,一个学生拖着看似羸弱的身体过来,

“叔叔,能不能借张报纸我坐……”

看来我真的大了。

P.S.:后来一想,我比他大9岁多,也可以叫叔叔了。

Object Interactions–对象互操作(上)

一个OO应用程序其实是一些对象协同作用来完成服务的。而要让这些对象互相协同工作,需要有个事件去驱动他们。

对象的方法可以看作是该对象能够执行的服务。要对象A向对象B请求服务,A需要做到以下几点:
1. 方法名
2. 参量
3. 返回值

先看方法头(method header),他可以让这三方面沟通起来 。


方法的返回类型可以为任意类型,包括用户自定义类型:比如


为后台逻辑编程,提醒如何执行请求的服务,为方法体(method body)

较好的编程习惯是在一个方法体中仅包含一个 return 语句

我们可以把 x.method_call(…)看作是“和对象X交谈”,“和对象X交谈,要求执行特定的方法”
比如 让IE写作业,让 Maxthon 打篮球,让 Firefox 踢足球。可以这样


598路小感

我们要照顾好员工,
他们就会照顾好客户,
进而照顾好我们的利润。
----亚洲最佳雇主UPS(联合包裹亚洲区总裁)


今天坐598回家,沿路经过杨汊湖(临近终点的一站),一人站在门口,问司机“到不到将军路”,本来那位女司机说一个字“到”,或者干脆点个头就可以了。但是那位女司机反问一句:你第一次坐598?然后开始以不耐烦的口气说,每天坐598还不晓得到将军路,每天问,也是不嫌累。那人上车后,车开动。司机依然叨唠了2句后,说出了心声,这热个天什么补贴都不给……(边说边拿扇子扇)……后来又到一站,别人问XX地方在哪里下?司机又不耐烦地说,我不晓得这地方那地方,我只晓得到站我停车完了。最后车到将军路,我下车,又有人问,请问师傅是不是到将军路了,她回了一句我没听到(我已经下了车)只看到问话的女乘客飞快下车了。

虽然司机每天开这条路,但是偶尔会遇到乘客第一次坐这趟车,不熟悉,问路很正常。她居然搞句,每天坐598还不晓得将军路……老大,您是每天坐598,但是不能保证每个其他的人也是每天坐598撒。别人问XX地方,如果您真的不晓得,您可以说不知道,但是我想作为一个司机,别人问的地方一定是打听过的某个站旁边,既然这样,“每天坐598”的司机不会不知道。但是还好的事,她说出了本案件的关键:公司好像没有因为天热给她补贴。

正如开篇所说,雇主照顾好员工,员工才能照顾好顾客,顾客才能照顾好利润。首先598路是个车辆少车程长的线路。而且车辆都是统一的非空调车。夏天热还不说,如果公司不发天热津贴的话,再退一步,即使不发钱,在起点站为每个司机准备一瓶冰矿泉水或者绿豆汤也是可以消减员工的不满情绪的。但是遗憾的是598路没有这么做,导致员工上班没有一个好的情绪,再加上如果员工EQ比较低的话,不能很好地管理自己的情绪,那么情绪就很容易转移到乘客身上。

598这条线路给人很大的方便,而且没有和他相似的线路。所以每天坐598的人很多。但是如果是企业间的商业活动,员工对待客户不好,很有可能会导致客户的流失。最重要的一点,顾客接触的只是公司的员工。KFC里面给人最多印象的是说“请到这边来点餐”,而没有人知道KFC中国区总经理长什么样;人们只觉得中国电信营业厅里面的营销小姐很热情,但没有几个人知道最高位置站的人叫王晓初;给人们留下印象的是迪士尼乐园的到处的工作人员,而不是迪士尼的老总叫什么名字……所以说,员工直接代表了公司的形象。给员工合适的培训是必要的,更重要的是在物质和精神上去奖励或者说鼓励员工。只有这样才能让公司的衣食父母们满意。

Objects and Classes–对象和类

在前一章节,我们了解到了抽象是用来创建一个真实世界的模型。而在这个庞大的模型体型中(也许不庞大),里面的组成元素就是对象。在现实世界里面,有很多对象,分为物理的和概念的。物理的是什么,学生,教室,课桌,图书馆;而概念的呢,课程,院系,学生会。这些统称为对象。那么正式点的软件对象是什么呢?

软件对象,是一种将状态(数据)和行为(操作)合成到一起的软件构造,用来描述真实世界的一个(物理或概念性的)对象。

状态(State)/Attribute/数据(Data)
For example:记录一个学生的信息,需要以下数据:学生姓名,学号,生日,住址,主要研究方向,累积积点,导师是谁,本学期要修的课程,已经修过的课程,获得的学分,课程分数。
那么记录一个课程的信息:课程编号,课程名称,先修课程,有效学时,最多人数,带队教授。

那么其中的每一项就称为Attribute属性。因为容易与所以.NET里面的一直特殊的编程构造attribute搞混。所以在.NET里面经常用field来代表属性Attribute.

行为(Behavior)/操作(Operation)/方法(Method)
For example:
学生 和 课程 都有各自的行为
比如学生 : 选修一门课程;推选一门课程,选修主修方向,选修导师,显示自己的GPA,显示自己已经选了哪些课,哪位老师上的课,以及得到的分数。

而课程也有自己的行为
比如允许学生选修,判断指定学生是否已经选修,告诉你已经有多少人选修,告诉你先选修什么,告诉你哪位教授带这节课……


我们把对象的行为或称操作,定义为用以访问对象的attribute和修改/维护attribute值的方法。

我们可以看到:每种操作都与学生一个或多个attribute有关。

类(Class)
类描述了一组相似对象的共同特性。
类定义了以下要素:
1. 定义了对象所需要的数据结构(attribute 的名称和类型)
2. 这些对象要执行的操作,尤其死哪些操作,描述“方法(Method)”是如何在后台执行这些操作的。 HOW?

实际上一个类定义中能找到的东西,要么是类的attribute,要么是该类的方法。

Pascal 命名法 :每个单词第一个字母用大写,所有单词直接连接。用与: 类名 方法名
eg: CourseCatalog RegisterForCourse
Camel 命名法: 第一个单词以小写字母开头,后面跟随的每个单词以大写字母开头。用于: 变量名 attribute
eg: studentId courseLoad

类就相当于对象的模版,对象就是类的一个实例。类里面定义了有哪些attribute和方法,而对象里面的每个attribute值都已经给出,方法可以调用。

如何将对象实例化:
比如有个Student类
那么下面创建一个Student的对象。

程序代码 程序代码
Student y = new Student();

那么其中的y称为 引用变量。相当于指针 ,用于指向内存中实际存在的对象,并且可以展开操作。
引用变量也可以像指针那样互相传递操作,不再赘述。

最后一点是,作为一个对象的attribute的值也可以是对象。变量类型为所要引用的对象的所属类名。
这样有个好处,只要保证很多对象中的attribute的引用变量一样,那么“一改全改”,不用“处处改”。

今天只学习了用户的自定义类型。
下面还会学习 继承 和多态

1M还是1.5M?

这已经是昨天的事情了,昨天早上独立接待了第一个客户,她问我关于要办宽带的事情,我跟她解答,然后她又说她要办电话,于是我建议她办“我的e家”。然后她又问这问那,感觉就像我们这里会骗人一样的,再加上我业务不太熟练,不清楚办理“我的e家”手续费多少,于是她就不太信任的说,是不是这个收费啊,不是这样的找你负责啊……我打电话给经理,过会儿经理就来了,她依然是问这问那,搞的经理没有办法,本来推荐她先办宽带再办电话手续费低一些……结果,就这样办了算了。

这是因为经理有事,我第一次独立接待客户,再发现自己的业务必须很熟悉才行,否则遇到像这种客户你是没有足够的底气从容回答她的问题的。

下午,我们都午睡。大概2:10左右,门房来叫说有个客户要办宽带。经理迷迷糊糊地就叫我去办。我也迷迷糊糊地安排他们父子俩就坐了后就开始聊。宽带业务我很熟悉,他一来就问要办1080的,我一听晕了,哪有1080的啊。再一问,发现是1008块的,就是900包年+108手续费。结果要身份证复印件,那位爸爸就出去了。留下他儿子跟我聊,他儿子看起来是高中生,经常在家BT电骡双开,据说这样可以让资源利用最大化。然后他说要办1.5M的。结果爸爸一回来啊,爸爸说要办1M的,说他不经常回家,平时只玩1-2小时。结果我跟他挣扎了一下后还是办成了1M的。

事后,我很琢磨了一下我做成功的第一笔业务。我觉得当时我没有展现出销售技巧,让他多买点东西。因为在他爸爸眼里99元的0.5M一年只相当于口袋里少了一张100的,除此之外没有什么了。我应该让他爸爸和他分开谈,先让他谈,让儿子发自肺腑的谈900元1M和999元1.5M哪个划算。其实不用说,对于他这种双开P2P软件下载的人,多99元让一年的时间里多70KB/s的下载速度是非常划算的。然后,再问他爸爸,应该跟他嘴下,说儿子这么大了。装宽带是属于家庭的财产,应该尊重宽带的使用者–儿子的选择。这样儿子也会自立起来……

经理还是比较满意我的这一单。看来做业务是要积累起来的,不能每次事后诸葛亮,而要把每次总结运用到下次。

是1M还是1.5M,您还是多考虑下吧……