借Java二十周年之际,静下心来思考自己与Java的故事,屡屡思绪,记忆深处关于Java的点滴回忆便一层层铺展开来。
本科——我的Java“启蒙老师”
对于计算机这个口水颇多的专业,基本每个学校都会开设Java语言基础这个课程,只不过有的学校是选修课有的是必修课,这也是为什么毕业后听到很多同行好友说只懂C/C++不懂Java。幸运的是,在我们那个不知名的小学校,Java与C/C++一样是必修课,为什么说是幸运呢?选修课照样可以选学啊,no,no,大学时期的我是个巨懒无比、经常逃课、每天只想着和男朋友约会出去玩的小傻孩,我眼中的选修课就是不修课,因此只有必修才让我有机会在大二的时候接触Java。说来也奇怪,那时候的我不知道哪根筋搭错了,经常打印Java课件跑到我从来不会去的图书馆自习,也许这就是热爱的力量吧,那时候觉得Java比C有趣。不过不爱学习的本性始终难改,我的Java学习就只是一本教材书加几张课件,从来没有去图书馆借过一本Java相关的参考书。尽管如此,由于学校学习氛围一直不高,大家都不怎么学习,因此我当时的编程能力在班上还算是相当不错的,也就没想过怎么去提高自己。而且当时我也不喜欢在网上结识同行好友、编程达人,更没那个意识要去逛技术社区或论坛,只知道一个CSDN还一直以为它仅是个下载资料的好地方。看不到外界发展的我一直享受着温水煮青蛙,而且还是一只井底之蛙,怡然自得毫无压力,也许这就是“no competition, no progress”。直到如今,每当有爱学习的本科小朋友虚心让我推荐看那些Java书籍时,我心里都一阵感叹:现在的大学生都很爱看书吗?难道只有我认为大学是用来挥霍青春的?这多大的差距啊……感叹归感叹,从未后悔过,别人收获的是知识,我收获的是快乐,都很重要。
总而言之,本科于我而言是个不错的Java启蒙老师,而那唯一一本绿皮教材书也一直伴我至今,终不忍舍弃。
实习——我的Java“培训师”
1. 恶补Java语言知识
再一次邂逅Java是在我考研结束的那个暑期。临近毕业,很多未考研或考研失败的同学们都去工作了,剩我一人实在无所事事(男朋友工作去了),就心想也去实习赚点小钱吧,对,当时实习就纯是为了赚钱买我喜欢的东西。于是网上海投简历,鼠标点一下批量投递,公司具体信息一个没看,只要符合我的筛选条件即可。终于有一天有个公司回复让去面试,我一搜地点好远还大清早的心里一阵犹豫,果然第二天起迟了没去成。又过了几天后另一个公司也通知我面试,一看不是很远且是中午面试,我就哒哒的去了。
到达地点发现公司竟在公寓里,门还关着,心里一阵不安不敢敲门,就打电话过去说到了让他们开下门,结果门开了一个大叔笑嘻嘻的说让我进来等会,工程师们去吃饭了。我心里一吓是不是真的公司啊,我在门口踌躇半久并往里探了探,原来是两层公寓,里面的摆设的确像公司不像睡觉的地方,墙上还有块公司的牌匾,这才放心的踏进来,大叔给了我一杯凉白开我虽然很渴但没敢喝。等了半晌,几个工程师终于酒足饭饱回来了,好年轻啊,就五六个人,随即一个看上去略成熟的工程师把我带到楼上一台笔记本面前说:“这上面有3道编程题,你先做下,用C/C++或Java都可以,电脑里有编程工具。”然后又不知道从哪抽出一张试卷说:“这上面是几道数据库题目,你也做下,这里有笔。”嗯,笔试机试一起啊,我只能硬着头皮做了,看了下编程题不是很难,用C会简洁点,遂选择学校里经典的VC++6.0开始写程序。不料在写数据库题目时完全傻了眼,因为没复习很多查询关键词都忘了,无奈随便写了写就交给那人说完成了。还好他当时没当着我的面审阅我的试卷,只是说了下:“辛苦了,你先回去吧,如果通过了我们会通知二面。”然后我又哒哒的回去了没抱任何希望,当时心态非常好,波澜不惊,一直都是开心的模样。没想到第二天他们就通知我去二面了,当时有点小激动,还特地复习了下数据库、操作系统啥的,结果面试过程非常轻松,是技术总监把关,他说我是这几天面试小伙伴当中唯一一个编程题都做对的人,虽然数据库做的一塌糊涂但他们更看重的是编程能力,然后谈项目我只能把课程设计拿出来讲了下,最后他问:
“我看你用的是C语言,可我们公司主要使用Java开发,你懂Java吗?”
“懂啊,相比C,我更喜欢Java(真心话),我们那个Java老师教的很好。”
“你那个老师叫什么名字?”
我说了名字没想到他还记下了,至今很不理解他的这个行为。
过了几天后,我就顺利的去上班了,前几天就是适应环境、学习Java。不错,进去了才知道这是个刚成立不久的创业型公司,员工基本都是大学生,只不过比我早来了两个月,当时还没有项目,或者按老总(就是那个给我开门的笑嘻嘻的大叔)的话说:“我资源很多,项目也很多,关键是你们初出茅庐不久,还不会做项目,还是先学习一段时间吧。”一阵感动,我想这可能是我这辈子遇到的最好的老总了,花钱让我们学技术。电脑上有很多老大整理的Java资料,有Java语言知识、J2EE、Android、Linux/Unix系统资料等。当时觉得一阵眩晕,啥都不懂,说出来不怕大家笑话,当时对Linux系统一窍不通,我们学校没开这方面的课,课下我也不会自学。还好我有一颗怕丢脸的心(毕竟在公司了,怕学的不好被老总踢出来),一直兢兢业业的学着,学Java语言知识、Linux基础,也开始关注一些技术社区(老大推荐的,不得不看,感谢他),记得当时开通了CSDN的博客但一直没写文章,后来跑到博客园写了几篇文章(后来还是比较喜欢CSDN所以又转回来了),都是对自己当时学习知识的总结,现在去看那些文章,没排版、没细节、没深度,虽然写的很烂我却不舍得删掉,毕竟是一份成长的历程。
当时公司有个小书架,里面有很多Java相关的经典书籍,不过当时的我还是没觉悟,不爱看书,对任何技术书籍都深恶痛绝。但无论如何,这时候的我已经开始慢慢懂Java,不再那么小白了。
2. 第一个正式的Java项目
学了一段时间后,我们这个不差钱公司搬到了一栋怡人的小别墅,这时候老总终于拿出了个项目,说让我与另外两个同事做一个OA办公自动化系统,限期一个月,没说用什么技术,也没需求文档,只是把他好朋友公司的OA系统演示给我们看,说:“大概就做成这个样子,哦,我说的是功能,界面你们自己设计,不能抄袭这个。”然后在技术总监的指导下,我们开始写需求文档、调研技术方案、分工实现。由于我们三个都是刚毕业的大学生,没做过像样的项目,啥都不懂,期间被技术总监以委婉的方式骂了很多次。当我们决定用ssh2三大框架作为技术方案时,每个人脸上都是一副不怕死的表情,因为我们三人当中有两人从来没接触过ssh2,另一个人只是简单的学过皮毛。我们只能边学边做,安排进度表,甚至周六也来公司看ssh2视频教程(额,其实是因为正值酷暑,公司凉快,而且我们平时也不加班,不是励志的故事)。老总为了激励我们在餐桌上大肆放言:“如果你们按期完成,我就奖励每个人xx元。”借他吉言,最后我们果然没有按期完成,而且整整延迟了1个月,我临走的时候还有一些小的bug没解决。期间发生了很多暖心的故事,也有不如意。
总之,这次宝贵的实习于我是一位称职的Java“培训师”,待辞职之时,我对Java已经有了更深入的掌握,额头上的菜鸟字样渐渐模糊。
读研——我的Java“高阶指导师”
实习辞职是为了读研究生,我以为是另一个可以畅玩的大学,结果被一盆凉水浇的满心哆嗦,曾一度压抑、自卑、焦虑,不知道如何释放,也许这是每一个从小二本考入名校的学生都会经历的痛楚,这是好的召唤,因为它激发了我内心那颗沉寂许久却一直想要变好的幼小心灵。
在这个浓重的学术氛围包围下,我的学习、思想和兴趣爱好都发生了很大的变化,对很多事情都颠覆了原来的看法,其中最大的变化可能是我突然变成一个爱看书的孩子了,去图书馆借了很多经典书籍,《Java编程思想》、《Effective Java》、《深入Java虚拟机》等,企图弥补以前不看书造成的差距。但读研期间与Java的重逢不只是看书这么简单,还跟两个老师共做了3个Java项目(不是我实验室的导师)。一个老师就是我实习公司的技术总监(是的,我后来才知道他原来是我们学校的教师),他鉴于我实习期间的表现不错就希望我帮他做一个项目,我答应了,我内心里认可这个老师,虽然实习期间批评了我无数次但也正是这些批评让我领悟了很多东西。果不其然,在他的指导下,我按期完成了项目,期间又受到了不少谆谆教诲。另个项目是我在校园bbs上找的,经过面试我认识了另一个老师,该老师虽然比较小气但却值得我佩服和尊敬,在他手下完成了两个Java项目,让我见识到了大型Java项目的运行流程以及团队合作的重要性。这两位老师对我Java技术能力的提高都有着不可磨灭的影响,非常感谢他们。
研究生三年生涯,真的是一位让我大彻大悟的Java“高阶指导师”,不仅让我确定了今后的职业方向(Java工程师),更培育了对Java的独特情感。
时日至今,找到了工作,完成了论文,研究生生涯即将结束,但我与Java的故事还在继续……