两年制大专,主修网络配置与维护,在努力钻研网络技术的过程中慢慢爱上了编程,后放弃Java 而专攻C,最终因钟情Linux 内核之美而娶了它。社区之星第42期带你感受与历史共舞的Linux网络专家王然的艰辛成长之路。 Linux网络专家王然和他的爱女小小 王然,专注于VPN,精通TCP/IP协议栈的原理以及实现,平时对Linux内核特别是网络部分有浓厚的兴趣。虽专注于技术,然而每天必须抽出一个小时时间读历史。 会编程的人是最幸福的 CSDN:你是在从事了一年的网络维护后才开始接触编程,进而成为了一名程序员,能否简单说下你当时是怎么样的一个想法?又是如何一步步做到的呢? 王然:我大学学习的专业是网络与信息安全,虽说这个专业名字听起来挺吓人的,但是对于两年制大专来讲,这个专业主修的内容其实就是网络配置与维护,留下的仅仅是个名字而已,但是我当时就想决不能愧对于这个专业的名字,一定要好好学习。一切从网络协议开始,因为如果不懂网络协议,就不可能精通网络安全,至于编程,对于我个人来讲,它是我努力钻研网络技术的过程中一个必不可少的工具。 两年的时间里,我努力将网络协议部分的专业知识基础打得很扎实,参加了华为的高级网络工程师培训并获得了HCSE证书,余下的时间内就死啃各种网络教材,从大学教材到Cisco系列,另外,在学校的实验机房搭建简单环境做些小测试也是必要的,毕竟理论要联系实践。 毕业后,顺利在长春找到了第一份工作,在做了较短时间的网络实施维护后,一向喜欢刨根究底的我在网络领域知道了“HOW”之后,十分想知道“WHY”。在那个阶段第一次接触到了Linux内核代码,由于在大学期间学过一门Java课程,大致知道编程语言的一些事儿,对于C而言,自学起来应该也不会太困难,当时并不是为了学编程而学C编程,而是为了“折腾网络”而学的编程,要知道所有的网络协议落实到根本就是代码,因此自己一定要学会自己写代码。 经过了一个痛并快乐着的过程之后,Linux内核协议栈的代码基本浏览了一遍,期间自己动手写了好多代码,事实上,我是从Linux内核代码那里学会的C语言而不是从谭浩强的书里学的。由于在学习编程之前我就对网络协议的运行原理有一定深度的理解,现在学会了C语言编程,就可以动手做一些HACK了,现有的协议或者协议处理模块满足不了自身要求的地方也可以做一些DIY了,另外,有时仅仅是为了确认一下自己的想法是正确的,会修改Linux内核代码,加入一些逻辑… 就这样,五年过去了,一步一步走到现在,我的观点就是有动力什么都是可以学会的,动力的源泉在哪儿?我觉得是兴趣和好奇心,以及一点点想象力。 CSDN:你一开始是学Java的,至于C语言是你后来自学的,能够介绍你的学习编程之路? 王然:其实也谈不上什么“学习编程之路”,基本就是我前面说的那些,兴趣加好奇,然后不要懒惰,想到什么点子就动手拭一下。 个人觉得会编程的人是最幸福的,编程和其他的任何工作之间的最大区别在于编程允许你不断试错,几乎不受任何资源的影响。 试想一个木工,想做一个凳子,他能不断试错吗?木料毕竟有限的。 至于从Jave到C,个人一直不觉得具体的编程语言之间的区别有多重要,重要的是你要用它完成的工作,语言,仅仅是一个工具而已。语言的背后,理清自己的思路和逻辑更重要。 CSDN:你在博客中讲述曾经自己在学习程序语言时称,“一天500行代码根本不算多,坚持下去就会成功”除此之外,你在学习这些程序语言方面还有什么心得和经验可分享? 王然:还是那个观点,我学习编程以及写代码的动力就是我想证实一些事情或者想DIY一些东西。 举一个简单的例子,你觉得现在的Linux对NAT的实现不合理,那么总不能只破不立,你自已除了要知道它哪里不合理之外,还有提出一个合理的方案,光有理论不行,自己得实现它才能证明它是合理的,起码比现有的实现合理,这么一折腾,加上调试,调优,一天甚至几天就过去了,代码量,不止百行记吧。 CSDN:一个成功的男人背后总有一个默默为其付出的女人,在高中你们就已相识,后来你大学毕业,又陪你现在的妻子到他乡读研了两年,而她也懂Jave和Linux等,能否谈谈她在你前行的路上所带来的影响? 王然:记得一件事,大学快毕业时,我在学校对面的书店买了一个汇编语言的书,她说我什么都买什么都懂一点什么都不精通,事实上,为了驳倒她这个我认为是谬论的观点,我决定做一个起码在两个以上的领域都不是菜鸟的人。曾经给她讲那些名人的事迹,几乎都是全才,然而语言是苍白的,你得自己做点什么,于是我除了网络以及编程之外,还学习了很多别的,虽然最终也没能学到什么程度,但毕竟做过了,做不好也不会遗憾,大不了等我再也学不动的时候,告诉老婆,你赢了,你的观点是对的…。想想都学会什么呢?好像包括钓鱼、烹饪之类的吧,呵呵… CSDN:你的CSDN博客从09年初截止到今天,已经有了1073篇博客,粗略的算了下,平均每周发表四篇博文,你是如何坚持下来的? 王然:以前小的时候,我就有写日记的习惯,家里满满几大箱子呢。现如今有互联网,岂不更方便?再也不用买日记本还铅笔了,也不用找地方放那些本子了。 以前小的时候,我都会随身带一个本子和笔,(现在我也时常带着笔),一有什么想法,不管多么乱七八糟,我都会先记下来,然后晚上整理出一个思路,小时候就写本子上了,现在就是写博客。想法总是转瞬即逝的,我希望能把它们捕捉下来,没准哪天用得着。 写博客和写日记不同,博客是分享性的,日记是隐私性的。有想法希望分享给大家是因为我的想法也来自于别人的分享。 钟情Linux内核之美CSDN:在大学毕业工作以后就几乎放弃Java 而专攻C了,接着了解到了Linux 内核,请问你为什么放弃了Jave?而Linux 内核吸引你的地方是什么? 王然:Java是一门语言,一个工具,而Linux内核则是一个完整的体系,包含了很多思想在里面。至于说“几乎放弃了Java”,我想那是 那篇文章措辞不准确,作为一个工具,只要使得顺手,拿起来用就是了,Java也挺好用的,有时候写点小工具还是挺方便的。 要说Linux内核吸引我的地方,那太多了,也不是一两句话能说清的,我要说Linux内核里有随时可以拿来用的算法,它就是一个算法库,那太具体了,我要说Linux内核里生活,有点不知所云,要是说Linux内核里有拯救,这太玄乎了,用一句话说吧:道可道,非常道… CSDN:请问你曾在2010年在博客中称,选择Linux 来进行工作,经过了几年的实战后,能否总结谈下自己的心得和体会?为何不考虑作为PC个人电脑比较流行Windows呢? 王然:说实话,我对Linux的掌握程度也不是所谓的一流水平,平时会遇到很多的问题。Linux吸引我的地方在于,它给你尝试的空间非常大,你可以定制和自己需求完全契合的系统,可以做任何好玩的事。 至于我为何不喜欢Windows,是因为我不喜欢比尔这个人,有点主观了…更深层次的原因是,当你排开架式想在Windows上做点DIY的时候,总是有那么几个拦路虎挡着。我指的是是工作和学习方面,平时在家里看个电影,聊个天什么的,使用的还是Windows,不过我用的是Windows XP,至今没有换Win7,Win8…个人觉得这是自己的怀旧情结使然。 CSDN:我就不拐弯抹角了,以你的工作经历和对Linux 的研究,为什么 Linux 桌面发展二十多年仍然无法进入主流市场?为什么选择太多会阻碍 Linux 桌面成熟进而进入主流市场? 王然:记得一本讲操作系统的书上说过,操作系统位于机器和人之间连线的某一个点上,它是离机器近一些还是离人近一些决定了它的市场前景。我个人认为 Linux并没有站在普通用户的角度形成一个统一的体系,它只是针对少部分人的,而这少部分人又是排他的,比如用VIM/Emacs编码的人会鄙视用IDE的 ,说白了就是用的人太少,这些人的数量趋向于更少,但是趋向于精英化,要知道想占据市场可不能搞精兵主义。Linux和Windows之间的对比有点像魏国和秦国的军事力量的对比,唉又扯到历史了… CSDN:为什么 Linux 平台 / 开源社区没有形成 MS Office / Apple Pro Tools 这样的杀手级应用?这个平台对应用开发有着怎样的限制? 王然:关于这一点,即Linux没有杀手级应用,我还是倾向于非技术因素,实际上在技术角度,Linux上的Office好用的也不止一种,关键是除非你永远不用其它系统,否则就要考虑互操作问题。所谓的杀手级应用不是开发者封的,而是用户封的,接下来问题自然转化为为何Linux应用的用户少,为什么呢?不是一两句能说清的,但是市场宣传,营销策略,版权策略,钱砸得多少等因素一定起了不少的作用,对于Linux而言,这些并不是核心,甚至开发者社区对这些不屑一顾, 你能指望一群在黑夜敲代码的geek去关心那些穿西服的家伙关心的事情吗? 说起Apple,正好它可以印证,起码在某方面印证我上述的观点。不知你有没有注意到,自2010以来,身边使用Mac电脑的人越来越多,自然而然的,Apple用户就多了起来,用户多了,也就有了杀手级应用,为什么用户突然就多了呢?肯定和iPhone的发布,乔布斯的回归,乔布斯的去世,Apple零售店在世界范围内大量铺开这些有关。至于说技术方面,UNIX?Mac OS X使用了UNIX核心?这种事不是那些所谓的“大量用户”中的一员所关心的,更多的用户只关注产品本身而不是内在实现技术,因此,Apple只说“可以存储1000首音乐”,而不说“拥有4G”的内存… 用户对杀手级应用封神之后,接下来就是技术因素,你能不能用该杀手级应用快速占领其它平台是关键,比如MS开发了Mac版的Office,这样即便你使用Apple的系统,你的应用依然是MS的, 这就是这个时代,应用比系统更重要的时代。 首先要占据用户群,其次再谈高深的技术,Linux缺乏的正是这一点。 CSDN:SO,以你这么多年来的学习和工作经历,你认为最稳定的 Linux 桌面是哪个?新手应该如何学习使用桌面 Linux 发行版? 王然:在我们平时的工作中,都是SSH登录开发机的,至于Linux桌面,几乎没有用过。为什么不用呢?原因你也知道,太难用了,控件不合理,操作不流畅,还是没有Windows好用。喜欢Linux是喜欢它在我工作和学习中给我带来的那种可以任意折腾得自由度,我平时也不搞UI,所以也就没有折腾过Linux桌面。 对于新手而言,选一个发行版还是重要的,先熟悉乐Linux的一些基本概念,才能定制自己的系统。 CSDN:从世界的角度来说,客观的说(排除国内很多用户在接触操作系统的时候,第一个接触的是Windows等原因),Windows和Linux在学习上的难度有高低之分吗? 王然:我觉得除了个人感情因素,区别不大。不管是Windows还是Linux,提供的都是相同的服务,客观地说,难度相同,但是学习过程是不可能客观的。你喜欢哪一个,你就会觉得那一个简单些。再者说了,理解的越深,感情因素的作用越强烈,到了RMS那个级别,都可以分出派别了,并且尽全力捍卫自己的派别。 文艺的程序员青年——爱阅读历史、爱音乐、爱写诗CSDN:能简单介绍你是如何爱上历史的吗?其中有什么特别的故事分享吗? 王然:历史是客观的,但是写出来的历史却都是主观的,再也没有历史能把主观和客观结合得这个完美的了。 为什么喜欢历史,还是小时候爱好的延续,只是那个时候理解能力有限,现在可以为小时候积累的问题自己寻找答案了,比如“中国为何没有王子公主的浪漫故事”,“中国为何有城墙无城堡”,诸如此,问题都很简单,很多人觉得也挺傻,但是都是值得思考的,不是一两句话能解释清的。 CSDN:作为一名程序员的你,每天要投入到大量的精力到工作中,你又是如何安排自己一天的生活和保障自己阅读时间的? 王然:我住的地方一向离公司比较远,不管是以前租的房子还是现在自己的房子,这样就能被动的学习了。怎么说呢?如果就住在公司楼下,我肯定在上班前一刻钟才起床,相信大家都一样,现在离得远,路上一个多小时,这就是学习的时间,一天就有三个小时读书学习的时间,这就是被动学习,另外我不太喜欢碎片化的东西,所以我不会在路上玩iPad或者智能手机,我只读纸质的书,这样方便批注,做笔记,不是说不动笔墨不读书嘛。 不过我现在不再将三个小时全部用于阅读了,我会在下班回家的路上抽出半小时时间写备忘,用邮件或者iPhone的备忘录,然后存在Dropbox里面,渐渐的,我也上信息化高速公路了,哈哈…虽然上了道,我还是很少将时间花在电子娱乐上,个人觉得,想娱乐,钓鱼,旅游,甚至聚餐都是不错的。 CSDN:你曾经玩过乐队、音响,唱歌也很专业,歌声也挺赞,好像你最喜欢的是摇滚吧?你现在如何看待当年深爱音乐的自己?如今的你对音乐有着怎样的一份心境? 王然:呵呵,有点自夸了,都是些陈年往事了,上中学时候以及刚进入大学的事情吧。那时基本听磁带,也属于叛逆期,加上90年代到2002左右的文化开放性,让人总是有更多的东西可以玩,比如我就特别喜欢魔岩三杰,喜欢崔健,喜欢黑豹,他们那种不妥协的呐喊总能让人觉得激情澎湃,叛逆期的模仿就是自然而然的了…我始终认为,内容最重要,而不是技巧,技巧只是表达内容的一种方式, 音乐能传达的精神不是几个很炫的和弦或者彪高音能诠释的,正如UNIX/Linux的精神不是高超的编程技巧能诠释一个道理。 如今的摇滚完全变味了,如果说曾经的摇滚是精神的摇滚的话,现在的摇滚就是肉体的摇滚,人们看到自己的偶像时,互动的不再是自己的心,歌词也变成了倾诉式的,携带了大量的假设和情感在里面,真正的摇滚应该陈诉式,陈述的是自己的内心,没有如果,没有假设,像流行歌曲里面那种类似“如果有一天,我们再见面…”换成摇滚的语言就是“我见到了那个人,我不再有感觉…”。摇滚是把自己的心挖出来给人看,而不是让人猜自己的心,当然这只是我自己的观点哈。 CSDN:你是具有极强历史感的程序员,在阅读了大量文学作品的基础上,透露出的文艺气息是遮掩不了的,也看到你在博文中写了一些诗:《游戏》,在这方面,这方面对你写程序有什么特别的影响吗? 王然:哈哈,这都是一些简单的心情坦言,对程序没什么影响,倒是可以折射出我真的不适合摇滚,我没有对真实面对的东西进行陈述,而是做了隐喻,呵呵。 附: 《游戏》 CSDN:2011年6也27日,你的宝贝女儿来到你的身边,你曾经发帖为遭到社会不公平对待的IT工作者正名,现在,你打算让她未来成为一名程序媛吗? 王然:这个有点远了,呵呵。她适合做什么职业现在还完全看不出来,才两岁半…不过即便将来能看出来,我也完全尊重她自己的意愿。 至于IT业界的一些不公现象,我想是各方面原因造成的,这些现象也不仅仅存在于IT界。也许是跟以就业为导向的教育体制有关吧。现如今各行各业的从业人员特别是年轻人文化素质不高,承受能力差,生活质量差是不争的事实,这些需要靠社交,阅读,拓展等多方面活动来弥补,可是如今就业压力,住房压力等生活压力如此大,谁会有时间搞那些职业外的事情啊,这实际上也是一种社会导向。 CSDN:人随着年岁的增长,在压力却越来越大,责任也越来越多,不管是工作还是生活,都会让人迷茫,你在遇到这样的情况是如何解决的?读历史、爱音乐和写诗对解决这一的问题是否有帮助呢? 王然:不管发生多大的令人感觉不好的事,一定要找一件哪怕再小但是能让人高兴的事,比如自己种的花发芽了之类的。当然历史人物也能引导自己向其看齐,音乐旋律总是能让人心情变好,写诗就算了,我也不是什么诗人,除非不是真的挫折,不是真的迷茫,而是“为赋新词强说愁”的矫情… 人生要有感觉和激情CSDN:在一个人追寻理想、追逐成功的道路上,你认为最需要的是什么? 王然:感觉和激情。对待一件事情,先要有感觉,然后理想给感觉以方向,剩下的就是靠激情前进了。正如谈恋爱一样,你要对她有感觉——这就是感觉,然后再发誓一定要追到她——这就是理想,可是这还不够,剩下的就需要你的激情去尽自己的所有爱她,最终,她就是你的了,不是吗? CSDN:你是什么时候接触CSDN的?它对你学习和工作都带来哪些影响?同时,对CSDN有什么建议? 自2007年接触CSDN已经有六年多了,最初只是抱着向前辈学习的态度浏览学习,后来自己也就发表了一些,慢慢就把CSDN当成自己的日记本了,呵呵。CSDN首页的内容非常不错,看得出你们的专业程度和敬业态度,内容都是很有质量的。普通的论坛,博客呢,门槛低,范围广,任何水平的人都可以找到自己需要的东西,不管你的大牛还是菜鸟,很好。 要说建议呢?开一个玩笑,你们下载频道的资源太贵了啊,好不容易攒起来的积分很快就用完了,建议给回答问题的人多些积分,同时下载频道的资源便宜点,攒分不容易,呵呵。 写在最后:很荣幸能在CSDN分享自己的生活轨迹与成长过程的点点滴滴,我从各位前辈哪里学到了很多东西,也希望我的这些轨迹会对大家所有帮助。另外,模式可以复制,风格却不能复制,希望大家以后可以继续在CSDN这个开放的平台上相互促进,求同存异。 若想获悉王然更多动态,请关注: CSDN博客: 请点击进入 |