在shangh_r的帖里,他认为IT学得苦,却又说拿学位容易,什么样的人都能拿到学位。这两者之间很矛盾,所以他的解释是因为学校布置的作业多,所以学得苦。如果这个说法成立,那还是不能解释为什么什么样的人都能拿到学位。很简单,如果学得那么苦,能做完那么多的作业,那些人就值得拿到学位,而不是因为拿学位容易。
在90年代末,的确有很多大陆出来、各种专业的人,因为IT火热的就业市场,进入IT相关专业学习,并且拿到文凭,找到工作。我老婆就是其中一个,她在国内是文科生。今天我就根据我的个人经历,解释一下学IT苦在哪里,和为什么当年那么多大陆人可以学出来。
IT学习苦在哪里?我认为是苦在大脑必须经历一个痛苦的过程去建立非常精密的逻辑思维能力。一旦这个能力建立了,以后就容易很多了。我所说的逻辑思维能力,不只是逻辑判断和推理,而是在这过程中,每一个细小的步骤都不能省略。举个例子,怎么才能把盒子A和盒子B里的球互换?我们日常生活中,这简直就不是问题,左手拿A球,右手拿B球,左手把A球丢讲B盒,右手把B球丢进A盒,结了。但编程让计算机去实现,就没这么简单,必须设一个C盒,然后把A球放进C盒,B球放进A盒,再把C盒里的球放进B盒。
网上一个笑话,可以进一步说明这个问题。程序员的老婆叫程序员买6个苹果,如果看到西瓜,买一个。然后这个程序员买了一个苹果回来。在生活中,我们都能理解,程序员的老婆是要程序员买6个苹果,如果有西瓜,再买一个西瓜。但用计算机语言表述,“再”和“西瓜”就不能省略,否则就会出错,出现买一个苹果回来的情况。
一般人在初学阶段,除了要突破这个思维局限外,还要习惯用计算机语言写程序。这和我们小学时,学了汉字,要练习写作文是一个道理。当时我刚开始写程序,在那里发了楞,不知如何下手。我老婆开始学时,我辅导她,要她写一个非常小的程序,她也是楞在那里足足有5分钟,然后大喊一声“if”。我马上说“这里用不着if,重新想”。
一旦这个阶段突破了,下面就容易很多。实际上,现在的查错(debug)工具很完善,现在的学生比我当时容易得太多了。我那时必须在脑子里跑程序,能搞到废寝忘食的地步,最后可能的错误也就是该写字母A的地方,写了一个字母a。现在查错(debug)工具能让学生一步步地跟踪程序的运行,实在太幸福了。
那么在90年代末,为什么那么多的大陆人可以转行学电脑?我觉得在于大陆的高考制度。高考除了艺术院校,都要考数学,所以能考上大学的,数学一般都还可以。如果数学好,学IT就有很好的基础。我自己总结了一条测试一个人是不是适合学IT的方法,就是他(她)对平面几何的证明题是不是有兴趣,但一定是大陆的平面几何证明题,那种证明过程中,每一步都要写出来的证明。这儿的平面几何不教小孩证明的,只是最后得出一个结果就完事了。这种是不能测试小孩是不是适合学IT。
至于女性在IT,我个人觉得BA(Business Analyst 用户需求分析员)是一个很好的选择。现在市场上,BA的工作比码工要多,工资方面,以合同工算,也比码工要高。作为BA,必须对系统有一定的了解,知道有些什么功能,有那几个部分组成的,各个部分的开发人员是谁。这样在和业务部门谈时,对业务部门提出的要求,能不能做,心里大概有个数。在和开发部门谈时,知道那个功能要找谁。另外个人性格上,要能沉得住气,能认真听人讲话,在开发人员不耐烦时,能化解,自己却不能是话痨,不能是个靠讲话刷存在感的人。对业务部门讲得东西,要能归纳总结,并且业务部门可能会讲跑题,这时要有本事拉回来。业务部门和开发部门可能会有矛盾,这时要有气量装得下两边的抱怨。
在这世界上,人是多种多样的,各个人的性格喜好都不一样,就是同一父母所生的小孩,都有完全不同的性格,所以适合做什么工作也是不能一概而论的。现在鼓动小孩都去学医,就像当年都去学IT一样不可行。真实的事例就是几年前,媒体说BC省的药剂师要缺多少多少人,有人就去读,等到毕业时,药剂师已经过剩了,只好去BC省的内陆地区就业。当年一窝风地学IT,那也是新移民没办法。对下一代,我们做父母的应该帮助小孩找到感兴趣,同时又能挣钱的行业,而不是一味的鼓励他们去学医。如果小孩对IT有兴趣,完全没有必要去阻止他(她)。
以后有空,再讲讲IT更新快的问题。