在講述這個故事之前,我有一句話要說:編程是一件特別難的事情!
成為優秀的編程人員沒有捷徑,你要擁有高智商,要保持謙遜,還要不斷的努力,犯錯,在錯誤中成長,深刻理解你所學習的材料。
但是有些人就是一定要尋找捷徑,而其中之一,就是使用欺詐的手段。
這篇文章講述的就是我所遇到的一個冒牌程序員。
幾年前,我認識了一個 30 多歲的人,我們姑且給他起名叫 Bryan 吧。
Bryan 想要成為一名程序員,在我認識他之前的一年時間里,他一直都在有一搭無一搭的學習 Ruby,他還參加了一個為期 12 周的編程訓練營。此前他有著 12 年的工作經驗,但是他一直都在從事貿易和商業方面的工作。作為一個樂于助人的人,我成為了他的編程學習導師,每周和他見兩次面。
我幫助他完成他的 Web 應用,基本都是博客和 Todo 類應用,幫助他學習各種編程基本知識。雖然他參加過那個訓練營,但是他對編程知識的了解還是少的可憐,讓我有一些驚訝。我鼓勵他系統的去學習 Ruby,他也承諾會按我說的去做,我送了他幾本有關 Ruby 學習的書。我本來以為我是一個好的導師,但是結果卻讓我大跌眼鏡。
危險信號 #1
我在 GitHub 上關注了他,并且定期會查看他的 repo,給他提意見,有一天,我在查看他的 GitHub 賬戶的時候,突然發現了 5 個新的 repo,而且基本都已經完成了。每個 repo 都有 2-3 個commit,而且體積都非常大。我懷疑他復制了別人的應用代碼,在問過他之后,他的回答是:“我在學習 5 個新的輔導項目,而且希望在 24 小時內完成它們。”
我又問他:“這些代碼是你復制的,還是為了更好的理解而在學習之后自己手打上去的?”他的回答是:“這些代碼都太簡單了,所以我只是把它們復制到我的 repo 里,然后再進行 commit。這樣用人企業就會以為這些項目是我自己做的!”
其實很多開發者都會復制別人的代碼,尤其是新手。但是在復制代碼之后,我們必須要仔細閱讀,真正理解這些代碼的意思和用法。雖然我們不鼓勵復制別人的代碼,但是這并不算什么太大的錯誤,只要你明確說明代碼的來源就好。
于是我對他說,之后我會對他進行測試,看看他是否真的理解了這些代碼。但是不知道為了什么,他一直堅持說自己不需要學習這些代碼。他的舉動讓我感到很失望,如果他想要找到一份開發者的工作,就不應該逃避學習。企業想要看到的是,是你自己寫的代碼,而不是從別處抄來的代碼。
危險信號 #2
有一天 Bryan 在 Slack 上聯系我,問我是否能幫他完成一個 Ruby 的練習。這是一個基本的 fizzbuzz 挑戰,很多企業都會用這個測試來考察面試人員的能力。我完成了這個練習,并且給他寫好了詳細的說明,好讓他能理解。而他的回應是:“太好了,我今晚就把這個提交上去。”我回復說:“等等!這個是面試企業給你發來的面試測試嗎?”而他立刻從 Slack 上下線了。
接下來的幾天他都沒有聯系我。幾天之后,我又一次在 Slack 上看到了他,他告訴我將要去參加一個初創企業的最終面試,職位是初級 Rails 開發者。我現在感覺有些愧疚,但是那時我竟然祝賀了他,并且祝他一切好運。而且我并沒有提及幾天前的那件事,我有點撒手不管的意思。
危險信號 #3
那周晚些時候,我發現他的 GitHub 賬戶上又多了一個 repo,這是一個名為 capstone_test 的項目。它是一個非常完善的 CMS 應用,而且創建時間只用了 18 個小時。在沒有幫助的情況下,他絕對不可能在 18 個小時的時間里就完成這樣的應用。雖然滿腹狐疑,但是作為他的導師,我還是給這個項目提了一些意見。
幾天之后,他在 Slack 上聯系到我,對我表示了感謝,他采納了我的建議,并且把項目提交給了正在面試的企業。我問他是怎樣在 18 個小時內完成這個項目的,他回答說自己使用了 AirPair 或其他幫助服務。我對他產生了極度的憤怒情緒,他先是讓我幫他完成了第一個編程測試,然后又以 100 美元/小時的價格使用了 AirPair 的服務,讓別人幫他做測試項目。
危險信號 #4
我其實很少關注我的 GitHub 流量,也不太關注是誰復制了我的代碼。但是有一次,我很巧合的發現我的 3 個項目都被同一個人復制了,我覺得有些奇怪,但是也沒太往心里去。之后,我發現 Bryan 的 GitHub 上使用了我的 repo!而且并不是 fork 過去的,而是偽裝成這些代碼是他自己寫的樣子!雖然我的項目都是開源項目,誰都可以使用,但是我希望我的代碼被正當的使用,而不是成為欺詐的工具。
Bryan 獲得了工作!
我在 LinkedIn 上發現 Bryan 已經成為了 Acme Company 的軟件工程師。在入職之后,他不斷的向我請教各種問題。我給他發送了一些鏈接,并且問他現在正在做什么項目。他告訴我他在做一個實時通知系統,他也承認自己入職以后對工作完全一竅不通。
我對他更失望了。他通過欺詐得到了一份初級開發者的工作。讓我更生氣的是,他只有 6 個月的系統學習經驗,完全沒有工作經驗,但是他的年薪甚至比我還高 2 萬美元。
我不想在幫助他了。于是我不再為他提供幫助,不回復他的 Slack 信息,我要讓別人識破他的濫竽充數。如果當初我的導師發現我在這樣騙人,他對我的懲罰會比我對 Bryan 的懲罰嚴重 10 倍。
Bryan 丟掉了工作
一個月過去了,我們之間沒有任何交流。我一直都在關注他的博客,發現他每周都會發一篇編程學習的文章。我覺得他可能真正開始學習了,但是我發現這些文章都是從 Stack Overflow 上復制來的,就連解釋說明都是復制來的。這明顯就是赤裸裸的抄襲!
有一天 Bryan 在 Slack 上詢問誰知道哪家公司在招開發者。我問他:“你剛找到的那份工作怎么了?”他的回答是,他覺得那家公司不適合他,他想要尋找其他機會。但是他不知道,事實上我認識他公司里的一個人,并且深入的了解了他在這家公司的情況。
我的朋友對我說,公司上下都覺得 Bryan 連一個初級開發者都算不上,他的各種解決辦法都是從 StackOverflow 上復制來的。公司打算給他 3 周的考察時間,如果發現他的確能力不夠,就解雇他。我告訴我的朋友,就連入職時的測試,都是 Bryan 騙我幫他做的,而且他還用了 AirPair 雇別人幫他寫項目。我的朋友非常生氣,立刻就給工程 VP 打了電話。
2 天之后,Bryan 被公司解雇,重回了自己從前的行業,做起了臨時工的工作。
經驗教訓
成為一名優秀的開發者,需要你不斷努力,你要學習別人的項目,而不是偷竊別人的項目。
在錯誤中成長,讓錯誤成為成長的催化劑。
決不能復制別人的代碼,而且不說明原作者是誰。
決不能糊弄導師,企圖蒙混過關。
抄襲會被人唾棄,并且毀了自己在行業內的名聲。
總結
丟了工作之后,Bryan 曾經聯系我,讓我幫他找一份新工作。我對他說,我無法和一個不值得我信任的人合作,從此以后我不會再為他提供任何幫助。在那之后,我們再沒聯系過,而 Bryan 至今依然在復制別人的代碼,企圖用這種方式找到一份開發者的工作。
-
程序員
+關注
關注
4文章
954瀏覽量
30322
發布評論請先 登錄
Gemini Vision + Raspberry Pi 化身“數字導盲犬”?

阿里云升級通義靈碼AI程序員,全面上線
ADS1194調試串口輸出,在一定時間的轉換后數據會少一位輸出,為什么?
機械革命發布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
第五屆長沙·中國1024程序員節開幕
京東上萬程序員都AI用它!

助力程序員告別困擾已久的夢魘-Bug

大模型時代,程序員當下如何應對 AI 的挑戰

評論