会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 编程程序 > 一个新手的学习总结

一个新手的学习总结

时间:2012-04-26 18:49:32   作者:   来源:   点击:

写这篇文章一方面是为了放松一下疲惫一周的自己,一方面是为了给大家介绍一下学习经历,另外申请推荐到首页,多谢啦~

本人Linux C程序员,专注服务器程序设计与服务器架构与优化,阅读过的源码涉及lighttpd,nginx,jabberd2,memcached等,主要热衷于钻研lighttpd,apache,nginx等Web服务器的设计与实现,对其架构与设计细节具有源码级别的认识。

苦于终日敲C语言已经变得麻木不仁,并且本人具有一定的理想与对未来创业的展望,所以不希望停留在底层编码设计阶段,希望上层建筑也得到一定的升华,从而辅佐下层建筑,从而成为一个上层与下层兼容一身的牛逼的程序员。

正如前面所说,起初关注的是apache源码,看了几日感觉人生短暂,不能全部花费在如此庞然巨物之上,所以购买了《Apache源码剖析》,借助这本神物将Apache的prefork,worker的多进程架构与实现细节统统纳入脑中。正因为Apache的学习有些偷工减料,同时发现太多的http与 mod的用途完全不懂,于是决定以一个轻量级的源码:lighttpd展开细致的源码剖析,誓死不罢休。

阅读源码起初并不是很艰难,因为有过memcached的源码阅读经历,所以在阅读外围代码(相对于核心代码而言)时也是如鱼得水,颇有收获。随着进入核心代码的阅读,发现非常缺乏HTTP与WEB服务器的基础知识,举步难行。

于是,购买了《构建高性能Web站点》一书,在3天内将其阅读完毕,收获难以言喻,配合不断的百度搜索优秀博文,借助它们对HTTP协议,WEB服务器架构设计,以及整个站点的组成方面得到了很重要的突破,虽然此时并没有太多的感悟与知识串联。随着继续这样的源码阅读与搜索学习,lighttpd代码被完整的稀里糊涂的看完了,其中掠过了某些Plugin(Mod)的阅读,而且对于Plugin架构的设计还有一点源码级别的疑惑(这个问题在后来公司实习过程中结合Jabberd2和实际的开发已经彻底领悟)。

在此之后的一段时间内,会不断的思考lighttpd源码,不断的发现问题,于是更多的去搜索与思考,回顾源码细节,重新梳理源码体系。但还是遗留了若干的疑惑,所以不得不开始nginx的代码阅读,希望从中能找到答案,当然这个源码只读了很少的一部分,主要几种在http request的parse部分和多进程工作模型与I/O部分。

此时,对于HTTP协议的交互实现原理已经达到了一定的认识,借助《构建高性能…》一书中对http协议的详细介绍,对所有的http字段都有了较为透彻的认识。

讲到这里,发现要说的太多,只好快速的过度到Web学习阶段。

学Web的原因很简单,文章一开始也提到了,我想做自己的事,而最快的方法无非是移动终端或者Web应用,而Web应用在PC端和移动终端都可以适用,并且Web应用也是任何应用的一个重要推广平台,其次Web服务器可以很快速的架设非Web类应用,其本身的分布式协议(Http),简单的访问方式(get/post),无状态短连接特性本身就是一个完美的神物,尤其对于我这种研究过Web服务器实现的人来说,我甚至可以看到协议之下的字节流。。。(哈哈)

也就是在这之后,我到公司实习,很快的就因为工作任务接触到了C语言开发一个HTTP服务器,需要接受任何合法的HTTP请求,并存储转发其数据。这个过程是借助XML+Nginx提供的http_parser库快速开发实现的,基于epoll的多进程架构,其中还需要涉及到jabbered2的源码阅读(在公司期间花了一周多时间读RFC协议与源码)。

随着与Web打交道的越来越多,并且公司要求每个人必须掌握C/PHP,于是Web的学习之路很快的提上了行程。

从0开始总是艰难的,需要毅力。起初总是找不到正确的学习路子,我习惯于来CSDN听听大家的建议,给自己的计划做一些参谋,就像我现在小有成就就喜欢来写个文章分享分享放松放松(也有炫耀炫耀~)。咨询过之后,觉得摆在面前的html,css,js,ajax,php都是些神马东西,这么多怎么学。无奈,只能慢慢学,抱着无限对知识的渴望,在w3school花了最多三天时间,把html,xhtml,css,js,ajax,php,mysql全看完了,就是左边栏的内容全看完了。但是我一行代码也没敲过,看完很快忘干净了。

放下了好几天,一直没动力再看。这时候,也就是2周前,我觉得我连一个静态页面都写不出来还怎么混下去,DIV+CSS定位一定要整明白,js怎么也得把基础折腾明白,jquery再说吧。我决定看视频学习,于是借助公司的高带宽让电驴尽情的挥洒汗水。。下载了两个系列的视频,一个是讲html+css的传智播客视频,一个是lamp兄弟联的PHP视频,它们都讲了html+css+js+ajax,我就先看了lamp的,一整天在公司里带着耳机看,下班回去看到半夜,恩。。。两个系列我都在3天左右看完了html+css部分,于是回家在自家路由器上架设了一个Linux服务器,在之上部署了lnmp,路由器NAT可以外网直接访问,配置花生壳DDNS,开始写静态页面练习CSS+DIV。

分享到:

网友评论

热门编程程序