我是一個盲人,但我在 Google 工作,主要負責更改排名演算法的工作。
我的人生閱歷告訴我,我和我的那些非盲人同事編程的方式並沒有什麼很大的不同。
我通常使用文本編輯器(Emacs 及其 emacspeak 擴展,能夠讓 Emacs 發聲)編碼,使用瀏覽器來閱覽 Google 內部網頁中的文件和材料。
這裡的主要區別是,我們要麼聽螢幕上的內容,要麼通過盲文顯示器的幫助讀取內容。我無法對盲文顯示器做任何評論,因為它太貴了,我買不起,但是我可以說說關於不能看只能聽的我是如何編程的。
用耳朵編程的最大的難點是,你需要記住很多東西。一行一行地移下去聽代碼。可以一個詞一個詞地讀取,也可以一個字符一個字符地聽。問題的關鍵是,你需要在特定的時間裡理解螢幕上的代碼。
僅是在函數定義中查找傳遞的變量名,還不能開始編程。你得記住它。如果您想再一次檢查函數定義的話,像我就會設置一個標記來查找定義,讀取它,然後再回來。正如你可以看到,這可能需要珍貴的幾秒鐘時間,所以提高記憶能力是非常重要和有效的。
我喜歡使用 emacspeak,因為它讓我在用 C++ 等語言編程時,可以藉助很多超酷的功能。它的語音樣式概念,能在閱讀變量、函數和語言的不同元素時發出不同音調的聲音。這功能能讓我們更容易辨析目標,所以我認為這就是我們的「代碼高亮」了。
最後,讓我明明白白地告訴你:
盲人工程師不使用縮進。我們通常完成代碼之後再來設置縮進,因為這對我們毫無幫助。
然後,你可能會問:那麼 python 怎麼辦?
我也非常喜歡 Python,關於縮進部分也不會讓我寫的代碼就此獨樹一幟。我有自己的一些小技巧,如,在每個縮進塊的末尾跳一行,這樣我就可以立刻知道這個代碼塊已經結束了。
當閱讀別人的代碼時,我可以設置螢幕閱讀器的選項來告訴我縮進級別,但我覺得這有點煩人,因為讀到的每一行,它都會一絲不苟地報告目前這一行的空格數。
- 延伸閱讀
譯文鏈接:http://www.codeceo.com/article/google-blind-engineer-coding.html
英文原文:A blind Google engineer explains how he writes code
翻譯作者:碼農網 –小峰
(本文轉自碼農網,未經授權不得轉載。圖片來源:Thomas Favre-Bulle)