ACmQRMl
前幾天在FB上看到許多網友在傳閱這張照片, 找了一下Google, 發現這張圖片源自Reddit的Programmer Humor channel, 這張圖片大概只有寫過code的程式設計師才看得懂的梗, 如果您看不懂, 那麼您也許不是程式設計師, 如果您是程式設計師, 那還看不懂, 那麼我要如何定位你? 你可能已經很久沒寫code, 不然你也許是很努力的工程師, 因為小編以前聽過一句話- 努力的工程師寫自己的code, 聰明的工程師會利用別人寫的code.
我們先不用爭論上面那句話到底對不對, 來看一下一則更早之前的新聞
這篇文章指出一位資訊安全顧問Scott Helme揭露了Nissan app這件糗事, Nissan app的iOS導航權限設定竟然出現了以下字串
The spirit of stack overflow is coders helping coders
這段字串很有可能Nissan app開發者在Stack Overflow找到適合的答案後直接copy/paste到他們的code裡面, 文中還將Stack Overflow的網址列了出來, 有興趣可以去看一下, 這篇文章的作者還一直告誡開發者
Never copy and paste code from the internet you don’t understand
我們從以上的最有生產力的Exception Handler這個笑話到Nissan App的Copy/Paste事件, Stack Overflow 似乎成為工程師不加思索問題直接去找答案的罪惡的淵藪. , 網路還出現不少嘲諷的圖片, 其中最經典的應該是這一本 Essential Copying and Pasting From Stack Overflow

程式設計師使用Google找答案是罪惡嗎?

很巧的, 小編其實看到以上的新聞沒多久後就在灣區日報看到這篇文章
答案是Yes, 而且用的還比剛入門的工程師還多, 作者還引述了一句愛因斯坦的名言
“Never memorize something that you can look up.” – Albert Einstein
意思是不要去記憶那些可以檢索到的資訊, 愛因斯坦講這句話的時候應該沒有想到這句話會被這篇作者引用, 讓你用Google Search時不會有罪惡感 😄
不過這篇作者想要表達的應該是使用Google search的正確心態, 也是我們該學習的精神
Good programmers also know that they cannot be the first one to have encountered a problem. They use Google to research possible solutions, carefully evaluating the results and consciously separating the wheat from the chaff; they don’t blindly follow or copy-paste any solution they come across
Good programmer不會盲目地順從或是copy/paste別人的code. 專家級的程式設計師是帶有偏執狂, 自我懷疑, 對於他人的技能也可以提出質疑. 文中的作者還有舉一個他要在Java中使用Netty開發一個Web server來處理遠端手機遊戲persistent socket的問題, 他從未使用過Netty, 於是他利用了23組關鍵字去收集他想要得到的資訊, 可以去看一下這位作者下的關鍵字, 也可以順便學習有經驗的開發者是如何利用Google Search起始一項陌生技術的開發工作. 這些關鍵字小編看了一下是有意義的, 這位開發者很有經驗, 他在開發前應該已經預期會遇到哪些問題. 這也證明資深的工程師遠比剛入門的工程師更會使用Google Search. 作者最後說了這句話
Google is software developer’s best friend

那麼沒有Google前的程式設計師遇到問題怎麼辦?

小編剛接觸Google時, 已經有4年的軟體開發經驗, 所以這個問題小編還可以回答得出來, 這個問題應該還可以再切細一點, 沒有Google前已經有網際網路, 沒有Google前沒有網際網路, 小編遇到的狀況屬於前者

  1. 訂閱News group , 當時如果遇到問題, 最流行的應該就是到News group, 或是BBS上去爬文或是找網友討論, 情境跟目前其實很像, 只不過現在的搜尋技術做的實在比以前好太多
  2. MSDN 如果在MicroSoft Windows平台底下開發程式, 應該都用過MSDN找文件, 範例程式來看. 當時的MSDN對於Windows程式設計師的地位相較於現在的Google search不遑多讓.
  3. 多看書. 當時資訊貧瘠, 除了以上兩項資訊來源, 程式設計相關書籍中的範例程式大概就是最好的補充養份.

如果是後者沒有Google也沒有網際網路的程式設計師怎麼過活呢? 剛好看到這篇國外文章, 有興趣可以看一下去體會沒有網路也沒有Google的程式設計師是怎麼走過來的

What was it like to self-learn programming before Stack Overflow ?

衍生閱讀

Kite wants to be every developer’s pair-programming buddy

這篇文章, 也許跟開發者沒有關係, 但是裡面的一些觀念跟您使用Google Search心態可大有關係

要培養「會思考」的團隊,主管千萬別做這件事

裡面提到扼殺創意的原因

  • 第一期(初期):直接給答案,立即解釋為什麼
  • 第二期(中期):直接給答案,員工問才會解釋為什麼
  • 第三期(末期):直接給答案,只要員工照做,從不解釋為什麼

可以思考一下如果Google search是扮演直接給答案的角色, 而您從不質疑, 從不問為什麼?  您的創意是不是也逐漸消失中?

歡迎加入Soft & Share團購社團, 目前有JetBrains開發工具, 與Pragmatic電子書團購.

本文在FB程式人雜誌社團引起許多迴響, 網友給了不少好的評論, 歡迎加入討論

喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

你正使用 WordPress.com 帳號留言。 登出 / 變更 )

Twitter picture

你正使用 Twitter 帳號留言。 登出 / 變更 )

Facebook照片

你正使用 Facebook 帳號留言。 登出 / 變更 )

Google+ photo

你正使用 Google+ 帳號留言。 登出 / 變更 )

連結到 %s

分類

人生與成長