想從事營運開發,有什麼好的自學 CentOS 和 Python 學習方案?
來源:互聯網
上載者:User
從2000年接觸電腦(在網吧)2012年知道linux和python 現在自學鳥哥的私房菜和learn python the hard way 。 沒有相關的工作經驗 具體怎麼學習也不是很清晰 想過可能的困難 比如這個歲數可能沒有哪個公司願意用 連生存都成問題 更不要提成家(現在無父母無妻兒)遇到冷眼和嘲笑 但就喜歡編程 想以此為生(別的工作做過很多)不管路有多苦 我願意往前走 (我有時間和條件學習)請大神指點 真心求教 真心的!!!
2014.06.11
謝謝回答問題的好心人和關注這個問題的人 我不是想靠這個成為大牛 年薪幾十萬 自知自己也不是天才,就是喜歡互連網和這裡面發生的事,特別關注,想成為其中一份子,沒別的。
目前已找到工作,休息時間還算充裕,可以學習了,也許將來我如很多人說的那樣得不到沒有相關工作的機會,但我會一直做下去,自己搭伺服器和建站,或者app後台伺服器。總有辦法做下去的。
這不僅是我的愛好,更多的是寄託。
真心的謝謝回答問題的人,真的,謝謝。
回複內容:
知乎上好多答案都是那種看似答非所問,其實仁者見仁的答案。
我也來說兩個案例吧。
近期招過一個人,我們叫他 M君 吧,M君之前是在類似電訊廠商、IDC這樣的地方工作的。網路基礎比較紮實,系統基礎比較弱。在營運經理面過之後,告訴我可能是可塑之才。我面過之後覺得此人網路方面如果都是自學,那還是有一定深度的。而M君也在面試之後幾次電話我,一方面表述其及其熱情的學習意願(是的,就和題主現在一樣,沒有別的意思,但的確是一樣),一方面多方打探未來的工作機會是否有學習的空間。我讓M君放心,我們小公司,別的優點不一定有,人人需做多面手的環境還是有的。
於是 M君 來了。
我交付一個任務,搭建某種 VPN 環境。告訴他由於需要盡量保證環境一致性,需要使用 XXX 系統為基礎搭建。M君 多次(絕對是三次以上)向我反映,他希望用 YYY 系統為基礎,因為他比較熟悉。而我則明確的告訴他,用 XXX 是大環境的需求,同時原理上 XXX 和 YYY 是一樣的,如果你知其根本,你不會覺得有多痛苦。同時,我這個任務,不是那麼的趕時間,對你來說,有時間給你學習的新的東西不是最好的嗎?
這樣的對話,發生了大約 4-5 次。要知道,這樣的對話在日常的工作中,即使發生一次我都會嫌煩。4-5 我絕對是耐著性子了。
後期,又有一個任務需求,其基礎是需要使用 puppet,交付給 M君。我告訴 M君,我們有完整的測試環境,我們有文檔,先去看文檔知道如何使用測試環境。同時,你 puppet 通過 git 代碼提交後,會有兩個人幫你 review,最後線上上 pull 應用。
隔天,沒有任何前兆,生產環境代碼更新了(我們有警示)。我怒,發現 M君未讀文檔,直接在生產環境跳過 git 修改部署檔案。
之後,M君開始使用 Git 整理檔案。期間,M君叫我 review 代碼,我基本隨叫隨到,指出錯誤,指出不足,道清原因,給清方向。
某日,發現線上代碼錯誤,追問 M君 :“我 review 的時候,不是告訴你這個地方是錯的!你為什麼放上去?” 我也不細表M君回複了些什麼了,反正在我看來都是些無意義的話。
在我細看 git log 的過程中,M君嘗試未經允許的上線,至少有三次。我並不是每次都指出……為什麼……因為我太累了。
然後,還有然後嗎?沒有然後了,M君當然走了。
對於 M君,如果你能看到這段文字,我想告訴你,不是每家公司都有人可以、都有人願意 review 你的工作的很多細節。你下次要是還有這樣的機會,記得好好把握。
對於題主,我也不知道這段文字能表達什麼,但有一點是肯定的,熱情?熱情不算什麼,熱情只是最必要的一個基礎,但還需要很多東西。
再說一個。
之前在一家小公司,某塊業務,基本就我一個人,算是獨當一面。蜜月在海邊,老闆一個電話,奔到房間,上線調試裝置。這日子有點苦…… 好不容易產品越來越好,銷量越來越好。招個人吧!
花了一年,找到一個合適的人,叫他 D君 吧,D君自學能力強,工作動力強。不善表達,但工作溝通足夠。工作也非常踏實。
但礙於工作機會原因,發展的一直比較緩慢。而當時我那家公司在營運上的環境開始止步不前了。在我離開這家公司後,我也將 D君 推薦到新的公司。
我問D君:“想換工作嗎?”
答:“想,真想!(此處省略電話若干通,大家自信腦補)”
遂推薦,D君赴約面試,新單位OK,D君 Say no...
我暈,我說你不是想嗎?
答:“是想,但是…………” 這裡我不細說了,涉及個人資訊,但總體上就是那種真的不值一提的事情。
2年後,也有家公司有個工作機會,我想來想去又想到 D君。但是上次被放鴿子的感覺依舊在心中蕩漾。我鼓起勇氣,再次撥通 D君 的電話,“想換工作嗎?”
“想,太想了!…………(這裡省略N通電話,以及內容,請大家強烈腦補)”
“我這裡有個機會,我可以推薦你,但是你真想換嗎?你可不能再放我鴿子了!”
“我保證!我是真想換工作!…………………………”
好吧,let's go..... 面試 發 offer ,約新公司上班時間。
過了15天左右,D君又聯絡我了 “我不去了,因為xxxx 我還是留在這裡……”
行吧,我沒有多說一句話。我知道我這輩子不會再給 D君 介紹工作了,即使他能力再強,即使他工作再踏實。
人啊,不能停……
所以題主,你現在要做的,其實很簡單啊。找個相關的工作,好好做。
評論區的 @沈建 說,“相關工作哪裡這麼好找啊,營運就不見有要實習的,因為沒經驗。然後就惡性迴圈了”
說說我自己吧,
我和大多數人一樣,剛開始是從實習開始的
我和大多數人一樣,實習剛開始是做 HelpDesk (神馬?你實習就開始做Ops了?那還不知足!) HelpDesk 麼,每天裝電腦,拆電腦。有人離職,有人入職,忙得很。公司兩層樓,整天搬著電腦樓上樓下的跑。除了裝電腦,還要裝軟體……嗯!其實算算,我也做了2年的 HelpDesk……
我和大多數人不一樣的是,我在實習的時候已經有 MCSE 認證了。
我和大多數人不一樣的是,我在實習之前就已經在大學做了兩年兼職了。我在某非主流小雜誌社做類UNIX板塊編輯。當時是月刊。
我和一部分人不一樣的是,我找到這份實習工作的時候,非常開心的往家裡打電話,通知我爸爸,我找到工作了!
就說這麼多吧。不要當一個操作員。不要只會寫CRUD。
不要當一個操作員。不要只會寫CRUD。
不要當一個操作員。不要只會寫CRUD。
最最重要的事情要說三遍。
知乎上很多答案,包括互連網界的一些刻板的印象,覺得營運(包括營運開發)門檻低,技術簡單,入行快,東西雜而不專,天花板很低。
但是我想說,這是一個需要
keep moving的行當。
畢業之後第一份工作是在一家大公司的營運部門裡做開發。
很快你就會發現不瞭解業務就沒法做好。陷入CRUD的無限迴圈裡。
那時候我的理解,營運的本質就是通過一切手段,通過規劃、部署、分析等步驟,預見問題和快速解決問題。
而營運開發,就是來鍛造用來做上面那些事的刀槍劍戟斧鉞鉤叉。
所以我幹了一件很無恥的事情,不務正業,挨個team偷師。
入職的時候我只會寫C,會用Linux,簡單的Shell指令碼,如是而已,作為一個應屆生按現在的標準也許是應該被掃地出門的。
於是和sa們學了awk,perl,nginx,bind,和網管們學了cisco,h3c,學了vlan,ospf,bgp
和安全性群組同學們學了xss,注入,簡單的ids實現
和DBA們學了MySQL的基礎知識,sql語句最佳化,replication,高可用,資料一致性
和值班組的兄弟們一起下機房,拆機器,換盤,裝系統。
哦,那時候還因為在和朋友一起玩的一個網站做技術(兼職,不給錢的,算義工?),從C到PHP到HTML/javascript再到去機房上架修伺服器什麼的全部要自己搞。
不務正業的結果是至少我覺得我瞭解了營運開發的意義是什麼。正因為我對營運工作的瞭解,我才能為他們創造出一把順手的利刃。
還有一個結果是光造刀不管用,偶爾也會上陣砍幾個人。
營運的原罪可能就在於方向太多,大公司裡的人分工明確通常知識面不夠全面,而小公司裡的人往往缺乏大壓力的考驗而缺乏非常重要的嚴謹與鑽研的精神。
而營運開發的原罪也許在於你創造的十八樣兵器並不能直接為公司帶來很多人所謂的利益。所謂不重要,吃力不討好。
到了現在的公司以後,有了一個很大的成長。
因為一切都是幾乎從零開始。而且不同於做義工的網站的小打小鬧,這是一家公司,至少是需要一點點規範的。
要一個人自己去機房搞定所有的事情。
要一個人研究不斷出現的新技術,在合適的時間提出建議並且推進她落地。
要一個人不斷切換在各種角色中,前一秒還在改一個資料統計報表的css,下一秒手機一響直接去解決slave延遲的問題。再下一秒,也許供應商,電訊廠商,第三方雲端服務商,簡訊平台商在QQ上頭像瘋狂閃起,直接切換到公司第一快手的聊天模式。
這一段日子過下來,我覺得我最大的收穫是開始真正在整個技術團隊裡,開始成為一個在所謂的技術架構方面說話還算有分量的人,成為一個通過一些黑科技讓同事們眼前一亮降低了他們工作的複雜度的人,成為一個在緊急狀況發生的時候能保持冷靜的人(只要沒有人站在我後面盯著我的螢幕),等等等等。
副作用是成為了一個快被虐死的人。公用備胎。開發沒空我偶爾去寫代碼,測試沒空我偶爾去打個壓。休假出國不管去哪永遠帶著電腦,如果不買3G/4G上網卡就全身難受。
我曾經發誓打死不學python,不過因為幫人查bug太多,現在基本上看著文檔能寫的七七八八了,就是有點慢。
我曾經發誓打死不學C++(一個C程式員就是如此傲嬌),但是現實很骨感,你代碼都看不懂你去哪兒分析效能啊摔……
人,都是被逼出來的。
我今天再發一個誓我打死不學java,不知道能撐多久。
我並不喜歡把營運和營運開發割裂開來看。在我看來,一個好的營運是要懂開發的,而一個好的營運開發必須要知道營運的兄弟們是怎麼樣幹什麼的。
換句話說,你的命運決定了你必須做到某種意義上的全棧。哪怕你的分工很明確。我認識的那些前同事裡的牛人們,在某一個方向上的專精程度百倍千倍於我,但是他們仍然做到了某種意義上的全棧。
或許我真的不是一個合格的典型的op。可我沒有在這條道路上後悔過。
被我面且拒過的人快到三位元了,我覺得一個最大的問題就是
我並不需要一個操作員。
並不需要一個只會CRUD的碼農。
在大公司裡,肯定是需要的,但我們是小公司;在大公司裡,這樣的人也許永遠是最底層的工程師,而無法走上技術核心、專家、科學家的序列。
我希望我的candidate喜歡問為什麼。喜歡較真。學習能力和意願強。
很高興老闆和我抱有同樣的觀點,副作用就是招了一年的人,面了二十來個,只過了1個,還明年才入職。FML。
如果Ta只是經驗不夠,那麼
沒有關係,我會和Ta分享我的經驗,並且在不那麼關鍵的問題上允許Ta用犯錯來成長;但如果Ta只是一個操作員,即便十年經驗,我也會滅掉他。
因為我始終覺得一個互連網公司的營運或者說架構核心的那麼一小撮人,創造力和學習能力是非常非常非常重要的。我們是打天下的特種部隊,也是守天下的禁衛軍。
再扯幾句,雲時代到來,很多人喊營運要失業了。
我想說誰告訴你營運就是扛伺服器的。這話我們做營運的說,可以,你們不做營運的人說,滾。
底層服務化以後,高level的需求一樣很多,這個節骨眼上,ops們要努力追上時代的步伐:)
我的現階段目標是可以好好地連續睡上一周。
中期目標是可以連續休假21.75天(一個月)。
終極目標是,沒有蛀牙。
似乎答的稍微有點跑題了。關於轉不轉行這個問題,這是一條苦逼的路,希望lz能想好;關於怎麼學,每個學習環境、每個公司、每個人都有自己的學法,也不能一概而論。
重要的是,
你想要做什麼。
follow your heart.
如果你覺得當一個高階操作員也很happy的話,請無視我上面說的所有話。
因為我真的真的不是一個合格的典型的op,會有太多的人不認同我的觀點。
再說一次,follow your heart. 找一份工作,你有興趣的。踏踏實實好好做。想專精或者什麼都懂一點都可以。不要輕言放棄。經驗沒有可以積累,熱情沒了只能呵呵。
利益相關:
無關專業理學本科畢業6年,營運幹了7年。
現某創業小公司(~50人,技術團隊~20人,伺服器50-60台)唯一的營運人員。
負責全部的生產環境伺服器以及辦公環境的維護。
負責反向 Proxy層面的WAF以及灰階發布功能的開發。
負責日誌分析和給業務部門的資料統計支撐,雖然做的很差。
參與效能調優,負責常見第三方Library/Kernel層面的troubleshooting。
CCIE。
C程式員。Perl/PHP熟練工。
從不敢說精通,水平自覺非常一般但從不放棄讓自己進步的機會。
知乎上有蠻多營運方面的大牛,有很多人可以提供比我優秀地多的建議,我只談談我的經曆.
第一張圖是睡眠時間檢測的app,在最近的224天裡面,我的平均睡眠時間是5小時34分.
第二張圖是我入行35個月內購買和查閱的書,總量大概是150-200本之間,這照片裡大概是1/2.
實際上,我最近的35個月一直都是這樣子的一個狀態.
畢業第一年,順從家人的意思,回老家教書,工作和我,相看兩厭.大學專業學得一團糟,也不是電腦科班,有過跳槽幹電腦的想法,苦於什麼都不會.
畢業第二年,認識了一位姑娘,我喜歡她,短暫地我們走到了一起,最終她回家參加國企招聘,並留了下來.這段無疾而終的感情,對我影響很大.
畢業第三年,經過一年的內心掙紮和準備,說服家裡人,辭去了學校的工作,通過一位同鄉,在一家IT營運公司找到了IT駐場的工作,客戶是電訊廠商.
入職第一年,給路由器拉線,給儲存換盤,給SAN SW配config,給小機換板卡,學網路,學儲存,學Aix,學備份.打各種雜,加各種班.和一群畢業生一起,拿2000塊的工資,擠8平米的房子.
入職第二年,學Linux,學shell,布服務,收日誌,布監控,查故障,理警示,學組態管理,學資源管理,學效能最佳化,學變更管理,參加內部和外部的培訓,查google,讀部落格,翻官網KB.考紅帽認證.補大學基礎課程.
入職第三年,學資料庫原理,學Java,學Python,學分布式系統,學zabbix+hadoop+splunk,去瞭解雲端運算,瞭解openstack,去瞭解大資料,探索saprk.
細想這其中過程,幾乎也沒什麼人帶,前輩們做的最多的程度,就是丟給我一兩個書目,一兩個文檔,讓我去學習,去掌握,由於電訊廠商在前幾年的時候IOE的比重很大,所以至Linux起,能指導我的人也不太多,我就是這麼少睡多看,自己摸索到了現在.
營運入門條件不高,就像說相聲,有嘴就能說,但要賣票掙錢,要學的東西多得難以羅列.因此建議先找一份工作好好做,學學linux,虛擬化先養活自己,看微博,刷部落格,看看自己的興趣在哪裡,努力的極限在哪裡,保持對技術的好奇心,總能實現你的目標.
至於你要的方向和路徑,其實知乎上也不少了,只是不成體系,比如:
一個新手面試 Linux 營運工作至少需要知道哪些知識?
初學 Linux,應該看什麼書,從哪裡下手?有哪些可以自學以及交流的網站?
營運工程師必須掌握的基礎技能有哪些?學習方案嗎?
選個合適的helpdesk工作環境,習慣做個YES先生。
先瞭解營運基本就是作為協助和支援作為出發點,鍛煉了你心智。
再從日常工作入手,網路(瞭解到ip/vpn/fw/route)系統(win/linux/macos/unix/bsd/等)工具命令。慢慢一層一層的鑽研,然後自己用工作上的便利開始用虛擬機器進行網路上流行的方案測試(LVS+Keepalived+nginx/oracle Rac/Mysql群集/ Lamp整合)等等
當你有經驗。有認真看過文檔,你就有去面試下一份營運工程師的機會。然後慢慢瞭解營運的日常需求,再向開發營運的方向走吧。
什麼都是基礎,但要知道營運並不簡單。希望對你有用其實很多人把事情都弄反了...
編程只是一項技能, centos和python只是一個工具...
首先是你想做什麼事, 然後為了做這件事去學習需要的技能, 學習使用需要的工具...
而你是為了學習這個技能而要學習這個技能...
這樣你沒法持久的...
而且我見過的大部分公司的需求都從"你會什麼"轉化為:"你做過什麼, 你為做這個克服了那些困難, 然後從中學到了什麼"營運如何通過學習python學會編程
https://github.com/pythonpeixun/article/blob/master/python/how_to_learn_python.md
不建議轉行去做營運。
原因無他,年齡、基礎以及現實的用人環境就已經限制死了,你不可能有比較好的發展。
難道你還想和剛畢業的、精力充沛的、熱情澎湃的小年輕去正面的硬碰硬?
如果鐵了心就是要去做,那麼,我給你的建議是:
1. 別一上來就去學linux下面的命令什麼的,你先看看能能否順利的把dos給擺平,找找感覺再說。
2. 別想著樣樣去學,還是有側重點比較好一些,資源很豐富、別人都會的,你大體看看就可以了,即便有差距但只要不明顯,放著吧。但別人可能不花太多精力的,你倒是可以花些時間去看看,走差異化競爭之路麼。
3. 多留意一下商務邏輯,別只是死背命令配參數什麼的。
4. 身體!!身體!!身體!!這個是一切的根本!!!!
利益相關:
曾經的MCSE、CNE(認證novell工程師)、CCNA、MCDBA。
寫過vb和foxpro程式(一年半不到)、做過硬體開發測試(6年)、做過網路營運(不止6年)......
曾經能很熟練的寫dos6.x下面的批命令,但最近4年基本上不怎麼接觸純技術的東西了,特別是12年到現在。回答這個問題真有意義?我覺得更應該回答怎麼複習高考。我一直認為,營運有兩條發展路線
1精通shell或者python等編程開發
2精通各種配置或者工具的運用
其中,1對環境的要求相對小些,2的話其實考驗的是你之前摸過什麼交換器,伺服器,儲存等等。你的做過的資料庫規模最大是多少,一台伺服器最大做到過多少並發等等等等。
當然很多人以為自己是12兼顧,實際上大多數是2隻要有心,什麼時候都不晚。期待你成為高手。
事在人為,路在腳下。不要把自己當成30歲,就當20歲好了,就讓小孩指揮著幹活好了。記住,你不會永遠這樣的。
走彎路的人多的是,又沒到蓋棺定論的時候。向上面那個小哥學習,多看書多實踐,總是有希望的。希望能堅持下來。