為什么SA不會(huì)寫代碼?
大多數(shù)SA都會(huì)秒速告高呼:“俺不是碼農(nóng)”!奇怪的是,他們經(jīng)常會(huì)補(bǔ)充自己了解并使用過(guò)N多的編程語(yǔ)言。為什么會(huì)醬紫?可以改變嗎?為了讓系統(tǒng)管理員都可以成為牛叉的程序員,下面是我的5點(diǎn)建議。
專題推薦:SA,神仙與裝機(jī)男:運(yùn)維的工作到底啥樣兒?
1.找一個(gè)自己關(guān)注并想解決的問(wèn)題
SA不實(shí)際使用工具,他們只想學(xué)習(xí)工具的原理。他們認(rèn)為當(dāng)問(wèn)題發(fā)生時(shí),知道如何解決問(wèn)題比實(shí)際解決重要的多。SA有可以解決幾乎任何問(wèn)題的有效方案。潛意識(shí)里,他們想要使用工具,但由于他們的最終目的是理解工具的原理,當(dāng)他們希望用工具去解決問(wèn)題的時(shí)候,他們學(xué)習(xí)了工具卻沒(méi)有實(shí)際解決問(wèn)題。學(xué)習(xí)是目標(biāo),當(dāng)目標(biāo)達(dá)到,換個(gè)工具繼續(xù)學(xué)…
這使得許多SA成了hello_world之王…會(huì)用各種語(yǔ)言編寫helloworld,但只會(huì)寫helloworld(目標(biāo)是掌握每個(gè)語(yǔ)言的基礎(chǔ),然后繼續(xù)下一個(gè)語(yǔ)言)。
改變這種惡習(xí)的唯一方法是發(fā)現(xiàn)一個(gè)你自己要解決的問(wèn)題,并且解決它。別為了別人寫程序,為你自己寫。寫一些程序連接ldap服務(wù)器或者計(jì)算數(shù)值并寫入數(shù)據(jù)庫(kù)…然后,讓這些程序變得實(shí)用,而不僅僅總是停留在練習(xí)。
2.選擇,就堅(jiān)持到底
SA適應(yīng)本領(lǐng)超強(qiáng),于是乎產(chǎn)出了許多不同版本的hello_world,在取得實(shí)質(zhì)編程的進(jìn)步之前他們往往換了許多種語(yǔ)言。如果你想使用C,就別在遇到正則表達(dá)式問(wèn)題的時(shí)候轉(zhuǎn)戰(zhàn)ruby或python…還是努力學(xué)習(xí)如何在C語(yǔ)言中使用正則吧。
SA需要知道別人所了解的知識(shí),甚至要了解的更多。能成為各領(lǐng)域的牛人是他們引以為傲的地方。雖然Go語(yǔ)言在持續(xù)火熱,但不要認(rèn)為PHP和Python無(wú)用過(guò)時(shí)了。如果你想要使用Go語(yǔ)言,很好,但請(qǐng)堅(jiān)持。如果想使用Clojure語(yǔ)言,也很好,但不要在別人討論node.js時(shí)又覺(jué)得Clojure功能很差…
為了促進(jìn)編程能力,寫很多小程序來(lái)練習(xí)這門語(yǔ)言的不同部分,然后你對(duì)這個(gè)語(yǔ)言核心的技術(shù)有深層的了解。將這些小程序存在你的源碼里用作以后的review,并幫助你來(lái)建立信心。
3.腳本并不是編程
SA是工具管理大師…他們知道海量的工具。這就是為什么對(duì)于他們來(lái)說(shuō),寫腳本變成了很自然的事情,用腳本把不同的工具組合起來(lái)使用。但這可不是編程,這是只能算得上管道。當(dāng)你在一個(gè)非shell的環(huán)境中這會(huì)顯得更加明顯。SA的代碼里往往有很多程序…也就是說(shuō),本質(zhì)上他們?cè)谝粋€(gè)非shell的環(huán)境里寫著shell。
4.模塊和庫(kù)必不可缺
SA有代碼潔癖,并且很自負(fù)。使用模塊或者庫(kù)就像在做欺騙。這就是為什么很多SA只知道基本的C語(yǔ)言,他們沒(méi)有本事來(lái)實(shí)現(xiàn)自己的庫(kù),卻又恥于用別人的庫(kù)…于是他們成了指針和其他技術(shù)的大師。許多程序員編程時(shí)看待模塊和庫(kù)的態(tài)度就像SA看待一個(gè)程序本身一樣 —— 只不過(guò)是實(shí)現(xiàn)目標(biāo)過(guò)程中的工具罷了。
別去使用工具,使用模塊或者庫(kù),別覺(jué)得這樣很奇怪~
5.別太在乎別人說(shuō)啥
導(dǎo)致不去寫代碼的***障礙之一是覺(jué)得寫出來(lái)不好。代碼不夠***或格式錯(cuò)誤亦或是沒(méi)有使用合適方法。這就好像***天去學(xué)校感覺(jué)因?yàn)榉b不合適而被別人指點(diǎn)…你喜歡這些服裝,然而你錯(cuò)了,他們并不適合你。對(duì)于別人來(lái)說(shuō)可能只會(huì)因此非常沮喪,但對(duì)一個(gè)以掌握所有技術(shù)為榮的SA來(lái)說(shuō),這是難以忍受的,導(dǎo)致他們發(fā)飆:“我不是個(gè)碼農(nóng)”!
解決方法是不要太在意比人的說(shuō)辭。即使你的代碼一行有80個(gè)字符串,那又如何呢?如果你使用大括號(hào)結(jié)束,很好。不要在乎別人說(shuō)什么。重要的是程序的功能實(shí)現(xiàn),而不是優(yōu)美的語(yǔ)法。如果你真正的選擇一個(gè)語(yǔ)言并且堅(jiān)持下來(lái),你會(huì)自然在某些時(shí)候使用良好的代碼習(xí)慣。在你寫代碼的時(shí)候可能會(huì)持續(xù)感到批評(píng)和諷刺,但在你養(yǎng)成習(xí)慣之前,別讓自己輕易放棄。這就是為什么自己寫程序解決自己的問(wèn)題非常重要。