系統(tǒng)管理員該學(xué)什么語言?
譯文【51CTO外電頭條 2012年6月6日】最近有人問我:系統(tǒng)管理員該學(xué)什么語言。
如果你是一名Windows系統(tǒng)管理員,那么答案很簡單:該學(xué)PowerShell。
如果你是Unix/Linux系統(tǒng)管理員,答案就比較復(fù)雜,因?yàn)橛懈嗟倪x擇。我不想引發(fā)一場“語言大戰(zhàn)”,而是想說:
我認(rèn)為,每一個Unix/Linux系統(tǒng)管理員都應(yīng)該知道外殼程序(sh或bash),另外還要知道Perl、Ruby或Python當(dāng)中的某一門語言。至于學(xué)哪一門語言,并不重要。
圖片來源:O'REILLY編程大師
在我看來,上面這番話比我認(rèn)為Perl、Python或Ruby哪門語言更優(yōu)秀或者哪門語言有更多的職位空缺(或者使用其他任何標(biāo)準(zhǔn))來得重要。容我細(xì)細(xì)解釋:
學(xué)習(xí)bash確實(shí)蠻重要,因?yàn)閎ash對于你許多方面的工作來說極其重要。無論是調(diào)試/etc/init.d腳本,還是編寫一個小型包裝器。每一個Unix/Linux系統(tǒng)管理員都應(yīng)該知道:如何執(zhí)行for循環(huán)、while循環(huán)、if with [[或[、$1、$2、$3... $*和$@以及case語句,還要明白變量代換是怎么一回事,如何處理簡單的命令行標(biāo)記。只有掌握了那些基本的東西,你才能繼續(xù)深入一步。我驚訝地發(fā)現(xiàn),我結(jié)識的不少人接觸了好多的Unix/Linux,卻不會用bash來執(zhí)行循環(huán);他們遲早會為沒有盡早學(xué)習(xí)bash而自責(zé)不迭。
選擇Perl、Python還是Ruby,這通常取決于貴公司已經(jīng)在使用什么語言。Ruby和Python最近變得比Perl更為流行,所以許多公司重點(diǎn)關(guān)注Perl。如果你使用Puppet,那么熟悉Ruby將有助于你熟練運(yùn)用Puppet。我在谷歌工作,這家公司很看重Python,于是我進(jìn)入谷歌后學(xué)習(xí)了這門語言。對于自1991年以來就熟悉Perl的本人來說,這的確是一次不容易的學(xué)習(xí)過程(最近有人告訴我Perl在1991年還沒有出現(xiàn)……我建議他不妨查查維基百科)。
從職業(yè)管理的角度來看,我認(rèn)為真正擅長其中一門語言,對另外兩門語言有所涉獵,這至關(guān)重要;哪怕這意味著僅僅閱讀介紹這些語言的書籍的頭幾個章節(jié)。真正擅長其中一門語言意味著,你深入了解如何運(yùn)用該語言,深入了解該語言在“底層”是怎么一回事,那樣你在設(shè)計更大型的程序時,就能作出更合理的決策。我之所以把這個問題上升到職業(yè)管理問題的層面來討論,原因在于,如果你想受雇于一家使用不同語言的公司,“成為愿意學(xué)習(xí)不同語言的專家”遠(yuǎn)比“成為只想學(xué)習(xí)大有潛力的語言”或“對這門或那門語言一知半解,但是從來沒有耐心把某一門語言學(xué)好的人”來得重要。
【編輯推薦】