我是一個壞軟體開發者

oschina發表於2013-05-08

  過去的四個月時間裡, 我一直在審視自己的內心,試圖多瞭解下自己。之所以這樣,是因為七個月我得到了一份我並不討厭的工作,但其實我也做得一點都不開心。我甚至都不知道有些程式碼我自己是怎麼敲出來的。後來有個朋友再次邀請我去他那,幹得還是一樣的活,但是有機會參與開源專案。然後我就就走了。審視的結果就是:

  我是一個壞軟體開發者

  在那個糟糕的公司待了三個月就離開。我當時是個合同工,並且捲入了公司內部的政治鬥爭中,其實那些事跟我半毛錢關係沒有。我沒有開心,也沒有不開心。日子天天過,工作沒有什麼挑戰性,也半點意思沒有。所以我決定抽出些時間總結一下

  我很謹慎地安排了自己的假期,以保障家庭的經濟狀況。我還清了帳,還可以支撐之後4,5個月。我做了一張資金流的表格,預算表,然後計劃了整整兩個月的假期,花一個月面試,然後第四個月是緩衝,以防萬一花了比我想象的更加多的時間去面試。

  現在我正在這個緩衝期,已經面試了接近時間公司。沒有一家公司給了我工作機會,在多是情況下,沒有通過技術面試。我是一個程式設計師。知道最近我還相信自己是一個好的程式設計師。然而,招聘是一個篩出壞的不合格的候選人的過程。讓我發現自己不再是一個好的程式設計師。

  當我向朋友和同事流露出焦慮的時候(他們多數比我有經驗,更加有智慧)。他們覺得我把問題太簡化了,而沒有發現現實的複雜性。在上一份工作中,他們看過我的程式碼,覺得和我合作很愉快。他們不覺得我的工作有什麼問題,質量和技術也很好。他們說,我不是一個壞軟體開發者,只是不會在面試表現自己。

  如果我只是面對少數的拒絕,我會相信他們。然而現在我是被所有機會拒絕了。只有兩次我通過了首輪技術面試。如果我有一個或者兩個工作機會,我可能會相信他們。 有沒有可能整個招聘都有問題,持續地忽視了一位好的軟體開發員,即使他不會在面試中表達自己?相反的,可不可能是這個招聘系統都是對的,我是一個壞程式開發者,所以得不到一個好的工作。

  從記錄上來看,我不是唯一抱怨自己做不好一些事情的人。在去工作前,我每天都聯絡寫程式碼。我解決了一些Rosetta程式碼中的問題,覺得很好玩。我很有規律地為開源軟體做貢獻。我甚至嘗試去和人交談,學習怎樣更加好的在對話中表現自己。我發現花一些時間和陌生人在一起,然後和他們交談並不是那麼困難,這個故事告訴我,你不嘗試就不知道自己可以做到。

  我的目前問題是我什麼也沒有得到。這是最後一個月了, 我還可以支付租金和賬單,不然我就要欠債度日了。如果還找不到工作,我就要把家人才這個公寓搬到一個老舊的住宿了。似乎我不能夠再在這個行業工作了。我更加害怕的是,我不知道怎麼做其他的工作。

  那麼一個壞軟體開發者是怎麼樣的呢?

  看看我的書架,有很多經典的書:SICP,On Lisp, TAOCP,Exper C programming,Effective C++,和一些關於演算法,分散式計算,安全,圖形學,數學分支的教科書。我真的讀了大多數的書(我仍舊在消化TAOCP)。我很高頻率地讀報紙和雜誌,比如ACM,IEEE和各種PhD's(博士論文?).如果你只是從讀書列表來看,我是一個很全面的人才,其實我不是。我只是喜歡程式設計,想要知道所有一切我想要的。

  我為很多的開源專案做過貢獻,從C++,Perl,Pyhton和Lisp之類的語言。有一些專案是我用過的,可是沒有某些功能,他們需要開發者去修正bugs和增加功能,或者寫庫檔案和應用檔案,正好這些也是我需要的。

  我很開心不斷提高我的技術。就像我之前提過的,我會練習寫程式碼。在很多我服務過的機構,我寫的程式是經歷自動檢測的冠軍。我讀很多的書,論文,文章,我也寫一些文章去教別人。

  我喜歡數學。在讀了資訊學,知道了夏農熵(Shannon Entropy),我開始序理論(order theory)。我喜歡聯合半格(joint semi-lattices),集合,有理代數,句子資料庫(sentential databases).我不記得細節,但是我知道迴歸和迭代的方法。如果我想知道細節,我有雜誌和教科書。

  盡然如此,我仍舊失敗了,在一個要我寫一個程式返回一個布林變數,來表示一個序列 A 是一個序列 B的子序列。我仍舊不知道怎麼回答一個我自己寫的叫guests函式的複雜度(當然計算排列組合的複雜度是n的平方,但是這是一個審訊的隨機瑣事,我可以管理召回,我覺得自己像一隻鹿在大燈??)。我的信心已經在每一次的錯誤,失敗,拒絕中失去了。

  在整個過程的最後,我覺得自己是低落,絕望,害怕自己拖累了家庭。我的女兒有一天會問我,是做什麼工作的。我會咬著嘴脣告訴他,我是寫電腦程式的。我不得躲開她在長大中的試探性的問題,以免告訴她,我為了桌上的食物什麼都做。我從來沒有成功過,也沒有做過什麼讓自己特別驕傲的。我只是盡力去做,即使整個世界都覺得我不再足夠的好。

  我是一個壞軟體開發者,這個是我的人生。

  (譯者:這片是一個黑色幽默麼?)

  英文原文:I Am a Bad Software Developer

相關文章