2014年1月31日星期五

即将毕业,大学总结(二)

大二,main()

进入大二,依然保持着乐观积极的心态,不知道满足的学习着专业知识,虽然学校的氛围有点浮躁,但是静下心来,发现目标就在眼前,只要朝目标走,什么都是正确的!

智能化校园项目小组成员

这是我接手的第二个项目,在这个项目中,使用了全新的后台框架,也有更多的前端组件可以使用。在这个项目中,有两个学长带领我们开发(因为只有两个老开发学长…),由于有了第一个项目的经验,对模块开发的模式和SVN的使用比较熟悉啦~所以入手还算快,但是项目框架的原因,常常因为不清楚怎么实现的,会遇到一些莫名其妙的错误,后来我就将我们的后台代码逻辑生吞活剥啦…第一次尝试去看整个系统的代码…好蛋疼…有种很乱找不到线头的毛线团,后来找到学长的一个模块,通过打断点的方式,从前台到后台慢慢的去理解框架,最后有了大致的了解,不断的使用,对框架更加熟悉,开发起来也越来越顺手了。

后台框架和前端组件有自身的bug,所以有时候大家会调试半天发现是本身系统错误,就会很蛋疼,不过我每次遇到那种bug都是记录下来,换一种实现方式,不会轻易去改动项目的代码,因为我改了也许会影响到其他人。如果最后实在要改,那么都是不能换方式实现,最后申请修改,修改提交会议的时候会集体说一下。

就这样不断的坚持着,在这个项目里面不断的磨练,不仅代码能力得到了提升,对业务的处理能力得到进一步的提升,开始关注产品本身怎么实现更好(因为这个算是一个自主产品,后来才定制给别人用)。所以在这个期间阅读了一些用户体验和交互设计的书籍,运用到项目中。

担任项目小组组长、软件配置人员、运维

在不断的成长中,能力有了一定的提高。实验室也注入了新鲜的血液(新来了几个同级同学)。开始着手业务分析、技术问题解方案以及实验室代码规范,交互设计规范、文档规范的制定。那段时间真心比较累,事情多而且杂,还要写业务代码,检查别人的代码、编写规范文档以及反复运行项目,思考哪些地方合适哪些地方不合适。所以个人时间就几乎没有了,每天四点一线(寝室、图书馆、教室、实验室)…
不过在担当项目小组期间,懂得了真正的责任感,团队的重要性。

2.在进入实验室后,服务器就一直没人管,只有出问题的时候才有人想到,破旧的服务器又出问题啦!SVN的服务端也是安装在服务器中,有时候难免项目中有冲突,有修改密码,需要权限的时候。

所以那时候认为这是个问题,也许会影响到团队到时候提交代码的效率,所以查阅了win server(那时候服务器用的win server 2005,另外一台是win server 2008)的一些资料,开始检查服务器的软件,改更新就更新,改整理就整理。SVN这块不稳定地,不断解决每次出现的问题和解决方案,最后整理成规范,后来形成实验室的SVN使用规范。不过偶尔也有不听话的同学,丢失代码,冲突覆盖是时有发生,不过有还原技术,有些时候还是可以处理的。所以大家每次东西不在啦就找到我…

在服务器维护期间,对操作系统有了另一种认识,也许是大一的时候经常折腾系统,不断装机,还算不是很蛋疼,最蛋疼的一次是win权限的问题,一直报那个“window install”什么的错误,搞啦我一个通宵!最后形成了“服务器配置记录”文档、“服务器问题处理”文档和“SVN使用规范”文档,自己也好查阅(这玩意有时候不算得上是技术问题,细节决定成败,会在配置中体现得尤为重要)。

3.开发了很久,自己开发和负责的项目可以上线,很是激动人心,项目组的同学们都很激动(毕业修改啦几个月的bug,最后成果是对大家的一个交代),最开始系统运维分给一个学长做,不过老师考虑了一下,喊我做,我很干脆的就答应啦,因为最后一个项目流程,就算学习完啦整个项目的产生到上线流程。这里向从事运维的前辈们致敬…真心比较幸苦,可能是我第一次搞这个,不是很熟悉。

最开始项目打包…囧啦,没打包过war,这种格式,还查阅了一下资料,最后打包,很老实的远程人家给的服务器地址,讲发布包拷贝到tomcat的webapp目录,启动发布。

后来被公司负责人说啦…流量大了,搞的服务器出了毛病…不过这我哪里知道,后来修复啦,我就想了另外一种办法…将lib只传送过去一次,之后发布将lib删除,压缩再传输,这样明显体积小啦很多,也节约了我的时间,发布也快了。

不过这样持续了一段时间(其实这种方式是发布比较稳定的),后来引入的maven和hudson技术,发布就要好很多啦(不过后来我将hudson取消使用啦,因为这不利于学弟们日后学习)。在发布经历了熬夜等到项目稳定,调整项目的数据,修改一些临时的bug,有时候还因为本地和服务器环境的问题,做一些调整。再这次经历过后,对MySQL、tomcat的配置和实质,域名、代理商、根服务器技术等服务器的技术有了比较深入的认识…之后配置了负载和集群,认识了高性能的重要性。

操作系统、计算机网络基础、数据结构和算法设计

其实这四门是大学计算机必开的课程,很多同学都会说编码和这个没撒子关系,不会也可以编码。但是深入学习这四门技术,会让你受益终身。

操作系统是光电学院的一位李教授教的,教得很好,说实话,除啦平时和他在课堂上扮扮嘴,其实挺喜欢李老师得,很有趣,会脸红得老师哦!这位老师强调好书需要一句一句得读,反复得读,认真思考每一句话得意思,会让你受益匪浅。最后课程设计写“调度算法”…用一晚上搞啦一个C++ MFC程序(太坑爹啦,下次再也不吃热汤圆啦,烫得很),写错啦一个算法…那次最尴尬啦…把调度次数叠加啦好像~后来他也教我们计算机网络,他说过一句话我还记得:“很多同学都是浮躁,不认真在大学积累知识,越往后面发展发现底气不足”。肯定不是原话,反正大致是这个意思。

数据结构老师得名字很雷人,叫:“李刚”。这位老师人很好,很负责,我在大学上课被骂的最多的课,就是上他的课(因为每次都会训我们)。训归训,他耐心的讲解和指导,让我们数据结构的基础打得不错(他从来不教代码实现,只传授思想,不过我也觉得没必要说代码得事情)。现在大四了,看开源得代码,发现数据结构得作用是无处不在,数据结构就是计算机处理数据的一个思想,的算法和数据结构者得天下,嘿嘿!

算法设计的韩老师和董老师很扯。可以说是技术比较牛的两个老师(前者算法很牛,后者图像处理比较在行)。不过韩老师讲程序设计方法学的时候还是有很多不懂的地方,那门课确实有点难,对逻辑要求高,但是作为优秀的引导者,绝对不是赞美!董老师很好耍,算法课几乎就是我们两个在上(思维有点快,我们两个就跑起走啦,不过牛人都是上课不怎么说话吧,不过我喜欢上课交流沟通的感觉,总是能发现新大陆,爆发新的想法)。后来董老师的C#课程,自己花啦2天时间学习C#写啦个学生信息管理系统(C/S的一个系统,平时时间抽不过来,只好熬通宵学习完成课程设计啦)。

适当回忆一下大学时光,明天要去上香,早睡了~

即将毕业,大学总结(一)

大一,依然激情

在高中的时候就是喜欢热闹的人儿,到了大学依然性格如初,每次上课都要坐前面3排(ps:高中的时候都做讲台旁边- -),每一次课都喜欢和老师互动,问老师问题,补充老师的讲解,不过后来发现在学校做前排的大多都是女孩子…

C语言程序设计

在高中填自愿的时候果断报了自己喜欢的“软件工程”专业,在大一的时候专业课还没开,开了一门《C语言程序设计-谭浩强版》,这也是在高三的时候自学的语言,很带劲,也是很喜欢的语言之一,C语言很自由,想干点什么就干点什么。那个时候是但老师教,是个很好的老师,可能是工程师的性格,性格不是那么的外向,但是调试起程序来就很专注了。大一也没什么课,所以课余时间就比较多,就经常折腾Linux、C语言和各种感兴趣的软件,记得重装系统的次数多得我都数不清啦…这可能也是后来对安装与卸载比较熟悉的原因吧…

数学

大家都说,大学有一个常挂树,那就是:《高数》。可能是我遇到了一个很好的高数老师,陈老师,阿姨级别啦吧~真心是一个认真、负责的一位老师,回忆起大学来,是备课最完整的一位老师!开始很多同学来大学很不适应的就是上课的自由度和课余时间随自己安排,很轻松,所以松懈的也有不少同学。在高数课上,如高中一样,一直不为了考试而学习,因为如果你热爱它,它便不会反感你,所以根本不用担心挂科的事情。在数学课学会了很多思维性的东西,微积分的概念、各个名人公式的推导逻辑,矩阵的解析、概率的分析等,这些为以后学习专业知识起到了潜移默化的作用。

英语

说实话,英文真心不好,可能是高中的学习方法不好,学习英语没有好方法和坚持不懈的“听”、“说”、“读”、“写”真心学不好。不过在英语课上通过坐在一起的机会,和同学的沟通多了很多,因为平时上课都是老师在讲,在英语课的时候老师离得比较远,方便偷偷聊天,嘿嘿~开小差~不过现在为了热爱的互联网行业,下定决心学好英文,因为很多想看的书籍都是全英文的,所以坚持看英文文档,慢慢记忆单词,把英文当成自己的工具使用。现在有时候还会翻译一些文章来写博文,也算是一种锻炼吧!

Java语言程序设计

在大一下期的时候,又开了一门语言,并不是很高兴,因为那段时间并不想学习另外一门语言,因为C语言真得很有趣,写起来一个字表达:“爽”,由于了解的时间很零碎,不是很长,正打算学习写数据库存储过程的时候,开了一门新语言,精力自然就不会那么集中啦(不过下一届的学弟学妹们就开啦一学年的C语言)。不过学习一门新语言并不是坏事,这是后来体会到的。Java面向对象(OOP)的思想对我后面的程序思维有了很好的帮助。老师进度很慢,不过为了学好Java,就不断的去网上找书籍和视频,自己学习,白天上课,做高数作业,晚上就是敲代码的时间…那个时候印象比较深刻的书,推荐一下吧。

[JAVA程序设计与问题解决基础篇].(美国)Savitch.清晰版
[JAVA程序设计与问题解决高级篇].(美国)Savitch.清晰版
Effective Java
重构
设计模式之禅
虽然不是网上说的《Thinking in Java》、《Java核心技术》这种风靡书籍,但是耐心看后真得能让你学到很多,不过深入学习Java语言的话,《Java核心技术》这本书的高级特性部分很值得一阅。其实Java这门语言不在于语言使用本身,而在于哲学的思想和计算机思想的碰撞,产生出的强大力量。

进入团队

由于我们专业办了一个“软件创新实验室”,所以我们大家在老师的介绍下,都去面试,最后很荣幸的在暑假进入了那个大家庭,最开始就我和另一位同级的同学(他好沉默,我好热闹…),加上几位学长,大楷10来个人的样子。所以我们新进入的有必要更快的补充知识,进入状态,能够进入正式的项目开发之中,经过1个多月不要命的学习和思考,最后在大二前进入了正式开发组。那也是第一次进入团队开发,学到了很多。

第一个项目

“电子交易”,是我的第一个项目,也是折腾啦很久的项目,这个系统的业务十分的繁杂,当时开发的是“协议采购目录”模块。最开始拿到项目的时候,看到很多很多的源代码都蛋疼,因为平时都是一个人写代码,不会看这么多的代码,一层一层不断嵌套着,当然,目录结构还是不陌生,因为在学习的时候,就以真实项目的要求来学习。最开始数据库使用的MySQL,还算比较轻松,因为没有Oracle那么复杂,至少配置简单很多~不过最后数据迁移到了Oracle…最开始就因为环境蛋疼啦几天,机子上面装上Oracle就崩溃啦(这导致后来想换掉啦那个笔记本)。不断的折腾Oracle的配置和使用,后来逐渐熟悉了大型数据库,其实也没想像中那么复杂,只是规矩比较多。

在这次项目中,最难忘的莫过于几天几夜写了10000行左右的JavaScript代码,改啦两个版本…那简直是要命…不过也很是享受…

项目中难免有bug和需求变更啦…我们遇到了一个很好的测试人员(是我见过至今最仔细的测试大姐)。最开始需求变更次数多了,有一定厌烦情绪,后来逐渐的能够冷静的去分析变更的原因,和客户真心想做成什么样子。调试bug的能力也在反复的修改中,得到了提升,前台和后台出来一大堆错误,不在那么迷茫(做过J2EE的都知道,SSH框架的报错…一出来就是大堆,最开始肯定很有压力,不过后来发现只要找到核心错误,不断追踪就能够处理掉bug/error)。

在大一,过得很充实,也很有紧张感,渴望知识,思考着未来自己的事业,毕竟不止是自己一个人在奔跑,还有无数有梦想的年轻人!