三、不應該成為一名程式設計師的跡象
如果在學校上了程式設計課之後,你還有下面列出的跡象,那可能就真的沒救了。這樣的話,你可以選擇另外一種職業來更好地推進事業發展。
1.無法確定程式的執行順序
特徵
1 2 3 4 5 |
a = 5 b = 10 a = b print a |
- 看著上面的程式碼,你不能確定最後會輸出什麼數字。
備選職業
- 電工
- 管道工
- 建築師
- 土木工程師
- 藝術家
2.抽象思維的能力不足
特徵
- 很難理解物件和類之間的差別。
- 很難為自己的程式實現設計模式。
- 很難寫出低耦合的函式。
- 不會用正規表示式。
- LISP對你來說晦澀難懂。
- 搞不懂邱奇圖靈論題( Church-Turing Thesis )。
備選職業
- 合同談判專家
- 演技派演員( Method actor )
3. Collyer Brothers 綜合徵
[譯註]: Collyer Brothers 是美國的一對兄弟,性格怪異且有強迫囤積症,生活與世隔絕,強迫性地收集書、傢俱、樂器和各種物品,並在自家走廊裡安置誘殺裝置捕殺入侵者。之後被發現死於家中,周圍堆了超過 140 噸的物品。詳見 Collyer Brothers 。
特徵
- 不願意丟掉任何東西,包括垃圾。
- 不願意刪除任何東西,無論是程式碼或註釋。
- 為了抵禦入侵者,有佈置陷阱的衝動。
- 不願意和別人交流。
- 組織能力差。
備選職業
- 古董商
- 拾荒女人(Bag lady)
4.因果關係的意識失調
特徵
- 很認真地認為編譯器拒絕你的程式是帶有惡意的。
- 被叫去修復一個已部署程式中的bug時,你在試圖禱告。
- 認為隱藏變數是理所當然,並且想也不想就把程式異常怪到它們頭上。
- 認為程式中存在的程式碼都會影響其執行時行為,即使某些程式碼從未被呼叫。
- 除錯前有很多保留節目,比如擦亮幸運高爾夫球、轉一轉你的婚戒或拍一下放在螢幕上的 nodding-dog 玩偶。在除錯無效時,你覺得很可能是因為除錯前的保留節目少了某個環節或是做的順序不對。
* -記憶體限制、被轉移的偏移量和編譯器特性。詳見 Reddit 上面的討論。各自評判吧。
備選職業
- 去拉斯維加斯玩老虎機
- Cam Riely 所著的《是什麼造就了一名優秀的程式猿》(校對注:這個連結貌似掛了,我推薦 Josh Symonds 的《什麼原因成就了一位優秀的程式設計師?》
5.不關心結果
程式設計對你來說可能只是個愛好,但它也是社會上最棒的興趣愛好之一,沒有它你無法進入專業的軟體開發領域。
特徵
- 如果重啟能夠解決,你就沒興趣修復這個問題。
- 安裝程式暗地裡部署了來路不明的第三方程式,而它和你的函式毫不相關。
- 設計使用者介面(UI)時不使用任何人體工程學模型,你也沒興趣研究軟體易用性。
- 程式顯得花裡胡哨,超出使用需求,比如:載入背景時在活動程式的介面上方顯示啟動畫面,或額外地在桌面各處放置多個啟動圖示。
- 在程式裡生成可從其他地方(比如:瀏覽器)讀取的輸出,或自己實現一個網路協議,並且依賴其他方的軟體來容忍違反規範的行為。
- 雖然平臺提供了事件驅動程式設計,但還是寫繁忙-等待迴圈體。
- 不使用託管類語言,不擔心邊界檢查或輸入合法性驗證。
- 在使用者介面上很容易觸發具有相應破壞力的操作(比如:“刪除資料庫”按鈕就在“儲存”按鈕旁邊,一樣大,沒有確認提醒步驟,也沒有撤銷操作)。
- 不使用空格、縮排或註釋。
實際上,這些特徵更多的是由管理人員所強加,程式猿只是執行者。由於這畢竟是一篇自測的文章,因此還是把這些特徵分在了一組。並且,對這些人最好的建議是去一個更好的公司謀職,不然就是去商學院,學學怎麼以破壞力更小的方式來賺錢。
備選職業
- 討債
- 電話推銷