大四的实习总结与研一的短期目标
从6月1日正式离职至今已经过了将近两个月时间,期间少部分时间用于毕业论文的最后修改以及最终的答辩,大部分时间花在了大学四年最后的疯狂上面。从毕业到现在也已经过了10天时间,兄弟们该走的走,该留的留,各为前程,各奔东西;而我却依旧呆在哈尔滨无所事事,不得不承认的是惰性确实上来了。眼看博客也快两个月断更了,索性以此篇总结作为我新的学习生活的开始吧。
恐怕甚少有学校会像我们学院那样有名义上强制性的一年实习方案吧?对于这点的吐槽,详见我的豆瓣日志:http://www.douban.com/note/214809807/。在此更多地记录我这一年实习下来的感受与认识。
1. Java、PHP、C++,到底往哪个方向学习?在进入实习公司之前,我接触更多的是Java。虽然平时做的都是一个几乎是玩具的小项目,但多多少少对JavaEE的SSH架构有所了解。对PHP则是一窍不通,原因是实习之前一直打心眼里觉得Java才是B/S结构的唯一出路,什么ASP.NET啊、PHP啊等等都弱爆了,所以不愿意去学。而C++则是完全出于对它的恐惧而不愿去学了。
进入实习公司之后,最初的几个月时间老总也是按当初招聘时说的那样让我做Android的开发。虽然是另一个领域的Java,但是因为Android很火,所以网上有很多学习的资料,因而上手的难度也不是特别大。可是到了11年的10月份之后,因为人员调整的原因,我被调去做PHP,这才开始一边学一边做,也因为学的比较快的原因受到过上级的表扬。后来就一直做PHP,直到我实习期满离职。回到学校之后,导师让我跟着做项目,要用C++。虽然一开始我出于内心对C++的抵触,我有些不情愿,但是因为导师的项目涉及比较新的技术,所以还是答应了。
不管是老师还是网上的大牛,都会说,要深入钻研一门语言,通而不精是没有用的。Java、PHP、C++,现在摆在我面前有三条路可以继续钻研下去,应该选哪一条呢?
偶然之前听人说起这么一个观点,说是一个程序员应该懂三门语言:一是C/C++,不求多深入,但是别人问起不至于三不知;二是OO语言,如Java、.net等,精通一种为宜;三是脚本语言,赚外快之用。于我心有戚戚焉。
研究生的一年学习中,我打算结合算法学习C++,深入学习JavaEE的SSH,业余时间继续搞搞PHP的CMS以及HTML5,尽量使这工作前的最后一年充实一些,多给明年上半年的实习生招聘攒攒分。
2. 算法,想说爱你不容易!实习期间,我也抱着长经验的心理参加过几次不同公司的应届生招聘,感触最深的是:越是有名气的公司,越会考算法方面的问题,哪怕是你真正工作之后完全不会用上。典型的例子就是我一个在腾讯实习的哥们,当初招聘的时候进行了六轮的面试,除了最后几次跟HR的面试之外,几乎都被问到了算法题;后来这厮在腾讯做的是测试工具开发,据他说是甚少涉及高深的算法。我的一次比较惨痛的经历就是之前创新工场的电话面试,问了一堆算法题,全军覆没。
但是,就我实习时的情况来看,算法真的那么重要吗?倘若只是在一家做ERP或者做网站的公司干,真的能涉及到什么算法吗?如果不是做搜索、文件存储和海量数据处理,到底有多少会用到高深算法的地方呢?
尽管如此,既然别人要考,还就必须得会。已经被扔掉快三年的数据结构和各种排序、搜索、树、图就不用说了,看来还需要去ACM上打点分才行。
但愿未来能用得上。
3. 新技术,临时磨枪也来得及去年10月份左右的时候,HTML5还不像现在这么热,我就已经被它迟早会取代flash这个噱头所吸引,作为兴趣开始学习,也写了几个小程序,也为各种浏览器的支持问题懊恼不已。时至今日,说了很久的硬件支持还是只停留在纸面上。而我的兴趣也逐渐淡了。年初的时候参加过ITEye上一个关于HTML5前景的讨论,很荣幸中奖获赠了一本书。当时我的观点就是HTML5短期内也就只是一个玩具而已,除非硬件支持真的实现了,而且在各个浏览器上基本能统一支持。也就是说,对于这种新技术,现在对它的所有赞美都为时尚早。
再者就是hadoop,虽然我没有亲自尝试过,但是一直对它保持着足够的关注度,并且一直想找机会真正配置一个hadoop环境,以便进行学习。直到我一个在同花顺工作的朋友向我炫耀他最新搭的hadoop环境(工作需要),聊过之后我突然发现,这些新技术并没有想象的那么难以接触。如果真的是工作需要,哪怕是临阵磨枪也来得及。
难怪曾在CSDN上看到有人说不要被新技术牵着鼻子走,现在自己所掌握得很深入的一门技术一般十年内都不会过时。看来,新的技术暂时还是可能作为兴趣,关键还是自己准备安身立命的技术。
4. 大公司还是小公司?实习的时候我去的是一家小公司,拿的工资是全班实习工资是最低的,甚至只是有些去大公司的工资的一半。但我丝毫不觉得我所在的那家实习公司亏待了我。实习临近结束的时候,一位大三的学妹曾问过我选大公司好还是小公司好的问题。经过我的回答,学妹果断选择了……不实习。
有人说,大公司待遇好,但是按部就班;小公司潜力大,没有勾心斗角。从我实习的经历上看,小公司的潜力其实是看自己的运气的,谁宣传的时候不说自己有潜力啊?勾心斗角其实也是如此,完全看遇到的是怎样的人,而且同一个人在不同时期完全有可能表现成两个样子。至于大公司,没有经历过,自然没有发言权。不过据说不同部门之间的竞争还是很残酷的。前段时间腾讯传出重组,那个在腾讯干的哥们还担心了几次。
现在我觉得,如果是决定要留着实习的地方就业的话,大公司是比较好的选择,也利于在一门技术上钻研得更深;小公司总是会因为种种原因进行人员调整,到头来搞得会几门技术但是无一精通。但是如果仅仅是实习的话,小公司更加锻炼人的优点就暴露出来了:也正因为人少,才有更多的机会做事、成长;虽然工资较低,但是倘若真的潜力股了,那可不是开玩笑的。
就我自己而言,研究生实习的时候我还是会尽量选好一些的大公司,先稳定干两年再说。
5. 结论综上所述,在接下来的一年学习时间里,我的重心将倾向于如下四个方面,按轻重缓急依次是:
1) JavaEE的SSH架构以及SOA架构;
2) 基础算法及其C++实现;
3) 基于PHP的CMS;
4) HTML5以及JavaScript。
另外,还有之前一些知识的补完与再学习,如:
1) 设计模式;
2) Android开发。
最后,为自己加一把油!