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
























