QuXiao

每天进步一点点!

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  50 随笔 :: 0 文章 :: 27 评论 :: 0 Trackbacks

#

    01. Bowling For Columbine (2002) Michael Moore 迈克尔·摩尔《科伦拜恩的保龄》

    一部令人反思的探讨美国枪械暴力的纪录片,荣获今年奥斯卡最佳纪录片大奖。

    02. The Thin Blue Line (1988) Errol Morris 埃罗尔.莫里斯《细细的蓝线》

    纪录电影中的经典之作。电影讲述1976年美国德州达拉斯市一个被冤枉的人犯,因 谋杀警察被判有罪而终身监禁,11后终因真相大白而洗清罪行的故事。喜欢电影〈肖申克的救赎〉的一定不能错过这部片子。同时美国作曲大师菲利浦.葛拉斯 (Philip Glass)为该片配制了精彩而令人难忘的音乐。

    03. Roger & Me (1990) Michael Moore 迈克尔·摩尔《罗杰和我》

    有关美国大企业因裁员而导致工人失业等一系列问题的记录,赢得多个重要纪录片奖项。

    04. Hoop Dreams (1994) Steve James 史提夫.詹姆斯《篮球梦》

    两个黑人男孩为圆他们的NBA之梦而各自展现不同生活经历的故事。

    05. Salesman (1969) Albert and David Maysles梅索斯兄弟 《推销员》

    (美国)阿尔伯特·梅索斯、大卫·梅索斯 Aobert Maysles(1926-)&David Maysles (1932-1987)

    梅索斯兄弟的代表作 ,影片记录了四个挨家挨户推销圣经的推销员的辛酸经历。电影《推销员》因真实客观的情节感动了无数的观众,其中包括一个名叫芭芭拉·考普勒的女孩,在看过 这部电影后,便跑去追随梅索斯兄弟拍片,日后她自己也成为一位优秀的纪录片导演,并且先后以《美国哈兰县》(Harlan County, USA )和《美国梦》(American Dream)赢得两座奥斯卡金像奖。

    06. Nanook Of The North (1922) Robert Flaherty 罗伯特弗拉哈迪《北方的纳努克》

    07. Night And Fog (1955) Alain Resnais 阿伦雷乃《夜与雾》

    08. Harlan County, USA (1976) Barbara Kopple 芭芭拉·考普勒《美国哈兰县》

    09. Grey Gardens (1975) Albert and David Maysles 梅索斯兄弟《灰色花园》

    10. The Civil War (1990) Ken Burns 肯·伯恩斯《南北战争》

    11. Crumb (1994) Terry Zwigoff 特里泽维格夫《漫画大师罗伯特克鲁伯》

    12. Gimme Shelter (1970) Albert and David Maysles .梅索斯兄弟《滚石----给我一个避难所》或《变调摇滚乐》

    13. 7 Up (1963) Michael Apted 迈克尔·艾普泰德《7 Up 》系列

    14. Fast, Cheap & Out Of Control (1997) Errol Morris埃罗尔莫里斯《又快又贱又失控》

    15. Titicut Follies (1967) Frederick Wiseman 费特力克.怀斯曼《提提卡失序记事》

    16. When We Were Kings (1996) Leon Gast利昴加斯特 《一代拳王:阿里》

    17. American Movie: The Making Of Northwestern (1999) Chris Smith 克利

    斯·史密斯 《导演狂想曲》

    18. Shoah (1985) Claude Lanzmann克劳德蓝斯曼《毁灭》

    19. The Man With A Movie Camera (1929) Dziga Vertov 维尔托夫《持摄象机的人》

    20. Sherman's March (1986) Ross McElwee 罗斯麦凯维《谢尔曼将军的征程》(完)

posted @ 2009-08-27 20:39 quxiao 阅读(252) | 评论 (0)编辑 收藏

嵌入式门槛虽然较高,但和其他事物一样,并不是牢不可破的.
学习步骤如下:
1、《C语言》第二版 谭浩强; 《C程序设计语言》第二版 徐宝文译机戒工业出版社
2、《数据结构》C语言版 黄国愉、叶乃青编清华大学出版社
3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著
    此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。
4、学习单片机
    你能用51单片机做出一样实际的东西吗?即使它再简单!
    要注意加深对中断的理解。
5、学习ARM单片机。
   (1)、细读《ARM微控制器基础与实战》周立功编写(注:即使你不用书中的开发板)
   (2)、细读相关芯片的原版英文文档。如:ARM920TE.pdf S3C2410_1.2.pdf
6、学习uCOS!!操作系统。
   (1)、细读《嵌入式实时操作系统uC/OS-!!》第二版召贝贝译
   你能把uCOS!!移植到自己的平台上吗?
   (2)、能编写在uCOS!!操作系统环境下运行的针对具体硬件的驱动程序
7、熟悉Linux环境,学习Linux环境编程,学习交叉编程
   (1)、细读《Linux命令大全.pdf》
   (2)、细读《GNU Make 使用手册(中译版).pdf》
   (3)、学习创建交叉编程环境.
8、学习Linux操作系统。
   (1)、《UNIX环境高级编程》
   (2)、细读“joyfire 笔记”,可在“www.qianrushi.com”网站的好书下载栏目获取
   (3)、细读《Linux内核完全注释》
   (4)、细读《understanding the Linux kernel 2》
   (5)、利用源代码阅读利器工具”Source Insight”进行真正的Linux内核原码刨析
   (6)、最后进行内核移植,能编写在Linux操作系统环境下运行的针对具体硬件的驱动程序
9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》
10、复习C++,学习用QT进行图形界面编程
   (1)、细读《QT编程宝典》
   (2)、学会通过查看QT电子文档进行QT GUI实地编程
   (3)、学习交叉编程.(其实就是把命令qmake变为tmake)
11、学习PCB的制作和设计一个自己的CPU(即软壳)
12、要想成为高手中的高手,最好从钻研如下领域修炼:
    分析一种rtos的源代码--ucos最容易;
    分析一种通讯协议栈的实现方式--tcp/ip最实用;
    精通一种dsp的开发集成环境--ti ccs2.1最优秀,精华在其内带的rtos;
    精通一种单片机的开发集成环境--keil c最经典;
    精通一种mcu的开发集成环境--ads 1.2最流行;
13、要想成为大师级人物再从如下领域开始修炼:
    精通一种系统建模语言和工具--telelogic tau sdl/uml suit最经典;
    精通一种算法仿真工具--matlab simulink 最便宜;
posted @ 2009-08-26 08:58 quxiao 阅读(174) | 评论 (0)编辑 收藏

如果一个人要对金融和投资方面的实际知识得到比较深入的了解,十五本书无疑是远远不够的。然而,很少有人真的能在短时间内读完十五本书。除了读书之外,正确的思考或许才是最重要的东西。

       一本有趣的书往往是有益的书,反之则未必如此。许多在学术上有崇高造诣的著作是无法带来任何阅读乐趣的。在某个狭小的专业领域极有参考价值的书,往往也过 于艰涩。以下列出的十五本书属于“有趣又有益”的交集——尽管它们并不像惊险小说那样好读,但至少不至于让人头昏脑胀又不知所云。

       随着时间的进步,金融技术和投资技巧的发展都已经比几十年前先进了许多。但是某些基本原理是不变的,所以我相信,以下列出的十五本书,在几十年后至少还有一大部分是值得阅读的。

1、
本杰明-格雷厄姆:《证券分析》(Securities Analysis)

如果整个证券研究领域的书籍全部被焚烧了,仅仅凭借这样一本书,这个行业也必将重建。大本没有建立任何精确的学术模型,却恰到好处地切入了学术和实践之间。他既不向浮躁的现实低头,也不向自大的学术低头。通过众多纷繁复杂的例子,大本把自己的理论建立在非常具体的基础上。

虽然以知名股票投资家著称,但大本的《证券分析》的大部分内容是关于债券和优先股,而且其价值并不逊色于股票部分。大本精辟地指出,选择良好债券的艺术可以在一定程度上转换为选择良好股票的艺术,这两者之间的联系远比人们想像的紧密。

 

 

2、本杰明-格雷厄姆:《聪明的投资者》(The Intelligent Investor)

在这本书里,大本回避了大部分艰涩的定量分析,几乎不讨论股票与债券投资的具体技术,而把全部精力集中在对“投资”一词的定义上。从第一章到最后一章,大本都试图找出投资与投机的根本区别,并在现实案例中阐述这些区别。

《聪明的投资者》的精髓在于对风险的控制。大本从来不讲述一夜暴富的技术。他认为投资应该在一个可以承受的风险水平上带来满意的回报,剩下的内容全部用来回答两个更具体的问题:什么是可以承受的风险,什么又是满意的回报。


3、本杰明-格雷厄姆:《价值再发现》(Rediscovering Benjamin Graham)

除了以上两本书,大本曾经在多种学术和商业期刊上发表大量专业文章,并在高等院校和研究机构进行演讲。《价值再发现》一书收录了大本晚年发表的最有价值的文章和演讲,不仅涉及财务报表分析和投资学原理,还涉及货币银行和宏观经济学内容。

大本发表的大部分文章都有浓厚的悲观主义情绪,所以他在华尔街并不是受欢迎的人。几十年过去,今天的读者可以更加心平气和地体会他的教诲——对于价值投资理念的信奉,对风险控制的执著以及对频繁交易的厌恶。这些教诲在今天仍然没有得到执行。


4、乔治-索罗斯:《金融炼金术》(The Alchemy of Finance)

索罗斯的大部分言论都充斥着狂妄自大的气息,但考虑到他的宏大功业,这样的自大是可以理解的。在《金融炼金术》中,他试图建立金融市场的所谓“反身性”原理,即投资者与投资标的之间的复杂的相互作用,并且用这种原理来解释整个社会科学。

为 了证明他的理论,索罗斯声称他运用自己的对冲基金进行了“历时实验”,包括实验期和对照期。这个历时实验发生在量子基金最辉煌的时期——1986年至 1987年。索罗斯告诫我们,历时实验不重要,重要的是理论;可是事与愿违,对于非哲学专业读者来说,唯一有价值的部分可能就是历时实验。


5、戴维-法柏:《法柏报告》(The Faber Report)

在所有讲述华尔街现状的书里,法柏的著作不一定是最好的,但是是实例最多、证据最充足、最能让人感到身临其境的著作之一。这本书是他长期采访银行家、分析师、基金经理和上市公司高管之后的经验结晶,几乎每一段都具备“口述史”的性质。

法 柏经历了1990年代的大牛市,2000年的网络股泡沫,2001-02年的安然与世界通信丑闻以及许多伟大基金的兴起和衰落。没有必要采取任何戏剧性的 描写,因为现实本身已经很有戏剧性了。法柏对大部分事务采取批评的态度,有些评价简直是刻薄。但是他最后仍然承认,“华尔街是这个世界上最不坏的地方”。


6、理查斯-盖斯特:《最后的合伙人》(The Last Partners)

盖斯特通过合伙人制度的诞生、发展、衰落与毁灭,写出了一部严谨深刻的华尔街史。他从19世纪中叶开始叙述那些最伟大的合伙人家族——摩根家族、戈德曼家族、雷曼家族以及许多你没有听说过的延续百年的大家族。此后,随着金融业越来越成为资本主宰的行业,合伙制被摧毁了。

这本书不是合伙制的挽歌,作者对那些旧的家族没有太多同情。他只是指出,变幻莫测的华尔街让我们忘记了太多东西,适当地阅读是非常有益的。或许有一天,已经发生过的一切会以某种奇特的形式卷土重来。


7、理查斯-盖斯特:《金融体系中的投资银行》(Investment Banking in Financial System)

这本书是我所见过的最清晰详尽的投资银行学教材。作者不但深入讨论了广义投资银行业的每一个领域——证券承销、并购咨询、资本市场、销售与交易、证券研究、零售经纪和基金管理,还探讨了投资银行与商业银行以及监管者的千丝万缕的联系。难能可贵的是,盖斯特特别注重探讨投资银行界,并将华尔街史视为一个发展的过程。

盖斯特的重点描述放在华尔街,但他并未忽视欧洲和日本。遗憾的是,这本书主要讨论的监管政策是美国的政策。这些政策或许不能解释其他国家投资银行业的深刻变化。也许技术手段和投资观念的进步,才是这个行业变动的根本动力。


8、华尔街日报》编辑部:《华尔街巨人》(Who's Who and What's What)

这 是一本5年前出版的“华尔街百科手册”,在这里你可以找到许多已经消失的名字:所罗门美邦、潘恩韦伯、基德-皮博蒂乃至德雷克赛-哈顿。书中描述的市场环 境和监管措施与今天已经有很大区别,但还不是天壤之别。为什么推荐这本书?因为它是由那些最了解华尔街的人撰写的,这些人知道华尔街巨人背后的秘密

在每一个华尔街巨人的简介之后,紧接着的是几篇著名人物传记——出色的银行家,伟大的交易员,以及某些恶名昭彰的“坏孩子”。作者的笔调在轻松和严肃之间游走,而且经常能够一针见血地指出重要细节。这就是所谓的“华尔街日报体”,他们总是能够见微知著。


9、伯顿-麦基尔:《漫步华尔街》(A Random Walk on Wall Street)

麦基尔是极少数在学术界和实践界都做出重大成就的人物,他既是经济学家,又是职业投资者和分析师。他的核心观点只有一条:金融市场是有效的,证券价格的波动归根结底是随机漫步,所以华尔街是一个不应该存在的地方。

以 上陈词滥调我们早已在课本上读过了,但是麦基尔用一种生动活泼的方式阐述了他的理论。他没有用一两个公式来糊弄我们,而是深入剖析了在现代工商业和金融业 体系中蕴含的有效性和随机性,这些特性使一切技术分析和基本分析都趋于无效。我不赞成麦基尔的结论,但我们无法忽视他的论证,那简直是天才和雄辩的伟大结 合。


10、沃伦-巴菲特:《巴菲特致股东的信》(Letters to Shareholders)

巴菲特没有撰写过什么专业著作,唯一的作品是每年写给伯克夏哈撒维公司股东的信。他每年都重复一些似乎早已过气的言论,例如现金的重要性,公司管理层的重要性,在折扣价格购买资产的重要性以及“为增长付出恰当代价”的重要性。

仅 仅从一个细节就可以看出巴菲特的伟大——在目录中,排在最前面的是“公司治理”,其次才是“公司财务”。人们往往把巴菲特视为财务和税务专家,但他在鉴别 公司经理人方面的才能无人能及。其实他的每一句话都可以归结为我们耳熟能详的真理,只是用一种非常简洁朴实的方式来表达而已。


11、布鲁斯-格林威尔:《价值投资》(Value Investing)

价值投资究竟是什么?它应该购买濒临破产的低价股,还是购买气势如虹的蓝筹股?从格雷厄姆开始,产生了许多价值投资的分支流派,成功的基金经理人拥有独特的模型和选股方法,但是其核心仍然与格雷厄姆差别不大。

格 林威尔分析了自格雷厄姆以来最成功的价值投资经理人——马里奥-加比利、沃伦-巴菲特和保罗-索金等等,分析了他们成功和失败的案例,指出了在绚烂的投资 行为背后的枯燥无味的模型。作为一位学者,格林威尔对模型的分析令人印象深刻;他的流畅文笔也可以使我们更深刻地认识到价值投资者成功的共同因素。


12、彼得-伯恩斯坦:《有效资产管理》(The Intelligent Asset Allocater)

作为金融学家,伯恩斯坦指出,尽管有效市场的存在使大部分证券分析手段都失去了价值,但是投资者仍然可以通过有效的资产配置来优化自己的回报。这本书花了大量时间讨论投资的一些基本问题,例如什么是风险,为什么要用方差来度量风险,以及股票为什么对债券具有很高的溢价。对于初学者来说,这些讨论尤其重要。

伯恩斯坦并没有给出什么精确的资产配置技巧,他只是一再强调分散配置资产、及时进行再平衡以及避免频繁交易的重要性。他并不迷信定量分析工具,反而希望投资者们通过理性的判断得出适合自己的资产配置结论,这在学者中是相当难得的。


13、理查德-费里:《指数基金》(All About Index Funds)

费里是一位投资组合分析师,也是有效市场假说的信奉者。他通过实证数据和自己多年工作的经验证明,积极管理的股票基金想打败市场是不现实的,所以最佳的投资策略就是把资产妥善配置到各种指数基金中去。

这 本书用大量篇幅描述了指数编制和再平衡的方法——指数基金怎样做到尽可能模仿指数?怎样克服流动性、交易成本和税收方面的困难?那些与有效市场假说矛盾的 “增强型”“基本面型”指数基金有可能成功吗?为什么固定收益方面的指数基金发展很慢?费里对这些问题一一做了力所能及的回答,但想说服所有人是不可能 的。所以,积极管理基金仍然占据着全球金融资产的大部分份额。


14、大卫-史文森:《机构投资与基金管理的创新》(Pioneering Portfolio Management)

作 为耶鲁大学捐赠基金的主管,史文森取得了超越绝大多数同行的业绩。他认为投资成功的关键不仅在于资产配置,也在于对各种资产门类的本质的深刻了解,以及在 投资决策中坚持科学审慎的原则。史文森并不排斥积极管理,但他指出,要避免过高的管理费用和过于危险的风险敞口。他还对捐赠基金的支出政策进行了点评。

史文森举出了大量生动的事例,告诉我们在变幻莫测的市场中持续取得佳绩是何等困难。与我们想像的不同,他并未吹嘘自己如何成功,而是严肃分析了其他人失败的原因——过于轻率的投资决策,不恰当的风险管理,过高的资产管理费用以及“买涨卖跌”的错误心理等等。这些事例证明,心理或许是比技术更重要的因素


15、斯蒂芬-戴维斯:《银行并购:经验与教训》(Bank Mergers: Lessons for the Future)

银 行并购的浪潮席卷了整个世界,但是究竟有多少并购真的给股东带来了价值?驱使管理层不断收购或被收购的动机是什么?投资银行、机构投资者和银行管理层在并 购中各自扮演了什么角色?作为管理咨询顾问,戴维斯用许多亲身经历的案例和访谈讲述了许多典型的并购故事。毫无疑问,大部分失败了,但成功者的奖赏很丰 厚。

这本书从多个角度深入描述了并购的具体流程和主要问题。在这个并购横行的世界上,如此冷静的思考是少见的。作为一种复杂而且不稳定的金融机构,银行并购可能是世界上最艰难的并购,所以了解银行并购无疑就了解了并购问题的核心

posted @ 2009-08-16 21:28 quxiao 阅读(148) | 评论 (0)编辑 收藏

1、Linux 基础
安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器
2、Shell 编程基础
Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境 熟悉Linux下的各种Shell 熟练进行shell编程熟悉vi基本操作 熟悉Emacs的基本操作 比较不同shell的区别 编写一个测试服务器是否连通的shell脚本程序编写一个查看进程是否存在的shell脚本程序 编写一个带有循环语句的shell脚本程序
3、Linux 下的 C 编程基础
linux C语言环境概述 Gcc使用方法 Gdb调试技术 Autoconf Automake Makefile 代码优化熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规则编写Hello,World程序 使用 make命令编译程序编写带有一个循环的程序 调试一个有问题的程序
4、嵌入式系统开发基础
嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程 建立嵌入式系统开发环境制作cross_gcc工具链 编译并下载U-boot 编译并下载Linux内核 编译并下载Linux应用程序
4、嵌入式系统移植
Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台 了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板
5、嵌入式 Linux 下串口通信
串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写串口通信程序 编写多串口通信程序
6、嵌入式系统中多进程程序设计
Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统调用任务管理、同步与通信 Linux任务概述任务调度 管道 信号共享内存 任务管理 API 了解Linux系统任务管理机制 熟悉进程间通信的几种方式熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输 编写一个使用共享内存的程序
7、嵌入式系统中多线程程序设计
线程的基础知识 多线程编程方法 线程应用中的同步问题了解线程的概念 能够编写简单的多线程程序编写一个多线程程序
8、嵌入式 Linux 网络编程
网络基础知识 嵌入式Linux中TCP/IP网络结构 socket 编程 常用 API函数 分析Ping命令的实现 基本UDP套接口编程许可证管理 PPP协议 GPRS 了解嵌入式Linux网络体系结构 能够进行嵌入式Linux环境下的socket 编程熟悉UDP协议、PPP协议 熟悉GPRS 使用socket 编写代理服务器 使用socket 编写路由器 编写许可证服务器指出TCP和UDP的优缺点 编写一个web服务器 编写一个运行在 ARM平台的网络播放器
9、GUI 程序开发
GUI基础 嵌入式系统GUI类型 编译QT 进行QT开发熟悉嵌入式系统常用的GUI 能够进行QT编程使用QT编写“Hello,World”程序 调试一个加入信号/槽的实例 通过重载QWidget 类方法处理事件
10、Linux 字符设备驱动程序
设备驱动程序基础知识 Linux系统的模块 字符设备驱动分析 fs_operation结构 加载驱动程序了解设备驱动程序的概念了解Linux字符设备驱动程序结构 能够编写字符设备驱动程序编写Skull驱动 编写键盘驱动 编写I/O驱动 分析一个看门狗驱动程序对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理 典型的块设备驱动程序分析块设备的读写请求队列了解Linux块设备驱动程序结构 能够编写简单的块设备驱动程序比较字符设备与块设备的异同 编写MMC卡驱动程序分析一个文件系统 对比Linux2.6内核与2.4内核中块设备驱动的不同
11、文件系统
虚拟文件系统 文件系统的建立 ramfs内存文件系统 proc文件系统 devfs 文件系统 MTD技术简介 MTD块设备初始化 MTD块设备的读写操作了解Linux系统的文件系统 了解嵌入式Linux的文件系统 了解MTD技术 能够编写简单的文件系统为 ARM9开发板添加 MTD支持 移植JFFS2文件系统 通过proc文件系统修改操作系统参数 分析romfs 文件系统源代码创建一个cramfs 文件系统
posted @ 2009-08-07 09:10 quxiao 阅读(272) | 评论 (0)编辑 收藏

一、关于企业计算方向

  企业计算(Enterprise Computing)是稍时髦较好听的名词,主要是指企业信息系统,如ERP软件(企业资源规划)、CRM软件(客户关系管理)、SCM软件(供应链管理,即物流软件),银行证券软件,财务软件,电子商务/政务(包括各种网站),数据仓库,数据挖掘,商务智能等企业信息管理系统。

  企业计算领域对人才的需求显然永远是数量最大的,因为这是计算机应用最多的领域。 搞这方面的好处是:

  (1)人才需求量极大,从事企业计算的公司在IT企业中占了大多数。除非在专业上一无特长,一般在这一领域总能找到工作。

  (2)这方面的入门门槛相对较低(如果你的软件功底不是很深,可考虑这一领域)

  (3)这方面的大公司较多,大公司要赚大钱,所以多将精力花在企业计算业务上。如与正规高校软件学院同学目前实习的CitiCorp、HP、IBM、SAP、NEC等公司都属这一领域的公司。如果将来想到大公司找一份相对稳定的工作,从事这方面机会要大很多。

  但从事这一领域的缺点也是明显的:

  由于这方面的入门门槛相对较低,虽然这方面的人才需求量是最大的,但将来竞争对手会较多。您会发现,即使他原不是学IT专业的人,也许他突击几个月后,做得照样像模像样。特别是当您年纪渐大后,您可能会发现,后面的年轻人可能很容易追上你的水平。如果您将来到国外去工作,你可能会发现从事这领域的人更多且高手如云。当然,若您在这一领域经过多年企业经验,达到较高境界(如能设计软件架构),则身价永远是高的。国内在这方面人才领域的主要问题是,有经验的高手太少,皮毛了解的人太多。

  从事企业计算领域,最重要的技能型技术课程是(1)J2EE架构与程序设计(2)大型数据库系统 (如Oracle)(3)基于UML的系统分析与设计。如果说还有什么重要的技能,还可将XML与Web Service技术包含进来,若您在这几个领域掌握较好,则不愁找不到工作。其中尤其以J2EE最为重要,目前J2EE已成为企业计算软件开发的最主要平台,也是正规高校软件学院的最重要课程之一。尽管该课程只能作为选修课,我们希望正规高校软件学院同学无论将来想从事何种方向,都应学一下J2EE课程,至少可为将来找工作备一手关键功夫。包括想从事嵌入式或其它领域的同学,也是很有必要学一下J2EE的,毕竟J2EE是目前最重要的平台之一,即使您将来不想从事企业计算领域,了解一下J2EE也是必要的,就像一门常识课程一样。其它与企业计算关系较密切的技能还包括:Dot Net架构与程序设计、软件测试技术、软件配置管理,该领域较高层次的技能包括数据仓库技术、构件与中间件技术、设计模式等。像通信协议分析与网络程序设计,Unix系统管理等也属有些关系的课程。02级本学期开设的企业计算课程不多,主要是J2EE、Oracle/MSSQL、UML等企业计算领域的最关键技能型技术课程都已学完了(但不知有多少同学学得较深入,将来找工作时会用到这些技能)。下学期我们将在该领域中拟再开设XML与Web Service技术、软件配置管理等课程。本学期开设的企业计算领域课程的确不多,但您应在空余时间将J2EE,DB、UML等技术再深入地钻研下去,一定要在某个领域有深入的掌握。只是跟着听课,即使学了再多课程也是没用处的,自己钻研下去才是最重要的。只一个J2EE便是博大精深的,足够你啃下去的,钻研下去,您会发现你还要学的相关知识还有很多(包括EJB、XML、Web Service、Design Pattern等)。

  虽然从事企业计算的人才很多,但以下企业计算领域无论国内外都属稀缺人才:

  (1)掌握大型ERP系统,主要是SAP系统,包括 SAP Basis(系统管理)或SAP ABAP(编程)或SAP功能模块实施(特别是财务模块FI的实施)。SAP顾问身价是最高的,而且非常难找。其它大型ERP系统,掌握 PeopleSoft、Oracle Finacial、J。D。Edward、Siebel等大型ERP软件系统的人也很值钱。这方面的人之所以身价奇高,主要是因为这些软件很专业,特别大,很难有D版可学习,只有特大企业(如世界500强,90%以上使用SAP)才用得起,而且必须有实际工作经验才能掌握。如果是一个个人人都很容易有机会接触的软件,那么这方面的人通常就不会稀缺。如果大家将来有机会接触学习这些大型ERP软件系统的机会,建议毫不犹豫地抓住,那将捧上一辈的金饭碗。在国外,会SAP的人特别值钱。物以稀为贵,这永远是颠扑不破的真理。SAP的价值不仅是因为他是一个ERP软件,而是其中体现的现代企业管理理念(如根据订货需求自动安排原料采购和生产计划等)。一般500强公司绝不会像国内很多企业那样,用J2EE从头设计企业的ERP系统(即将是怎样的人力投入,而且设计出来的系统怎么可能是完善的?),一定都会使用SAP这样成熟的ERP软件。用不起SAP的公司可能会用J2EE设计ERP系统。

  (2)掌握IBM大型机技术的人,如S/390主机,MVS操作系统,JCL作业控制语言,COBOL程序设计语言,DB2关系数据库或IMS层次数据库,CISC中间件交易控制系统等IBM大型机专用技术。国内五大银行,以及国外绝大多数银行的后台系统使用的都是以上平台。IBM大型机号称永不宕机而且平台相对封闭(这样最安全),所以这些要求在24*7环境中连续运行的关键应用(术语叫mission critical applications)都采用IBM大型机。这方面的人才之所以稀缺,是因为会大型机的人都是老人(90年代以前搞IT的人),全世界新毕业的IT毕业生不可能再去学IBM大型机(这是一种相对“古老“的技术),没有新人补上,而银行的系统必须维持下去而且银行还要不断开发新业务(如新的存款品种),虽然对IBM大型机人才的绝对需求量不很大,但相对恒定,银行到哪里找这方面的新人,很难找到。若好找,花旗软件也不会花那么大的代价去培训我们的实习同学了(去年培训20多个人,听说公司就花了数十万元培训费)。如果您将来到国外找工作,会IBM大型机可能是最好找工作的领域之一了,而且保证找的都是大银行等好工作,我以前教过的计算机专业90-94级的一些同学,凡是毕业后从事大型机开发的,现多在国外一些很好的公司工作(有几位同学在各国各公司跳来跳去,简直如履平地)。其实我觉得我们最幸福的同学就是在花旗软件做IBM大型机银行软件的同学,这样的机会太难得了。正规高校软件学院00级2+2班一位同学,当初放弃保研,看准在花旗软件做大型机并且非常努力,还未毕业,公司便派她到国外参加一个项目的开发,成了项目骨干,我觉得她当初选择是完全正确的(01级一位女同学刚刚也自愿放弃了保研机会去花旗做大型机,我们祝愿她将来也能有好的前景。其实像花旗软件主动安排并鼓励员工读在职研究生,这样开明的公司目前并不多的,在职读研也是一种不错的选择,又不会失去自己喜欢的实习工作机会,能兼顾),读书的最终目地还是为了工作。如果您将来在国外找工作,根本没人管您是什么文凭,国外企业绝不会花冤枉钱,只会招有领域工作经验能立即上手的人,用最少的钱在限定的时间完成项目。而在国内,因为人力成本较低,公司招聘一很多高学历的人才,尽管可能根本用不到这么高的学历,但国内的人力太便宜了,为什么不高消费一下人才呢?这样公司的门面还要好看些。

  (3)其它如掌握数据仓库技术的人在国内也很少。 目前最主流的数据仓库平台应是ORACLE的数据仓库工具。 在国外,会一些特殊数据仓库的人,如NCR/TEREDATA的人非常难找。

  我们的同学现在年纪都很轻,年轻人充满热情,喜欢追逐一些热门技术,这当然正确的,毕竟学习SAP和大型机的机会毕竟不多,毕业时先能找到一份工作是重要的。但我相信随着年纪的增长,大家将来慢慢都会思考的,掌握一项竞争对手较少的绝技的重要性,将来如果自己到国外工作什么技术最好找工作(对搞软件的人到国外工作或移民是最容易的,也许您现在不想,但我相信工作多年以后,很大一部分同学可能想到国外闯荡一下),你要考虑你今后一生的出路,什么样的绝技是最稳定最轻松最高收入的。搞软件的人,当年纪大些时,您可能更向住像搞医学人的那样能更多靠经验吃饭,而不须整天像年轻人那样不得不去追逐不断出现的软件新技术,这个时候也许您也许会发现,如果您在SAP或大型机等方面有些绝技,您会有很大优势,因为这些较偏的领域其技术变化是相对很缓慢的。

  我还记得在2000年时我曾在业余时间与一位德国人合作面试一些IT人才到德国去,那时德方各公司发来的需求有很多是SAP和IBM大型机的,我们在众多应聘者中最后也未找到一个在这方面有经验,甚至是有一点经验的。 相反,掌握流行技术的人因太多而不很值钱。

  我们的同学将来找工作时,不仅要盯着国内市场,还要有一种放眼全球的眼光,对搞软件的人您将来完全可能到其它国家去工作。尤其是在欧美、日本、新加坡等国家,对SAP(包括IBM大型机)人才的需求是很大的。毕竟比同学见得多些,提醒同学将来多留意有学习这些绝技的机会,一旦有机会建议当仁不让。 国内的人才市场可访问www。51job。com,国外的IT人才需求可访问www。hotjobs。com、www。workopolis。com、www。monster。com等著名网站。应经常访问这些网站,以了解市场对人才的具体需求,早做准备。

  以上对企业计算领域的观点,供大家参考。虽然观点未必正确,但确是直言不讳。 总之,每个人的脑袋都长在自己脖子上,每个人都应有自己的判断。

  还要注意,我以上纯粹是从将来就业的角度谈问题。 如果您将来准备到国外读书,则应重视基础课,像C,Assembly,OOP,Discrete Math,Data Structure,Opeating System,Database Principle,Network,Software Engineering,Compiler,Digital Circuit,Computer Graphics,Computer Component and Architecture等基础课,在国外大学IT专业中一般都能找到相同课程,若国内学过,到国外读书时一般可申请免修一部分。但我也想提醒同学,如果您将来毕业时万一申请国外大学不成,不得不去找工作时,若只将精力花在这些IT专业学生都会的基础课上(传统IT教育模式),未掌握一些像J2EE等技能型技术,是不容易找到一份工作的,我们已有同学有这样的教训。从找工作的角度讲,企业关心的不是您学过什么课程,而是关心您能做什么,有什么技能,能做什么项目。 

  二、关于嵌入式系统方向

  嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

  嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。

  一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。
  另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

  从事嵌入式软件开发的好处是:

  (1) 目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高 (嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

  (2) 与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802。11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

  (3) 哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫“工程e”的掌上PDA(南校区门口有广告),施工技术人员用该PDA可当场进行土木概预算和其它土木计算,据说销路特好。我认识的某大学老师,他开发的饭馆用的点菜 PDA(WinCE平台,可无线连网和上网),据他说销路不错,饭馆点点PDA让客户点菜,多显派头档次。我记得00级2+2班当年有一组同学在学 Windows程序设计课程时用VC++设计了一个功能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成PDA,估计会有些销路(上海火车站南广场的Macdonald便使用很漂亮的PDA给用户点食品,像摸像样的)。这些PDA的硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

  从事嵌入式软件开发的缺点是:

  (1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

  (2) 这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有 Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、 Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。由于正规高校软件学院以前毕业生以企业计算为主,所以正规高校软件学院与这些企业联系相对较少。正规高校软件学院正积极努力,目前已与其中部分公司建立了联系,争取今后能有正规高校软件学院同学到这些企业中实习或就业。

  (3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

  正规高校软件学院同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):

  (1) 掌握主流嵌入式微处理器的结构与原理
  (2) 必须掌握一个嵌入式操作系统
  (3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

  正规高校软件学院在嵌入式软件方面最重要的课程包括:
  (1) 嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,正规高校软件学院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编 语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。

  (2) 嵌入式操作系统类课程

  除了 WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System。从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:

  第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与 Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

  第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。 Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM 9上的,一般是将Linux 2。4。18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用用得较少,所以正规高校软件学院不将其作为教学重点,要学习就应学直接实用的,比如 uClinux就很实用。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式 Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。正规高校软件学院在该嵌入式Linux方面的课程系列是:本科生操作系统必修课,然后是Linux程序设计选修课,最后是嵌入式Linux 系统选修课。正规高校软件学院在Linux方面目前已有较强力量,魏老师和张老师熟悉Linux开发,金老师和唐老师熟悉Linux系统管理。

  第三类、 Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4。2版(。NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC++环境,所以正规高校软件学院学过Windows程序设计课程的同学都不会有多大难度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE开发难度远低于嵌入式 Linux。对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA 嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?正规高校软件学院可能是全国高校中唯一一家开设专门的“Windows CE嵌入式操作系统“课程的学校,这主要是基于以下原因:正规高校软件学院本身前面便有Windows程序设计课程,同学学过VC++后再学WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,嵌入式Linux永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多。嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑;二是微软亚洲研究院对正规高校软件学院WinCE课程的支持计划,我们也很希望将来正规高校软件学院能有同学通过微软的面试去实习。WinCE和多媒体 (如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,他们很需要精通WinCE的人。

  总结关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若您觉得自己VC++功底较好且想短平快地学嵌入式开发,则正规高校软件学院的WinCE课程是最好的选择。

  (3) 嵌入式开发的其它相关软件课程

  搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:

  A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此,正规高校软件学院已预订了一位能开设数字图像处理课程的博士。

  B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802。11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。

  C、网络与信息安全技术:如加密技术,数字证书CA等。正规高校软件学院有这方面的选修课。

  D、DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。

  (4)嵌入式开发的相关硬件基础
  对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件,那将是我们的优势。

  我们的研究生里有些是学电子、通信类专业过来的,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。

  (5) 题外话
  另外,能写驱动程序的人目前是非常紧缺的(驱动程序也可归于嵌入式范畴),包括桌面Windows中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品,每一个新产品出来了,要能被操作系统所使用,是必须写驱动程序的。写驱动程序就必须掌握操作系统(如Windows或Linux)的内部工作原理,还涉及到少量硬件知识,难度较大,所以这方面的人很难找。想成为高手的同学,也可从驱动程序方面获得突破。我可说一下自己的经历,三年前我曾短暂地在一家公司写过WinCE驱动程序(正是因为知道这方面的人紧缺,所以才要做这方面的事),尽管那以前从未做过驱动程序,应聘那个职位时正是看准了公司是很难招聘到这方面的人,既然都找不到人,驱动还得有人做,这正是可能有机会切入这一领域的大好机会。面试时大讲自己写过多少万行汇编程序,对计算机工作原理如何清楚,简历中又写着我曾阅读完两本关于Windows Driver Model的两本英文原版书,写过几个小型的驱动程序练习程序(其实根本没写过,我们的同学将来千万不要像我这样,早练就些过硬功夫,就不至于沦落到我这等地步,就不用像我那样去“欺骗”公司了,我这是一个典型的反面教材),居然一切都PASS(当然最重要的是笔试和面试问题还说得过去),这只能说明这一领域找人的困难程度。公司本就未指望找到搞过驱动的人,找个有相关基础的人就算不错了。做了以后,发现也并不是怎样难的。其实搞驱动程序的工作是很舒服的,搞完一个版本就会空一段时间,只有等公司新的芯片推出或新的OS出现后,才需要再去开发新一版驱动,那时有将近一个月时间空闲着在等WinCE 。NET Beta版推出,准备将驱动程序升级到CE 。NET上,现在在软件学院工作整日忙,无限怀念那段悠闲时光。

  很巧合,最近本人无意中再次体会到了嵌入式的迷人之处。上周我那用了3年的手机终于不能WORK了。此次更新,除要求有手机常见功能外,最好有MP3功能(现在很多英语听力都有MP3文件),最好有英汉词典,最好还能读WORD文档。最后选了个满足以上条件的最便宜的手机DOPOD 515(斩了我2。2K,但想想这也算自己对嵌入式事业的支持,这样便也想开了),算得上最低档的智能手机了。回来一查,手机的about显示,本手机 Processor是ARM,其OS是MS Smartphone(即WinCE 。NET 4。2),这么巧合,简直可做为学习嵌入式课程的产品案例了(等我们的WinCE课程开得有声有色后,希望能从微软研究院搞些Smartphone来开发开发)。有OS的手机果然了得,金山词霸、WORD、EXCEL、REGEDIT等居然都有smartphone smartphone格式,真是爽。完全可用Windows CE版的,PC上的MP3、DOC等居然在download时都可被自动转换成自己开发一些需要的程序download到自己的手机上。现在市面销售 PDA智能手机火爆,MS总是财源滚滚。但我已发现国产的ARM+LINUX手机出现在市面上,价格只1。2K。

  在GOOGLE网上能搜索太多的关于嵌入式系统的讨论了,我刚发现一个http://www。embyte。com 非常不错,有很多有经验者谈自己的体会,投入到其中的论坛中,你会切身感到嵌入式学习的热潮。

  要么走ARM+WinCE,要么走ARM+LINUX,要么走ARM+VXWORKS。每个搞嵌入式的人都可选一条路,条条大路通罗马。

  三、关于游戏软件方向

  游戏软件人才的确目前很缺,听说很多游戏软件公司苦于没新人才补充,特别是没有高手补充,不得不相互挖人才,以至将游戏软件人才身价越抬越高。网上说日本教育部刚刚批准成立了日本第一家专门培养四年制游戏软件人才的本科大学。其实国内很多大学,特别是软件学院都有搞游戏软件人才的设想,但目前很少有做成的,主要原因是找不到能上游戏软件课的教师,听说有个学校只能花很大的价钱从Korea找老师来上课,果真缺到此等地步?

  已有很多青少年沉湎于网游而颓废的实例,好在还不至于上升到制造精神鸦片的高度,所以开发游戏软件的人也不必每日惭悔(但开发儿童益智类游戏软件的人是不需惭悔的),如果想想这是为发展民族软件产业做贡献,那反倒是一件有意义的事情了。不过听一家游戏软件公司的老板讲,搞游戏软件开发是非常辛苦的。

  若想自己创业,搞搞游戏软件是不错的主意。现在网上网站或公司都在收购游戏软件(特别是手机游戏软件,因为手机游戏用户可选从网站上download到手机上,不像网游那么复杂),按download次数分成或一次性收购的都有。我们的同学在校期间是否也可发点小财?搞得好,说不定可卖到国外网站,直接挣$$$呢。

  大致游戏分成以下几类:
  (1) PC类游戏,包括单机和网游。这类游戏开发平台基本上都是基于VC++和DitrectX(如DirectShow,DirectDraw,D3D 等,DirectX资料可直接到MS网站上查)。DirectX和OpenGL是两个主要的图形标准,OpenGL跨平台(Unix/Windows上都可跑),尽管很多搞研究的人对OpenGL赞不绝口,将DirectX骂得一文不值,但事实是,在Windows平台上,DirectX是最快最方便的,所以在Windows平台上的游戏还是DirectX当家。

  (2) 手机游戏:目前手机游戏主要开发平台有两类:
  第一类手机游戏是J2ME平台(Java 2 Micro Edition),J2ME本是为嵌入式平台设计的Java,但由于Java生来就需要Java虚拟机(JVM)来解释,所以在嵌入式产品很少用 J2ME(太慢太耗内存)。但在手机游戏中J2ME倒有用武之地,我想这可能主要是Java可跨OS平台的原因,因为手机的OS是千奇百怪的。我对 J2ME完全外行,但上次听Square Enix公司的人说,J2ME与我们同学学过的J2EE还是有较大差别的。据我所知,目前手机中用的较多的是KJava语言,KJava是运行在一种叫K Java Virtual Machine的解释器上(K JVM是SUN早期为演示J2ME在嵌入式系统应用而开发的一个虚拟机),所以将在K JVM上运行的J2ME叫KJava。尽管SUN说今后不保证支持K JVM,将开发新的更高性能的J2ME虚拟机取而代之,但由于KJava出现较早,很多早期的手机游戏软件都将K JVM假想成J2ME虚拟机的标准了,所以目前有大量的KJava手机游戏软件存在,而且还在用KJava继续开发。特别是日本的手机游戏软件由于开发较早(像叫什么docomi的日本最大的电信运营商手机游戏搞得很火),多是基于KJava的。所以目前市场上在招聘手机游戏软件人才时,很多要求掌握 KJava。有关J2ME请到Sun的网站上找资料。

  另一类手机游戏是BREW平台,BREW是美国高通公司(Qualcomm,CDMA核心技术都是该公司开发的,有无数移动通信技术专利)发明的,据说可编译成二进制代码,那当然快了。主要的开发语言是C/C++。但迫于被指责为较封闭的压力,目前Qualcomm已推出BREW平台上的J2ME虚拟机(但可想像那将是怎样慢的速度)。Qualcomm搞定了很多手机制造商签定BREW授权许可协议,最狠的是Qualcomm与中国联通绑在一起大堆基于BREW的手机游戏,所以有些公司招聘时要求掌握BREW也就不奇怪了。

  去年00级2+2班毕业答辩时,有一位同学讲的是在公司做的KJava游戏(那是一家日本游戏软件公司),还一位同学讲的是另一家公司做的BREW游戏,看来不同的公司有不同的选择。将来谁会更火,我估计随着手机硬件资源的不断提高,不会在乎一个JVM的开销,J2ME应更有前途,毕竟它是更开放的。

  (3) 专用游戏机:如电视游戏,XBOX等,我不太了解,不过这些游戏也太偏了。
  从著名游戏公司发来的对网游和手机游戏的人才需求,很有代表性。从中我们可看出,游戏公司对人才的需求主要是以下技术:

  (1) 计算机图形学,特别是3D编程与算法,包括DirectX或OpenGL。开发平台是VC++/DIRECTX或KJAVA。

  (2) 公司说,手机游戏因手机资源有限,必须对图像进行压缩,所以若有一些图像压缩算法知识比较好。像若能有MPEG压缩算法较好,手机上采用的是比MPEG压缩得更狠的一些特殊算法,但触类旁通。

  (3) TCP/IP Socket编程是搞网游开发的人必须掌握的。

  (4) 人工智能知识:复杂游戏可能需要一些AI算法。

  (5) 网络与信息安全知识:网游要防外挂。

  一般游戏公司的网游服务器是基于Linux平台的,所以还提出了对游戏服务器端软件工程师的技术需求(精通MSSQL、ORACLE、MYSQL等数据库,精通Linux Programming,特别是Socket编程)。还有对维护游戏网站人才需求(ASP 。NET和数据库)。详细请同学自己看服务器。注意一条,最好有自己的游戏软件作品,若您应聘时能带一个DirectX作品,那将有多强的竞争力,所以最重要的是现在就要行动,实践,实践,再实践。
posted @ 2009-08-07 09:09 quxiao 阅读(151) | 评论 (0)编辑 收藏

作为一家之言,想对广大渴望学习嵌入式系统的学子提出几点建议:

  (1)嵌入式系统软件硬件密切相关,一定要打好软件硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统。

  (2)选择一个芯片及硬件评估板(入门芯片最好是简单一点,例如8位MCU)、选择一本好书(最好有规范的例子)、找一位好老师(最好是有经验 且热心的)。硬件评估板的价格一定要在1000元以下,不要太贵,最好能有自己动手的空间。不花一分硬件钱,要想学好嵌入式系统不实际。因为,这是实践性 很强的学科。好书,可以使你少走弯路,不会被误导,要知道有的书是会使人进入学习误区的。好老师也可以是做过一些实际项目的学长(一定要找做过几个成功项 目的学长或老师做指导,否则,经验不足也可能误导),有教师指导,学习进程会加快。(人工智能学科里有个术语叫无教师指导学习模式与有教师指导学习模式, 无有教师指导学习模式比有教师指导学习模式复杂许多)。

  (3)许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了。只要深入理解MCU的硬件最小系统,对I/O口、串行通信、键盘、LED、 LCD、SPI、I2C、PWM、A/D(包括一些传感器)、D/A等逐个实验理解,逐步实践。再通过自己做一个实际的小系统,底层硬件基础就有了。各个 硬件模块驱动程序的编写是嵌入式系统的必备基础。学习嵌入式系统的初期,这个过程是必须的。

  (4)至于嵌入式实时操作系统RTOS,一定不要一开始就学,这样会走很多弯路,也会使你对嵌入式系统感到畏惧。等你软件硬件基础打好了,再学 习就感到容易理解。实际上,众多嵌入式应用,并不一定需要操作系统。也可以根据实际项目需要再学习。一定不要被一些嵌入式实时操作系统移植培训班宣传所误 导,而忽视实际嵌入式系统软件硬件基础知识的学习。

  (5)要避免片面地单纯从“电子”或“计算机软件”角度认识嵌入式系统,嵌入式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就 不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此,要逐步从MCU的最小系统开始,一点一点理解硬件原理及底层硬件驱动编程方 法。要通过规范的例子,理解软件工程封装、可复用等思想。通过规范编程,积累底层构件(Component),也就是一个一个模块,但是要封装得比较好, 可复用。

  (6)注重实践。这里我把实践与实验区别开来,实验主要是他人的程序或验证性的,目的是学习基础知识。实践是自己设计,有具体的“产品”目标。如果你能花500元左右自己做一个具有一定功能的小产品,就可以说接近入门了。

  (7)关于入门芯片的选择。一定不要选太复杂,不能超越学习过程。不要一下子学习几种芯片,可以通过一个芯片入门并具有一个实践经验后,根据需 要选择芯片。注意,选择的是微控制器(MCU),而不是微处理器(MPU)。不同厂家生产的MCU稳定性差异巨大。微处理器已经不直接用于嵌入式系统的最 终产品设计,不要误解。

  (8)关于操作系统的选择。可以等到你具有一定实践后,选择一个简单容易理解原理的进行学习,不要一开始就学习几种操作系统,理解了基本原理,实践中确有实际需要再学习也不迟。人总是要不断学习的。

  (9)关于汇编与C语言的取舍。随着MCU对C编译的优化支持,对于汇编可以只了解几个必须的语句,直接使用C语言编程。但必须通过第一个程序理解芯片初始化过程、中断机制、程序存储情况等区别于PC机程序的内容。

  有关嵌入式系统的知识体系、可能的学习误区,另文讨论。

  以上建议,仅供参考。


posted @ 2009-08-05 16:55 quxiao 阅读(142) | 评论 (0)编辑 收藏

 学习英语其实就是做三件事,

      1.最彻底最完美地解决发音问题!

      2.疯狂地朗读背诵!

      3.大量地阅读,让阅读成为我们的日常习惯!

 学说英语其实只是体力劳动,李阳老师十大真理是:

      1.听录音,跟着读.读到和录音带完全一样为止.

      2.录音带是最好的老师!最标准的最优秀的外国专家随时陪伴你,有了录音带,就可以随时随地创造世界一流的语言环境.

      3.记忆的秘诀就是重复!重复一千遍,天书都能脱口而出!成功的人就是重复的次数超过别人的人.

     4.零碎时间学英语的效果最好!

     5.英语的好坏就在于嘴巴动的次数!

     6.学习英语是体力劳动!把中国肌肉训练成国际肌肉!

     7 朗读和被诵是学好英语的唯一途径!没有第二个途径!

     8.语感的好坏在于课文朗读次数!书读百遍,其义自见!

     9.讲一口流利的英语,顺便考试拿高分!

     10.读英语和吃饭一样重要.饭前饭后读五分钟的英语,否则没有资格吃饭!


posted @ 2009-08-04 16:25 quxiao 阅读(203) | 评论 (0)编辑 收藏

先为对话框加上2个radio button,分别是Radio1和Radio2。

问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?

关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,
第一种:
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);//不选上
((CButton *)GetDlgItem(IDC_RADIO1))->GetCheck();返回1表示选上,0表示没选上
第二种:
关 联一个congtrol型变量(子类化),好ctrl+W(即打开classwizard),点开 Member Variables,咦?怎么没有IDC_RADIO1这个ID?原来是没有分组。因为radio button通常都是成组使用的,在一组里面是互斥的。取消,回到对话框资源面板,右键Radio1查看属性把Group选上,那么,Radio1和 Radio2就是一组了(怎么知道他们是一组的?后面说)。此时,就可以为Radio1增加一congtrol型变量m_ctrlRadio1了。如下:
m_ctrlRadio1.SetCheck(TRUE);
同样可以使用GetCheck()获取状态。
第三种:
关联一个int型变量(同样需要先分组)m_nRadio1,打开对话框构造函数,你会发现有:
m_nRadio1 = -1;m_nRadio1别赋值-1表示哪个都没有选上。如果你把-1改成0,就会发现Radio1默认被选上了,依此类推,m_nRadio1的值为1 就是第二个被选上了(这里同样有问题,哪个是第一个?哪个是第二个?)。获取状态很简单,UpdateData(TRUE)后判断m_nRadio1的值 即可。

问题2:如何使用多组?

多组和一组是一样的使用,只要搞清楚哪个是哪一组的就行了。再为对话框添加Radio3和Radio4。很 简单,先为这些Radio Button排个顺序,就是排列他们的TAB ORDER。在对话框资源面板上Ctrl+D,然后按你自己的理想顺序用鼠标逐个点击就可以了。不妨假设Radio1、Radio2、Radio3、 Radio4分别是1、2、3、4。Radio1和Radio3都选上Group属性,那么,1、2是一组,3、4是另外一组,因为分组的原则是在选上 Group属性的这一个开始直到碰到下一个选上Group属性的。你不妨再Ctrl+D,令Radio1、Radio2、Radio3、Radio4分别 是1、3、2、4,那么Radio1和Radio3是一组,如果m_nRadio1=1,此时是Radio3被选上而不是Radio2被选上。分好了组就 分别使用它们吧。

嗯,也许你还要为它们添加鼠标单击事件,非常简单。

  一、对单选按钮进行分组:
每组的第一个单选按钮设置属性:Group,Tabstop,Auto;其余按钮设置属性Tabstop,Auto。如:
Radio1、Radio2、Radio3为一组,Radio4、Radio5为一组

设定Radio1属性:Group,Tabstop,Auto
设定Radio2属性:Tabstop,Auto
设定Radio3属性:Tabstop,Auto

设定Radio4属性:Group,Tabstop,Auto
设定Radio5属性:Tabstop,Auto

二、用ClassWizard为单选控件定义变量,每组只能定义一个。如:m_Radio1、m_Radio4。

三、用ClassWizard生成各单选按钮的单击消息函数,并加入内容:

void CWEditView::OnRadio1()
{
    m_Radio1 = 0;    //第一个单选按钮被选中
}

void CWEditView::OnRadio2()
{
    m_Radio1 = 1;    //第二个单选按钮被选中
}

void CWEditView::OnRadio3()
{
    m_Radio1 = 2;    //第三个单选按钮被选中
}

void CWEditView::OnRadio4()
{
    m_Radio4 = 0;    //第四个单选按钮被选中
}

void CWEditView::OnRadio5()
{
    m_Radio4 = 1;    //第五个单选按钮被选中
}

四、设置默认按钮:
在定义控件变量时,ClassWizard在构造函数中会把变量初值设为-1,只需把它改为其它值即可。
如:
 //{{AFX_DATA_INIT(CUnitBlockTypeFlankPublicAdd)
 m_Radio1 = 0;    //初始时第一个单选按钮被选中
 m_Radio4 = 0;    //初始时第四个单选按钮被选中
 //}}AFX_DATA_INIT


posted @ 2009-07-30 11:10 quxiao 阅读(4812) | 评论 (1)编辑 收藏

       在一些情况下,应用程序有许多信息要显示,当一个窗口内显示不下时,VC提供的MDI应用程序可以解决这个问题,但是如果应用程序只是对单 个文档,采用多种方式显示,则采用SDI更合适。那么,如何在单文档应用程序中实现多视图呢?缺省情况下,派生类的构造函数是pretected类型的, 必须将它改为public类型,因为我们将会动态生成派生视图类并切换活动的视图。也可以一次生成所有的视图,但是这样造成系统资源的极大浪费。

1  首先利用资源编辑器新建4个对话框,在对话框中添加需要的控件,各个对话框的ID分别为IDD_MULTIVIEW_FORM,IDD_MULTIVIEW_FORM2,IDD_MULTIVIEW_FORM3,IDD_MULTIVIEW_FORM4

2  为每一个对话框创建一个CFormView类的派生类,分别为:CView1,CView2,CView3,CView4

3  在应用程序的初始化文件中用CView1替换原先的视图,这样程序启动后的缺省显示视图是CView1,修改后的部分代码如下:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMultiViewDoc),
RUNTIME_CLASS(CMainFrame),       // main SDI frame window
RUNTIME_CLASS(CView1));
AddDocTemplate(pDocTemplate);

4  利用资源编辑器,添加几个菜单,并添加相应的消息处理函数:
void CMainFrame::OnViewView1() 
{
SwitchToForm(IDD_MULTIVIEW_FORM);   
}

void CMainFrame::OnViewView2() 
{
SwitchToForm(IDD_MULTIVIEW_FORM2);   
}

void CMainFrame::OnViewView3() 
{
SwitchToForm(IDD_MULTIVIEW_FORM3);   
}

void CMainFrame::OnViewView4() 
{
SwitchToForm(IDD_MULTIVIEW_FORM4);   
}

在 SDI中CFrame的派生类即CMainFrame控制着所有的视图,而且它允许用户通过消息处理进行视图的切换。进行视图切换的原理很简单,只是断开 和旧视图的连接并把他删除,创建一个新视图,将文档和它相连,设置几个标志,然后显示新视图,SwitchToForm函数是进行视图切换的代码函数。

void CMainFrame::SwitchToForm(int nForm)
{
  //CDocument* pDoc = GetActiveDocument();
    CView *pOldActiveView=GetActiveView();             //保存旧视图
    CView *pNewActiveView=(CView*)GetDlgItem(nForm);   //取得新视图
    if(pNewActiveView==NULL)
    {
        switch(nForm)
            //这些ID是对话框的标志符,但也可以用其他的标志
        {
        case IDD_MULTIVIEW_FORM :
            pNewActiveView=(CView*)new CView1;
            break;
        case IDD_MULTIVIEW_FORM2 :
            pNewActiveView=(CView*)new CView2;
            break;
        case IDD_MULTIVIEW_FORM3 :
            pNewActiveView=(CView*)new CView3;
            break;
        case IDD_MULTIVIEW_FORM4 :
            pNewActiveView=(CView*)new CView4;
            break;
        }
        CCreateContext context;   //将文挡和视图相连
        context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_CHILD ,
            CFrameWnd::rectDefault, this, nForm, &context);


        pNewActiveView->OnInitialUpdate();
    }
    SetActiveView(pNewActiveView);        //改变活动的视图
    pNewActiveView->ShowWindow(SW_SHOW);  //显示新的视图
    pOldActiveView->ShowWindow(SW_HIDE);  //隐藏旧的视图

    if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView1))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM);

else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView2))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM2);

else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView3))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM3);

else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CView4))
pOldActiveView->SetDlgCtrlID(IDD_MULTIVIEW_FORM4);

    pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    
    

delete pOldActiveView;   //删除旧视图

RecalcLayout();          //调整框架窗口
}
posted @ 2009-07-29 19:51 quxiao 阅读(1692) | 评论 (0)编辑 收藏

看来人真的不能太悠闲了,至少对于我来说是这样的。因为上的大学就在本地,所以前几天在学校没什么事情,就回家休息了两天,避避暑。可是每次回家,自己都感觉无事可做,整体在家就是看电视、玩电脑、吃饭和睡觉,从学校带回家的几本书,只是偶尔翻上个几页。久而久之,自己就感觉浑身乏力,提不起精神。回到了学校,情况略有好转。但在学校,还是感觉自己过得太悠闲了,整天在教研室混,感觉生活少了些目标。
其实,自己暑假之前还是定下了许多目标的,比如准备英语口译、锻炼身体、做好学校的OnlineJudge。现在换了导师之后,又加上了学习嵌入式。还是有很多有意义的事情可以做的,但为什么自己还是觉得很无聊呢?
我想,原因大概有以下几点:
1、缺乏激情。
不知从何时开始,我开始渐渐的对周围的事情失去了兴趣(很危险,这是忧郁症的症状之一啊!),幸好还不太严重,情况时好时坏。难道是现代的教育体制把我搞傻了,把我变成了只会考试的书呆子?一旦对事物失去了兴趣,就好失去做事情的激情和动力。
2、毅力不够
在大学里面搞的ACM、OnlineJudge,总是善始而不善终。一开始还有些劲头,可是到后来就有些消极了。ACM比赛成绩不理想、OnlineJudge到现在还没有完成。自己很想学好的英语也是这样,大学四年来也没有太大长进。

自己难道要成为缺乏激情、毅力不够的人?怎么可以这样!那么,应该怎么办?别无他法,唯有认真思考加上立即行动。让自己充分利用时间、有效率的做许多有意义的事情。人,总是有惰性的。也许前几天还给自己定了计划:每天要背多少单词,看多少页书。可以过几天就开始对自己的计划打折扣了,再过几天就把计划给忘了,或者记得也不去做了,这种事常在我身上发生。有时我在想,如果有人一年中的每一天都做同一件事,那么这件事必然会做的相当出色,但又有几人能做到呢?
要坚持做一件事情,必然需要时刻提醒自己,时刻给自己打气,告诫自己不要放弃。看来自己只有这样做了才能成为更好的自己!
posted @ 2009-07-23 21:02 quxiao 阅读(211) | 评论 (1)编辑 收藏

仅列出标题
共5页: 1 2 3 4 5