那我说一下我的看法吧。因为大家都是搞
测试的,这里我也只谈测试。
首先,我们可以有两条路发展,技术和管理。管理就是做team lead, manager, director这么走。因为我没有走这条路,所以,我这里也只谈技术。而且,即使走管理,也是应该具备很强的技术能力才行,所以技术是我们的发展之本。我个人不喜欢技术不精通的领导,也不喜欢被这种人管理。
技术的发展是分阶段的,基本上你要是能发展到最后的阶段,工作,钱,房子,车子,老婆都不用发愁了。当然要一步一步走,不可能一步升天,而且一路走过来也不是很容易,应该说大部分人可能都达不到。不过只要你肯努力,坚持不懈,就一定能达到。
第一阶段:就是基本功的问题。这个阶段从大学入学就开始了,我接触不少人工作几年都没有达到要求。这个要求是一定要达到的,不然以后没法往高发展。大学的一些课程一定要学好,主要是数据结构,算法,数据库,操作系统,计算机网络。争取精通两门。数据结构,算法对软件开发非常的重要,很多大公司面试就考这些。你不过关,根本通过不了面试,一两道算法题一下就把你难住了。另外,我可以告诉你,顶尖公司的面试80%都是考算法,你有没有经验不要紧,做没做过项目不要紧。关键是考察你的基本功,基本功打好了,其他工作就都容易很多了,基本功打不好,什么都白说。操作系统,争取要精通windows或者linux内核,看你走哪条路了,我是搞windows的,不过他们之间很多地方也是相通的。计算机网络,争取精通TCP/IP协议。数据库我不怎么懂,我的理解是要精通oracle, sqlserver, 还有sql编程。
另外就是编程技术了。C,C++,面向对象一定要搞懂,搞熟。大公司面试的算法就是要你用C/C++实现的。这些搞熟了,学习其他语言就是几个小时的事情。(我指的是上手,不是精通)。这些东西搞不透,不管你其他语言用多少年,回来学他们还是难。
再有就是英语水平了,听说读写,各个方面都要达到要求。技术到了一定程度,英语对你的发展就起到了非常决定性的作用了。你英语好,就可以去外企,就可以外派出国,甚至国外发展。
以上这些都是在大学应该掌握好的。当然了,能在大学掌握好这些的毕竟是少数。这些少数人就是去了微软,google的那些,一毕业就拿到月薪上万工资的。大部分人都是达不到要求的,这没关系,毕业后一定要找时间把这些基本功补上。不然的话,在下个阶段的发展就很受限制了。
第二阶段:计算机知识的扩展,行业知识的精通。这个阶段从你大学毕业走向第一个工作岗位开始。工作之后,发现计算机的世界比大学的知识要博大精深很多。一开始工作,就要拼命吸收以前没有接触过的,新的知识。这个就不多说了,大家都会有很多感受的,会觉得很多东西都不会,不会就学。以后你跳槽去面试,人家就会看你工作几年,这几年干什么了。工作1,2年之后,很重要的一件事情就是要选择一个行业了。也许是你现在正在从事的行业,也许是一个新的行业。总之,你自己要为自己规划,选择一个适合自己,而且又热门,以后有发展的行业。无论是现在的行业,还是跳槽到一个新的行业,都需要你开始积累在这个行业的经验了,要精通这个行业。有这个基础之后,就要去这个行业里top的公司了,国企,外企都可以,一定要有名气,大公司。比如,通信的华为,搜索的百度,等等。如果你精通了这个行业,去这些公司不是很难。
另外有一点很重要,如果你本科不是一所名校毕业的话,争取能上一个名校的研究生,全职,兼职都可以。这样可以为下一阶段做好充分的准备,否则的话会有比较大的困难。总之了,是自己的短处都要想办法去弥补,不然发展总会受限制。
第三阶段:国际著名大公司。有了前两个阶段的积累,加上自己的英文水平,就要找机会进入国际的大公司了。相信这个时候就会有很多猎头来联系你了。选择你这个行业的世界前3,最好是第一或者第二。进去之后要学习两个方面,一是英文,中国人可以学一辈子英文的。另外一个就是大公司的管理。可以这样说,国际大公司的管理有很多类似的地方,因此他们的招聘非常愿意招其他国际大公司的职员。这就是为什么,你一旦踏上一家公司,一辈子都不用愁工作了,可以在这些大公司跳来跳去,工资节节高。到了这个阶段,你基本上可以有个比较不错的生活了,房子,车子都不会是太大的问题。
第四阶段:向国际化发展。如果你还不满足,觉得自己还有能力更进一步,那我就建议你向国际化发展了。中国的工资毕竟有限,到了第三阶段也不过就是20万左右,你可能还不满足。那么你就可以联系国外的公司了,有了你的英文,你的经验,你的背景,到时候就是水到渠成了。我相信国际的猎头也会盯上你的。
最后说一下,如果你现在已经具备了我所说的各个阶段的能力,那么你的简历是任何公司都很难拒绝的了。因为目前的情况,具有这些素质的测试人员在世界都紧缺。很多公司都招不到人,即使连google,MS也不列外。他们都在到处寻找这种人。
最后说一下测试。我一直没有讨论测试的问题,因为我一直没有把测试当作一个难得东西来看待。我认为测试是表面上的,我前边提到的东西要比它重要的多。欢迎大家一起来讨论。我也是进入测试才2年多的时候,其中大多数的时间也像大家一样的迷惘,很多时候也很悲观。不过通过自己的努力,最后终于得到了一个满意的结果。我发现自己对测试这个行业的理解和很多人都不同,希望我的理解能给大家一点帮助。
那我说一下各阶段掌握的知识吧:
- 大学主要是C,C++,VC。
- 工作第一年就是VC编程,TCP/IP编程。
- 后来的半年主要是C编程。
- 研究生搞了很多,不过都不算精通,Java,Linux,并行计算,分布式计算。
- 做测试以后搞了.net, C#, 开发自动化测试系统。
- 另外,英文水平可以和外国人直接沟通。