當(dāng)在某些事情上我們有很深的體會時,就很有必要寫一篇心得感悟,,通過寫心得感悟,,可以幫助我們總結(jié)積累經(jīng)驗。優(yōu)質(zhì)的心得感悟該怎么樣去寫呢,?下面小編給大家?guī)黻P(guān)于學(xué)習(xí)心得感悟范文,,希望會對大家的工作與學(xué)習(xí)有所幫助。
it工作感悟 it工作體會篇一
廢話不多說,,對于入門書籍,,我推薦兩本:《鳥哥的linu_私房菜》和《linu_就該這么學(xué)》。
《鳥哥的linu_私房菜》可以說是影響了一大批人,,同樣,,我的入門書籍也是這本。對于計算機(jī)基礎(chǔ)知識比較薄弱的人,,可以看下這本書的一開始的章節(jié),,會令你對計算機(jī)有個初步的了解,不過這也使得它非常的厚重,。如果你沒有大把的空閑時間和雷打不通的定力,,還是不要看了。
《linu_就該這么學(xué)》是我最近發(fā)現(xiàn)的一本書,,用的系統(tǒng)是最新的rhel7,,可以說是與時俱進(jìn)。通讀了整本書,,我將它定義成是linu_快速入門類書籍,,相信也是很多運維人員需要的書籍,。每個章節(jié)都非常的精悍,知識點也都非常到位,,網(wǎng)站上也能下載到書籍里用到的軟件,。如果你像我一樣希望快速入門linu_,了解linu_運維具體是做些什么的話,,可以看下這本書,。
當(dāng)然,如果現(xiàn)在的我能穿越回過去,,我會建議過去的我先看《linu_就該這么學(xué)》快速入門,,然后再看其他的linu_技術(shù)書去細(xì)究每個知識點背后的邏輯。
對于初學(xué)者來說,,學(xué)習(xí)過程中碰不到問題是不可能的,,那么遇到障礙我們該怎么克服?
1)百度、谷歌搜索
通常你的問題并不只有你一個人碰到,,問問度娘,,問問谷歌,能搜出幾百條答案來,。
2)提問平臺
搜不到想要的答案怎么辦?那就去專有提問平臺提問,。百度知道,知乎,,或是linu_論壇等地方都是你的選擇,。但是!!請你懂得提問的藝術(shù),提問平臺沒有非常多的互動,,如果你想要得到一個滿意的回復(fù),,至少讓回答的人對你的測試環(huán)境有個初步了解,如說明用的是什么系統(tǒng),,多少版本等等,。
3)加入微信群或qq群提問
關(guān)于linu_方面有很多社交群,qq上搜個linu_就有很多,,而且相比起提問平臺而言有了更多的互動,。當(dāng)然,最好是選擇你看的書籍的社交群,。例如,,你學(xué)kvm那就加入kvm作者的群,如果你再學(xué)docker那就加入docker大牛的群,,鳥哥的我倒不清楚有沒有群,,不過《linu_就該這么學(xué)》這本書倒是有不少書友群,氣氛也非常不錯,加入這樣的群的好處在于:在這個群里都是看過這本書籍,,對書中的實驗進(jìn)行實操練習(xí)過的人,,當(dāng)你提問時,也許有人做實驗時也碰到過同樣的問題,,大家更能理解你碰到的問題是什么,。
堅持這個詞說難不難,說簡單卻也不簡單,,linu_的學(xué)習(xí)曲線圖是非常陡峭的,,入門會相當(dāng)相當(dāng)相當(dāng)之困難,但是一但入門,,難度曲線便直線下降,,趨于平坦。如果你只是想簡單了解下火熱的linu_是個什么東西,,那百度一下皆可知了;如果你是想好好深入了解linu_,那么請不要好高騖遠(yuǎn),,一步一個腳印,,踏踏實實的學(xué)習(xí)。假如你像我一樣是個容易半途而廢的人,,找點壓力吧!會讓你不得不去繼續(xù)前行!
it工作感悟 it工作體會篇二
工作是一件可以學(xué)到很多鍛煉很多的事,, 雖然充滿焦慮和等待但也充滿著刺激興奮和足夠的滿足感。
從melb回來以后,,大概是二月初左右,, 我開始正式尋找一份能帶來穩(wěn)定收入的全職工作。 我沒有pr,,成績普通,,只有大概半年在一家華人公司做網(wǎng)站的開發(fā)經(jīng)驗, 但我從來都沒有覺得會找不到工作,,因為我堅信在這個行業(yè),, 技能和學(xué)習(xí)能力思考能力是大于其他一切的。it這個行業(yè),, 方向太多,, 所以我的想法是, 在開始找以前,, 應(yīng)該先把自己的方向和未來的職業(yè)選擇好,, 不要顧及面, 而應(yīng)該專心于點和深度(這和做某件事倒是有異曲同工之妙),。就是因為行業(yè)方向多,, 專精和學(xué)習(xí)能力才是雇傭者真正考量一個junior雇員的事。
方向和具體職位定下來以后,,就開始具體圍繞這個職位的普通要求來修訂簡歷,。簡歷不應(yīng)過長,,一頁即可。 能夠不需要的內(nèi)容,,比如愛好興趣人格之類的,,都不要往上面放。從技能開始是比較好的方式,,學(xué)歷倒是一筆帶過即可,,因為只有很大的公司比如銀行或者四大才會以分?jǐn)?shù)來做第一輪篩選的標(biāo)準(zhǔn),而我一方面是分?jǐn)?shù)不行,,另一方面對大公司向來有生理上的厭惡感,,所以根本就不會考慮這個問題。
接下來就應(yīng)該羅列做過的事,,如果有portfolio就放鏈接和簡單的描述,,有工作經(jīng)驗就放工作經(jīng)驗,都沒有就放學(xué)校的項目經(jīng)驗,,如果都沒有,,就先去找了做了再回來這一步吧(需要注意的是,只放和所求職位相關(guān)的經(jīng)驗,,比如是php的職位關(guān)于java的我就基本都不列),。羅列經(jīng)驗時,盡量不要有段落篇幅,,而以短語bulletin為主,。看簡歷的人是沒時間來讀小說的,,所以在最短的時間內(nèi)能提供給閱簡歷者最大的信息量是最值得考量的東西(這個倒是和seo有點像),。另外,誠實真實是我自己的堅持,,只寫真正做過的事,,只寫真正懂并有經(jīng)驗的技能,任何不懂的都不要往上寫,,要確定你所寫的技能,,都是你能動手去做實際做過的。技能的羅列也要由最強(qiáng)到最弱的順序來排,,項目經(jīng)驗也是如此,,就和客戶用google搜東西不會看兩頁以后的網(wǎng)站是一個道理。
另外,,強(qiáng)調(diào)自己的什么人格優(yōu)勢,,團(tuán)隊性格之類的,我完全沒有放進(jìn)簡歷,因為這些可以通過cover letter來描述,, 沒有必要再這里占用寶貴的簡歷空間,。而且這之類的事也不是你自己寫了人家就信的,真正有面試時人家自然會來體會,。簡歷的事,, 大抵就是如此。
接下來我開始操作的是cover letter,。為不同的職位公司來多次修改cover letter是我前一年找工作時經(jīng)歷的最痛苦的事之一,。 所以這次,在確定了只投相同或相似的職位以后,,cover letter變得輕松了許多,。寫好一個萬用的cover letter是很辛苦但是益處無窮的事,屬于典型的一次投入多次回報,。cover letter大抵是四五段左右,,用詞用句都可以自己去搜一下,最好避免自己寫太多的句子,,畢竟大部分像咱們這樣的,,寫作都不咋的。
因為屬于比較正式的信件,,還是多用點穩(wěn)妥的書面表達(dá)比較好。第一段大概就是講自己在哪里看到職位然后自己是什么樣的一個情況于是有意愿來求職,。第二段就開始要針對職業(yè)描述上的每一條來列舉自己能夠符合靠上去的技能,,自信點大膽點就好。
第三段就可以談?wù)勛约盒愿裆系膬?yōu)勢,,人格上的魅力,,多么多么的團(tuán)隊之類的屁話,這是必須的,。最后就總結(jié)下,,自己覺得自己能夠勝任這個職位,能給公司或者團(tuán)隊帶來如何的益處,,希望能有面試的機(jī)會,,并附上自己的聯(lián)系方式電話郵件等等。在我投過的所有機(jī)會里,,九成九的我只修改了日期和職位名稱,,當(dāng)然這和我所投的web developer這個名稱比較寬泛有關(guān)。cover letter的重要性,,我覺得還是必須重視的,,畢竟大部分人都是先看郵件正文里的cover letter, 再點開附件看簡歷, 和簡歷的重要性相比可以說有過之而無不及,,可以說是敲門磚的敲門磚,, 如果這塊就掉了, 就連砸一塊金磚過去敲門的機(jī)會都沒有了,。
搞定上面兩件利器以后,,有些細(xì)節(jié)要注意一下。不要用自己平時的聯(lián)系郵箱,,而應(yīng)單獨注冊一個求職專用,,能直接從郵件地址上看出人名的郵箱(這點由江江同學(xué)貢獻(xiàn))。我個人的建議當(dāng)然是gmail,,速度快容量大無廣告,,功能多和google產(chǎn)品結(jié)合較好,imap的訪問方式在iphone上堪稱完美,。在注冊這個求職專用郵箱以后,,直接在設(shè)置里全部轉(zhuǎn)發(fā)到自己的常用郵箱(是gmail當(dāng)然最好),這樣就避免了每天需要查幾個郵箱的麻煩,。在自己的常用郵箱里,,建立關(guān)鍵字過濾器。有工作相關(guān)的關(guān)鍵字時,,全部打上專門的工作標(biāo)簽來分文件夾,。全部用gmail的好處還在于,在自己的常用郵箱里回復(fù)郵件時,,可以直接選擇自己的發(fā)件地址為求職專用郵箱而不是自己的常用郵箱,,方便且專業(yè)。說到這里,,有件小事讓我對gmail的喜愛又上一個臺階,。在我們的cover letter里, 通常會有i have attached my resume below之類的文字,,有那么一次,,我在貼完cover letter至郵件正文后,忘記了上傳附件而直接點了發(fā)送,。此時令人驚訝的事發(fā)生了,,一個popup對話框顯示,“您的正文中有attach字樣而附件為空,, 您確定要發(fā)送郵件而不附上任何附件么?”,,我當(dāng)時就震驚感動佩服的五體投地。如此細(xì)小的地方都做了用戶體驗方面的設(shè)計,, 讓人如何不愛google,。
其實我覺得,,在做好了以上的事以后,找工作接下來就是一個機(jī)械重復(fù)的體力活,,如何把規(guī)律的體力活做好,, 其實也是有一定的技術(shù)含量的。澳洲最大的找工作網(wǎng)站是seek,,其他還有mycareer,,不過我只專注在seek上,因為seek大概占了全澳百分之八十的招聘信息,,已經(jīng)足夠任何人去投了,。
注冊seek以后,先根據(jù)自己的情況來完善profile,。接下來,,最重要的事就是,郵件訂閱,。seek提供了根據(jù)關(guān)鍵字和其他特別字段要求來發(fā)送每天更新的新招聘信息至用戶的郵箱,。根據(jù)每個自己想要的職位,來設(shè)定特別的關(guān)鍵字,,級別和薪資要求以后,,對應(yīng)的每天新增的信息就會以列表的形式在夜里三點左右發(fā)至你的郵箱。于是以后的事,,就是每天查查郵件,,然后選擇自己覺得合適的去投。一個重要的事是,, 有很多招聘信息是獵頭中介發(fā)的 類似這種我是一概不投的,,因為大都石沉大海,而且不直接與公司的人接觸面試什么的 也對公司無法了解,,這種浪費時間還不討好的事不如不做,。
另外一件值得做的事是,,記錄下你投過的公司和職位,。因為一般的流程是,對方會先short-list一部分,,然后電話,, 覺得合適,才會發(fā)郵件和你約接下來的面試或者測試,。往往這時候,,當(dāng)你投過幾十份上百份以后,任何人打電話過來告訴你公司名,,你是不可能回想起來的,,因為保存一份doc包含公司職位,,地點,公司信息,,seek上對應(yīng)的職位描述頁面,,公司的頁面等等信息,是很有必要的,。
一方面你能掌握投過哪些,,可以避免重復(fù)投遞失敗的職位,另一方面能夠?qū)ψ约和哆^的數(shù)量有個統(tǒng)計,,如果長久沒有回信和回音,,就應(yīng)該及時對簡歷和cover letter做出調(diào)整。對此我是使用google docs,,方便在于云在任何地方都能訪問,, 這和郵箱是一樣的道理。另外我對不同的地區(qū)也分了文檔,,分別是sydney,, melb和其他。根據(jù)我的統(tǒng)計,, ydney的機(jī)會是最多的,,大概占了全澳的三分之二,當(dāng)然人口和競爭也是最多的,。melb的話,,大概數(shù)目是sydney的三分之一至一半,而其他地區(qū)加起來,,也就和melb的機(jī)會一樣多,。
我的情況是,sydney的回音是最多的,,其次則是昆州等地區(qū),,melb則一個正面回復(fù)都沒有,唯一一個email聯(lián)系過一次的,,也在二十天后拒了我,。大概是因為我人在sydney,而昆州缺人缺的太厲害的原因吧,。在技術(shù)分布方面,, 網(wǎng)站或者web application方面開發(fā)是最多的,不論前段還是后端,。然后后端技術(shù)php最多,,net和j2ee差不多, python, ror甚至perl也曾見過,不過非常稀少,。除了做web,,數(shù)據(jù)庫是相對來說多點的,,不論是做分析開發(fā)挖掘還是管理,都不少,,是個可選的方向(雖然個人感覺枯燥),。再就是ios等移動開發(fā)看得出來有越來越火的趨勢,值得一追,。底層系統(tǒng)開發(fā)或者網(wǎng)絡(luò)之類的,,大概是最少(但貌似錢是最多的,因為稀少),。薪資方面,,悉尼算是全澳消費數(shù)一數(shù)二,薪資方面確實是如此,,45k+super是行業(yè)基準(zhǔn)線(當(dāng)然是對junior/entry而言),。其他地方也能拿到40k左右的, 但和房價一比,, 這40k就比悉尼的值錢太多了,。
其實對我來說,如果拿到了面試機(jī)會,,能拿到offer的機(jī)會大概就是一半以上,。最焦躁的,其實正是等待回音這個階段,。在我正式開始投簡歷的兩個禮拜以內(nèi),,只有少數(shù)的email和電話,一個正經(jīng)的面試機(jī)會也沒有,,不過在接下來的兩個禮拜里,,面試開始爆發(fā)了(上周三個,這周四個,,下周四個),。
我想這是和澳洲人生活工作都比較慵懶有很大的關(guān)系, 所以各位完全不用擔(dān)心和過于焦躁(我今天還接到20天前投的一個職位的電話約定面試)只要有電話和email回信,, 就說明你的cover letter和簡歷是有用的能入眼的,,但如果電話和email回信在兩三個禮拜里基本沒有,就應(yīng)該及時的做出調(diào)整了,。至于面試方面,, 我實在無法給出什么實際有用的意見,。大概的把常見面試問題看看心里有個譜不要到時候突然發(fā)慌,,技術(shù)問題自己慢慢準(zhǔn)備積累, 穿著方面自己覺得看的過去(像我這種從來不喜穿正裝的人還是去買了件半正式半休閑的襯衣來做面試圣衣),,面試前不要太飽和太餓否則都會影響大腦運作,,開始前喝點咖啡能量飲料都是可以的(不過要注意這兩個都是利尿的,,對于長時間的面試就不要喝太多水之前),面試中應(yīng)該不卑不亢,, 該笑的時候笑不該笑的時候不笑,,能夠自己來控制面試過程中的氣氛走向是最好的,切忌過于緊張或過于興奮,,另外最重要的一點是誠實,,因為假話自己是沒有記憶的,反復(fù)問的話會出問題,,不如不說,。
關(guān)于英語,語速不要過快,, 平時自己怎么說話就怎么說,,也不用特意去準(zhǔn)備什么商務(wù)英語。臟話的話,,能避則避,,不過興奮的瞬間脫口而出也倒不是什么大不了的事,畢竟澳洲人這方面都非常的不古板和不保守,,所以不用特別在意,。我面試的感覺是, 其實我們這個行業(yè),, 技能方面都差的不多,,畢竟學(xué)習(xí)能力才是更重要的,所以個人人格魅力起的作用比想象的要大很多,, 鬼佬大都喜歡開放有趣有自己生活的人,,有話談得來, 公司團(tuán)隊氣氛融洽才是他們看重的,, 當(dāng)然這些都是建立在技能能達(dá)到最低基本要求的基礎(chǔ)上,。在國外工作的好處就在這里能得到體現(xiàn), 畢竟任何價值都是人創(chuàng)造的,, 人才是工作里的一切,, 把人當(dāng)人才會有更好的效率和效果。
如果面試順利,, 接下來的就是接受offer與否了,。當(dāng)你的面試太多,可以選擇的公司太多的時候,,受offer與否就是個糾結(jié)的命題,。是選你愛的, 還是選愛你的,, 是個從未消停的問題(在各個領(lǐng)域),。而由于我從來都是只在乎自己愛的,, 所以拒掉一兩個offer去等待自己愛的公司在我看來是天經(jīng)地義。但這并不適用于所有人,,畢竟個體追求不同,, 另外如果機(jī)會和offer對你來說非常稀少和難得, 抓住轉(zhuǎn)瞬即逝的機(jī)會也并不是不可取的,, 畢竟有了溫飽才會有更多的精力去追求自己愛的人和事,。
關(guān)于求職,在我們這個地方和這個行業(yè),, 我的經(jīng)驗不多,,大抵就是以上這些,希望能對正在袋鼠國掙扎的朋友有些許的幫助,。有任何疑問可以盡管放馬過來,,我會盡我所能的回答并補充到下面,謝謝,。
it工作感悟 it工作體會篇三
看到了很多同學(xué)問到各銀行的待遇以及it部門的發(fā)展之類的話題,,想到了自己銀行的情況。
1,、加班非常多,。機(jī)房是24小時開放的,每天都有人值夜班,。我所在的地區(qū)我們分行只有800人不到,,it部門就只有6、7個人,。他們每天除了正常的工作之外還要應(yīng)對各種培訓(xùn),、學(xué)習(xí)。銀行因為白天要對外營業(yè),,所以每次培訓(xùn)之類都是在晚上和周末,,而且不是800人一起培訓(xùn),而是今天這個培訓(xùn),,明天那個培訓(xùn),。這個工作量是非常大的。而且銀行加班基本是沒有加班工資的,。因為國家不允許這種量的加班,。
2、薪水問題,。大家都說銀行薪水好,。那是因為大家看到的只是薪水好的部門。我現(xiàn)在在銀行做貸款,屬于一線營銷崗位,,薪水自然還不錯。但如果你不是做營銷而是后臺部門比如it,,那你只能拿到基本工資和平均獎金,,這個數(shù)字看起來就沒那么有吸引力了。除非你能當(dāng)老總,??蛇@個部門不像營業(yè)網(wǎng)點,一個地區(qū)可以幾十個網(wǎng)點,,這個it部門基本上一個地區(qū)就一個,,也就是說一個地區(qū)就一個老總,這個老總又不像別的崗位可以橫向調(diào)動,,在銀行里做it你就只能做it,,不可能調(diào)你去做什么公司業(yè)務(wù),所以我個人認(rèn)為升遷的機(jī)會也比較小,。但如果你是去總行的信息技術(shù)部搞些個產(chǎn)品研發(fā)之類也就不說了,,那肯定是非常好的,但這樣的部門基本也不可能要一個剛畢業(yè)的學(xué)生,。
3,、銀行的各項任務(wù)是很重的,而且可能看起來都非常不人性,。不要以為你在it部門就不可能有任務(wù),。我們講究的是全民皆兵。
以上只是我個人的一些看法,,給一些純粹是為了拿高薪找安逸的同學(xué)一個提醒,。
當(dāng)然銀行也有銀行的好。比如:
1,、如果你做的很好,,這里指的是營銷,比如你能帶來大量存款,,你有很廣的客戶資源,,那你的薪水會非常高而且不受職務(wù)限制。
2,、福利待遇非常好,。我們銀行給我們解決了所有的后顧之憂,你只要好好工作,,其他什么都不用你操心,,我們有非常低的行員貸款利率,你買房子就不需要擔(dān)心。我們是按照最高比例來購買各種保險,、公積金之類,。即使你生病了,你住院了,,不但醫(yī)藥費都能報銷,,算下來你每天還能賺幾百塊錢,可能比上班都高,。
總之吧,,銀行就是個數(shù)字說話的地方。想在這做it可能你永遠(yuǎn)都做不到最頂端,。但也有他的好,。大家各自考慮吧,只是就個人的感受給大家的建議,。相比較之下我認(rèn)為我所在的招商銀行是最有潛力的銀行,,發(fā)展非常快,,企業(yè)文化非常好,。工、農(nóng),、中,、建四大行規(guī)模非常大,但因為是老行也有很多弊端,,國企思想比較嚴(yán)重,,論資排輩。交行的特色在于他是股份制銀行中最大的,,個人理財比較突出,。民生是最變態(tài)的,只要你有業(yè)績,,第二天就是行長,,只要你沒有業(yè)績,馬上從行長變成行員,。中信是業(yè)內(nèi)口杯最差的,,到處亂市場,很受同業(yè)鄙視,。華夏的最大特點在于他的公司業(yè)務(wù),。一般越小的行可能待遇越好,機(jī)會也越多,,因為他在發(fā)展,。
其實就個人而言,我覺得銀行里做it就像是當(dāng)年我們來北郵,大家都知道北郵非常好it業(yè)的最高學(xué)府,??晌覀儺?dāng)時因為種種原因到了北郵的語言學(xué)院學(xué)外語。并不是說語言學(xué)院不好,,我們在這里也學(xué)到了很多東西,。但這里的主流是it,語言院再發(fā)展可能也比不了北京外國語,。就是說你是到一個非常好的學(xué)校一個非主流的專業(yè),,還是到一個一般學(xué)校的主流專業(yè),,你可以自己考慮,。
it工作感悟 it工作體會篇四
我在一家叫做 coverity 的公司工作,我住在三藩市(san francisco),。coverity 是一個奇怪的公司,,三藩市是一個奇怪的城市。
coverity 制造一種叫做“靜態(tài)分析”(static analysis)的軟件,。這種軟件可以在不運行程序的情況下,,經(jīng)過對代碼的分析,自動的找到程序里面可能出現(xiàn)的問題,。這有點像我之前給 google 做的那個 python 分析器,,只不過針對另外的語言(c,c++ 和 java 等),,分析的側(cè)重點不同,,能處理代碼的規(guī)模也貌似大一些。還有就是這么多年了,,久經(jīng)沙場考驗了,。
coverity 具有世界上最先進(jìn)的一些技術(shù),所以麻雀雖小,,卻讓很多人離不開它,。恐怕很少有人知道,,這小小的公司的忠實客戶,,包括了一系列的大拿:美國宇航局, 波音,, 洛克希德馬丁,,雷神(raytheon),bae systems,,豐田,,歐洲原子能中心(cern)…… 貌似幾乎所有對代碼質(zhì)量不敢有絲毫差錯,又不得不用像 c++ 這樣毛病眾多的語言的公司,都購買了 coverity 的產(chǎn)品,。比如最近的火星好奇者號上的所有 200 多萬行代碼,,都經(jīng)過了 coverity 的靜態(tài)分析。當(dāng)然,,如此精密的設(shè)備不可能光靠 coverity 查一下錯就能確保萬無一失,,它必須依靠很多其它的技術(shù),但 coverity 確實是這些東西的開發(fā)過程里面比較重要的部分,。
我必須承認(rèn),,coverity 給了我足夠的啟發(fā),甚至間接的讓我發(fā)現(xiàn)了自己之前做的 python 靜態(tài)分析里面存在的一些問題,。coverity 的產(chǎn)品在大規(guī)模的代碼上面的成功,,也讓我意識到了自己在 python 分析器里的一些突發(fā)奇想的設(shè)計的正確性和價值。如果我現(xiàn)在做一個新的 python 分析器,,它將比原來的精確和高效(也可以推廣到其它語言比如 javascript),。我也清楚的看到,coverity 自發(fā)研制的一些“不大嚴(yán)謹(jǐn)”的做法,,其實比程序語言領(lǐng)域里面一些看似高深的“邏輯”還要“正確”,。這些微妙的“提示信息”,讓我把多個領(lǐng)域的知識串通了起來,。所以我覺得跟這公司還有點臭味相投,,加入 coverity 也是不枉此行的。
然而我也發(fā)現(xiàn),,coverity 缺少我擁有的程序語言理論知識,。絕大部分的 coverity 工程師沒有系統(tǒng)的學(xué)習(xí)過 lambda calculus 和函數(shù)式編程。在我的 python 分析器中,,其實包含了 coverity 還沒有的技術(shù),。python 的靜態(tài)分析本來就比 c++ 和 java 之類的難,然而我的實現(xiàn)卻異常的簡單,。這些微妙的技術(shù),,貌似很多人都可以說他“會做”,但是他們卻很難把它做對,。這就像“cps 轉(zhuǎn)換”一樣,,很多人都說他會做,可是真正做對的只有極少數(shù)人(我是其中之一),。這些技術(shù)源自于我對程序語言本質(zhì)的理解,,源自于 dan friedman, kent dybvig 和 amr sabry 等老師的教誨,也源自于我自己辛勤的實驗,,實驗,,再實驗…… 在我簡短而優(yōu)雅的代碼中,,包含了許多人需要花費好幾倍的代碼長度才能達(dá)到的目標(biāo)。所以雖然 coverity 的工程師們技術(shù)實力很強(qiáng),,但在代碼的簡單程度和對程序語言語義的理解上,,真的很難達(dá)到我的程度。
這就是為什么我經(jīng)常能夠一眼就看出 coverity 產(chǎn)品里存在的問題,,并且很快的修正錯誤,。舉一個簡單的例子,有一天我修改了一行代碼,,使得產(chǎn)品在某些 benchmark 上的內(nèi)存使用量減少了一半,。我為什么可以做到這一點呢?因為在我的 python 分析器里,這個問題是從一開頭就不存在的,。它源自于一種幼稚的解釋器寫法,,有點像 gof 的《design patterns》里的那種。coverity 的代碼里面有好些類似的問題,,都是我自己根本不可能犯的錯誤,,我都沒有機(jī)會給他們改進(jìn),。我不是想貶低同事們的水平,,他們都是 stanford, berkeley 等學(xué)校畢業(yè)的高手,可是我也很清楚自己的技術(shù)地位,。
所以我就經(jīng)常發(fā)現(xiàn)這樣的麻煩事:我順手改掉了一個自認(rèn)為很顯然的問題,,或者一個我根本不會犯的錯誤,然后就發(fā)現(xiàn)有大批的測試需要被修改,,我也會被要求寫出“regression test”,,用以防止同樣的錯誤再次發(fā)生。某些同事對于測試的戰(zhàn)戰(zhàn)兢兢的態(tài)度,,其實跟我當(dāng)年在 google 實習(xí)的時候沒有什么兩樣,。看到這里的問題了嗎?這些我“根本”不會犯的錯誤,,幾分鐘時間順手就改掉了,,但是我卻要花成天的工夫去修改和創(chuàng)建測試,防止它“再次”發(fā)生,。我不得不說,,在這些測試上所花費的工夫,占用了比我修改代碼多好幾倍,,甚至幾十倍的工夫!
想想這六個月以來我干了些什么,,再比較一下在 google 實習(xí)的那六個月獨自從頭做出來的東西,我發(fā)現(xiàn)自己簡直什么也沒有干,。這就是我不喜歡“測試驅(qū)動開發(fā)”(tdd)的原因,。在 google 的六個月里,,我無視同事對于測試的要求,從無到有的做出了如此精密的系統(tǒng),,一個測試都沒有寫照樣做得好,,為什么呢?因為我的代碼非常的簡單清晰,我隨時都可以把它們完整的呈現(xiàn)在頭腦里面,,從而讓“心靈之眼”可以看到可能出現(xiàn)的錯誤,。也許這就是所謂的“邏輯思維”。
對測試過分依賴的人,,往往不具有這樣的思維能力,。他們不能夠看到代碼最簡單的本質(zhì),所以需要做很多試探,,以求達(dá)到“近似解”,。為了不至于偏差很多,就寫很多測試,,用以捕捉和防止每一次的錯誤,。這就像一個初學(xué)畫畫的人,一點一點的描,,用橡皮反復(fù)的擦,,可總也抓不住事物的精髓。這些人對“錯誤”的記憶能力特別強(qiáng),,往往深入的追究一塊代碼是“如何”錯的,,“為什么”是錯的,下次如何才能不犯同樣的錯誤,。
然而我卻沒法記住之前的代碼是如何錯的,,我也不想知道為什么它是錯的,我只記得“正確”的代碼是什么樣子,。錯誤的方式有千萬種,,可是正確的卻往往只有一個。把腦力浪費在記憶錯誤的東西,,這就是為什么很多人不能寫出真正優(yōu)美而正確的代碼,。我受到的訓(xùn)練讓我可以直接得到正確的結(jié)果,所以測試對于我來說分量沒有那么重,。當(dāng)我的代碼需要大量的測試才能確保正確的時候,,那就是它該被推翻重寫的時候。所以我的代碼往往沒有任何補丁和變通,,可以說是無懈可擊,。這就像是一個真正會畫畫的人,他閉目沉思,,然后一氣呵成,。當(dāng)然,,優(yōu)美的代碼并不是一蹴而就的,有的代碼被我推翻重來幾十次才最后成功,,但我最后的代碼不留下絲毫錯誤的痕跡,。所以我覺得,看一個程序員的水平,,不要看他留下來多少行代碼,,而要看他刪掉了多少行。
我覺得做 coverity 的工程師真累,。這種累不止在于以上的技術(shù)層面的繁瑣,,而且在于管理層對工程師的缺乏尊重以及不必要的壓力。這讓我在受到了足夠的“啟發(fā)”之后,,開始懷疑是否還有繼續(xù)為它工作的價值,。對于公司管理,以及對于 it 行業(yè)總體的看法,,我還是以后再講吧,。