本人是一名大四的学生,大学的时候也算是对计算机有一很冲动的热爱,高中那会看黑客方面的小说,就立志想成为一名无所不能的黑客.可是天不遂人愿,专业是计算机方向的,走的方向是软件开发.但是秉承的对计算机的一股热爱,我毅然决然的投身在计算机软件行业的这股洪流中,积极的摸索,努力的提升自己.
我也算是一个比较喜欢爱看书,爱折腾的人吧.刚进大学那会,没学什么东西,就到图书馆去借了很多黑客方面的书看.后来发现要入侵一个网站,必须了解一些跟网站相关的知识, 当时还是大一,编程还不是太熟悉,于是想到了先从前台页面做起,于是就自学了PS. 随着知识的增长,感觉做几个页面是没有用的,网站需要前台和后台的交互,才算是真正的一个网站.当时还是比较懵懂的我,看到某一本书说ASP 可以实现这个功能,于是罕见的时候就自己捣鼓起ASP来.当我捣鼓的差不多的时候,回到学校,在网上浏览才发现原来ASP技术已经落后,伤心了一阵子.
也随着后来的学习深入,我接触到了java,Flex等技术,我发现被java深深的迷住,一发不可收拾,同时我也发现学校的教学进度太差强人意了.于是我就可是了一段艰辛的自学生涯,先是看jase,但是在网上下了孙鑫的视频教程,感觉还不够味,找来了马士兵的塔克大战的视频来跟着做.
看了之后发现,其实做这种小游戏不是我的最爱,我的爱是web,我想做出一个非常绚丽的网站,希望有很多的用户.我在网络上想找能实现我梦想的技术,无意间又找到找到了马士兵和风中叶(张龙).他们的视频带我走进了java web 的殿堂,我下载了他们有关struts2,hibernate,spring的视频看,日以夜继的学习.
学完这些后,感觉手有些痒.于是乎就自己想做个小项目来巩固下学习成果.第一个当然是博客网站.做完以后发现页面太难看了,让我难以忍受.这也是我有了学习做前台页面的冲动.当时html5和css3才起步没多久,至少我学校的计算机老师还不了解(因为我当时和他们聊天的时候,聊到过这方面),这也使我暗下决心要靠着自己,于是我在上一些公共课的时候,都用来看这方面的书.看完这些以后,发现要做出绚丽的页面,还需要一个致命的武器,那就是javascript,当时看了很多javascript方面的框架,最后还是选中了jQuery,就是因为它的一句"用最少的代码做最多的事"打动了我,这就是我想要的.这一思想也使我后来对java框架感到非常的不满意.
学完上面的那些技术以后,我也做了一些项目,就不介绍了.我在想,这些技术我了解,但是比我了解和精通的大有人在,我没有任何的优势.于是乎我就想学一些别人不怎么了解的东西,增加自身的竞争力.当时有个同学想找我做一个社交网站方面的项目,但是最后这个项目是夭折.然后却让我进入了另外一个领域.我想从五点来讲我学习到的东西.
(1)基于web的即时通讯,当初在设计这个社交网站时,我就发现人人,google+,QQ朋友等社交网站都有web版的即时通讯运用,因为我们的网站也必须要有这样的功能.因此我在网上找了很多资料,看到一些实现这一功能的技术都存在不小的缺点,比如说长轮询对服务器造成很大的压力.最后选择了cometD框架来实现这一功能,它是基于服务器的"推"技术来实现这一功能的,同时还具有分布式的功效,很好的解决了这一问题.同时分布式这一特性也让我进入了另一领域.
(2)个性化的推荐,我也是从一些网站发现这一功能的,比如说豆瓣(我非常喜欢它的设计).同时,我认为个性化推荐也会非常的流行,在我们的社交网站中也应该存在这样一种功能.同样,网络给我带来了福音,让我找到了Mahout框架(Apache组织下的一个开源项目),因为我知道让我实现各种推荐算法几乎是不可能的,因此只有借用别人的.
(3)全文搜索,同样一个好的社交网站,怎么可以没有一个全文搜索的功能呢?这也让我进入了全文搜索的学习过程中,在这个过程中我接触了lucene,Solr技术(Apache组织下的开源项目),也了解了怎么做一个站内搜索,什么是索引,什么是分词.
(4)分布式的计算,这也是我考虑的一个问题.因为在计划的时候,我就想到一个好的社交网站就会有海量的数据,这样多的数据如果使用一台服务器来服务的话,很难完成.同时在进行一些复杂计算,使用一台服务器也很难满足.这些思想也是我接触到另外一个领域,分布式式计算.在这个过程中,我看到了它---hadoop框架.它让我知道什么是分布式计算,怎么样处理海量数据;让我知道最基本的MapReduce.
(5)好友动态的展现,这一功能肯定不能使用一般的查询来实现.因为这里涉及到好友的问题,还有动态的时间问题.在我的印象中,这应该是一个发布/订阅的关系(当时也和我们教研室主任讨论过).从这一点出发,让我接触到了JMS(java消息服务).这也让我了解了两种消息服务模型:点对点和发布/订阅.
虽然,最后这个项目流产了,但是我却学到了很多东西,其中有很多的就是我都在帮学校做的一个项目中使用过了比如说solr做的全文搜索和Mahout实现的个性化资源推荐.
在java的旅程中经历了这么多,让我逐渐对java的三大框架感到厌烦,感到他们真的是太麻烦了,我们需要更加简单快捷的方式来搭建我们服务.因此我接触了java的play框架,但是还是不能让我满意.最后我无意中了解了Ruby,它的灵活性,自由性,吸引了我.同时它的web框架Rails更是让我如痴如醉.不要重复自己,敏捷开发.....作为一个IT人士,我一向认为时间就是金钱,敏捷开发可以让我省下太多的时间,学习新东西.
上面就是我大学三年半所有的自学经历,当然在自学的同时,我也没有落下学校课程,多次获得奖学金和"三好学生"称号.同时通过了软考多个证书.比如说大四(也就是今年)软考高级的系统架构设计师,大二和大三的数据库系统工程师(中级)和软件设计师(中级).
我希望能够找到一份实习公司,能够让我发挥我的才能,让我所学到的技术可以充分的体现出来的工作,我不喜欢那种一成不变的复制代码的工作,喜欢有创造性,有激情的工作.......