我是一只IT小小鸟-连载1
0赞作者序
2009年3月的某个晚上,我跟侯磊同学在万柳宿舍卧谈。我们聊起初来北大软件学院时的志向与苦闷,我们梳理影响自己的人和事,说各自的实习感受和找工作的风风雨雨,说学校的教育制度和各个公司的文化。一夜痛快淋漓地说下来,我们不由总结出,要是研一或更早,有师兄师姐能够这么提醒我们,这一路我们可能就会走得更从容、更自觉。
现在我们都成师兄师姐了,或许我们能够在毕业之前把这些经验教训留下,以期给师弟师妹们一些借鉴与帮助。我联系上博文视点的周筠老师(查看Gtalk记录,是3月16日),说我想召集些身边的计算机背景的应届生朋友,在毕业之前,讲讲自己求学、实习、找工作等的经历与感悟,对本身也是一个"立此存照"和反思自己的好机会。
接下来就是跟周老师还有许莹等编辑朋友的面对面交流,然后与各位编辑一道,去向身边的朋友、向朋友的朋友约稿。为了体现IT从业人员的层次,出版方还特意邀请了几位有工作经验的朋友加入作者群,他们对IT产业与职场的认识,能够丰富我们的视野。
关于这本书的成书过程,有一些事情要说明。我忝列主编之名,其实不过是作为作者群体与出版方之间的联络人,对本书的贡献寥寥,自然不敢贪功。我最先联系的作者是侯磊与唐雅薇,之后大多数在北京的应届生作者,都由他们联系;而北京之外的应届生作者,以及几位有工作经验的朋友,都是由出版方邀请过来的。各位作者贡献初稿后,接下来的编辑统筹工作,也多由出版方的周筠老师、许莹编辑、夏青编辑、白爱萍编辑完成。我们各自零乱的文字,到现在终于集结成书,除了要感谢上面提到的各位编辑老师辛勤有效的工作,还需要提到的是《编程之美--微软技术面试心得》的两位作者:邹欣老师,他一直关心本书的进度,并提出不少中肯的建议;刘铁锋,本来也在本书邀请的作者之列,后由于个人原因撤稿,但他积极参与了本书的前期准备工作--跟侯磊一样,虽然书中没能见到他们的文字,但他们于幕后为本书做的不少工作是应该被提及并感谢的。
人所处的人生阶段不同,立场或视角就不一样。现在我们都已毕业,再要回顾自己的求学历程,可能会用三言两语就把它打发掉,但这些毕业之前的文字,写的都是自己作为学生感兴趣的东西,是自己作为学生认为重要的东西。这种体验很难再现--所幸我们留下的文字不是事后的点评,而是亲历现场的记录。这个集子里记录下的,是我们大学生活所不能绕过的东西:
专业/技术方向选择
社团活动
竞赛
实验室
实习
找工作
出国
技术社区
人际交往
时间管理
压力管理
我们具有各自的独特性--我们兴趣各异,有不同的家庭背景,不同的知识储备,不同的思维方式……但在现实中,我们也会碰到类似的人生选择的关口,我们会犯类似的错误,有类似的迷惘,也会为类似的精彩鼓掌,而且很明显的,我们是类似的一群人--都跟IT沾边。
因此对每个作者而言,这本书既写给自己,也写给所有有类似经历的师弟师妹们。
胡江堂
2009年8月于北京
作者简介
蒋宇东现就职于上海某公司(C++程序员)博客:http://blog.csdn.net/NewNebuladream
居振梁现待业,夯实基本功博客:http://wargrey.yo2.cn
刘帅 现就职于Amazon(SDE-Test)博客:http://lsthu.spaces.live.com/
李成 现就职于北京飞维美地信息技术有限公司(软件工程师)博客:http://www.perlfect.org
温卫斌现就职于中国农业银行软件开发中心博客:http://terry-pekingssm.spaces.live.com
胡江堂现就职于赛诺菲巴斯德(SAS程序员)博客:http://li-and-jiang.com/blog/
辜新星现就职于Google(助理产品经理)博客:http://guxinxing.blogbus.com/
刘未鹏现就职于微软亚洲研究院(程序员)博客:http://mindhacks.cn
唐雅薇现就职于IBM中国研发中心(上海)博客:http://cubbyvivi.blogbus.com/
张弦 现就职于百度(软件工程师)博客:http://stonefish9.blogbus.com/
秦琴 现就职于中国银行博客:http://clalietsin.spaces.live.com/
张凯峰现就职于IBM中国软件开发中心(软件工程师)博客:http://www.zhangkf.com
庄表伟博客:http://www.zhuangbiaowei.cn
宋劲杉现就职于北京亚嵌教育研究中心(讲师)博客:http://songjinshan.is-programmer.com
程露 博客:http://roburite.spaces.live.com/
黄小明现就职于某外资企业(软件开发及项目管理)博客:http://blog.csdn.net/view1024
易晓东现就职于某电子商务网站(运营负责人)博客:http://www.tomcat521.com
简朝阳现就职于阿里巴巴(MySQL & Oracle DBA)博客:http://www.jianzhaoyang.com
林健 现于中国科学院计算技术研究所就读(硕博连读)博客:http://blog.linjian.org
高昂 现于中科院地理所攻读博士学位博客:http://www.gaoang.com/
徐宥 现于Washington University 就读(博士)博客:http://blog.youxu.info
推荐序I
从2006年开始,我在微软亚洲研究院参与了实习生培训、新员工招聘与培训等工作;也走访了十多所大学的计算机系和软件学院,还在几个学校讲授《软件工程》这门课。在此期间,有幸结识了不少有想法的大学生朋友。他们中的一些人,就是这本书的作者。
中国的高等教育体系中,大约有10%的学生在学习与IT相关的专业(计算机科学、软件、MIS等)。这些学生在接受了4~6年左右的教育之后,对这个教育系统有些什么反馈呢?IT教育迫切要改变的做法是什么?根据我个人的经验和同学们的反馈,下面是一些建议:
和实践结合。软件教育离不开实践,不要太强调闭卷考试,老师一定要让学生实践、实习。
做真实的项目和幻想的项目是有很大区别的。
自己从头写程序和维护正在使用中的代码是有很大区别的。
没有真实的需求,没有软件的增量开发,没有真实的团队合作,程序设计和软件工程中的大部分理论都沦为空谈。遗憾的是,很多学生就这样以空对空,也混毕业了。
和各种学科的结合。现在专业分得太细,一个专业清一色背景的学生在一起,和其他年级、其他专业的同学有交流么?没有!
希望计算机科学教育能把别的学科的知识联系起来,比如,和工业设计、用户体验设计、艺术设计、自动控制,甚至心理学、商学联系起来;
希望把计算机有趣的发展历史放进来,讲讲图灵,讲讲冯o诺依曼,讲讲各种语言的源头和流派分支,讲讲IT企业有趣的真实故事等等。培养学生对这个行业的兴趣、热情和敏感度。提倡互动,介绍同学上相关的论坛、网站,开拓视野。
如何教创新?在学校里听领导的报告,会听到很多次和"创新"相关的词汇。你会觉得这个学校的领导的确非常想创新。但是另一方面,我听到一些同学反映教材、教案、教学方法都是几年甚至十多年不变的老一套,和实际脱节得厉害。
怎么教创新?除了让学生打下坚实的专业基础之外,学校可以做的一件事就是--
允许学生试验,失败,再试验,再失败。
创新不是公式推导,不是一旦学好例题,就能模仿炮制的解题方法,要给同学们试验和失败的机会。有人问,学生失败了,上课怎么给分呢?我说,如果同学们能够认真总结经验教训。同样也可以得到比较好的分数。经验教训能帮助他们更好地创新。我的《软件工程》课程的评分标准大致是:
1.有创新的想法,并成功实现:优。
2.有创新的想法,失败了,能认真总结:优。
3.无创新的想法,最多只能得:良好。
当学校和老师鼓励同学们没有后顾之忧地去创新、去失败的时候,很多同学的动力、热情会大大增加,从"要我学"、"要我做"变成"我要学"、"我要做"。无论创新成败与否,同学们都会收获良多。
作为一个"业界人士",我讲了这么多意见和建议,其实很多老师、学校领导也早就意识到了这些和其他许多问题。提意见总是容易的,难的是尽自己的能力改变现实。这本书里的很多主人公并没有停留在提意见或埋怨,而是自己行动起来,改变现状。作为一个"客座讲师",我正在课程中实践我上面提到的想法,有学生喜欢,也有学生不爽--因为课不好混了。
书中的许多故事常常让我幻想--如果我们的教育系统能多帮助他们一下,也许会有更多的学生能少走弯路,成为IT业快乐的小小鸟,甚至大鹏鸟!
希望更多学生、老师在看到这本书之后,能一起动手,让梦想早日成为现实。
邹欣
研发经理| 微软亚洲研究院技术创新中心
2009年8月于北京
推荐序II
博文视点计划出版一本讲述IT人成长经历的书--《我是一只IT小小鸟》,邀请了20多名IT行业在职人员、研究生和本科生写一下自己的成长经历。一滴水中见世界,从这些作者的亲身经历和人生感悟中,可以看到中国IT业的进步,以及在饱受国人责骂中艰难前行的中国IT教育。
在此,我向中国数百万在校IT相关专业学子推荐此书。
我也算是一只"IT小小鸟"了。1993年我从广西大学本科毕业,机缘巧合下从1994年开始自学计算机,并跳槽到IT公司工作,于1999年考入北京理工大学计算机学院读研。期间四处打工,毕业后留校在计算机学院任教至今,十多年了,始终没有脱离IT这个圈子。因此,书中各位作者的成长经历引起我的很多共鸣。
我一直在关注和思索国内软件技术的应用推广及IT人才的培养问题。2003年,我在CSDN"程序人生"论坛发表了一篇长长的自传--《一个普通IT人的十年回顾》,全面回顾与总结了自己这段人生经历,集中表述我对这一问题的思考,引起了许多学生和IT行业在职人士的强烈共鸣和激烈反响。此文在网络上被四处转贴,甚至被转贴到海外的华人论坛,而我个人也收到近千封邮件。2006年下半年,因自己在计算机软件教学实践中受挫,于是在个人博客上发表《我被中国计算机教育的现实打败了》一文,出乎意料,这篇其实不过是发牢骚的文章竟也引发了一场激烈的论战,一场有关计算机学习与计算机教育方式的论战--"理论先行"还是"实践第一"。足见大家对这些问题的关注程度。
我曾经是一名"四处打工"的程序员,先后在十多家软件企业"露过面"、"干过活",毕业后又当了七年计算机专业的教师,接触了大量的本科生和研究生,在思索与实践的过程中,渐渐对一些问题有了更深入的认识,而我的一些观点,在本书所选取的这些"IT小小鸟"的成长经历中也得到了验证,我把其中一些要点"过滤"出来,希望能对本书读者,尤其是那些还在校学习的大学生们有所帮助。
1. 兴趣是第一原则。
如果你仔细阅读本书所有文章,一定会发现一个特点:几乎所有作者都对计算机技术或IT行业有兴趣。这种强烈的兴趣,是他们持续努力并最终成长为优秀IT人才的强大推动力。然而很不幸,对于刚进大学且对所学专业并不了解的学生,偏僵化和脱离实际的中国高等教育体制,恰恰在"扼杀"学生对本专业兴趣的方面"效率极高"。
在此,我鼓励所有在校大学生,一定要尝试发现你的兴趣所在、特长所在,然后围绕这些来确定发展方向,不要盲目从众和跟风。
另一个在学生中很常见的问题是:"我不知道我的特长在哪里,我也不知道干哪个工作最有可能出成绩。"其实大学就是让你思索和解决这个问题的最佳场所之一,你可以放心大胆地进行各种尝试,在实践中逐渐了解自己。另外,尝试从另一个角度思考问题:"我不知道喜欢干什么工作,那我知不知道不喜欢干什么工作?",去掉你不喜欢的,是不是就接近了你所喜欢的?
读者不妨仔细分析一下,书中这些IT人最初是如何形成对IT的兴趣的,相信一定会有所启发。
2. 他山之石,可以攻玉,但不可照搬。
本书介绍了许多人的成长经历,对读者而言,的确是"他山之石,可以攻玉"。但另一方面,没有一个人的经历是可以复制的,因为环境不同,时代不同。更重要的是每个人都是独一无二的,而且世上万物时时刻刻都在变化当中。对于青年学生而言,不要看到书中某人做某件事有较大收获,然后你也想来个原样照搬。要仔细分析作者的个性、拥有的独特经历,再结合他当时所处的环境,弄明白他当时为何会做出某个决定。
写到这里,我不禁联想到中学语文课本中收录的名篇--《庖丁解牛》中庖丁所说的话:臣之所好者,道也;进乎技矣。
大道无术,其实成功的基本原则是相对稳定的,而走向成功的具体方法则因人因时因地而异。重读《庖丁解牛》,再看看书中各位作者的人生经历,是挺有意思的一件事。
3. 软件技术的学习方法。
前面谈到2006年我在CSDN引发的针对软件技术学习是"理论先行"还是"实践第一"的论战。其实大家只要看看书中诸位作者的成长经历,能找到几位是"理论先行"的?大多是"实践先行",然后在实战之后,再开始补上"理论"这一基础。
对于在校学生,我建议在本科低年级(大一或大二)就要开始了解一种主流的软件开发与运行平台,熟练掌握一种开发工具,这样你就具备了进行开发实践的前提。然后,用你所掌握的技能和工具去大量实践,在实践中真正地理解和掌握计算机科学相关理论,发现自己在知识和技能上的不足,然后有意识地加以弥补。更重要的,要在实践中找到一种"感觉"、一个"方向"。读者不妨分析书中各位作者在这点上是如何做的,相信会有启发。
近年来,软件技术在飞速发展,许多技术领域都已发展出一个庞大而复杂的体系,在技术背后,需要大量计算机科学理论作为根基和灵魂。在这种时代背景下,"如何高效地学习软件技术"成了一个需要严肃对待和认真思考的问题。
就软件技术而言,我所看到的是一张庞大的"知识之网",其结构类似于互联网中相互链接的网页,各种知识和技术之间都有直接或间接的联系。而任何一个人,穷其一生之力,恐怕也只能掌握这张"大网"中的一小块区域。
对个人而言,面对客观存在的"软件技术大网",大脑中要形成一个"小网"--一个活生生的、可动态扩充的"知识之网"。这个小网是大网的映射,但不是机械的映射,而是建立在个人能动性基础之上的动态的"知识之网"。能否形成这一知识之网,对学习软件技术至关重要。
这张"知识小网"上的"节点",就是你掌握的"已经建立了彼此联系"的具体知识。在学习新知识、培养新技能时,只要能找到新旧知识的结合点,就可以让新知识成为新节点,从而扩充你的"知识之网"。
软件学习的过程,就是你"织网"的过程。如果在学习过程中未能织成这一知识之网,你学到的就只是零散的、没多少用的知识,这种知识学再多意义也不大。
我建议读者仔细看一下书中作者是如何"编织"自己的"知识之网"的,这对读者构造有个人特色的知识之网是有帮助的。
4.名校效应。
书中作者大多出身"名门",有北大、清华、南大、华工等国内知名院校。一般而言,由于要挤进"名校"大门不易,能进入这里的人大多已经具有相当的潜力,加上名校一般都具有独特的学习和科研氛围,其中的老师和同学大都满怀理想,积极进取,在这种环境中学习,人就容易成才。
然而,中国优质的教学资源并不多,而且高度集中于少数几个大城市,大多数学生无缘进入名校,这是客观事实。
我的本科学业是在一所普通大学完成的,而研究生学业则在北理工这样一所重点大学完成。后来又接触了一些北京其他重点高校的老师和学生。的确,重点大学与普通高校在学习氛围和总体环境上
是有差异的,我也曾对此大为感慨,但我也要指出,尽管"名校效应"的确存在,但最终起决定作用的还是你自己!
身处"不入流"的普通高校,只有大专或中专学历、走自考之路或是非科班出身……这些外在的不利条件都不是决定性的。一个有志气的人,总能在环境的束缚中,通过默默积聚实力,最终突破环境的限制,登上一个新台阶。
也许你付出了很大努力,仍发现由于起点和机遇的不同,有的人远远地领先于你,而你看上去"永远"也无法追上他,达到他的高度。即使这样,也不要气馁,你只要尽力,也就无愧于心了。
我一直非常欣赏这样一段话:
人生如同打牌,能抓到一手好牌固然是运气好,但重要的是,你不能靠运气生活,而要琢磨怎样把手上这把看上去"不怎么样"的牌打好。
事实上,你可以从历史中找到无数例子,这些一开始并没有抓到好牌的人最终却取得很大的成就,做出了重大贡献。
很多时候,个人所处的生存和发展环境不能自主选择,由于环境的限制和其他因素的影响,也许别人可以当个架构设计师,而你只能当个"底层"的普通程序员,这没有关系,大家在人格上都是平等的,只不过能力有高低罢了。再普通的工作,如果能做到精益求精,也很了不起,也是一种成功,关键是你有没有这样一种思想:
即使我"落魄"到在街边摆摊卖豆浆,也要努力成为这条街上"最好"的"豆浆摊"!
最后,引用庄子《逍遥游》中那飞扬的文字作为本文结尾:
北冥有鱼,其名为鲲。鲲之大,不知其几千里也。化而为鸟,其名为鹏。鹏之背,不知其几千里也。怒而飞,其翼若垂天之云。
……
鹏之徙于南冥也,水击三千里,抟扶摇而上者九万里,去以六月息者也。
希望书中这些"IT小小鸟",最终都能成长为"遨游于九天之上"的"鲲鹏"。
也希望所有的读者,都能从书中受益,迈出人生向上的步伐!
金旭亮
北京理工大学计算机学院
2009年8月于北京