2007-4-27

怎样有目的地掌握新知识

今天突然被一位美女问到此问题,一下子答不上来。也不敢乱答。怕误人子弟。我也是第一次认真地考虑这个问题。在这儿写的只供参考。大家可以一起讨论。这个问题的答案应该是很广的吧。我先写下我的想法。 我一直觉得大学里面学的思维方式比知识更重要。有人问我修双学位学到了什么?学过的知识我可能会很快就忘了,可我觉得最大的收获就是我有了一定的经济学的思维方式。好多人说上了大学,所学的专业知识在工作中基本用不上。这点我不否认。但我觉得我们受过专业系统训练的思维,在工作中默默地发着他的光辉。只不过思维这东西应该是潜移默化的。可能我们平时不易察觉到。于是,有些人对大学的教育便有置疑。思维这东西我也不知道怎么说。大家可能会说我在胡说八道。不过别砟我,这茬我只提一下,权当抛砖引玉,大家自个儿去体会吧。有了想法可得一定在“放‘心’的地方,留下痕迹”。

人本身可能是会有惰性的吧。看到新的东西有时候可能会有点儿畏惧。我在以前的日志里提到过我六岁的时候,我妈要我去上学,我硬是不去。我想常人应该都会这样吧。我想说的是接触新知识时,首先就得排除自已的惰性,克服那一丁点儿的畏惧感。以热情去拥抱新知识,当然更好了。面对新的东西,刚接触时,可能都会感到茫然。但是没关系,请坚信随着看相关资料,这种茫然的感觉会慢慢淡去。我们做SCILAB竞赛时,对其最基本的语法都不知道,所以一头雾水。但在我们看了几天文档之后,我们便可灵活运用该语言了。当然,有学过C语言的经历,有了一定的学习语言的思维,接触新语言便会容易上手。这时候你可以说那不就是套路嘛。是的,思维中应该包括套路。我刚开始做毕设时,对个人信用评估,人工神经网络也一无所知,我迷茫呀。我刚来夏新时,第一次听到Win CE这个词,我迷茫呀。可我现在知道了,我不能畏惧,所以我现在都不是很迷茫了。

刚接触到的东西,对其一无所知的时候,先对其做大概的系统性的了解。之后可分为两种了。第一种:如果是理论性的东西,我会从定义开始,规矩地从头开始学,注意细节。因为理论性的东西,前后关联一般都会比较强,前面没学好,后面就看不下去了。这样会郁闷死的。一步步扎实学下去,应该会越学越快。这应该是我们在学校里面经常用的方法吧。当然这种方法得花大量的时间进去。第二种:如果是应用性的东西呢。那我觉得应该先弄懂问题的关键,再查资料。这样花在查资料的时间上可能会少一点儿。查资料的效率和经验以及你对这方面知识掌握的多少是成正比的。做应用时,我们这时的目的很明确,就是为了解决某一问题,做出某个应用效果。当然,这时你得保证你找的资料正是你所碰到问题的答案。意思就是说,我们可以不去深究其内部原理和机制,但一定要清楚其功能和作用。但是有时了解内部原理和机制又是必要的,可以大大地提高查资料的效率。那便有了个度的问题了。这个得自己把握了。“度”是个认人头疼,很难弄清的东东。我一直认为别人的方法不是最好的方法,经过自己检验的方法才好。就是因为各人的度是不一样的。

我在此胡说八道,大家别介意。请大家不吝口赐金言呀。

2007-4-23

武夷之行

每种经历都是一笔财富!

度过了一个愉快但又非常疲惫的周末。在此写点回忆。

火车上的难眠。不习惯在火车上睡觉,难以入眠,躺在小小的卧铺上真是难受。加上那辆车时不时的急杀车。一次次地将我从疲惫的迷糊状态拉回清醒。连第二天中午午睡都还以为自己在火车上呢,感觉身体在晃,不能入睡。我便想以后有钱了,出去旅游,打死我也不坐火车了。回来时从邵武上车。我们要乘的那辆车晚点了。邵武火车站不大。旅客入站时,相挤真是惨烈。有一位老汉火了,堵在入口不进去,还往后面推人。那力气真是大。让我佩服。回来的那辆车开得平稳些。在车上小睡了一觉,感觉还真好。今早一下火车,回学校洗个澡,又赶来公司上班了。这几天的生活真是高节奏。不过这些还真是很值得的,因为武夷山的风景太美了。

一到武夷山便是好汉。爬过好汉坡,真是从峭壁上走。流出一身汗后就是好汉了。走过了定命桥,老天怎么就不实现他的诺言呢?看来还是得靠自个儿努力。在山坡上,听到山谷中有歌声传来。是一群五十多岁的妇女唱的。虽然唱得不是很好听,但是佩服的是她们的勇气,她们的心境。她们能让自己的歌声在山谷中回绕,把自己的心置于武夷的美景中。到了虎啸岩。听说有风吹过那儿的石头时,会发出老虎的叫声。可惜我没听到。

山重山,路绕路。又走了好长一段山路后,便到了向往已久的一线天了。真是名不虚传,最窄的地方得侧着身才能过。吃得太肥的人,可能就过不去了。所以不能再肥了。从里面往天上看。不得不折服于这个世界的奇妙。呆在里面有一丝的感觉闪过,没有安全感,人的办量在自然面前真是微不足道。岩石微微一动,便死无葬身之地。游客们一阵阵的吼叫,把里面的蝙蝠惊飞起来了。好多的蝙蝠一轰而起,让我想起了《屋顶上的轻骑兵》里面的场景。心里一颤,生怕它们飞下来。不过这个景点真叫绝,有机会我还要再走一次。

午饭过后,去品武夷岩茶。第一次去品茶,也不懂茶道,但起码我知道懂得安静。游客们的吵闹让我觉得和那环境不配。武夷山美,茶美,人更美。但我更想见的是山上采茶的姑娘,可惜没碰到。

不到天游等于白游。在山脚下,仰望那山,游客在那条陡峭的小石阶上,迂徊而上。“蚂蚁搬家”,真是贴切。那场面真是壮观。便有了爬山的冲动。一口气爬到了山顶。挑战的是自己的体力,自己的勇气。登上天游峰,鸟瞰群山,九曲溪穿梭而行。那就一个字,“美”。下了山,在溪边休息,听着音乐,拔一拔水,看出溪中的鱼,那真叫惬意。当然,如果有美女陪伴,那便是浪漫了。

不坐竹排等于白来。星期天早晨,去坐竹排漂流。武夷的山,三分形象,七分想像,不看不像,一看挺像,越想越像。九曲溪漂流时,可以看到好多好景。《西游记》里面的好多画面就在那儿了。山青水秀,奇石林立,真的可以让人忘掉一切的一切。艄工风趣的解说,可以让人不得不笑。置身其间,可以忘掉斗转星移。快乐的时光总是飞逝。《九曲棹歌》给九曲溪增添了不少诗情画意。记了几首,上网查了些。将她们留在这儿吧。

“一曲溪边上钓船,幔亭峰影蘸晴川。虹桥一断无消息,万壑千岩锁翠烟。”
“二曲亭亭玉女峰,插花临水为谁容?道人不作阳台梦,兴入前山翠几重。”
“三曲君看架壑船,不知停棹几何年?桑田海水今如许,泡沫风灯敢自怜。”
“四曲东西两石岩,岩花垂落碧监毵。金鸡叫罢无人见,月满空山水满潭。”
“五曲山高云气深,长时烟雨暗平林。林间有客无人识,欸乃声中万古心。”
“六曲苍屏绕碧湾,茆茨终日掩柴关。客来倚棹岩花落,猿鸟不惊春意闲。”
“七曲移舟上碧滩,隐屏仙掌更回看。却怜昨夜峰头雨,添得飞泉几道寒。”
“八曲风烟势欲开,鼓楼岩下水潆洄。莫言此地无佳景,自是游人不上来。”
“九曲将穷眼豁然,桑麻雨露见平川。渔郎更觅桃源路,除是人间别有天。”

2007-4-9

软件开发(二)

C和C++哪个更好用呢。当然大多数人可能要说C++。越高级的语言用起来是越爽。例如C中经常会出现内在泄漏。指针出错等问题。C++大多功能用类来封装,写一个基础类,整个团队都可以用。代码重用,大大缩短开发周期。还可以一层套一层。做扩展类,使其功能越来越强大。还可以将数据封装,统一释放,内存较好控制,不易泄漏。再如,C++支持函数重载,可用名字空间。可C就较麻烦了,一组人一起开发,容易出现函数重名,C++更聪明点儿,可以知道哪个函数是谁家的孩子,可C一见此问题就没辙了。但是C++的好处是有代价的,C++的效率更低,这对C++来说可是致命的。因为效率对于一个软件来说意义可是非同一般的。再则C的缺点,可以用开发人员的经验和技术来弥补。高手写代码就用指针,就是不怕内存泄漏。在这方面我还得多学。函数同名问题,可以把确认不让别的模块用的函数声名为static函数。这是一个很好的编程习惯。全局变量一般也声名为static。这样的细节性的问题,在学校里面可能是较难体会得到的。因为在学校很少写大型的代码,且大多情况下是一个人写代码。觉得自己用得爽就行,可达目的便好。而当一个小组一起开发时,就难免会有冲突。这时细节性的东西就显得用处很大了。有时候一个小问题会把一个开发组卡得郁闷无比。所以得练C,当能随手用C来实现C++的所有功能时,恭喜你,大家就得称你高手了。部门经验说了一句很不错的话。“做软件开发的都是平民,做硬件开发的都是精英。”越高级的语言门坎就越低,当然谁都能做了。当不了硬件精英,至少也得做个软件精英吧。

软件大小就是金钱,同样功能的软件,其大小要能少1M。那可省非常多成本。虽说软件的边际成本很低,但它要求硬件支持呀。而对硬件要求增加1M,那可就是得多投入大量资金,产品价格得抬高,市场优势也就没了。所以企业追求的都是高效率的代码。而学校里面,为什么用代码量来衡量工作量呢?低效率的代码就相当于垃圾,做出一大堆垃圾,应该受到惩罚才对呀,可是还要说工作量大,还要拿高分。真是太不合理了。

2007-4-7

软件开发(一)

学了两周,写点体会。留着以后或许我当了老大,还能用得上。 一定要让所有组员有开发的激情。软件开发业与制造业等最大的不同,就是效率更多取决于人力因素。其它行业可能效率与生产设备等相关性更大。而做开发时不一样。可能一天能写出的代码,我可以用三天时间来写。一天可以搞得定的构架,我花他一周也不过分。所以,我个人觉得,做软件开发的都得加班,这个观点也太武断了。时间不在多,有效率就好。而有激情便是保证效率的第一必要条件。老大,人很好,技术也很强。我喜欢和他一起工作。他一个人现在身上有三个项目,非常忙。呵呵,我刚进去,问题可能多一点儿,有时候我都觉得自个儿有点烦。可他还是很耐心帮我回答问题,和我一起讨论。他说,他都不能专心调一会儿程序了。嘿嘿,辛苦了。

开发小组老大的作用非常重要。老大得做构架,做算法,指出方向。这些稍有差错,可能导致得惨的后果。轻则多花很多时间,多写很多代码,才能实现一样的功能。重则重新做构架,整个软件重写。我看了两周的文档。最终的解决方案和我刚开始的想法是一致的,系统设置得由驱动层来完成,由驱动层给出接口让UI来调用。可是因为开始时,小组老大跟我讨论时,他认系统设置该由contrl panel模块来完成,于是让我看那模块。用一句“你怎么那么多‘你觉得’”,把我顶得不敢再坚持自己的想法。真郁闷,谁叫我是新来的,没办法。我看了contrl panel,发现其实现方法为改注册表。于是,我接着接到看注册表文档的命令。好,看过注册表,发现改了注册表后,还是要给驱动发消息,让其读注册表值并更新系统设置。这时,老大意识到了,还是我的最初想法的方案最好。直接让驱动层给接口,至于注册表等都由驱动层去维护。于是,我得开始写接口标准,又得看接口文档。最后花了一天时间,把接口标准定下来了,并发给了BSP组。我两周的工作一天便可完成。多走了好长的路。不过也好,可以了解整个构架,可以提高英文阅读能力。但是负外部效应还是远大于正外部效应。还好,这只是轻微的代价。我是初学者,看这些文档也是迟早的事,时间不是很值钱,是吧。嘿嘿。要是把牛人的时间误了两周,那可就惨了。更惨的是构架要是错了。那可就麻烦了。花了多少人月的时间,重新再来重构。那损失可重了。老大说,真正的软件开发成功率有70%~80%,就已经很不错了。所以,21世纪什么最重要,人才。一定得请个大牛掌舵。

开发小组的文档,到底得规范到什么程度呢。这问题肯定是很难给出确切的答案的。现在有人提出一种精英开发方法。就是在一个开发团队里面,所有的文档都存在每个人的大脑里面。这样可以大大提高开发效率。但是,它有一个很明显的缺点:开发团队不能过大。一般最多只能在十几人左右。多了便会有问题。而现在稍微大点儿的软件至少都得好几十人,分好几组并发开发吧。所以,精英开发方法,还不是很实用。在学校里面,都很少写文档,代码规范也很乱。我写接口标准文档时,不懂规矩,没写作者和版本号,文件名也乱起。被老大说了几句。嘿嘿,不过我心服。面试那天觉得考变量命名约定有点变态,因为都不会做,到了宿舍还跟他们狂说考的是什么乱七八糟的题目。看了两周的代码后,我觉得实在是在学校里面读呆了,觉得两周前做出的判断有点儿弱智,土。这些规范是实际开发中最最基础的了。老大说,我开始写代码时,肯定也少不了被人说。我同意他的观点。嘿嘿,还有好多东本得学呢。

先写这么些吧。