Thursday, July 31, 2008

总结一下最近看的IA32 Protected Mode

历史
从80386开始,Intel的x86系列处理器有了"保护模式"
至此,x86运行在三种模式上:
Real Mode: 兼容8086的模式。即20根地址线,没有提供保护措施,采用 aa:bb 的段寻址方法,最大1M内存。
Protected Mode: 新的模式,32位地址线,支持4G内存。提供0-3共4个特权级,支持分页机制。
Virtual 8086 Mode: 在Protected Mode下模拟8086的工作模式。

开机过程
当按下电源,BIOS经过加电自检(post,power on self test)后,搜寻引导盘的0道0扇,即第一个512B的地方,执行这里的代码。
一般在这里存放bootloader。

Bootloader
一般分为两个stage。第一个stage是自我引导过程,即大概经过了"进入保护模式->读入stage2代码->交付给stage2代码运行"
第二个stage则是bootloader的主程序,一般提供多os的引导。

保护模式
1.进入保护模式
开机时是运行在实模式下的,比如通过一些初始化工作才能进入保护模式,必须做的工作大概有:(不一定要按顺序)
1) 准备GDT:包括编写GDT以及选择子
2) 用lgdt指令加载gdtr
3) 打开A20地址线允许超过20b的寻址
4) 关中断
5) 设置cr0的PE位
6) 跳转进入32位的代码,进入保护模式

2.关于GDT
保护模式下的寻址与实模式差很远.它是使用GDT来完成的.GDT = Global Descriptor Table,用于存储各段的基址,长度,属性。
32b的寻址与16b一样,也是通过段:偏移来完成的。然而段寄存器保存的不是段基址,而是选择子selector。
选择子指向GDT中的表项,这些表项包含有一个段的基址,长度,属性。

因此,这样则提供了第一层保护:该段代码只能按照属性访问基址+长度范围内的内存。
段属性作为对一个段各个方面的定义规定和限制了段的行为和性质。

3.关于LDT
与GDT很类似,也是用来描述段结构的。使用LDT可以模拟多个任务,使各个任务独立。
添加一个LDT的步骤为:
1) 添加一个32b的代码段
2) 增加一个段保存一个LDT
3) 在GDT中添加一个描述符用以描述LDT,同时也要定义相应的选择子
4) 添加新添的描述符的初始化代码
5) 使用lldt加载ldtr
6) jmp跳转到局部任务

4.特权级
共有0-3个特权级,0级最高,是操作系统内核级别,1,2次之,是服务级别,3最低,是普通应用程序级别.
处理器通过复杂的步骤检查特权级,以保护任务跳转时的合法性: 禁止非法的跳转以及访问.这又为系统的运行提供了一层保护.

不同特权级代码段之间的转移
从高到低:使用ret/retf完成
从低到高:使用 call gate(调用门) 完成

其中调用门也是类似段描述符的GDT表项

5.分页
分页基址非常重要,提供了很多现代OS重要的功能基础.
1) 线性地址(平坦地址空间)
每个程序看起来都是运行在一个具有4GB平坦线性地址空间的机器中.
使得编写程序,调试程序简单了许多. 掩盖了真实内存与运行时内存之间的差异. 减轻了程序员的负担.

2) 虚拟内存
使得每个程序可以使用远大于物理内存的4GB内存. 注意是每个程序,而不是所有程序共享.
这样使得系统能完成多任务的功能.

6.分页机制详解
首先要理解物理地址,线性地址,逻辑地址.
逻辑地址(logical address) : 表现为16b段选择子:32b偏移,用于描述计算线性地址
线性地址(linear address): 形如0x00000000的地址,是程序眼中看到的地址,共4GB
物理地址(physical address): 真实的在物理内存中的地址

当没有开启分页机制时,线性地址就是物理地址。开启了分页机制后,还必须经过转换才能得到真实物理地址。

分页机制下寻址模式为:
通过逻辑地址的16b段选择子读取出段描述符,获得段基址,加上32b偏移,得到线性地址。
然后线性地址通过分页机制计算出物理地址。

分页机制下,线性地址看作 10b+10b+12b的组合。转换使用二级页表。
第一级是页目录,大小为4KB,每个表项占4B,共1024项
第二级是页表,大小为4MB,每个表项占4B,共1024项,因为有1024个页表,因此一共为4*1024*1024B=4MB
其中高10b是页目录地址,中10b是页表地址,最后12b是偏移,这个过程描述为:
通过高10b得到页目录表项,从中读取出页表地址(第几个页表)
然后通过中10b得到页表表象,从中读取出页地址(第几个页表项)
然后把页地址加上偏移,得到真实地址。

以上假设每个页大小为4KB。其中页目录以及页表都具有一个基址。
分页机制的开关位于CR0寄存器的PG位。
CR3寄存器负责存储页目录基地址。

7.保护模式下的中断与异常
中断与异常是类似的,中断产生的原因是硬件发生请求或者程序主动发出中断调用。
异常产生的原因是运行时检测到错误,如除数为0,保护违例,页错误等。
但是它们的处理手段类似的,都是通过一个PIC(Programmable Interrupt Controller)
向CPU发送中断信号。
总的来说,都是软件或者硬件发生了某种情形而通知CPU的行为。
区别于实模式,保护模式下的中断使用IDT(Interrupt Descriptor Table)来代替实模式的中断向量表。
IDT的作用是将每一个中断向量和一个描述符对应起来。


果然有ppmm

在BBS上看到有人这么说,今天进去CUHK刚好碰上UG reg。一看,果然。

可惜都是UG的……

不过PG也看到了很多不错的

可惜一脸的大便样

 

恩,以上是今天的一大感受。

 

今天算是完成了任务吧,小记一下。

 

早上10点起床,几个人一起去喝茶。完了后去买被子枕头与生活用品,一下子用了近600港币……肉赤...

 

中午回来小休息了一下。2:30送亲戚上车后去CUHK,完成注册的一些手尾。4:00搞定,去找求会师兄,师兄超级nice,陪了自己整整3个小时。介绍、提供了非常多从学习到生活的经验与指导。一起吃饭,后来还送我到5楼的礼堂(看电影……)。

 

7:00-9:30是电影时间,Chariot of Fire(火战车)。是Michale Lyu组织的,说得一口非常好的普通话!播放期间,Irwin和Miss Yang都来看了。可惜结束时还是没能够上去介绍自己,唉,克服不了这个毛病,真是自卑。

 

后来乱撞乱撞终于找到Bus Stop,等来免费的Bus竟然爆满,只好坐4.5的小巴走人。

 

明天就正式入住了,心乱如麻ing.

Wednesday, July 30, 2008

北京2008年奥运会纪念钞票(港币20元版) - I got it

没来HK之前老爸就叮嘱我买一套纪念钞给他。昨天在William家见到澳币和港币的20元样张。得知在附近就能买到,于是决定今天7点就去排队(银行9点开门派筹)

不过由于昨晚出了点意外(被热水管烫到手,>_<),半夜1,2点跑出去外面买药。

结果晚了点睡,今早赖床到7点半才起床,梳洗整理到8点出门。大概8点20分到达中银HK油麻地支行。发觉已然是排了好长的队,绕了整个圈,一直到后面的一个篮球场都塞满了人。

 

到了9点过一点,队伍终于开始动了,阿sir很负责,愤怒地呵斥打尖者。打尖者很贱,尖完又尖。排后面的阿叔猛跟我吹水,说什么很多人倒卖,自己也是象上班一样来排队买,昨天已经来排完3轮赚了4,500块了。正说着,发现N多人排到我们队后面,原来正是那些循环排队的人…… 终于明白了以前看书所介绍的南方人的一种特点:赤裸裸的拜金主义,然而却并不是那种让人恶心的感觉,而是君子爱财取之有道。基本上大家都是心照来排队倒卖赚钱的了。

另外也让我明白到新闻说的爱国其实只是一种假象――事实上真正拿来自己收藏的有几个人呢…… 在队伍旁边也有不少已经拿了筹倒卖的人,也有不少准备收购的人(一些别有用心的炒票集团的人马)

 

anyway,不关我事,反正能买到一套回去让老爸happy一下就好了 ^_^

 

拿到筹之后,很无聊地在中银里面发呆,顺便修改了一下自己以前的地址和手机number.

 

熬到11点,凭票入场买纪念币,然后走人――tnnd,竟然要138元一套,只有一张面植20元的港币。

Friday, July 25, 2008

修改Google toolbar的button

这是我在ff3.0下的toolbar
其中从左到右的button分别是
xiaonei
cnbeta
picasa
google reader
baidu
ip138
wikipedia
gmail

如何制作一个按钮?这里有一个很好的教程(官方).

但是问题出现了,有时网页的icon不好看,甚至没有怎么办?
那么就必须自定义toolbar上的icon.

下面以ip138的例子来制作一个按钮.并替换其图标.

1.打开ip138.com,在搜索框单击右键,选择"生成自定义搜索".

2.使用toolbar选项->按钮,选取ip138,修改->使用高级编辑器.
此时会弹出一个新的窗口,我们可以看到类似的代码:

<custombuttons xmlns="http://toolbar.google.com/custombuttons/"> <button>
<title>校内网</title>
<description>点击访问校内网,输入关键字搜索好友</description>
<search charset="UTF-8" method="post">http://browse.xiaonei.com/os.do?q={query}</search>
<site>http://home.xiaonei.com/Home.do</site>
<icon>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAA
AAAAAAC0hG3/tIRt/7SEbf+0hG3/tIRt/7SEbf+0hG3/....
<!-- 此处省略 -->
</icon>
<update xmlns=""></update></button>
</custombuttons>

由于google toolbar的button是用xml描述的,对于图标使用base64编码.
因此在
里的是base64.下面的问题就转移到如何把一个ico转为base64了.

网上有许多在线的转换器,这里是两个比较好用的:
  1. Binary File to Base64 Encoder / Translator

    提供链接,把链接的图片转为base64.
  2. base 64 encode and decode,可以把电脑里的图片上传转换,也可以decode.
使用1的工具随便查找一个icon,把转换结果粘贴到icon标签中代替原来的即可.
比如,在xiaonei网的首页中,查看源代码,可以看到:
<link href="http://xnimg.cn/favicon.ico" rel="shortcut icon" type="image/x-icon">
这就是网页的图标了.

http://xnimg.cn/favicon.ico这个链接粘贴到1中的工具,再把生成的结果粘贴到icon标签.

当然,还有许多高级技巧可以使用,具体参考官方文档.

Thursday, July 24, 2008

[摘录] 老广为何要死守着自己的方言?(2)

http://book.sina.com.cn/longbook/soc/1110948111_guangdongren/4.shtml

在粤语文化圈里,常听到人们谈论起辛亥革命后的一段掌故。当年,帝制倾覆,共和初肇,在中华民 国国会里,要求奉粤语为中国"国语"的呼声很高,支持的票数,已然过半。但孙中山逐一去说服粤籍议员,劝他们放弃粤语,改投北京话一票。最后,凭着孙中山 的人望,粤语仅以3票之差,败给了北京话。

[摘录]什么是EP

http://zhidao.baidu.com/question/7190774.html?si=2&wtp=wk

EP就是歌曲数比专辑(album)少,比单曲多的音乐集出版物

细碟(MCD/EP)

也就是小专辑,一般有3-7首歌(当然也可能更多),时间也比较短,通常在15-20分钟左右。它是一种较不正式的专辑,乐队有了几首成熟的作 品,需要及时推出,但又够不上一张大碟的数量,所以就发行这种细碟,当然也可能纯粹就是为了赚点外快。它的价格介于单曲和大碟之间。为了使细碟更具有吸引 力,乐队有时会在细碟上放一些较为罕见的歌曲,如现场或翻唱歌曲。作为一支摇滚乐队来说,大碟是不可缺少的,细碟就属于可有可无的东西了。在胶木唱片时代 这种细碟叫做EP,现在当然就叫MCD了。

这个就比较沾边了
SP EP LP唱盘跟录音技术史和唱片史有关
没办法简单说清楚,找点相关内容的书看看,能解答所有唱片技术相关的问题
不过,现在所说的EP, album,已经不再是密纹唱片时代的概念了。
Single依然叫单曲,EP就大致等同于迷你碟
密纹时代,因为录音的标准不同,转速不同,各种唱盘的音质也不同
45转的EP就是比100/3转的LP要好很多,以前还有78转SP,我没听过,估计质量会……
其实简单想想就知道,78转,一张牒一面只能录一两首歌,所以Standard Playing
也就被称作Single Playing,现在很多单曲唱片都是有两首歌的,为什么Single会有两首?
就是密纹时代一面一首的传统(其实现在也不能说密纹时代过去了,黑胶唱片的音质
绝对是好于母板较差的激光唱片的,具体的问题在录音技术里算一门学问)
到了EP技术,一张牒正反面各能录3首歌左右,到了LP,一面五首,总共60分钟的录音时间
唱片也才作为标准录音器材走入千家万户。
数码化之后,黑胶被CD取代,CD本身,是一个压缩的概念,普通LP 8、90分钟的录音时间,
能够压缩在CD盘的一面上。不论Single,EP,LP,都是一张塑料片解决
所以单曲EP的概念也就从录音技术定义演化成唱片经销定义了
日本和欧美的歌手,很习惯于发Single,如果有人买他们的唱片,就一只一只的做下去
时间差不多了,就合起来发一张Album,如果凑的歌不是很多,就发成EP。
香港唱片业是以LP为主,他们一般没有单独发的Single,但是有小一号的盘,EP,和
常见的LP,大碟。不过,现在很多EP也是拿大盘来做了,典型的比如黎明的EP和张国荣的
EP。香港的唱片流程是,先用单曲打榜,成绩比较好,就会筹备整张大牒,然后一面卖
一面用接力主打和第三主打派台做宣传。容祖儿的第一张EP就是这样,五首歌全部打到熟
。新歌手,或者来不及筹备大牒的时候,歌手就会出EP,这个跟概念专辑不是一回事,
有的乐评人自己搞混了,虽然EP因为歌曲少,一般商业性的东西都会相对少,整体结构也明显,确实有不少概念专辑以EP形式存在。
香港区分EP LP和单曲,其实是有标准的,不过似乎是IFPI定的标准,具体我记不得了
用大号牒和小号牒发行的就不说了,即使都是大号牒,少于6个track,总时间短于30分钟
的都叫EP,而且,总track少于4个,并且总时间少于15分钟的EP,是不作为IFPI标准
唱片统计销量的,为了达到这一点,很多公司都学会凑track,我记得这件事上,EEG的
叶佩雯的EP,曾经有过争议。
Single呢,两个track,时间短于12分钟?大致是这样吧,记不准
所以,faye迷们,这里涉及到你们偶像的一个问题
Eyes on Me这个东西,在日本版,红豆这个track其实是bonus,第三个track是器乐版
所以是很标准的Single.
可是在香港版,红豆成为正式的track,总时间也足够,因此这张唱片就算做了EP

Friday, July 18, 2008

Free VPN service

1.Free VPN list

details can be found here.
http://www.cnbeta.com/article.php?sid=60293

linkideo : http://www.linkideo.com/ 
English service provider, tried once, got french ip. 30 days free experience. only for http request (?)
Introduction can be found here:
http://chiong.cn/2008/04/linkideo/

Relakks : https://www.relakks.com
Sweden service provider. 30 days free experience.
Intro.:
http://chiong.cn/2008/07/relakks/

Above can be "cheated" by hacking MAC address.

千渡 :  http://bbs.1000du.net/
VPN服务器IP:
电信区:244server1.1000du.net
网通区:244server2.1000du.net
铁通移动联通教育网服务器:244server3.1000du.net

Prairie Dog VPN:http://www.pdog-vpn.com/freeaccount.php
囧主页的文字:
" Due to overwhelming response, we are temporarily suspending our free VPN account registration. We will re-open the registration after we have upgraded our infrastructure. Stay tuned!"


2. VPN in Linux
弄了好久,终于能用,希望到了CUHK那边可以正常使用。
unbuntucn论坛有提供VPN服务,可以作为测试。
http://forum.ubuntu.org.cn/viewtopic.php?t=108009
配置在里面链接里有提到。

但是我用的kubuntu,必须安装network-manager-gnome才能使用里面的小工具 nm-applet
来进行带GUI的VPN设置。虽然可以按照教程:
http://wiki.ubuntu.org.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8UbuntuVPN
来进行手工的配置,用pon poff来控制VPN的连接,但这样未免不够人性化。

于是使用knetworkmanager来配置。安装
network-manager-kde
network-manager-openvpn
network-manager-pptp
pptp-linux
等几个需要的包后。

发觉knetworkmanager并不能正常使用pptp VPN,在Option-configure-VPN-Add-pptp
提示
"There is no configuration interface for the VPN service pptp installed. Please check your installation."

上launchpad查看发觉这是一个从7.10开始就有的bug.原因比较复杂,这里就不提了。
https://bugs.launchpad.net/ubuntu/+source/network-manager-pptp/+bug/123696
https://bugs.launchpad.net/ubuntu/+source/knetworkmanager/+bug/151867

有两种solution,但是第一种我使用不能。
第一种:
1.安装nm-applet
2.使用nm-applet配置VPN(我安装了也不能配置)
3.关闭nm-applet然后重启knetworkmanager
4.在knetworkmanager里面启用pptp VPN。

第二种:
安装 Bård Kalbakk 提供的patch。
https://bugs.launchpad.net/ubuntu/+source/network-manager-pptp/+bug/123696/comments/30

终于能配置VPN了,但是……发觉竟然一直链接不上!!! ~>_<~

最后找到了kvpnc这个工具,配置了挺久,终于能用了~

3. 连接建立后的route表修改
安装上后按道理来说能正常使用,所有的packet会forward到VPN的网关然后再转发出去,
即机子的default路由是修改为路由到VPN gateway的(windows默认是这样处理)。
不知道是VPN gateway的问题还是kvpnc的问题,总之我这里使用有问题。
于是我在kvpnc的设置里面把选项"replace default route"改为"keep default route"
只能手动添加route。

这样做的好处是,对于普通的国内网站,我还是用原来的ADSL连接(电信2M)出去,速度很快,
而不是sbb地跳到国外再跳回来。而针对外国网站则有的放矢地添加route,这样能针对ip进行路由的转发。坏处就是不够机动,因为这样每访问一个外国地址就要添加一个entry到route table。

不知有没更好的方法,比如智能判断国内国外等……求教高手中。

4. f**king GFW without tor
只需执行:
sudo route add zh.wikipedia.org gw ( VPN gateway)
其中add后面是要访问的地址,gw指网管 ,括号里面填入VPN网关地址。
删除的话只需执行
sudo route del zh.wikipedia.org
即可。

这里有两个很好的原理介绍!
http://pptpclient.sourceforge.net/routing.phtml
http://pptpclient.sourceforge.net/routing-lan-to-lan-via-adsl.phtml

ip138.com查IP,测试成功,linkideo的ip是来自法国d,哈哈……

附:
关于openvpn,pptp,vpnc,l2tp等
它们都是用于VPN的协议,但是由于VPN跟router密切相关,所以一般都是由公司研制并开发相应的产品,因此vpnc适用于cisco的路由器。而pptp是MS开发的协议。
不知理解有没错,感觉就大概是这样子吧。

Monday, July 14, 2008

一个大学生的感慨:从招聘看中国软件业(转)

http://topic.csdn.net/u/20080703/11/99688124-ef56-4283-b5eb-a6fe6a495cd4.html
原文出处不详。

前几天看了《中国软件业人才打造模式之辩》,又看了最近中国各大公司招聘的情况,我真是太有感慨了。

  中国的软件业真的是没落了吗?希望有人能给我一个信心,给我一个信念,给我一个帮助。

  一个公司,看名字看不出来有什么门道,也不知道规模如何,只在招聘中这样写到:"精通VB,Delphi,VC++,Java语言编程,熟悉 WINDOWS和Unix/Linux操作系统和TCP/IP协议,熟悉Windows和Linux系统编程和网络编程。……"还有这样的:"精通 .NET 编程,五年以上的 .NET 下软件开发工作经验……"

  我看起来这样的东西就晕,我不知道其他的软件人士或者程序开发人员是什么样子的水平,我只说我认识的一些软件工程师和设计师们,谁会"精通"VB,Delphi,VC++,Java这么多种语言啊??而且还是精通呢?

  我想,不仅仅是在中国,在世界上,也没有这样的几个人吧??以为是在招超人呢!!!

  还有这个"精通 .NET编程,五年以上的.NET下软件开发工作经验"我想问问大家,..NET一共才问世几年啊?

  我怎么能有五年以上的这种东西的开发经验啊??这不是坑我嘛!!!

  先说说我自己,今年2005年,6月份就要毕业了,学的是计算机科学与技术专业。现在工作的问题是最重要的事情了,但是,现在招聘的公司,真的是让我无奈啊~~~

  为什么无奈呢?先说说我自己的专业,计算机科学与技术,是个什么专业?既要学习计算机理论,又要去实践,既要学习到软件,信息类;又有硬件,电子类; 还有网络,通信类。要是外行看起来我学的这个,学得又多,而且又广,以后工作选择余地一定是很大的,但是,实际上来说,根本不是这样的,我们虽然学了很 多,但是基本上都是学习到了皮毛而已,由于涉及到的范围太多,都很难深入的去研究和学习,到了毕业,硬件方面比不过专门学电子的,软件方面比不过专门学软 件的,网络通信方面也是这样。

  我专业就是这样一个情况,所庆幸的是,我对于计算机这个行业是很感兴趣的,从初中开始就学习计算机,到现在,已经十年了,值得纪念啊!我对与网络和软 件编程又有特别的偏爱,从一开始接触计算机,就开始了最简单的编程,从"小海龟"LOGO语言,到最"基础"的Basic,经历了GW-Basic、 Quick Basic、Qbasic,DBase,FoxBase,FoxPro,Turbo C ,Pascal…… 一直到后来的Visual Basic,Visual C++,Visual FoxPro,Delphi,Java……和现在已经进入主导潮流的 Microsoft ..NET平台 和 Java平台等等。

  这些,都是这么多年来的积累,虽然不是完全都掌握,但是,也是都算是略知一二了。从最早接触的Basic和C开始,也就注定了一直都是在Basic和 C的基础上面来继续的。然后一直到了面向对象语言,我就直接过渡到了Visual Basic 和 Visual C++上面,面向对象语言我是从1999年开始接触并且学习的。到现在,少说也有5年的学习经验了。到了微软公司出品 ..NET 平台的时候,已经是2002年了,我那个时候开始接触 ..NET 下的东西,现在已经基本掌握了Visual Basic .NET 和C# .NET 了。

  记得以前,看一些程序设计的书,就曾经讲过,C语言是很基础,也是很有深度的一门语言,就算以后不用,也最好能掌握这一门语言,这个语言的优势实在是 很大,所以,我对于C语言也下过一番工夫。就因为这样,在随后得知了Java语言后,我并没有下很大的工夫去深入研究这个语言,因为我觉得,语言到了最后 都是相通的,掌握了软件设计的真谛,任何语言只是实现的一个途径,一个工具而已。

  但是,现在的环境,让我感到非常的困惑,现在招聘,动辄就是Java程序设计人员,Java软件开发工程师,Java软件编程人员……我不禁在琢磨, 难道中国的软件业发展的就这么快?这么快就有这么多的程序员,这么多的软件设计师是精通了Java语言吗?难道那些招聘Java人员的公司就有能力完成这 样的东西吗?这个现象令我很不解,而且是非常的不解,既然一个项目,一个工程可以用Visual Basic 完成,可以用其他语言来完成,为什么一定要追求Java呢?

  而且现在中国软件业也有一个非常奇怪的现象,大学学习的课程与社会需要的东西脱节,我前面也说了,学习是要学习软件设计的真谛,是一个思想,而不是要 学习那么多的语言,那些语言,都是要为完成的计划来服务的,只要能完成,用什么都可以的,记得谭浩强教授曾经就说过"我就不相信,学习了C++就一定比C 语言好……"。我也觉得,难道Java 语言真的就比其他的语言优秀?难道它就真的比其他语言有优势?实际情况不是这样的吧?

  我的一个猜测,现在的软件公司,招聘人的时候,是不是都在竞争呢?竞争那个公司的水平高?你的公司招聘Visuan Basic的人!我公司就招聘Delphi的!你们招那些?那我们公司就招VC的!那我们公司就招Java的!就这样,互相的"抄作"互相的"竞争",把 一个本来比较稳定塌实的职业抄作成现在这个样子。这个是我一个猜想。

  还有一个就是,现在大学毕业生,不少公司都反映说跟不上节奏,也就是说大学生在学校里面学到的东西在工作中用不到,好象这个已经是老调重弹了,中国大 学生这些年来一直都有这样的一个毛病,高才低能,也许现在提倡素质教育就是为了这个吧!但是,高才低能这个能怪谁呢?再来看看这些招聘广告吧!"英语四、 六级以上!" "日语2级以上优先考虑" "会韩语者优先" ……

  好啊!可真是会想,大学四年里面,不光要打好自己的学科基础,学习好学校的课程,还要了解社会上流行的东西,甚至还要去把这些外语都拿下了,我想 说,"大学,才4年啊!把专业都扎实了,让自己有了丰富的专业经验时间都是比较紧张的,还要把这些外语通过了!真是难上加难啊!"(更何况,学习计算机的 都是理科的学生,对于外语,尤其是国家四、六级这样的考试,更加是难于上青天啊! ――这个是我的一点牢骚了)

  对于学校教育,我也说一些吧,现在学校教育,非常严重的滞后了中国软件业的发展啊,大学里面都学到了一些什么东西呢?基本上没有什么在社会上工作特别 有用的东西,有很多已经不再适合以后的使用了,就连软件都有升级补丁,升级包,为什么大学的教科书就没有呢?这么多年了,虽然面向过程的语言是经典,但是 看看现在,面向对象已经成为以后的大势所趋,如果再一味的在旧的东西上花太多的时间去深究,我认为没有这样的必要,好象现在我们在大学所学的软件工程都是 按照面向过程的方式来讲的,但是,听我几个在过外的朋友说,他们那里软件工程和数据结构、算法一类的东西都是按照面向对象方式来讲授的,虽然也有一部分的 面向过程的,但是比重不是很大。再来看看我们学的,差别是不是很大呢?也难怪大学生跟不上社会的步伐和节奏。

现在,大学生毕业后生存,很难。

  再来看看现在中国的软件公司招聘,都是要多少年的工作经验,试问一下,一个刚刚走出大学校门的大学应届毕业生,能有多少年的工作经验呢?也有不少毕业 生的个人简历上有n年的工作经验,我有的时候就很奇怪,大学四年里面,做做兼职都是挤出来的时间,这样动辄就1年,2年的工作,不知道是怎么出来的,为什 么招聘公司的人力资源负责招聘的人员就不会仔细想一想呢?也有别人这样说过,我也有这样的体会:"一般公司都是由人力资源部门或者人事部门负责招聘,这些 人员一般都不是技术人员,他们也不会问应聘人技术性的问题,只在乎的是你的资历,比如工作经验啊!以前工作过的单位啊!等等"。如果按照这样的情况循环下 去的话,那应届毕业生一直都找不到合适的工作,因为没有工作经验,就一直闲置,到了下一年,下一年的毕业生也同样如此,…… 循环下来,原来国家的闲散人员是这样出来的啊!!

  当然,只是个玩笑,而由于以上的情况,很多学习计算机软件、网络等方面的毕业生就是由于工作经验的问题,而转行去干了其他的行业。中国每年会有多少专门学习软件的学生毕业?但是,为什么中国软件业还是缺少人才呢?有很大一部分原因是因为这个吧!!!

  为什么软件开发需要工作经验?我觉得是因为国内软件公司需要它招聘来的人能马上对他公司所做的项目进行工作吧!在国外,很多大的软件公司都是愿意招聘 一些刚刚毕业的学生,它招到人以后,进行公司内部培训,,然后按照自己的需求对人才进行培养,这样,就逐渐形成了一种企业文化,企业内部人员的素质也非常 的好,水平也是非常的高的。而反看国内的那些中小型公司呢,都是要那些有工作经验的人,不进行培训,用完了一批人,然后再去招一批人,人员流动快,根本积 累不住人才,更不用说什么是企业文化了。 而这些企业在自己招人的时候,目的就是完成项目后,自己赚了钱,然后那些程序员就可以辞退了,他们肯定不会花费一笔钱再去培养那些新人了,而且它们也担 心,自己培养了新人,然后会被别的公司挖走,自己就吃亏了。这些想法都是看自己企业的利益,难道你们就没有想过,这样做下去,中国的软件业能有发展的一天 吗?这样只顾自己,为眼前的蝇头小利,真正耽误的可是很难衡量的啊。

  公司招聘的时候,还有一个问题,很有意思,就是招聘的时候,要有个人简历,好象那些管理人员都是比较偏爱那些花哨,没有内涵的简历,而那些写得比较有 深度,比较专业的简历从来都不会进入他们的视线。学习软件开发的都是理科生,对于写简历这样的东西不会特别专业,一般都是实事求是,就因为是实事求是,所 以简历里面不会说自己什么都精通,什么都熟练操作,一般我的简历就是把自己非常熟悉的东西才写进去。但是,这样的简历,有用吗?根本不会被别人所看好,管 理人员需要的是什么东西都会的,什么都精通的"超人"。对于这些,我只能说,"对不起,我不是超人!" 以前看一些书本介绍写简历的时候,要实事求是,不要吹牛,也不能撒谎,现在看来这个定理已经被打破了,还是那些花哨的,吹的厉害的简历比较吃香啊。以后也 要去好好写一下我自己的简历了,我应该把工作经验写上,而且要写得非常丰富;要把各种管理人员喜欢的话也写上,要写的非常得体;要把自己不会的东西也写 上,要写成全部精通…… 按照这样,公司这样招聘来的学生水平应该都不怎么高,所以公司们才都说学生的水平跟不上社会的节奏,所以这样,就导致了我们毕业学生中的相当一大部分有水 平、有技术的人没有地方去,成为了社会闲散人员。就这样,中国软件业进步和发展就受到了限制。 软件是一门艺术,在软件设计和开发方面,我们需要的是对这门艺术有造诣,而且有热情,非常爱好,并且还要对这门艺术有灵感有创新精神的人才,现在的教育制 度,已经扼杀了一部分这方面的人才,难道已经为数不多的人才又要倒在招聘的门前吗?

  现在一般的中小型公司,就按照前面所说的那样招聘去不少所谓的"软件人才",但是那些人才能做什么吗?无法想象,但是他们也是有自己的一套生存方法 的。我曾经就在一些技术性的论坛呆过,里面经常有一些帖子发表是说要问一些程序如何开发,或者一个功能如何实现,要么就是很直接的要源代码,看这些人的样 子,都是一些的中小型公司的软件开发人员。在开发过程中,确实会遇到很多的问题,但是,能遇到那么多的问题,甚至直接要源代码,这样就有一些很不好说了 吧!! 还有他们的一个生存之道就是,下载源代码,现在网络的便利,带来了很多的方便,也有了一些弊端,有一些所谓的软件开发人员就开始了,他们先根据自己要做的 工程上网找类似的程序或者代码,找到后,就开始了非常艰苦的"改程序"。他们改程序的水平也是一般了,一般就是把里面的注释改一改,关于里面的名字改一 改,然后再根据自己的需要增加一些或者减少一些功能等等。哎~所以说,现在中国软件人才很缺啊!我们软件业拥有的是什么呢?是改程序的高手啊!这个和文学 创作上面的剽窃有什么区别呢?

  前面也说过了,软件是一门艺术,一门艺术,现在竟被这样的糟蹋和侮辱,试问一下,我们的软件业还有发展辉煌的一天吗?

  我综合了现在看到的,听到的,和亲身经历过的事情,写了这些东西,肯定有很多我所没有看到的东西,希望有人能帮我补全,现在我们的处境是 天时、地利、人和都不再占有了。天时,国家现在正是需要软件人才的时候,但是大学的教育影响了我们,而又有海归派的一些干扰,国内软件业的混乱,已经让我 们失去了天时;地利,国内公司的招聘要求,让我们地利不在;人和,已经很艰难的我们,又遇到了那些滥竽充数的所谓的"软件人士",我们的水平又一次的受到 了沉重的打击。 让我们何去何从。