我是一個壞軟體開發者
過去的四個月時間裡, 我一直在審視自己的內心,試圖多瞭解下自己。之所以這樣,是因為七個月我得到了一份我並不討厭的工作,但其實我也做得一點都不開心。我甚至都不知道有些程式碼我自己是怎麼敲出來的。後來有個朋友再次邀請我去他那,幹得還是一樣的活,但是有機會參與開源專案。然後我就就走了。審視的結果就是:
我是一個壞軟體開發者
在那個糟糕的公司待了三個月就離開。我當時是個合同工,並且捲入了公司內部的政治鬥爭中,其實那些事跟我半毛錢關係沒有。我沒有開心,也沒有不開心。日子天天過,工作沒有什麼挑戰性,也半點意思沒有。所以我決定抽出些時間總結一下
我很謹慎地安排了自己的假期,以保障家庭的經濟狀況。我還清了帳,還可以支撐之後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的平方,但是這是一個審訊的隨機瑣事,我可以管理召回,我覺得自己像一隻鹿在大燈??)。我的信心已經在每一次的錯誤,失敗,拒絕中失去了。
在整個過程的最後,我覺得自己是低落,絕望,害怕自己拖累了家庭。我的女兒有一天會問我,是做什麼工作的。我會咬著嘴脣告訴他,我是寫電腦程式的。我不得躲開她在長大中的試探性的問題,以免告訴她,我為了桌上的食物什麼都做。我從來沒有成功過,也沒有做過什麼讓自己特別驕傲的。我只是盡力去做,即使整個世界都覺得我不再足夠的好。
我是一個壞軟體開發者,這個是我的人生。
(譯者:這片是一個黑色幽默麼?)
相關文章
- 微軟發現一個 ChromeOS 遠端記憶體損壞漏洞微軟Chrome記憶體
- 介紹一個軟體開發工具
- 一年前,沒有Android,我還是一個遊戲開發者Android遊戲開發
- 軟體開發者六要
- 如何開發一個框架或中介軟體框架
- 軟體開發者應有素養
- 想開發一個安全軟體,怎麼搞?
- 如何從零開發一個NuGet軟體包?
- 開發手機軟體是個夢?不,你錯了!
- 微軟官方 Win 11 “體檢工具”太爛了?開發者自己做了一個微軟
- 介紹一個軟體開發工具,堪稱快速開發神器
- 我是如何從通訊轉到Java軟體開發工程師的?Java工程師
- 【大型軟體開發】淺談大型Qt軟體開發(一)開發前的準備——在著手開發之前,我們要做些什麼?QT
- Nikto是一個開源的WEB掃描評估軟體Web
- 敏捷個人-做好一個開發者敏捷
- 使用PyQt開發一個資料庫管理桌面軟體QT資料庫
- 熟悉一個“高質量”軟體的開發過程
- 一套完整的軟體開發流程是怎樣的?
- 鮑勃大叔是一個從未交付過軟體的欺詐者? - Nico
- 我做軟體開發的核心思想考量
- 我的軟體開發中經驗教訓
- 軟體開發:app軟體開發,pc端軟體開發,微商城/小程式開發APP
- 什麼是開發者體驗DX? - redmonk
- 《壞小孩》開發者的90年代記憶:我想要記錄那個大廈崩塌的時代
- 軟體工程是教會不懂寫程式的人開發軟體嗎?軟體工程
- 關於開源分散式事務中介軟體Fescar,我們總結了開發者關心的13個問題分散式
- 選擇軟體開發平臺,“快速開發”是關鍵
- 軟體工程方法論對我們經軟體開發有多大用處?軟體工程
- 一個NB的web前端開發者,是怎麼學習的?Web前端
- 一個開發者的使命感究竟應該是什麼?
- 一款手遊“拯救”一個IP?《高達破壞者Mobile》是怎麼做到的
- 一個完整的軟體研發流程
- 複雜性正在殺死軟體開發者
- 這個應用魔方厲害了,讓軟體開發者效率提升10倍
- 開發者工具:我是如何從0到1來進行APP開發的?APP
- 說說軟體開發這個職業
- 我如何用Django開發一個專案Django
- qt鐳射加工軟體開發(一)QT
- 小影片軟體開發,實現一個CSS邊框動畫CSS動畫