最近在51cto上发表的博文:怎样成为优秀的Linux系统工程师(http://johnwang.blog.51cto.com/474770/886245)收到了很多朋友的关注,也大大出乎我的意料。没想到有这么多朋友对Linux抱有这么大的热情。后续也有很多朋友通过各种方式联系我,包括qq群(3天爆满500人,无法再加)、qq、微博关注(http://weibo.com/u/1186347743)、邮件、bbs(http://42.121.14.181/bbs/forum.php)等。说实话由于实在是个人时间原因没能一一作答,也很抱歉。但是我还是坚持把所有收到的邮件都一一做了回复,可能写的也都是点到为止,希望能给大家有所启示就非常欣慰了。

邮件中有不少共同的问题,比如说一上来就比较喜欢问:怎么才能学好,怎么才能成功?我非常能理解大家的心情,但是话说回来这么问的朋友都多多少少有点急功近利的想法,希望能最快的学好学精linux,但是这其实是没有捷径的。有句话是这么说的:每个牛逼的人都有一段苦逼的经历。我觉得这话虽然不能绝对的讲,但是对99.9%的人是有效的。如果您是这0.1%里面的一员,基本上就不用继续往下看了。方法永远是多看书,多动手,书上提到的实验都要自己敲一遍。有人说,这个实验有什么意思呢,有什么用呢?可能一个实验真的不代表什么,但是当你做完后总有不一样的感觉。这个过程是个量变到质变的过程,如果是入门,那就傻傻学,过程是很枯燥,但是如果这是你选择的路,那么你就要坚持走下去,要知道这个世界上没有一条康庄大道让你走的既开心又轻松还能顺便赚钱。所以,做一名linux系统工程师的第一条素质就是要能耐得住寂寞。

我身边认识不少做linux运维做的比较好的朋友,没有一个不是曾今经历过真实的考验、没有一个不曾走过一段几乎天天加班熬夜的经历。真金一定能通得过火炼,而要想做一个好的linux系统工程师,一定要经历过火炼才能成为真金。挺过去,风雨彩虹,其实做任何一个行业都是这样的。所以第二条素质就是要有吃苦精神。

养成自己解决问题的习惯,遇到问题不能自己还没做功课就跑到群里问问题。有些错误提示是非常明显的。至少出问题的时候,你要确定,你知道相关的日志在哪里吗?你看过日志里面的内容了吗?你将日志里面的出错信息拿到google上搜索过了吗?如果这些动作你都做过了,还是没有想法,你可以再请教别人。举个例子,前几天有个朋友在群里贴了一段报错消息,然后问为什么出错(我删掉了一些内容) 

  1. HTTP Status 500 
  2. ...... 
  3. exception  
  4. ...... 
  5. javax.servlet.ServletException: No Transaction Isolation on non-logging db's 

其实这段报错是非常非常非常明显的,第一 http 500的报错,第二,一个java异常。像这样的问题拿出来问的话,对自己是不能有一点好处的。其实linux运维工程师真的不是什么都能懂,只是要学会快速自己定位问题的方式。linux运维本身不是一套可以写下来的“葵花宝典”,而是解决问题本身的方式才是真实需要的“技能”。举个例子,我们可以说,“吃饭”是个“技能”,不会有任何变化,不会因为吃的东西不一样而改变咀嚼的方式,而且一次学会终生受用。“驾驶”也是个技能,但是没说驾驶什么。今天让你驾驶汽车,明天让你驾驶卡车,后天让你驾驶拖拉机,可能再后来让你驾驶飞机。而有可能你都不会,那么在这种场景下,什么才是真正的“技能”呢?那就是能迅速的利用身边的各种工具迅速的学会各种驾驶的方法,这才是真正的“技能”。所以这第三条素质其实就是能尽快的利用资源学习到解决问题的办法,这是非常重要的。

 啰啰嗦嗦的罗列了三条,也许由于个人的原因不能覆盖全面,只是拿自己的过往经验做了个总结,如果能给各位读者一点启示就十分满意了。也希望各位不吝指证!