10/26 蘇州,太湖風景區
上個月,和幾個老友坐在一起閒聊,因為他們從事的工作都和技術無關,所以在很多話題上,我的許多話術就顯得尤為特別。談來談去,就有人聊到技術和銷售領域的一些區別,他們問我:“為什麼搞技術的很少有暴發戶?”我冷笑了下,隨手說:“你以為做技術那麼好爆發嗎?就拿程式設計來說,是一件難度非常高的事情。做技術,尤其是基礎的技術,需要日積月累,而且需要場景滋養。不止IT技術,世界上任何一家技術根基雄厚的公司,哪個不是有近百年的歷史?技術的根基就是實驗,研發,要耗費大量的人力,物力,幾乎是百年磨一劍。不是像某些剛成立十多二十年的公司,一口就想吃成胖子,一步就想登天。”我強調,搞技術沒有捷徑,不僅要有高智商,而且要時刻保持謙遜,還要不斷的努力,犯錯,在錯誤中成長,深刻理解你所學習的材料,但是有些人就是一定要尋找捷徑,甚至使用欺詐的手段,最終自食惡果。他們聽了後,先是互相看了看,然後笑了,說:“別把你的吃飯家伙說的那麼神秘,任何事情都有投機取巧的方法,而且都有捷徑,只是你沒掌握罷了。”我聽了有點生氣,拍了拍腦袋,給他們講了一個曾經聽過的故事。我天生性格詼諧,做不到內斂、沉穩,在很長一個時間段裡,這種性格對我的職業發展造成了很多阻力。但任何事情都有兩面性,性格亦是如此。這種性格擅長社交,容易結交朋友,如果再細心一些,能給我的工作、寫作帶來不少的幫助。以下的內容,就是幾年前,我在某技術大會上新結交的朋友告訴我的。
所以,在文章中的 “我”,也不是我本人,而是我這位朋友。2006年,我認識了一個三十出頭的人,他沒有任何技術經驗,從畢業到現在那幾年裡都在從事與銷售有關的工作。為了稱呼他方便,姑且叫他 “小李” 吧。
某年某天,小李也不知道受到了誰的鼓舞,覺得銷售業績不好搞,所以打算投身於程式設計師領域。一個門外漢,想入行,咋辦呢?簡單,花錢讀個Java開發培訓班吧。當時,我正好是他的老師,他也比較會來事,就這樣交上了朋友。在我認識他之後的這一年時間裡,除了在培訓班裡,他一直都在有一搭無一搭的學習 Java,作為他的程式設計導師,每週和他都會有許多次的交流。最開始,我會幫助他完成一些Web專案,基本都是聊天室或BBS之類的,目的也是為了幫助他學習程式設計的基礎知識。雖然他參加的那個Java培訓班費用高的驚人,但是他對程式設計知識的瞭解還是少的可憐,這讓我有一些驚訝。我經常提醒他 “不要痴迷於課堂,畢竟這種培訓機構交給你的東西都是表皮”,你想要吃這碗飯,基礎非常重要,因此我鼓勵他系統的去看一些原理資料和書,他也承諾會按我說的去做,我還送了他兩本書,一本是 《Java核心技術》,另一本是《Java程式設計思想》。我原本以為自己是個好導師,而且還遇到了一個勤奮好學的知音,但是結果卻讓我大跌眼鏡。
有一次,他問我:“出去面試,如果面試官問他之前做過什麼,我該怎麼向他展現?”
我說:“基礎知識用嘴說,用紙畫就行了,你的一些案例和專案可以申請個FTP賬號,如果他要看,就給他看,很方便。而且,也便於我們之間的一些交流。”他很高興,第二天就交了錢,申請了賬號。他要求我每週定期檢視他的一些程式碼,給他提點意見。有一天,我在檢視他的FTP目錄的時候,突然發現了5個新的專案,內容覆蓋BBS、電商書店及聊天室,而且程式碼和架構基本都很完整。每個專案都有5次以上的提交,而且每個體積都在10MB以上。我的第一反應,就是他複製了別人的應用程式碼,要不然憑他的個人能力,絕對無法做到這樣。為了得到證實,我給他打了電話,再三詢問下,他的回答是:“這是我在學習的五個新專案。”我又問他:“這些程式碼是你複製別人的,還是為了更好的理解,而在學習之後自己手打上去的?”他停頓了一會,說:“是我複製的……我覺得,只要我能說的出一個所以然,讓面試官相信,他們自然就會覺得是我自己做的。”其實,新手也好,老手也罷,我們從事軟體開發的多多少少都會複製別人的程式碼,但是在複製程式碼之後,我們必須要仔細閱讀,真正理解這些程式碼的意思和用法。雖然我個人並不鼓勵複製別人的程式碼,但是這並不算什麼太大的錯誤,只要你明確說明程式碼的來源就好。聽完後,我對他說,之後我會對他進行測試,看看他是否真的理解了這些程式碼。說真的,當時我對他的這些舉動很失望。在我的認知裡,如果你想要找到一份開發者的工作,就不應該逃避學習。企業想要看到的是,是你自己寫的程式碼,而不是從別處抄來的程式碼。至少,你應該學會接納真實的自我。
一個星期後的某天,小李聯絡上我,問我是否能幫他完成一個Java的程式,因為裡面涉及到一些架構設計的東西,他不太理解。
我沒多想,順口說:“我手上正好有一個,我把銘感資訊去掉之後就發給你。”他聽完很高興,再三感謝,我借勢補了一句:“我沒有寫註釋,你自己補上,正好有助於你加深理解。”而他的回應是:“太好了,我今晚就把這個提交上去。”接下來的幾天他都沒有聯絡我。幾天之後,他在MSN上告訴我,他將要去參加一個初創企業的最終面試,職位是Java開發工程師。我的直覺告訴我,他肯定造假了簡歷,並把我給他的專案吹成了自己的。我頓時感覺愧疚,但我還是在MSN上向他表示了祝賀,並且祝他一切好運。幾天後,我偶爾開啟了他的FTP賬戶,發現他又多了一個專案,名為 “workjob_test”。於是我開啟簡略的看了一下,是一個非常完善的CMS應用,而且建立時間只用了 18 個小時。以我對他的瞭解,如果在沒有他人幫助的情況下,他絕對不可能在幾天時間裡就完成這樣的應用。
雖然滿腦猜疑,但作為他的朋友和曾經的導師,我還想給他提一些意見。第二天,我在MSN上遇到他,我問他是怎樣在幾天時間裡完成這個專案的,他回答說自己花了點錢,請別人幫他做的。那一剎那,我對他產生了極度的憤怒,回想下,他先是讓我幫他完成了人生第一個程式設計專案,然後又花錢請人幫他做了一個專案,目的呢?無非是為了欺騙自己,欺騙面試官,欺騙用人企業,最終苟延殘喘的獲得一份工作。也許有人覺得我有些小題大做,而且現在的程式碼你Copy我,我Copy你,都很正常,就算是放到Github上的開源專案,不走正常Fork途徑,Copy下來,偽裝成自己的成果,這種現象數不勝數,有啥好大驚小怪的。好吧,不在這個層面糾纏,但是我覺得,任何一位程式碼提供者都希望自己的程式碼被正當的使用,而不是成為欺詐的工具。
一個月後,我發現小李的MSN簽名改了,改成 “某某公司的JAVA工程師”。
但從入職之後,他就不斷的向我請教各種問題。我給他傳送了一些資料,並且問他現在正在做什麼專案。他告訴我他在做一個IM系統,我問他感覺如何?他說,做的內容和之前學習的時候完全不是一回事,感覺自己對工作完全一竅不通。我對著電腦螢幕,看著他在MSN上發來的這些語句,內心一陣淒涼。想一想,透過欺詐得到了一份初級開發者的工作,為了什麼呢?另外,讓我覺得的更驚訝的是,這家用人公司居然SB到給他開出了1萬人月薪的報酬。現在想想,估計是他的嘴能說會道,忽悠能力絕佳,而這家創業公司的老闆又不懂技術導致的吧。於是,我不再為他提供幫助,也不再回復他的資訊,或者就用 “我正在開會”、“我不在上海” 等藉口搪塞他,我想要讓別人識破他的濫竽充數。就這樣,再接下去的兩個月裡,我們之間沒有任何交流,但我一直都在關注他的MSN簽名,發現他每週都根據心情改一次簽名。又過了幾個星期,有一天小李在MSN上問我,知不知道哪家公司在招JAVA開發。我問他:“你剛找到的那份工作怎麼了?”可能是因為好奇,也可能是幸災樂禍,我透過自己的人脈圈聯絡上了他所在公司的技術主管,詢問了他的一些情況。這位主管對我說,他們透過幾個月的觀察都覺得小李連一個初級開發者都算不上,他的各種解決辦法都來源於別人之手,就連程式碼也都是從別人那裡複製過來的,經過再三考量,公司打算解僱他。聽到這裡,我還補了一刀,告訴這位主管,我曾經是小李的培訓導師,他的很多程式碼都是從我這裡複製過去的,而且他還花錢請別人幫他寫專案。這位主管聽完瞪大了眼睛看著我,從牙縫裡擠出了一句話:“你這人太缺德了吧。”就在我和這位主管見面的第二天,小李被公司解僱。幾天後,他給我打了個電話,說自己又重回了從前的行業,做起了從前的工作。雖然這段故事的主體是我朋友提供的,但為了加深印象和感染力,我做了一些故事情節上的加工,希望大家不要見怪。好了,最後我來說下個人的一些看法。
第一,想要成為一名優秀的開發者,你不僅需要不斷努力,而且還要學習別人的方法,但絕不是偷竊別人的專案。
第二,在網際網路時代,考研技術從業者最重要的是學習能力和積極向上的心態,而不是那些已經過時的破經驗。
第三,要有開源精神,但決不能複製別人的程式碼,還臭不要臉的說 “這程式碼是老子寫的”。
第四,學會在錯誤和指責聲中成長,讓它們成為你成長過程中的催化劑。
第五,請重視自己的個人品牌或名聲,毀了自己在行業內的名聲,那什麼都完了。
什麼?你不想聽總結,只想知道小李最後的結局是什麼?不好意思,他沒和我說。
但我想,如果他對技術還感興趣,應該還是會找到一份新工作。只不過他的認知需要改變,如果這點不改,那早晚還是會出毛病。
畢竟,技術不像銷售,你說你買過原子彈?那行,是騾子是馬,拉出來溜溜。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901778/viewspace-2661850/,如需轉載,請註明出處,否則將追究法律責任。