StackOverflow 使用經驗談

前言
我想大部分的開發者應該都有使用StackOverflow(以下簡稱SO)的習慣,泰勞我也不例外,起初我跟大部分的使用者一樣,遇到問題時上來爬爬文,找到答案複製貼上,問題解決了,程式可以跑了,就將那個分頁給關閉。後來因為一個契機讓我改變了一點想法,進而改變了我的使用方式,我認為這樣的改變對我非常有幫助,有感受到其帶來的正面影響。因此泰勞想藉由這篇文章分享我的使用習慣與經驗,以及我對SO社群的觀察與其潛在價值。


背景
SO是一個全世界開發者聚集的地方,以前我認為所有問題都一定能在上面找到答案,即便是自己發文發問,也都能在很短的時間之內得到回覆。有一次讓我印象很深刻,我在研讀一本探討Android安全的書,其中有一章不太懂,於是上SO搜尋相關問題,意外發現SO上的回答者竟然就是該書作者,當時他的名聲(Reputation)有兩萬九千多分,打從心底佩服這位大師,也是從那時開始,期許自己終有一天要成為SO上的貢獻者。


契機
約莫3年前準備要從學校畢業的某個悠閒早晨,不知道是哪根筋不對,在SO上搜尋了一些跟我所學領域相關的關鍵字,無意間看到一篇沒有人回答的問題,看起來蠻有趣的,而且是個測試一下就能得出答案的題目,並不是那種需要經驗或是著重觀念的問題,想說閒著也是閒著,就來做做實驗吧!經過一個早上的測試,很順利的得出結果,此時心裡有點複雜,因為我在猶豫是否該上SO寫下我的測試結果,我猶豫的原因是SO是全世界開發者聚集的地方,在上面回答一定要非常謹慎,必須確保答案是正確的,否則有可能會誤導其他人,在猶豫的同時感到的是無比興奮,我從來沒有想過我會有機會在SO上回答別人的問題,現在這樣的契機就在眼前,再不快點恐怕就要飛走了。經過幾分鐘理性與感性的糾纏,最後我選擇勇敢的跨出那一步,貼上了測試結果與一點點的文字敘述,此時我的心跳開始加快,血壓飆升,顫抖的右手小心翼翼的按下"Post Your Answer",此時彷彿置身於萬籟俱寂的空城,異常幽靜,映入眼簾的是我的答案出現在SO上面,右下角標示著我的姓名,大頭照以及"answered 7 secs ago",此時我的心情還是很複雜,害怕被其他開發者質問或挑戰,甚至是被扣分檢舉然後帳號被封鎖等等最壞情況,另一方面則是很開心,很開心我能夠為其他開發者解惑,成為SO上的貢獻者,想著想著嘴角不自主的根著上揚,是那種發自內心的笑,心靈上的快樂,我記得當時人在實驗室裡,我想其他同學們一定覺得我怪怪的,怎麼自己一個人突然開始發笑傻笑。過了幾小時,發問者很快的"Accept"我的答案,並且給了一個"Upvote",此時我的名聲一瞬間增加了25分,這要我怎麼隱藏我心裡的喜悅,一整天都眉開眼笑,走路像在飛,感覺水喝起來像珍奶,白飯吃起來像牛排,看路人都和譪可親,身邊夥伴都變俊男美女,連平時不苟言笑的教授,好像也對我微笑了。


疑問
經歷過那特別的一天之後,我除了感到意外、開心和經驗值提升,我還開始思考為什麼我要在SO上回答問題?為什麼有那麼多的開發者願意在SO上分享資訊以及幫人解惑?甚至有些人願意成為每天幫忙SO審查、修改或刪除貼文的Moderator?那是個需要被審核且經由票選才能得到的身份,據說沒有薪水。這背後到底有什麼讓人為之付出的理由?以下分享一點我個人的看法。


履歷
我想起幾年前去某間頗具名氣的軟體公司參觀,該公司的某位主管說面試時他會注意履歷上是否有附上Github連結,通常他會將這樣的人列為優先審核的對象,尤其是在Github上有推送PR或是有多人關注專案的人。如果用同樣的角度去看SO,很快就會明白它有著一樣的價值,除了幫助別人感到快樂以外,SO其實就是一份履歷
它不但紀錄著你的軟體開發、學習經歷,還能夠評斷一位開發者的專業、專長、邏輯和基本的英文能力,以及SO社群所有使用者給你的客觀評價(Reputation),如果一位開發者在SO上回覆Android相關問題超過1,000篇,並且得到3,000多分,回覆資安相關問題超過50篇,獲得200多分,你還需要懷疑他的專業嗎?他在Android和資安領域的能力毋庸置疑,而上述這位開發者幾年前被LINE挖去日本當資安顧問了,雖然我不確定他被挖角的原因和管道,但如果我是老闆,看到擁有這樣條件的人,我也會想重金聘請他加入!

習慣
我為了要增加更多機會更快速得提升自己名聲(虛榮心作祟XD),改變了一點我使用SO的習慣,在此分享給各位。

(1) 設定好幾個常用的標籤,例如:javagitdocker 等等,每天上去瀏覽新的發問,或是搜尋尚無人回覆的舊問題,當作是在解題、解Bug,如果真的不會或是解太慢,也能看看別的大師回答,也有機會能跟他們交流意見,這麼做絕對不會讓你空手而歸。
(2) 當我遇到問題並且自己解決、同事協助解決剛學到任何新技術或是某些工具更新變更使用方式時,都可以主動上SO搜尋看看是否有人有相同的困擾,或是一些相關議題的討論,有些問題不是只有一種解決方式,貼上你的看法或方法跟大家交換意見,都是很好的習慣。

養成上述習慣不僅能觀摩學習、為自己製造更多機會培養基礎英文能力,也能藉由每天瀏覽新的發問,得知最近非常受到歡迎的工具、程式語言和軟體框架(Framework)等等,大家都在嘗試使用和討論的東西,身為每天都需要學習新知的開發者而言,怎麼能置身事外呢!

觀察
接下來要來分享一點長時間使用SO所觀察到的事,有些顛覆了我對SO舊有的印象,有些則是讓我對他們的創意與跳脫框架的思考能力感到敬佩,也非常值得學習。

不是所有主題都立刻會有大師回答
還記得我在文章開頭提到:「以前我認為所有問題都一定能在上面找到答案」這句話嗎?自從我開始接觸 Android RenderScript 才發現不是這麼一回事,有些非常少數人討論(或是很新)的主題,可以找到好幾篇根本沒人回覆或是陳年已久的發問,甚至連觀看次數都少的可憐。如果你是某些冷僻技術的佼佼者,你肯定會有很多得分機會,千萬別羞於分享您的知識!SO需要更多領域的人才加入。

有些人負責幫特定產品的客人解惑
我確實有遇過幾位專門負責回答特定領域的專家,他們回答的那些領域(或者說是軟體工具),全出自同一間公司。我曾經發了一個有關於 Jfrog-cli 的問題,很快有位大師回覆我,我就很好奇的看了一下他的資料, 發現他專門回答 Jfrog-cli 和 Artifactory 的問題,再看看他的自我介紹,原來他就任職於 Jfrog 這間公司。我從來沒想過SO能成為一個發現客戶問題並且與客戶交流的平台,同時也有助於推廣該公司的產品,很聰明吧。

SO的設計比我原本想像的精細很多
我原本認為SO就只是一個提供問答功能的網頁,但當我深入使用之後,才漸漸發現它會依據名聲來更改設定或是開放權限,例如:200分以上廣告會變少500分以上可以參與部份審核,也就是說它開放具備一定名聲的使用者,在SO上從事更多活動,讓這些具備一定開發能力(客觀來看)的開發者一同維護SO這個社群,有效減少重複性的問題、垃圾文章、誤導性的言論等等。另外,他們每年也都會舉辦Moderator的徵選活動,條件當然會更嚴格,雖然據說沒有薪水,但他們似乎會僱用部份Moderator為社群管理員(Community Manager)。

SO最近幾年也推出類似人力銀行的功能,許多國外知名大廠都有在上面徵才,通常都會明確寫上薪資條件,有些會提供簽證贊助(Visa sponsor)甚至是搬遷補助(Paid relocation),也有部份是遠端工作,這是我最感興趣的種類,不過通常都有時區限制,目前符合台灣時區的並不多,少部份沒有時區限制,但很有趣的是它也沒有官方辦公室(No office location),到底有沒有問題阿?XDDD

最後總結一下,StackOverflow is run by you!它是一個給開發者發揮的舞台,通常不會因為貢獻而直接得到報酬,但你會獲得很多額外的經驗與機會,就像貢獻Github上的開源專案一樣,最重要的是幫助別人真的是件快樂的事

留言

張貼留言

這個網誌中的熱門文章

程式語言常用之符號與詞彙 - 中英文對照

Repo 實用指令

什麼是 Bootloader?