歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux運維人員需要掌握一門編程語言嗎?

Linux運維人員需要掌握一門編程語言嗎?

日期:2017/3/1 12:15:32   编辑:關於Linux

最近經常有同行的朋友或者Linux初學者問我:運維人員是否需要學一門語言,那麼該學哪種語言呢?

對於這個問題,我分兩個方面回答:

首選,在大數據、雲計算發展迅猛的今天,系統運維人員如果不懂一點開發語言的話,確實會舉步維艱,因為在運維工作中,業務系統的繁多,線上服務器規模很大時,只能通過寫腳本的方式(自動化也是腳本一種哦)自動化完成,不然,如此重復和繁瑣的工作,靠人力是無法負擔的,所以,學習一門可以讓運維工作批量完成的語言,就顯得很重要了。

那麼應該學習一門什麼語言呢?

對於Linux系統運維人員來說,答案就比較復雜,因為有很多的選擇。shell、perl、python、ruby等等。

我認為,每一個Linux系統運維人員都應該知道Linux外殼程序(sh或bash),另外還要知道Perl、Ruby或Python當中的某一門語言。至於學哪一門語言,並不重要。

在我看來,任何語言都是為運維工作服務的,只要能完成運維工作,你喜歡哪種語言,那麼你就用哪種語言吧,當然,對於初學者會有一些不同的選擇,如果你是初學者,推薦當下比較流行或者企業應用比較多的語言來學的話,對以後的工作會有很大幫助,畢竟沒有哪個公司願意接受一種陌生的語言。

那麼,是否初學者一開始就要馬上學習一門運維語言呢,我覺得這個為時過早了,因為任何語言,特別是shell、python等這些語言,與Linux聯系很緊密,如果對Linux一無所知的時候,就茫然的去學語言,那無異於盲人摸象,所以我建議,學習系統語言,一定要有Linux基礎後再去學習,你會發現,語言也變得容易多了。

shell作為一門通用的系統語言,是所有運維人員都必須要了解和掌握的,通過shell能幫助我們解決日常工作中很多重復、繁瑣的工作,但是shell的基礎就是系統命令,因此,只有掌握了系統命令的原理和使用方法,shell才能運行起來,我見過很多學Linux的朋友,他們也接觸運維多年,但是對於如何執行for循環、while循環、if with [[或[、$1、$2、$3... $*和 $@ 以及case語句的使用都不會,他們遲早會為沒有盡早學習bash而自責不已。

那麼又有人問我,我對shell已經非常熟悉了,但還是找不到工作,很多單位都要求會python或ruby等語言,我是否還要學這些語言呢?

這個問題分為兩個方面,首先從員工角度來講,企業招聘員工是為自身服務的,交給員工的任務只要能按質保量的完成,其實已經足夠了,至於通過什麼語言來實現的,並不重要。可能有些企業出於習慣或傳統的目的,強制要求要通過一種語言去完成所有工作,這是企業環境問題。如果每個員工都有完全依賴於企業的這種習慣,豈不是要學會所有的語言嗎,顯然,這並不是一種常態。

很多朋友都看過招聘信息,對語言的要求基本都是shell、python、perl等任意一個熟悉,那麼也就說明對運維工作的語言要求是相對較寬泛的,我曾就職多家大型公司,對於運維的工作都有專業的任務調度管理平台,而調度管理平台上,可以支持任何語言編寫的運維調度任務,因此,你無需為學習哪個語言而發愁。

然後,從職業管理的角度來看,我認為真正擅長其中一門語言,對另外其它語言有所涉獵,這是最大的競爭力,哪怕這意味著僅僅閱讀介紹這些語言的書籍的頭幾個章節。真正擅長其中一門語言意味著,你深入了解如何運用該語言,深入了解該語言在“底層”是怎麼一回事,那樣你在設計更大型的程序時,就能作出更合理的決策。我之所以把這個問題上升到職業管理問題的層面來討論,原因在於,如果你想受雇於一家使用不同語言的公司,“成為願意學習不同語言的專家”遠比“成為只想學習大有潛力的語言”或“對這門或那門語言一知半解,但是從來沒有耐心把某一門語言學好的人”來得重要。

我是南非螞蟻,一個多年從事運維一線工作者,如果你還在迷茫該如何學習一門運維語言,不妨看一看!

Copyright © Linux教程網 All Rights Reserved