返回社群

戰勝癌症,走向無障礙倡議

當你收到改變人生的消息或資訊時,會發生什麼事?你會怎麼回應?又會怎麼消化?來聽聽 DJ 分享他在得知自己罹患癌症後,如何重新調整自己的觀點。

在 Youtube 上觀看
長度 49分鐘

Jonathan:好,DJ,歡迎來到本週的 Exercism 播客。真的很開心你能來。我們現在坐在 Haarlem,大家好像是這樣念的,我想。如果我念錯你可以糾正我。你應該要會念這個。好,我再試一次。

DJ:好,我們的三個子音是哪幾個。好,Haarlem。裡面沒有 G。好,Haarlem,Haarlem。好,Haarlem。

Jonathan:Haageslach,吃鬱金香、種鬱金香。問題就在那個喉音 G,我很難發。

DJ:但 Haarlem 裡沒有 G 啊,是 H。

Jonathan:對,但還有那個 R。好,這是我這次的情況。不過真的很開心你能上今天的節目。你參與 Exercism 大概有幾年了,可能吧。我的意思是,你大概參與多少、多少年了?

DJ:我其實記不得我第一次……第一次我心想,喔,我要來當個討人厭、來抱怨的人。我從第一版就開始用 Exercism 了。我記得,我想是聖誕節前後,我當時只是在找一些練習來做。然後我找到了,註冊了,就沒再用了。後來有了 V2,這個我記得比較清楚。但我想大概有,我會說,三、四年了吧。大概四年,那時我才真的想,喔,我要來幫忙。我會告訴別人我覺得他們哪裡做錯了。但接著我會去把它修好。對。

Jonathan:然後你修好之後。對。那從科技的角度來看,很明顯是 Exercism。那是你踏入科技領域後期的事嗎?

DJ:對,我完全沒有用它來學新的程式語言。它是,一開始只是一種忙碌、讓自己更忙的工作。你知道,就像有人覺得打掃很療癒一樣。我那時工作很忙,所以我決定做更多。因為你也知道,你已經有那麼多事要做了。所以我在找練習,我做過 Codewars,也玩過 HackerRank 那些東西,然後我找到了 Exercism,我喜歡 Exercism 的地方是,那些練習是你在別的地方找不到的。沒有人要你 code golf,也就是把程式碼縮到最短,也沒有人要你做到最快,就只是看看你能不能照自己喜歡的方式完成練習。酷。還有一個額外的好處是你可以用好幾種語言做。所以對我來說,我上了大學,主修資訊科學,但我會去念只是因為我不知道自己想幹嘛。我想做一百萬件事,而我父母開了一間玩具店。當時經濟不景氣,生意很差。所以我想我得做點什麼。

Jonathan:那這大概是哪一年,你……危機是什麼時候?2008?2009?所以是那時候。好,了解。

DJ:危機是什麼時候?美國的危機?2008、2009。所以就是那時候。對,沒錯。我現在 31 歲。我 17 歲上大學。所以差不多就是那時候。而且我已經在一間 ICT 公司工作了。你有試過把它關掉再打開嗎?沒有。沒有。

Jonathan:沒有,沒有。對、對,它壞掉了,就把它打開。

DJ:對,所以對任何在企業裡工作的人來說,辦公室裡大家電腦最常見的問題就是沒插電。所以你知道,我那時在一間 ICT 公司、一間 IT 公司工作,他們有做一些程式開發,但我決定,嗯,如果我要念書,而且我得養活自己,因為我父母的玩具店因為全球危機經營得不好,我最好做些我已經會的事。所以,我決定報名資訊科學。

Jonathan:這就帶我們到差不多現在。對。當時這是在荷蘭嗎?對、對。在台夫特理工大學。好。

DJ:對、對,在台夫特理工大學。我當時 17 歲,一開始念資訊科學時我真的很喜歡。我念了大約七個月。然後我不是輟學,而是得了癌症。所以我暫停大學學業。等我回去的時候,大學對我百般刁難。課程大綱變了。他們不想讓我修某些二年級和三年級的課,因為他們說,你喝太多酒了。我說,其實我當時快死了,但非常謝謝你。所以我決定改去工作。我只修我真正想修的專案。那就是我接觸 Java 這類語言的開端。還有一些 C、Haskell、Prolog,不同課程有很多不同的科目。但工作時,我用的是 C Sharp。

Jonathan:她……

DJ:我比較年輕的時候就懂 Ruby 了,那時我想當遊戲開發者,因為那是做遊戲該用的語言。其實不是,但當時是。

Jonathan:所以你那麼小的時候,最初是怎麼對科技產生興趣的?很明顯你從看著父母在玩具店,然後經濟衰退那些的。但應該在那之前,有沒有一個像「科技,這真有趣」的時刻?

DJ:對,我 12 歲的時候,我想其實很早就開始了。我很小的時候,那時還沒有 Windows 95。那是 MS-DOS。我媽會幫我父母開的印刷公司記帳。他們在開玩具店之前有一間印刷公司。她會用 Xact 記帳,那是一套很常見的會計軟體。而且它是在 MS-DOS 上跑。它看起來就像你看到駭客做的事,對吧?像那個綠色螢幕,那個《駭客任務》的螢幕。後來一點,變成白色、白色的。它看起來非常有趣。我喜歡在裡面東玩西玩,把她做好的帳完全毀掉。她很氣。我爸其實在他年輕時,是城裡少數有 CD 燒錄機的人之一。他成長的時候,他是最早一批有的。

Jonathan:那個《駭客任務》螢幕,還有那些不斷落下的字。

DJ:有這種東西的人,他會幫別人複製資料然後燒錄。所以他算是喜歡電腦。他家裡有幾樣玩具,但就這樣。我沒有電玩電腦。我不是在有電視的環境下長大的。我參加過童子軍,還比過帆船賽。但我 12 歲時,確實有了一台電腦。它很慢。就是那種電腦。稍微年長一點的人,你知道我在說什麼。它有顆渦輪按鈕。我想我記得你談過這個。你按下它的話,電腦就真的會發出 zzzzzzzzzz 的聲音。然後它就跑得更快。

Jonathan:然後你的電費大幅上漲。所以你玩了《Rollercoaster Tycoon》。喔對。玩很多。你玩到哪裡?

DJ:對!上漲很多。所以我玩了《Rollercoaster Tycoon》。喔對。玩很多嗎?那台電腦慢到有一個關卡,我想那是在《Rollercoaster Tycoon 2》的某個資料片裡,我記得叫 Arid Heights。那是第一個你可以不靠錢完成的關卡。我大概花了四個月才完成。太驚人了。現在用我的電腦,我大概一小時就能做完。但它就是那麼慢。而且那很棒。太神奇了。我很愛這個。

Jonathan:太驚人了。那是數一數二棒的遊戲。

DJ:對、對。這確實讓我想投入遊戲開發。不是因為我喜歡寫程式,只是因為我喜歡玩遊戲。所以在我 12 歲到 18 歲之間,我稍微玩過 RPG Maker,它是……我想是日本的,但它是一套被翻譯成國際版、主要是給美國市場的軟體,你可以用它來做 RPG。它很像是點擊操作,整個事件系統都有 UI,但底層的程式語言是 Ruby。整個腳本語言是 RGSS。那是 Ruby Game Scripting System,還是類似這樣的東西。所以你可以透過改那些腳本裡的座標,移動它給你的那些內建畫面,像是選單,因為那些腳本是公開的。那是我做的第一件事。我把畫面移來移去,覺得超有成就感。嗯,你是專家。我的意思是,我看過。對,我看過。我的意思是,我完全不懂程式設計。這就只是,你看到一些數字,你理解那些是螢幕上的座標,你把它們改一改就能改變螢幕上的畫面,那很棒。

Jonathan:嗯,你是專家。我的意思是,資深的。對,資深。所以螢幕上發生的事和你必須做的事之間的連結算是很直接。幾乎是即時的。你幾乎可以馬上看到。

DJ:你幾乎可以馬上看到,對吧?這也帶到為什麼有些人認為直譯式語言更適合教初學者,對吧?正是因為你有即時回饋。在那之後,我做過更複雜的系統。有人做了樹葉在螢幕上動起來的圖形。於是我寫了一個小腳本,讓那片葉子真的動起來,然後在螢幕上飄來飄去。雖然我當時才 14 歲左右,大家卻知道我的網路暱稱,我覺得那個暱稱很優雅。就是我的名字後面加一個商標符號,這在我試圖稱呼自己時非常麻煩,因為他們在談論我,這很棒。隨著我長大,我確實發現寫程式就是好玩,但不是那種,喔,我要做這個做一輩子。我想當外科醫生,我想當太空人,我想投入藥物設計。但沒有,就是機緣、巧合。所以等到我上大學前、17 歲在那間 ICT 公司工作時,我已經有些程式知識,但沒有想成為程式設計師的渴望。沒有那種,喔,矽谷是我見過最酷的東西。我就只是。

Jonathan:……在螢幕上飄來飄去。它只是你這個人的一部分,或者說你的一部分。那是我賺些錢的方式。對。

DJ:那是我賺些錢的方式。對,那就是一份工作。直到我真的上了大學、真的修了那些課,我才發現我非常擅長這個。這惹惱了一些同學,他們很不爽我常常遲到很久進教室,成績卻還是比他們高。

Jonathan:你覺得那時候在大學能有這樣的能力,有一部分是因為你長期把那些內容放在腦中、可以說已經內化了嗎?你覺得那是一個因素、一個成分嗎,還是就只是你天生有這個天賦?天賦,你就是知道是怎麼回事。有

DJ:是怎麼回事。有人做過研究。我記不得那篇論文的名字,甚至記不得研究者的名字。但他們研究過是不是……世界上每個人都能成為程式設計師。記得幾年前有一波很大的推動,說每個人都該學寫程式。他們發現基本上有兩種人:一種是會懂的,一種是不會懂的。而這沒關係。他們覺得把研究結果說出來很重要,其實那不是目標。但那是結論。他們覺得把這個結論說出來很重要,因為這意味著就算你搞不懂,你也不笨。這只是意味著要能理解那些邏輯結構是有條件的。所以這跟知識無關。這跟你看過多少次無關,也跟你對那個語言了解多少無關。這純粹是,你能不能建立那個心智模型讓它打通。他們發現有人可以、有人不行。而在這兩種人裡,只要你肯花時間,能力都會有不同程度。我覺得很多事情都是這樣。我很喜歡做菜,但我只是因為花了很多時間才變好。對。沒錯。所以你去試。所以我覺得這有點像技能,因為我知道有些我非常要好的朋友試過做菜。對。這就是我想說的全部了。因為你如果正在聽這個,你知道我在說誰。那不是他們的錯。我認為有一部分是天生的。有一部分是後天學來的。我覺得寫程式也是一樣。我覺得我早先玩過一點程式設計有幫助嗎?有。百分之百。當然。這很像一個想學樂器、但他已經會看譜的人。會有幫助。它也許不會給你天大的好處,但對,它確實幫了我。但很大一部分也是因為我已經靠它賺錢了。所以我當時在做……

Jonathan:這就是我想說的全部了。百分之百、百分之百、百分之百。所以你在大學的時候,除了念書,你也在靠做東西賺錢嗎?就像你同時有兩件事在跑。

DJ:對,有。我基本上就是念書,念書加上工作,加起來一週大約 60 小時。然後再加上出去玩。

Jonathan:所以你就這樣不知怎地把一週變成 270 小時了。對,不知怎地。對、對、對。

DJ:不知怎地。對,不知怎地。對、對。所以我非常能撐很少的睡眠。我也不會宿醉,到現在還是不會。我只會覺得累,就這樣。所以對我來說很讚。荷蘭語裡我們說,studeren is leren combineren,意思是念書是一門懂得如何把不同事情組合起來的藝術。我也是這樣,尤其對我來說,這非常貼切。

Jonathan:那你剛才講到整個癌症的事,提出了一個很有意思的點。所以你在念大學,然後它就這樣找上你。對。毫無預警,就是那種。

DJ:對,那一天是個震撼。很震撼,但我同時也感覺非常平靜。對很多人來說,被診斷出癌症是一個非常漫長的過程,非常漫長。不是那種,喔,你去看醫生,他們就說你有癌症。那從來不會發生。你去醫院,做了一堆檢查,醫生總是有擔憂,等你得過一次之後,你就知道該注意什麼表情,但在他們確定你得病之前,他們不會告訴你有癌症。所以這是一個非常漫長的過程。對有些人來說是幾週,對大多數人是幾個月,但對有些人來說要好幾年才會知道。而這也正是可怕的地方,如果他們不去檢查,這就是會奪走你命的東西,因為你太晚了。所以對我來說,我在這裡所說的「磨坊」裡待了四個月又幾個月,然後他們終於告訴我,說,對,你有淋巴瘤,這個那個,還有一堆有的沒的。我們不知道。我們有診斷,但沒有預後。所以我們知道你有什麼病,但不知道你能活多久。我們知道情況很糟,但不知道有多糟。就這樣。

Jonathan:所以你同時把一切都告訴我,也什麼都沒告訴我。於是我說,好,那現在呢?對。

DJ:於是我說,好,那現在呢?對。告訴我這個消息的人對我的反應不太滿意,因為他們以為我沒當真。但我說,你告訴我你不知道該怎麼辦,那接下來呢?我覺得真正唯一改變我的,除了當然是幾乎有一年完全停擺之外,就是我開始不再對很多事情說不。所以癌症之前,我是工作、念書、出去玩,在那之後,我就開始做得更多。然後你就做得更多。對。

Jonathan:然後你就做得更多。對。大多數人應該會說,好,慢下來、停下來。

DJ:我不再存錢。我開始花錢,因為有什麼意義?我死掉之後,有人會說,喔,他本來可以用存下的那些錢做很多很棒的事。現在我年紀比較大了,也許那不是很明智的決定,但當時,那是我前額葉皮質叫我做的事,而且是青春期晚期,就衝吧。所以我旅行了很多,工作了很多,我修任何我喜歡的課,也就是資訊科學,但只修我被允許修、而且我想修的課。然後我大一的一位助教,他搬到了加州史丹佛。那是一間很大的大學,很棒的大學之一,他說,你想幫我做一個暑期專案嗎?因為我在這家公司工作,它是一間新創。我說,好啊,完全有自信,雖然我這輩子從沒碰過 Android 程式設計。我有一支 Android 手機,那是個 Android 專案。我在大學修過 Java,就這樣,就那樣。我說,好啊、好啊,交給我,我做。我能拿到什麼?他說,嗯,我們付你 3,000 美元,你得在夏天結束前完成。當時,我和某個人一起住在 RNM,而在我生日那天背叛了我,所以我打給我最好的朋友,她來自德州,她說,你才剛滿 21 歲,你為什麼不過來?你有什麼好損失的?沒錯。過來這裡吧。所以我去了。我飛過去,當我在德州時,那位助教說,嘿,看起來你在德州。

Jonathan:你有什麼好損失的?沒錯。過來吧。這正是我需要的。

DJ:我們可以把你接過來。所以你何不先過你的假,然後改一下回程班機,再過來跟我們一起工作一陣子。我就這麼做了。我的矽谷故事就是這樣開始的。這也是我,雖然我當時已經在專業地賺錢,但比較像是為了達到某個目的的手段,我就是這樣被拉進加州和這份工作。我當時已經有自己的公司了,因為我……21

Jonathan:21 歲你就自己在荷蘭開了公司?我是為了節稅才開自己的公司。好。

DJ:我是為了節稅才開公司的。所以我那時在 ICT 公司做事,但程式開發的工作,我想以非員工的身分來做,因為當員工賺不了多少錢。而且我還可以拿到不少稅務優惠。所以我開了一間公司,跟我 ICT 的老闆說,嘿,聽我說,我想以這間公司的身分來做程式開發的工作。他說,好啊,同意。我也會幫你加薪,因為這樣你就不是員工了。我說,太棒了。所以我早就有了。所以我能夠合法地有一個美國客戶,因為我已經……或者你外包出去,然後……沒錯,我把自己外包出去。這很棒。這很棒。我基本上這樣做了四年,飛來飛去。

Jonathan:喔,你外包出去。然後就、沒錯,我。所以你基地在荷蘭?對。然後你會飛過去、做些工作、再回來?對,我也會在這邊工作。

DJ:你回來,對,我們也會在這邊工作。所以我會遠端工作。但我會過去開會,你知道,在那邊建立起一種工作生活和經驗,它完全取代了我原本想從大學得到的東西。所以我就不去上課了。我的意思是,這件事大約五年前結束。那時我開始在這邊雇人。所以我把公司做大了,不再只有我一個人。我跟我大學的一個朋友說,嘿,你想跟我在這個專案上合作嗎?那個專案其實是來自美國的其中一個客戶。他說,好啊,來吧。我另一個最要好的朋友,她其實被一間美國公司錄取了,所以我還是有理由飛過去拜訪她,這很棒。所以我會去拜訪客戶、開發新客戶,然後飛回家,接著我們就做那些工作。而他們付我們美國的薪水。太驚人了。對那些不知道的人來說,這邊的生活成本低得多。所以……是嗎?我的意思是,而這……

Jonathan:猜加州,還是你大概就在那一帶?所以

DJ:你是在那一帶嗎?對,所以那有點荒謬。如果你,我知道、我知道我在荷蘭被寵壞了,這裡水果蔬菜取得容易,我們這邊自己種很多,也從歐洲進口很多。但如果你想要買半公斤,也就是 500 克的草莓,在市集上,如果當季,你會付一到兩歐元。在最貴的超市,除了那些有機的之外,當季大約付 2.50。非當季的話,會漲到四、五歐元。但我們姑且就說,為了討論起見,算兩歐元。同樣份量的草莓,在帕羅奧圖的 Molly Stone's 要花你大約 11 美元。你認真的?對。所以那真的很……而且我覺得那是一個很好的定價基準。我一個房間加一間浴室的租金是一個月 3,000 美元。太荒謬了。根本無法持續。這也是為什麼他們必須付人那麼多錢。

Jonathan:真的。

DJ:所以對,當你搬回這裡,卻還能拿到一樣的薪水,有一陣子,那很棒。對,那太驚人了。後來我就把公司做大了、做膩了。但從來沒有真正出現那種,喔對,我想做程式設計,或我想當程式設計師的覺悟。就只是我擅長這個,我可以靠它賺錢。然後我才開始慢慢喜歡上它。

Jonathan:所以現在你在這個科技圈,這個科技領域。我想問你、也很希望你多談談的其中一件事,就是無障礙這個概念。我現在對它是什麼意思有點懵懂。我知道這對你來說很放在心上,所以多談一點吧。

DJ:對,目前我主要打造的是能透過手機使用的電腦程式,也就是你想的 App,或者網站、網頁應用,通常是透過你桌機、筆電或任何其他能開瀏覽器的裝置來使用。無障礙就是在讓你打造的東西具有包容性,對別人來說是可及的。它本質上跟程式設計無關。我們談無障礙,就像我們談,嗯,有沒有無障礙坡道入口或廁所?讓空間更無障礙,就是讓它更具包容性,讓更多人能使用。我想我經歷過很多,很多不是個很精確的數字,我經歷過很多糟糕的、負面的經驗,來自世界各地的種族歧視和無知,包括這個國家。

Jonathan:我想。

DJ:大部分我強烈相信是來自無知。但它可以嚴重到我的手錶,我的智慧手錶,燒灼我的皮膚,因為他們不是為膚色較深的人設計的。所以當我告訴他們我有一塊斑、而且它要嘛偵測不到我的心跳,要嘛會燒傷我,官方的客服回應是:試著戴在內側,那裡色素比較少。那就是官方回應。你看得到我,別人看不到,但我是焦糖牛奶醬(Dolce de Leche)那種顏色。所以你知道,我不是很深的膚色,也不是很淺的膚色,大概就正好在中間。但我也遇過肥皂機擠不出肥皂的問題。

Jonathan:那就是官方答案。那就是官方回應。

DJ:或者門不打開。好,真的?對。而且,你知道,那些事讓我很煩,但那些都只是不便。我身邊沒有視力障礙到需要輔具的人。我身邊沒有聾人或聽力不好的人,但我可以想像他們的情形,如果他們本來的樣子。

Jonathan:好。

DJ:在他們試圖生活的時候,對他們造成負面影響,因為就是這樣,對吧?所以當我研究這個,字面上就是,有天晚上我打開 Google,開始讀 Mozilla 關於無障礙的頁面,他們上面確實有不少資訊,我發現我們身為網頁,主要是網頁,但也是 App 開發者,能做的很多事情,讓東西更有包容性,其實並不複雜。所謂不複雜,我的意思是,我幾週前做了一場演講,我展示了差異,其實是讓大家聽聽差異,大約 15 分鐘的工作,就能從一個完全無法使用的東西,變成一個沒那麼糟的東西。所以那些公司說,喔,你知道,讓東西無障礙要花很多錢、很多時間。這只是藉口。這大概是無知,這是最正面的看法,但這也是屁話。

Jonathan:那是藉口。

DJ:真的是。所以當我發現這很容易做時,我就開始倡導它。

Jonathan:那給我一個例子,比如在 App 或瀏覽器裡,就只是舉個例。

DJ:喔,最簡單的例子。人們假設你有滑鼠。也就是所謂的 hover 狀態,這是你手機上沒有的。這是大家其實最熟悉的一件事,因為他們用手機上網站,想看到工具提示,卻看不到,除非長按某個東西,因為那是在手機上模擬 hover 的方式。現在,想像你沒有觸控裝置,也沒有滑鼠,而是用鍵盤。如果你用標準的網頁元素,也就是 HTML,用它原本被設計來使用的方式,或者你在 Android 或 iOS App 裡用了正確的基本元件,或者你用像 React Native 這樣的函式庫,這就不會是問題。而這是重點。比我聰明的人早已無數次思考過這件事。有一份又一份又一份的文件,講述使用標準可以如何讓每個人的體驗更好。但如果你不能用鍵盤瀏覽一個網站,這就意味著世界上有一部分人無法使用你的網站,這很悲哀,因為你打造東西就是為了讓人使用。所以這跟做更多工作無關。這完全關乎你希望你的作品能被人使用,至少你應該這麼希望。我想你是這個意思。

Jonathan:所以我想你說的是,用更聰明的方式去處理一件事,而不一定……

DJ:我覺得有一部分是教育。我的意思是,有很多人不知道這是個問題,因為沒有人告訴他們這是個問題。而我覺得人們很容易去抱怨這個。說,喔,你應該、你應該、你應該把一切做得無障礙。但如果你不知道,因為這是個相當廣泛的詞。就像如果你說讓它……

Jonathan:因為這是個相當廣泛的詞。像是如果你說讓它無障礙,就會想,嗯,你是什麼意思?在那個脈絡裡非常廣泛。超級廣泛。

DJ:就是,在那個脈絡裡非常廣泛。超級廣泛。它難以置信地廣泛。更糟的是,某些讓東西無障礙的方式,跟讓它對其他人無障礙是互相排斥的。所以如果你有視覺障礙,也就是視力不好或全盲,你很可能會用點字螢幕,它會把頁面上看到的任何東西轉譯成點字,這很棒。太神奇了。那它是怎樣,它會產生一種……它是觸覺的。好,所以它是觸覺的。對,真的很酷。所以它是一塊你可以觸摸的觸覺螢幕,它會顯示內容……用點字,或者像……對、對,不是,就是字面上的點字,就這樣。或者他們會用螢幕閱讀器,它會把螢幕朗讀出來,或者兩者都用。有很多人兩者都用。這些人……

Jonathan:那它是怎樣,它會產生一種……好?很酷,用、用、用點字,就像,對、對,不是,就是字面上的點字

DJ:就無法使用這個產品,對吧?但如果你做了那些功夫讓他們能使用,你可能開始做一些像是為圖示加上標籤的事。所以我們看到的圖示,像是一個齒輪圖示,我們認為那是設定,你就給它一個標籤。你說,這是設定,這很棒,因為現在他們可以透過聽或透過觸摸,看到我們用眼睛看到的東西。然而,這裡就是你需要知道的地方,有些人會用語音指令來瀏覽頁面。

Jonathan:像齒輪圖示。所以像 Siri,那會是個例子嗎?嘿 Siri,去設定。

DJ:對,像 Siri。嘿 Siri,去設定。對,沒錯。如果頁面上視覺上的文字標籤,跟你額外加上的那個無障礙標籤不一致,也就是沒有以相同的文字開頭,而現今比較新的工具會做包容性,它就無法點擊那個按鈕。

Jonathan:所以對在那種情況下視力有困難的人來說,到處瀏覽的體驗是不是就變得超級麻煩?對,所以在這些情況下……

DJ:對,所以在這些情況下,使用……而且這點非常重要,要理解,人們會用跟我們預期不同的方式使用輔助科技,對吧?所以有人用螢幕閱讀器,不代表他們全盲。我有一個員工在累的時候會用它,因為那是他保持專注的方式。同樣地,有些人用語音指令,可能是因為,不是因為他們沒有手,而是因為他們在照顧小孩,或者他們在路上,有太多理由讓人們以不同於原本用途的方式使用這些工具,對吧?但不知道工具就是這樣運作的,會讓開發變得非常困難。所以我覺得,我發現很多事情。其中一件事是,我覺得很有意思,在大學裡,關於這個主題花了大概零分鐘。大多數人都是這樣。我談過的大多數人,在學校都沒學過這個。

Jonathan:我的意思是,這是第一次,我的意思是,老實說,我大概談過這個。對,這個主題。我的意思是,它有點在身邊飄來飄去。但對,但就實際具體的例子來說,我從沒真正想過。對。這,你知道,我太太懷孕了,或者曾經懷孕,或者現在有寶寶了。對。你沒辦法用手做事情。沒錯。所以就講。

DJ:沒錯。所以擴音很棒。這就是我們所謂的情境性障礙。所以你有不同類別的障礙,對吧?你有永久性障礙。如果你手被截掉,你就沒有手。但如果你手臂扭傷或手骨折,那是暫時的。然後你有情境性障礙,也就是,嗯,你兩手都忙著。而他們全都會希望東西更無障礙。這不只適用於程式設計,而是任何事,世界上任何事。但就程式設計來說,這是我們能影響的事。所以第二件事,第一件事是我們沒有被教育過這個,對吧?但第二件事是,那些確實有資源投入這件事的大公司,他們很糟。一般來說,他們很糟。是的,有些很棒的團隊。有很棒的無障礙倡導者。你知道你是誰。確實有些大公司過去幾年做了很多改善。但一般來說,這不是人們預設會去做的事。嗯哼。而相對地,你知道,確保網站能載入是他們會做的事。對。而那是人們確實在乎的事。

Jonathan:但我覺得這很有意思,因為目前,我覺得圍繞著為了無障礙而打造東西有一種負面觀感。我會說一般的認知是,那是額外必須做的事。但其實,如果你反過來想,說,嗯,你讓它變得可及得多,那就完全改變了整個動態。我喜歡你說的這點,因為你講的時候,感覺有點像,我覺得其中有種希望,就是,嘿,其實你可以讓你的產品從人群中脫穎而出,因為你其實讓它更可及。

DJ:讓它更可及。我覺得……我這樣是不是有點……那有點太矯情或有點蠢嗎?我覺得正面的部分是你可以做到。對。這不是那種……你不需要是火箭科學家。這是件很棒的事。負面的部分是,我們竟然還在談這個,竟然還是例外。這很悲哀。真的很悲哀。但我確實希望、也確實努力讓更多人意識到、進而在乎。對。而關於這個,我最常被問到的問題是,好,DJ,你說服我了,但我要怎麼說服我的同事,怎麼說服我的老闆?

Jonathan:對。

DJ:作為一間公司和雇主,我們改了幾件事。第一件我們改的是,我們不為無障礙收費。它不會變成一張發票,因為它本來就不該是。

Jonathan:所以你猜你會把它納入你的範疇,你會說,好,這是我們會正常開發你的 App。然後,好,你想要額外的無障礙。就這樣。

DJ:對,這很有意思。我們不會那樣做。你不會把無障礙當成附加的東西,就像你不該把動畫當成附加的一樣。你不會在事後才把設計加進去,因為那樣會讓設計東西變得很難,對吧?所以現在我們打造新東西時,它就是無障礙的。那不是一個選項。

Jonathan:選項。所以它就只是,那就是規格。對。它不是、它不是一行。沒有、沒。

DJ:它不是一個項目。它不是專案裡的一個要點。我們有時會在客戶要求時列出它。他們說,可以請你讓它無障礙嗎?那我們就會把它放進去。

Jonathan:你看,我甚至也有那種假設,以為它像是額外的一塊。你不會。

DJ:假設它像是額外的一塊。你不會。對。你放在頁面上的每個按鈕都應該是個按鈕。你放在頁面上的每個連結都應該是個連結。而對那些知道我在說什麼的人來說,這是常識。但對很多人來說,那不是他們的做法。

Jonathan:那這又怎麼歸到最佳實踐的部分?因為你可以用便宜的方式做事,就是不要讓每個東西都變成連結、每個連結。對。對吧?

DJ:對、對、對,這是一個很有意思的評論。這又回到我怎麼說服我老闆。目前,身為程式設計師,人力非常稀缺。有好多工作機會。現在,對大多數已經在程式設計領域工作過的人來說,要找到新工作不會太難。這有個前提,我只了解西方目前的狀況。我完全可以想像在世界其他地方,這很難,但現在在西方,並不難。如果你跟你的老闆說他們應該在乎這件事,他卻無法被說服,那你應該離開。

Jonathan:嗯哼。

DJ:因為如果你要把這變成成本之爭,你會輸,因為他們眼中看到的只是那要花更多時間。現在,如果你採用最佳實踐,對吧?所以如果你用網頁,如果你用網頁標準,如果你了解這些,如果你投入時間去了解這些事,那麼對……低到中度互動性的應用來說,要做到無障礙並不會花更多時間。

Jonathan:嗯。因為你就只是把它當作一部分來做。

DJ:對,因為你用的是比我聰明的人想出來的東西,它們預設就是無障礙的,對吧?想想輸入欄位。當你要輸入時,你得把名字填進輸入欄位。有個 HTML 元素,叫做 input 元素。如果你預設使用 input 元素,它會讓你用鍵盤,也能用語音指令來填寫。如果你用……

Jonathan:對。

DJ:一個不同的元素,比如 div,然後你試著讓它表現得像 input 元素,你大概不會考慮到別人早已想過的所有事情。而這就是重點,對吧?所以如果你不試著做特別的事,也不覺得自己比那些人聰明,你大概就會用標準。而如果你用標準,你就已經完成一半了。至於其他的一切……

Jonathan:因為對我來說,這是最有說服力的論點。這像是最有說服力的論點之一,就是照東西被設計的用途來用,對吧?

DJ:對,而且你其實會讓進公司的新人更容易看懂你的程式碼。你會讓剛起步的人更容易上手,因為你可以把他們指向外頭已經存在的所有那些文件。那不是……你在這裡不是在重新發明輪子。你不是在重新發明輪子,而這就是重點。而且因為我現在,在獨自研究這個多年之後,因為我決定要在乎,我知道很多事情其實並不難做。

Jonathan:你

DJ:所以如果你去做它們,如果你把它們變成你日常工作的一部分,它們其實會讓每個人都更容易做到。這會讓一切對每個人都更具包容性,也會讓這件事更常見,又會讓它更容易,因為……然後更有趣,然後……對,沒錯。全球資訊網的發明者之一……

Jonathan:嗯,對,沒錯。

DJ:我不記得那句話的原文,但它在那場演講裡。你如果把這個放上網,應該連結它。對,我一定會把它放進節目筆記。但他说,網路是為了、它是為了讓任何人、每個人使用。

Jonathan:對,我一定會把它放進節目筆記。

DJ:所以全球資訊網整個互連的基礎,是為了讓更多人取用更多資訊。一開始是大學開始分享他們的研究細節。當然,也有政府想,喔,也許我們可以把它用於軍事,就像 GPS 一開始那樣。但本質上,它是一個科學專案,他們沒想到它會變得這麼大。但當他們發現,透過把電腦彼此連接、分享資料,你其實可以更快做更多工作,而且你能取用一座龐大的資料庫,不需要把它寫進會過時的書裡。

Jonathan:對。你可以說,可及性是網路創立的支柱。對,沒錯。

DJ:網路的支柱,你可以這麼說。對,沒錯。它蓬勃發展。而我們需要維持那樣。我們需要打造有包容性的產品。這不只適用於網頁應用、不只適用於行動應用,而是適用於一切。所以親愛的 Google,當你為你的 Google Photos 設計一套標籤系統,然後開始把黑人標記成猴子,因為你沒有在你的額外資料集裡放進猴子,那只是不專業。撇開社會層面不談,對吧?所以撇開年齡歧視、身心障礙歧視和種族歧視不談,如果你不去想……那就是不專業。

Jonathan:對。

DJ:怎麼讓你的產品有包容性,那就是不專業。那就是我的立場。我知道,人們說,喔,你很在乎這個。

Jonathan:嗯。

DJ:但這是件有趣的事。我個人並沒有從中得到什麼好處。我個人並沒有從中得到好處,對吧?我在幾乎每個意義上都是身體健全的。當然,我有點怪,小時候被摔過,有這回事,但除此之外,我自己並不需要這些東西,而那不是我覺得人們該在乎的原因。而是我真的希望其他人能看見、聽見、使用我打造的任何東西。這不代表我不會犯錯,我寫的程式碼有一大堆完全無法使用或不具包容性,但當我發現時,我會試著把它改得更好。而那並不是,那並不是像,喔對,這是我們可以做的事。不,當有人對我說這個,這是我覺得我必須做的事。對,否則他們就無法使用它。

Jonathan:而那,對,這就像是不用想也知道。確實是!

DJ:確實是。這真的是想都不用想的事。

Jonathan:但這很好,因為這意味著你帶來了一些新鮮的東西,嗯,甚至不算新鮮,就只是你把一些東西重新帶回前台,比如說全球資訊網所奠基的,它像是一種核心價值,我覺得那很重要。你不想忘記那點。因為對很多人來說,科技其實相當難以觸及。而對它的知識,仍然是一小群人比較容易理解。

DJ:別忘了。嗯,想想大多數程式語言都是英文的,好像假設每個人都說英文。沒錯。對吧?想想很多程式語言需要特殊硬體。比如……網路連線。對。還有高速網路連線,這越來越被要求。而這也是……這些也是我對人們提過的事。你知道,他們會寫一些只有你有 Mac 或 Linux 才能做的東西。我就想,有很多人用 Windows。

Jonathan:我們該把它寫回去,從前,如果你有一塊五,六呎的馬達,想像一下,我記得。

DJ:什麼馬達,想像一下。嗯,我確實記得那些時候。對。你父母想打電話,而你正在上網。

Jonathan:你在

DJ:沒錯,而他們打不了。所以我不知道這是不是現在這一代的問題。我不知道這是不是很多錢都在西方的問題。我們大致上都能使用高速網路,這讓人很容易忘記不是全世界都有。但這也是不難想到的事,對吧?對。

Jonathan:沒錯,而它不能。對,但我的意思是,這是段很有意思的對話,因為 Exercism 試著為世界上盡可能多的人創造學寫程式的機會。這意味著世界上人口成長最多的地方是在新興市場。對,印度、南美洲、非洲,而在世界那些地區,目前網路連線要來得更加不穩定。所以,對,我們是不是在打造人們無法使用的程式,因為網路無法應付,但你知道,那也一直是一個要考量的點。對。有很多不同的事要思考。

DJ:對,當然。但就那點來說,當然,新興市場裡也有很多人網路連線很好。也有很多人在,比如說我旅行最多的地方加州,完全沒有網路連線,因為根本沒有訊號覆蓋,這很有意思。但永遠要連線,這個高速的要求,這個快速裝置的要求,這個昂貴機器配備的要求。這些……

Jonathan:連線。

DJ:它們不全然是任意的,但有很多容易的事我們可以做,從編列預算開始。想想預算的規模,對吧?你要透過網路線傳多少東西?到提供離線模式的存取,到確保你的程式碼能搭配輔助科技運作,這些都不難,都不難起步。所以它其實很容易開始做得更好。而這也是其中一個原因,就是,如果你想想,這也是我留在 Exercism 的原因之一,因為這裡有那麼多不同的意見,但每個人想要的都是同一件事,我覺得這很有意思,對吧?所以有這麼一大群維護者和貢獻者,還有導師,他們全都想要同一件事。每一個人或多或少都說,我要幫助別人學會一種新的語言。我不太在乎他們有多好,但我會幫他們變得更好。

Jonathan:對。

DJ:我覺得那讓我想留下來。太棒了。這就是我大概還在這裡的原因。還有,Jeremy 喜歡我抱怨。所以就是這樣。

Jonathan:就是這樣。太棒了。關於整個無障礙主題,真的很有意思。在我們得離開之前,我還有兩件小事想問你。第一件是,我們很想深入探討這個概念,就是一個你會為它在科技領域裡誓死捍衛的理念,或所謂的「山丘」。我們想談這個、並用正面的角度來談的原因是,在科技業裡有很多意見。我們很想針對這些事來聊聊,好好聊聊這些不同的東西。所以,在科技業裡,你會準備為之誓死捍衛的那座山丘是什麼?用一種正面的方式來談,就是這是我會真正極力主張的。你剛剛在我們的對話裡可能已經稍微提到過了,但有沒有什麼是你會說,這就是我認為最關鍵、我會為之奮鬥的事?

DJ:對,來吧。有太多可以選了,而顯然讓全世界的軟體都有包容性會是最容易抓到的。但說來有趣,我不覺得那是我最在乎的。尤其是過去幾年,有很多、很多……很大聲的人,做出不太令人愉快的行為。這跟守門(gatekeeping)之類的事有關。像是,喔,如果你沒上過大學,你就不知道自己在說什麼,對吧?或者後端比前端複雜的這種論調。現在這裡,這又連回 Exercism。但我希望我們會看到的是,那些論調毫無意義。因為對一個前端的人來說,如果你不知道自己在做什麼,後端就是難的。

Jonathan:這就像你從沒做過卻想當砌磚工一樣。對,但你知道後端有多難……

DJ:但你知道前端對從沒做過的後端人來說有多難嗎?當我提出這個無障礙主題時,他們就說,喔,我不處理那個,因為我做後端。寫嵌入式系統、晶片、火箭軟體的人,他們才華洋溢。他們面對的限制比我們能想像的多得多。然後還有遊戲程式設計師,他們在行內非常厲害,試圖想出怎麼讓你的 GPU 容納那些全新、出色遊戲的所有貼圖。那是截然不同的處理方式。但這正是它有趣的地方。讓程式設計、讓談論程式設計變得有趣的,就是它有多不同,以及你有多不懂它。而這就是我們該做的,而不是說,喔,你是這個、你是那個,負面的形容詞、副詞、名詞,隨便。對。去對它感興趣,因為你可能從中學到東西。現在,確實有些公司、確實有些個人、也有些團體在做這件事。有那麼多領域之間的交會,是人們沒意識到的。HTTP2 基本上是在 UDP 上跑 TCP,一種網路協定,這在線上 RPG 裡非常常見,它們需要能在沒有持續連線的情況下推送多得多的資料。React,一個你可以用來為網頁和手機打造反應式應用的框架之一,用的是所謂的雙重渲染技術,這來自遊戲。但反過來也是,我們現在網站上所有的輔助增強功能,也正在被引進遊戲世界。對吧?尤其微軟在一些較新的遊戲上做了很多努力,加入更多選項,比如字幕,比如選單的旁白,還有像難度曲線之類的東西。所以我們知道程式設計師獲取知識、學習的方式不同,學習的速度也不同。而使用產品也是一樣的道理,不論是介面,像是在機器上買票,或玩遊戲,其實無所謂。而實際上,正是所有這些不同領域、所有這些不同角色之間的交會,會帶我們到一個一切變得更好的地方。字面上的一切都更好。因為你確實看到過去幾年那些出色的重大成果,都是跨領域的交會。對吧?在這些領域之間。

Jonathan:你

DJ:人們會守門,但當你那麼做的時候,你是在阻礙自己。所以,我認為,我會誓死捍衛的那座山丘,就是我會說,如果你不那麼做,你是在幫自己,對吧?所以這不只是包容,而是對其他語言、其他領域、其他角色保持開放,而不是說,我的比較難、我的比較複雜、我的比較好、我的隨便。這也是帶來很多創新的原因,因為有人在試圖為標準加上一個小東西時,就打造出一個新的框架。如果你用正面的角度想,這確實帶給我們更多知識。

Jonathan:好,那今天給你的最後一個問題。對。你有什麼建議想給社群,任何方面都可以?可以是食物、運動,或隨便什麼。如果有一個建議是你想給我們社群這一週的,那會是什麼?

DJ:對。一個建議。這很有意思。我唯一的建議會是……當你來到荷蘭,要明白荷蘭比阿姆斯特丹大。如果你已經住在荷蘭、住在阿姆斯特丹,要明白環線之外還有個世界。你知道你是誰。而如果你來自省分,當別人叫你鄉巴佬時不要生氣。因為你就是。

Jonathan:就這樣。這就是 DJ 今天給的好建議。DJ,非常謝謝你撥出時間。我們現在要去吃點晚餐了,但我希望各位聽眾都喜歡。DJ,非常謝謝你這週臨時抽空來錄這一集。見到你真好。聊得很愉快。我們會在節目筆記裡放上所有連結、演講,以及 DJ 提到的那些東西。但 DJ,謝謝你。不客氣。真的很開心你能來,我們很感謝你為 Exercism 所做的一切,以及你這個人。非常謝謝你。好。

更多來自我們社群的故事

聆聽、學習,並從我們的社群成員身上獲得啟發。