毕业季
2006年5月底武汉进入梅雨季节,遭遇罕见强降雨,大雨持续了整整一天,城区渍水严重,排水系统成了一个城市的良心工程,因此“欢迎来武汉看海”, 学生之间调侃而来,学生水上娱乐天堂,操场上捉鱼漂流冲浪,应有尽有的水上乐园,都可以免费搬上东湖湖畔边上大学操场上。但对于一个学了4年计科专业的周宇航来说,毕业意味着失业,对身边水上娱乐没有丝毫的兴趣,而是西装革履带着简历奔走各大就业市场,试图能物色到一份体面而又优雅的精英白领工作,也只能委屈自己大热天的跟个大傻子一样穿西服打领带去找工作,真不知道第一个这么做的人是怎么设想出来的行为,总之大家都这样,大海捞针式海投简历,在那个IT科技还不是很便捷的年代,打印一份简历的成本5元左右,一包红河香烟也就5元,省吃俭用高价打出来的简历,成了大公司的草稿纸。
决定一毕业就求职是我大三的时候,其实在我以前,我是随心而学的需要那文凭的,但后来,我回归理性,因为,对于我,毕业就求职才是最好的出路。一是因为大二那个时候接触了大量的学生活动,花费了大量的时间和精力,除了专业课专心学习的之外,其它课程都是打酱油,那怕是意识之中的英语重要性,也是人在朝营心在汉的状态,活生生的一个学渣形象,大部业余时间都想着去做兼职挣钱挣生活费,父母给的那点生活不够花 ,所以,也不愿继续走学术研究之路;二是因为家里的经济条件实在也是不允许,全家人也就父亲一个乡镇机关单位公务员,每个月拿的那点工资 还不够兄弟二人的生活费,还有一大家人需要养,母亲高中三年职业陪读了三年,照顾我兄弟二人一日三餐生活;母亲自从把我兄弟两送进了大学,也随亲戚一起去了浙江做生意打杂供我兄弟俩念书。所以大学这4年每当想起自己父母的艰辛情景,在同学面前总有所顾虑,甚至消费习惯上有些自卑。
总在想等着我马上毕业赚钱养活自己也能为家里分担一些压力,换而言之就算我去考研,就算可以公费,那些生活费和杂费也够受的。基于此,我大三寒假的时候,我跟我妈说,我毕业就找工作,先稳定一下,就这样,我决定找工作了!母亲并没有表态赞许,我立即明白母亲心意,“先缓缓家里,等以后工作稳了再去读个在职研究生也可以”
进入大四,很多学生开始谈论就业话题。我对此有些“不屑”,对自己的实力和前程都很自信。我的就业目标是做一名“有理想”的程序员,踌躇满志的给自己定下目标:成为一个牛逼的程序员。“当时我的想法是,自己总能在省会武汉立足;退一步说,就算不能找技术研发类的工作,也要找和互联网类的企业。”说这话的时候,内心里一脸苦笑,“现在我才明白,现实远不是理想中的那样,我高估了自己的实力。” 经过了几次面试和挫败的经历才知道自己自认为专业,在面试官那里只是一个小学生的水平。倍受打击的是自主认为学的很好的专业,微软.net平台同样工作起薪比java 平台 少了800块钱市场价格,这一点在我潜意识里是不可能接受,微软.net平台从大二开始正式接触,我认真学习了两年多,即使自己再重要的事情也从不缺课,而这一刻在我的意识里出现了一个可怕信号,我要更换就业平台!重新开始学习一门新开发语言:java。
“hello world!”
当明白一个现实真相后,原本乐观派我对自己前途担心焦虑了起来,学了4年计算机专业,原本以为自己是时候一展拳脚了,却做了一个改行的决定,安静下来,对过去的种种思忖一番。那些曾经的旧时光里即便有过天真愚钝,也不值得谴责。毕竟,往后的日子还很长。现实的校招情况 、就业前景、发展前景和其他各种因素,必要做出一个正确的决定,现在启程还不晚,又是崭新的起点,又是未知的征程逆水行舟,不进,则退!于是从众多即将作为垃圾处理掉的课本里找到大一时候教材,《 java语言程序设计》费了九牛二虎之写出了第一行代码
“hello world!”
以下内容来自当年的技术博客:
Java和C#都是完全面向对象的语言。在面向对象编程的三大原则方面,这两种语言接近得不能再接近。不过也有一些差别,不过不多,稍微习惯下就好了,
比如:
集合:两种语言都有集合ArrayList,还有通过键访问值的Java中是HashMap而c#中是HashTable。c#比Java多泛型集合List<T>与Dictionary<K,V>更容易了,无需拆箱装箱了,更安全了。
继承:Java中用关键字extends,c#只用“:”就行了。调用父类的构造方法Java用super关键字,而c#用base关键字。
属性:java中定义和访问均要用get和set方法,可以不成对出现。c#中是真正的属性,访问时用.号即可。
事件。Java中没有(Java通过实现自定义*听器侦**类执行事件)。C#定义了类似于函数指针的委托来实现事件。
等等...
二,Java Web和ASP.NET也是有相似的,java web的核心是Servlet,Jsp其实本质都是Servlet,而Servlet的流程可以比较清晰看到整个前后台是怎么工作的,类似.NET的ashx一般处理程序,Java是MVC的主要倡导者,随着web技术发展,Servlet主要被当作Control使用,Jsp作为View使用,这在许多MCV框架有所体现.得益于开源社区的活跃,流行的Java MVC框架都比较成熟了.而ASP.NET MVC(虽然我没有用过,大概了解过)感觉使用起来应该不是很舒服把.貌似ASP.NET MVC也还没有推广开来.很多.NET程序员做Web还是停留在服务端控件.不是Webform不好,而是微软会把我们宠坏.感觉Webform不够优雅,耦合太高,个人接触过Java Web后觉得MVC在大多场景下更胜一筹.
目前接触过的MVC框架是Struts1.2,常用在展示层,前台页面展示与控制页面跳转。建立一个工程,都会有一个web.xml文件,是整个工程的主配置文件。其它框架的集成首先是在这个配置文件里面进行的。Struts也有一个主配置文件struts.xml,工程中所有配置的Action都是在这个配置文件中配置的。Action是Struts的核心,其实就是控制页面跳转用的,每个页面和后台的数据交互或者跳转到另外的页面都通过action进行。 具体使用看看相关的文档.
三,Java的框架五花八门,有名的全功能栈Spring框架,MVC框架Struts2,SpringMVC(Spring的子项),数据持久层框架 MyBatis,Hibernate,模板引擎FreeMarker,Velocity,框架有框架的好处也有坏处,使用框架无非就是提高生产力,降低测试维护成本,保证系统性能.但是不适合的使用框架只会加重系统复杂度,降低系统性能,增加维护难度.什么时候使用框架什么时候不用,要详细斟酌在做取舍.目前只接触过Struts2,因为做的一些小项目直接Servlet+Jsp+Jdbc就好了,打好基础还是比较重要的,以后在项目慢慢接触使用吧.、