整篇文章并非全部作者原创,一部分文字的更早以前的师兄师姐写的经验,还有一些是网上的热心读者的作品。黑体的部分是我的说明或者为了突出重点而设置的。
最近工作比较忙,实在没时间,最后要说点什么呢好象已经该说的都说得差不多了,人生规划还是要及早做来,我看到我们BBS上有一个这方面的文档,大家可以看一下http://bbs.ss.pku.edu.cn/cgi-bin/topic.cgiforum=143&topic=75&show=0(内部论坛外网可能看不了)
软微学院生涯(大结局篇)----三朝元老经验谈终结版
希望大家都能够早日成为这种有独立思考和判断能力的人.
终极版写点什么好呢就写点我个人和我听到其他软微学院老生的悲惨经历,希望大家看清楚前面的路.其实也不一定算是弯路了,条条大道通罗马,也许有了这些经历后也会闯出一片更好的天地也说不定,但愿给大家带来点启示就好了.李敖前几天在清华演讲说到,现代人挺可怜,通过电脑和网络可以获得太多的知识,但如何分析判断这些知识的价值和如何使用却很让人头痛,所以我会尽量举些不同的例子,希望大家自己好好分析判断.
首先说说一年理论学习与实习的关系,以及对未来的作用.我们学院比较有特色的就是学习期间就比较重视与实际工作的不脱节,大家在上课时会模拟一些项目,会成立小组做项目,基本上和实际工作中的环境相似.所以我们在一年中要认真的对待这些项目,将来实习时很有可能会因为你这个项目做得好与实习项目相关而被实习公司相中.已经实习和正在找实习单位的同学都有这样的体会,实习单位面试时一般会问你做过和这些项目,以及你在项目中的角色和体会.你至少要有一二个非常典型代表你实力的项目写在简历里,因为面试时先是看你技术功底,如果你把这二个项目讲得很透,人家就会开始问你体会和对工作的看法,这就是看你的人格魅力了,主要靠你的性格和人品了.因为一个好的实习单位其实就是来招新人的,他们会培养你一年,如果你性格和人品非常令他们相信,他们才会花时间和金钱培养你,这样你直接就有了就业的机会.但我发现许多同学直到实习时也没想清楚到底要找个什么样的实习单位,投简历就是来一个投一个,没什么原则.写的简历一看你也看不出来他将来到底想做什么,你自己都不知道想做什么,用人单位怎么敢用你当然,如果是什么比较强的牛人可能会不太一样,但牛归牛,除非碰到能欣赏并且敢欣赏这种牛人的单位才行.因为现在有许多单位不喜欢清华北大的学生,就是有些牛人太牛了,做工作不踏实,高兴干就干,不高兴就走,没有团队精神,单打独干没有配合意识,不服从管理无法融合到企业文化中去.所以大家应该在一年的学习期间注意这些问题,要打好技术基础,也要想一想企业真正需要的是什么样的人才,为什么需要这样的人.一年在校有计划有目标有针对性的学习,找一个较适合的实习单位,在实习期间进一步理论联系实际,多学我实践,相信将来一定会找到一个理想的工作的.
找实习单位其实是个很有意思的事,现在我们学院学生越来越多,实习单位要求也越来越高,所以大家还是提早准备.这个机会其实还是很多的,包括我有一个同学在北大高科实习的,他的实习单位竟然是他在公共汽车上找到的.他跟我说他本来亲戚朋友帮他找了中科院下面的一个研究所去实习,但有一天他在公共汽车上碰到北大高科一个项目经理,结果聊聊天就让他去北大高科实习了.还有的同学是因为在参加某些展会时认识了IT企业的朋友,然后大家谈得来就有可能帮你找到一个不错的实习单位.还有就是平时和在职生上课时,多和他们沟通交流,一方面学习企业真正需要的知识是什么,一方面也是为了将来让人家帮你介绍一个实习机会啦,而且就算他介绍不了去他所在的公司,没准别的你想去实习的公司的人和他熟,到时候找实习单位,介绍一下,谁不顺水推舟给个人情呀
一般来说,本科基础不是特别好的,选择嵌入式和网络通讯方向时要谨慎,要想到将来去面试时,人家会对你要求更高一些.所以如果你要是真的感兴趣,那么选了之后就要拼命的学习了,一定要做出一二个特别棒的项目,这样在一年后实习面试时才能让考官相信你.电子服务和软件开发相对来说可能难度要小一点,入门会容易些,而且市场前景大,就业机会多,建议在校期间考个JAVA和ORACLE的认证,这样找实习单位或者工作都比较有底.
前面说得都是经验性的东东,但是大家不要忘记前提是你要达到实习公司要求的技术基础底线,如果达不到,那实习公司要了你去人家完不成任务也不行啊.所以这一年一定要好好学习,努力实践,我想多数人都是基础一般,不好不坏的多吧,赶快给自己一个目标,然后精通一样将来对你找实习单位非常关键的技术,别的技术你可以去一般性了解,因为IT业涉及面太广了,我觉得大家一定要有一个专的地方,别的了解越多当然越好,但是必须要有一个让你找到实习单位和工作的技术做保证.
平时做作业和做项目问题,许多同学包括我自己,做作业和项目时不是很认真,有时候懒着写就参考别人的,自己不动脑.这是很不好的习惯,实习一年了,发现许多以前不认真不动脑做的作业和项目,收获不多,而且现实中想用时又无法应用,特别后悔当时为什么不好好做一下这个作业和项目呢!大家一定要尽最大努力去自己完成自己的作业和项目分配的任务,这样才会有所收获,才会在实习时更有感觉.有些同学在实习中遇到在以前做项目时遇到过的同类问题,很容易解决了,而且还可以帮助所在的实习公司做更多事,实习单位怎么会不重用这样的人呢
还有,我不建议大家去自己不喜欢的实习单位,我们这届有一些去的实习单位不理想,实习结束觉得学到什么东西,然后去找工作又无法找到理想的工作单位,实习经验基本上无用,这样就带来了许多麻烦.所以请大家切记,学习和实习是紧密联系在一起的,这些又与你将来就业联系在一起的,一定要提早计划好.
最后再说一下不爱写代码,不想干程序员的怎么办我其实就是这样的人,现在做技术支持,叫现场应用工程师(FAE).这个职业也不错,你学了如何编程,但是不用自己去开发项目,基本上是管售前售后的技术人员,你只需要精通你负责的这块就好了.然后把开发方法介绍给客户,客户开发过程中有问题,你帮助解决.我水平低,所以勉强能做这个,这行如果做得好,在外企是不错的.我一个同学在菲利浦做FAE,就是现场应用工程师,一个月一万的薪水.而且经验多了,以后还可以往管理岗位走,也是个不
错的选择.
还有我再举个例子,我不提人名和单位,因为人家可能不愿意我说出来.我知道有许多学生特别不喜欢编程序,这样的路可能会和我们熟悉的不一样,但不是没出路.我知道一二个,平时也不写程序,也不喜欢写程序,但是能力还是很强的,我相信能来我们学院的人能力都不会差的;人家英语特别好,而且做PPT本事比较强,表达能力好,外表也不错,这样的做销售或者售前是很好的条件,结果听说现在人家都在顶级IT企业做行政和销售方面的.我们学院的IT协会我不了解,我想他们可能也是这样的目标吧,将来会不会出几个这样的同学也说不准呢.不过,这个要靠机遇和实力的,而且相信机会要比什么软件开发和嵌入式什么的少一些.所以希望不喜欢技术和程序的同学还是不要太多.
我是一直认为,学到的知识不是最重要的,最关键的是能力上的提高.IT业知识更新最快了,电脑和网络让这个世界成了知识爆炸的时代,我们只是人,只有人脑,记不住这么多这么大量的信息,所以最关键的是能力上的提高.这种能力包括学习能力,沟通交流能力,还有寻找快乐和创造幸福的能力,希望大家在软微学院真正提高的是这些能力:)
感谢大家一直以来的关注和支持,三朝元老经验谈感觉象是电视节目一样,每周一期,又像软件一样,过一阵子一升级,相信大家过一二个月再回头来看,或许会更有感觉;过了半年甚至一年再看可能感觉又不同了.实在是没时间精力好好打补丁升级,还望大家见谅.
接下来是这篇文章发表一段时间后根据大家的反馈再补充的内容
------------------------------------------------------------------------------------
软件工程方法规划软微学院生涯----三朝元老经验谈
其实不说大家也猜到了,所谓升级版不过是打打补丁,顶多是增加点功能,所以不会有特别多的内容。此次升级版主要是根据广大同学反馈信息,补充一些对未来的设计方法。这个只是个人的一些想法,请大家参考,切勿忘记与自己的实际情况结合,我说的其实也没什么根据,也害怕会误人子弟,所以这一次不会说太多。好,以下便是我根据软件工程
的思想,希望与大家一起探讨一下我们在软院的学习规划。
理想与规划(软件需求分析阶段,确定我们要做什么)
我觉得有相当多的新生对未来的理想还没有规划好,这也正常,因为有许多人是半路出家来到这里的,他们没有想过自己的未来会有这样一种改变。大多数原来有计算机基础的,看过我的贴子基本上已经心里有数了。不管以前基础如何,大家都要有个目标,比如说将来要嫁入微软或者IBM这样的豪门也好,或者是将来去华为、中兴等国企做网络通讯也好,或者去做ERP、嵌入式开发等,刚开始第一个学期目标最好定下来,然后上网去查这个目标需要你掌握哪些知识,需要哪些技能,你在学习过程中要加强这方面的学习投入。我个人感觉,刚开始这个工作是值得的,你现在收集的信息越多,就越知道往哪个方向努力,选课和投入精力分配就越合理。如同软件工程的需求定义阶段,定义准确,很好的描述出软件要实现的功能,才能最大限度满足客户的需要。这个阶段找出问题是最容易解决的,不然假设你想做嵌入式应用软件,却又希望多学知识而选了质量工程、管理营销、网络安全等,你去网上查一下,什么项目什么公司需要这样的人才?这样的结构很
明显是不合理的。这样的选课很明显是图多图全,想做全才,如果真是基础特别好,也不是不可以,但如果到实习时发现自己没有想象中那么强就惨了,那时候想改可就难了。所以如果想多学知识,建议去听一下第一堂课的介绍就可以了,知道那个课讲什么的,对将来有什么意义就可以了,如果真是喜欢再决定是选还是继续旁听。一年的时间,不要分散得太厉害,因为这一年不仅要学理论,还有留有几乎1比1的时间来做实践,这个实践包括编码和写各种文档资料,所以规划之前一定要做大量的查询调研工作。
我简单举个例子,如果你对网络与通讯很感兴趣,去朗讯贝尔、CISCO、华为、中兴等公司的网站上看看他们对实习生和新招人才的要求是什么?网络与通讯涉及的领域也同样很广的,你要有一个思想准备,一年后去实习时,你用什么去打动这些用人单位。当然,其实我们在校学的这些知识多数也都是基础知识,不会直接满足现在社会的具体应用的。举
个具体的例子,头一阵子看到来我们学院招实习生的西门子,它对实习生的具体要求如下:
微码开发实习生技能要求:
1.扎实的网络基础知识;
2.熟悉路由交换原理及TCP/IP协议栈;
3.熟悉IntelIXP2800的硬件结构;
4.熟悉IntelIXP2800的微码编程;5
.熟练使用Intel的IXA集成开发环境;
6.熟悉ME之间的并行处理、微码流水线处理、线程之间的信号机制;
7.熟练使用各种Ring和Queue的操作;
8.有较强的微码开发的能力;
9.C语言开发能力。
这个实习生技能要求我觉得网络与通讯和嵌入式以及集成电路方向的都可以参考一下,这些要求,我想除非是事先准备好否则你肯定达不到要求,因为INTELIXP2800整个软硬件开发环境成本极高,我们学院现在还没有,但它的开发原理,和一些基础知识,你在一年之内是可以学好的,而且如果提前半年左右时间好好准备一下,这个实习岗位应该就会属于你。如果实习中你努力实践,那么等实习结束后,你掌握的知识足够保证你找到月薪不少于6K的工作。也就是说,在实习之前你们就要做好提前量,找到自己的理想,提前规划好。不要等一年时间过去了,到了去找实习单位的时候再去查人家对你的要求,因为那时候你想改变已经来不及了。这和软件工程的思维是一样的,项目快结束时发现问题改动太难了,所以尽可能在需求分析阶段把问题都找到并解决好。而且这个阶段还是可行性研究的阶段,有些人在实习时才发现,自己当初的软院生涯规划根本就不可行,这是大家都不希望看到的。而且这个时候的查询调研工作,还会让你发现,你是不是真的喜欢你要选择的方向,还会帮助你有计划的选择课程。
比如,你将来想去银行证券类做电子金融,那你就要先去这些网站上查一下,人家的要求,你会发现,人家一般都要求熟悉UNIX/LINUX系统,如果用到大机还会要求COBOL语言,可能会要求某种数据库,还会要求软件测试专业,因为金融类软件出错要命,所以对软件测试也是比较重视的。然后你再想针对自己如何找到切入点,如果刚好有亲戚朋友在某个给银行做系统的公司,那就好办多了,提前一年和人家打个招呼,看人家缺什么,如果缺测试也没关系,你到时候可以去先从测试入手,等和工作人员熟悉了,就可以把整个项目都了解一下。如果你本科时还有会计、财经的背景,加上外语又极好,二年后,搞不好进麦肯锡之类的咨询公司也是有可能的。
注重实践,不要搞笑(设计阶段,确定怎么做)
需求分析明确的基础上,我们就要开始进入实现阶段了,这个时候我们要有一颗平常心,不浮燥,不怕困难,尽自己最大的可能学习。同时还要切记李素科老师的教导“计算机科学是非常重视实践能力的,光学习理论知识,不重视动手能力的培养而又号称自己在学习计算机科学,简直是在搞笑。”
因为你的方向已经明确,这时候的选择就变得容易得多了,你会选择对你未来希望发展方向相关的课程,比如还是以刚才说的西门子招实习生为例,你就会根据这个来选择网络与通讯的课,还有嵌入式微处理器的课,因为INTELIXP2800用了一个基于ARMCORE的微处理器做管理;因为这个项目用在未来移动通讯的基础设施里,可能你还会选移动通讯和INTERNET高级编程等相关课程,这样有针对性的选择,目标明确,找实习单位时才会一击就中。
当然有些人想去做大机,这个就比较难了,很有可能你在学校学的都不会是直接用得上的,不管你JAVA和C++学得多好,面向对象的技术多精通,你会发现,COBOL语言与这些根本不是一个时代的东东。这样的同学,你们在校期间要培养一种学习的能力,其实这种能力非常重要,很多同学将来都可能用上。根据我们实习的经验,有许多人到了实习岗位,发现用人单位看重的只是你的学习理解能力,因为该实习项目根本就没有可能在学校里学到,还以传真师兄为例(他的知名度如果提高,有我很大功劳)。他二年前(他是我们学院首届学生)去斯伦贝谢的中国人民银行信用卡项目组实习,斯伦贝谢只给他一周的时间看上G的英文文档资料和自学COBOL语言,那超过1G的文档里几乎全是英文文档,涉及到项目的方方面面,你要知道项目大概怎么回事,需要你学什么东西等,然后一周之内会用COBOL写代码,COBOL语言的书多少年前就停版了,想找有关资料要多难有多难。所以这就需要你自身的学习能力,同时还需要你沟通交流的能力,你要找一个项目组的比较好说话的员工多交流,让人家给你些入门的指导等,让自己尽快进入角色。所以这些需要的能力,你在一年的在校生活里要注意培养,就是快速掌握新知识新技术的能力,还有就是团队精神合作意识,学会沟通交流。这里要注意,英文根本就不是对你的要求,是默认值,我们必须要习惯看英文技术文档,尤其是想去外企的。所以大家像选张德昭老师的课时会有感觉,刚开始读英文资料很不习惯,但将来你必须习惯,IT业英语是默认语言。所以选张老师的课难是难,但收获确实也大。
我们是工程硕士,必然要有实践,不停留在理论上,作业好好做,项目大家一起努力,这些很多都是真实的模仿现实工作中的场景的,对我们将来实习和工作有很大帮助,所以千万不要搞笑!还有就是要有重点要有针对性要结合自身情况来实践和选课,不要急功近利和随波逐流,总有人问,现在用C++的多还是用JAVA的多(明显随波逐流),C++好学
还是JAVA好学,哪个赚钱多呀?这都太急功近利了。比那些有意义吗?在网络和嵌入式领域,C的使用量也是相当大的,关键是看你将来的发展领域,而不应该本末倒置。实践的东东大家在自己的实践中体会吧,每个人基础都不一样,自己安排好实践量。
找个适合的实习单位(软件测试阶段)
通过需求分析,找到自己的方向和要做什么;通过设计实践阶段,做了相应的准备工作;项目已经有了原型,现在该去实习单位测试一下了。经过一年的测试,你会进一步飞速成长,完善各种功能,查缺补露,向着高质量的软件产品迈进。
毕业找到理想的工作单位(项目完成,验收阶段)
最后实习结束,写一份详细的测试报告,也就是论文了,通过后就毕业了。项目做得怎么样,最后由企业用人单位来验收决定给你多少薪水,一个软件项目就此暂告一段落。你的人生从此进入另一个阶段,在此我们就不做过多讨论,希望那时候各位回首,发现师兄写的这些经验谈原来还是有些帮助,然后在BBS上和我打个招呼,我也就觉得没白写这
些了。
我相信能来我们软微学院的同学都是非常优秀的,不管你以前什么专业一定会找到和计算机软件结合点的,请你试着用我所说的软件工程的方法来规划你在软微学院的生活,看看是否会有帮助,我只是举了些例子,没有针对各种情况和各个专业背景来举例,大家可以举一反八,针对自己的情况试着去规划一下,有什么想法大家可以一起探讨,多多沟通
交流。