0
本文作者: 三川 | 2017-01-20 16:34 |
“No one is omniscient and that's ok. ”
這句讓人倍感溫馨的話,意為“沒有人是全能的,這很 ok”。每當(dāng)你遇到不知如何去做的事情,怎么辦?你會(huì)谷歌、知乎、Quora、或者百度一下怎么做。但你也許會(huì)好奇,有沒有更簡(jiǎn)單的方法來找到你想要的答案?
據(jù)說在開發(fā)者江湖,百度一下的是小白,有問題找谷歌的是大多數(shù),會(huì)去在線數(shù)據(jù)庫、碼農(nóng)社區(qū)找答案的一定是老司機(jī)。
2016 年,搜索引擎開始在機(jī)器學(xué)習(xí)領(lǐng)域發(fā)力——承諾幫助開發(fā)者搜索 syntax(語法)。其中,必應(yīng)搜索(Bing)與碼農(nóng)社區(qū) HackerRank 合作,幫助開發(fā)者更快找到代碼問題的答案。語法庫 SyntaxDB 更是宣稱要成為碼農(nóng)們的搜索引擎——取代谷歌成為世界最快速的編程問題參考來源。當(dāng)然,這并不意味著遇到問題的程序員們不會(huì)沖向 Stack Overflow 或者其他開發(fā)者社區(qū);但這預(yù)示著編程問題的搜索正在變得更輕松、便捷。
絕望呼救的人
碼農(nóng)世界的明星、微軟 IT 工程師、媒體人 Scott Hanselman 曾經(jīng)遇到過一個(gè)很有意思的問題——
“我到底是一個(gè)(優(yōu)秀的)開發(fā)者,還是只是個(gè)擅長用谷歌的人?”
這個(gè)問題沒有答案。但提問者的解釋是:“走出自己的舒適地帶(comfort zone)會(huì)使我們成長”。意思是當(dāng)我們處理原本不知道如何去做的任務(wù),以至于不得不用谷歌、去在線社區(qū)尋找答案時(shí),會(huì)獲得新的知識(shí)與技能,提高職業(yè)水平。
但在宣布該平臺(tái)與必應(yīng)的合作之時(shí),雷鋒網(wǎng)獲知,HackerRank 的CEO 、聯(lián)合創(chuàng)始人Vivek Ravisankar 發(fā)表了他的觀點(diǎn):當(dāng)你遇到一個(gè)不確定該如何處理的難題,搜索解決方案是“今天的程序員所面臨的主要生產(chǎn)力陷阱之一”。他進(jìn)一步解釋:
“如果你想要改進(jìn)某個(gè)算法、或者學(xué)習(xí)新算法,你用搜索引擎搜索,然后考慮該點(diǎn)擊哪一個(gè)藍(lán)色鏈接。之后,你需要把所有搜到的東西移到你的文本編輯器里面,你不停嘗試、不斷遇到錯(cuò)誤,直到你找到合適的解決方案。”
Vivek Ravisankar (中)
“SyntaxDB 為經(jīng)常使用谷歌搜索 syntax 的人而設(shè)計(jì),它的目標(biāo)是成為世界最快的編程參考來源?!?/p>
SyntaxDB 由 Anthony Nguyen 創(chuàng)立,當(dāng)時(shí),他還沒有進(jìn)入 Shopify 成為軟件工程師,正在女王大學(xué)(Queen’s University)學(xué)習(xí)計(jì)算機(jī)工程和經(jīng)濟(jì)學(xué)課程。該網(wǎng)站支持九種語言:Java, JavaScript, C, C++, Swift, Go, Ruby 和 Python,并提供 Slack, DuckDuckGo 和 Visual Studio Code 的整合。
SyntaxDB 網(wǎng)頁 UI 簡(jiǎn)潔,使用較簡(jiǎn)單。當(dāng)用戶鍵入語言名稱,或是某個(gè)概念,SyntaxDB 會(huì)給出相關(guān)答案。搜索結(jié)果按照最好的答案排序。當(dāng)用戶點(diǎn)擊某個(gè)概念的鏈接,其定義、syntax、相關(guān)注解以及案例會(huì)展示出來。
與 HackerRank 的聯(lián)姻后的必應(yīng)
對(duì)于這樁合作,Vivek Ravisankar 在博客里寫道:
IT 工程師們通常利用搜索引擎,來搜尋諸如 Stackoverflow、Stackexchange 等網(wǎng)站或各個(gè)博客中的答案。這帶來學(xué)習(xí)編程語言、玩代碼的新方式?!暗F(xiàn)在,你有了一個(gè)更為順暢的新選擇——它不僅能‘吐出’你需要的代碼答案,還能實(shí)時(shí)編輯、擺弄代碼。這不需要任何 IDE 安裝,能節(jié)省你以往浪費(fèi)在搜索頁面和代碼編輯器之間來回切換的時(shí)間?,F(xiàn)在,代碼在必應(yīng)搜索引擎的實(shí)時(shí)編輯器運(yùn)行。
必應(yīng)“UX 特征與分享工具部”工程負(fù)責(zé)人 Marcelo De Barros 解釋道:
“除了學(xué)習(xí)在某個(gè)語言中特定算法、代碼是如何編寫的;用戶們還能檢查,同樣的方案是如何在其他編程語言中實(shí)現(xiàn)的。這為編程語言們提供了羅塞塔石碑般的模型 ”
雷鋒網(wǎng)注:這是極大的贊揚(yáng)(吹噓)。羅塞塔石碑是同時(shí)刻有希臘文字、古埃及文字和埃及通俗文字的石碑,是歷史學(xué)家破譯古埃及文字幾乎唯一的信息來源。把必應(yīng)與 HackerRank 的合作成果與其相提并論,表示微軟認(rèn)為它為不同編程語言之間的理解與轉(zhuǎn)換,打開了新窗口。
在項(xiàng)目描述中,Anthony Nguyen 提供了一個(gè)鏈接,導(dǎo)向了一個(gè)被超過 500 個(gè) Reddit 用戶回答的問題:
碼農(nóng)老司機(jī)使用谷歌搜索的頻率有多大?(How Much Does an Experienced Programmer Use Google?)
這個(gè)問題也沒有標(biāo)準(zhǔn)答案。雷鋒網(wǎng)看到,一個(gè) Reddit 用戶回答:“如果你每天用超過四種語言寫代碼、修補(bǔ)漏洞,一些小細(xì)節(jié)會(huì)不斷忘掉?!绷硪粋€(gè)用戶解釋:“學(xué)會(huì)怎么用谷歌是工作很重要的一部分”。還有一名為 devsquid 的用戶解釋說:“當(dāng)你的編程知識(shí)增長,你的問題變得更具一般性。”
名叫 BlueRenner 的用戶表示,使用谷歌是最高效的方法。把代碼放入文本編輯器是編程中最不重要的一步。知道放什么、放在哪里,才是最重要的工作環(huán)節(jié)。一名有 20 年工齡的老碼農(nóng)表示,沒了谷歌開發(fā)者要怎么活?沒人能把所有文件都記住。
最后,署名為 gigitrix 的用戶做了個(gè)很精辟的比喻:“谷歌是我大腦的 SSD,而大腦的 RAM 更適合存儲(chǔ)問題空間,而不是 API 文件和語言細(xì)節(jié)?!?/strong>
via jaxenter
相關(guān)文章:
AIR 023 | 從搜索引擎到行動(dòng)引擎,前谷歌科學(xué)家如何打造智能搜索
Facebook用AI變身強(qiáng)大搜索引擎,要挑戰(zhàn)谷歌?
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。