Quantcast
Channel: 工程師 – TechOrange
Viewing all 585 articles
Browse latest View live

衝上 GitHub 熱門第四名!Python 機器學習最強教學資源,新手工程師快存起來

$
0
0

【為什麼我們要挑選這篇文章】想自學機器學習技術,但超怕山多的專有名詞和看不懂的教學嗎?GitHub 有個 Python 機器學習新手包,一天內衝上熱門第四名。內容名副其實對菜鳥超友善,新手工程師還不快存起來。(責任編輯:陳伯安)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/ 銅靈

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  jobs@fusionmedium.com

15 日,有一個機器學習人氣課程衝上 GitHub  熱榜,一天之內新增了近 700 star,一下子登上熱門排行榜第四名。

這套課程名為 A Machine Learning Course with Python Python 機器學習課程),其介紹中只有一句話:

這是一套容易理解並且簡單的 Python  機器學習課。

入門級資源、門檻降到最低,這讓不少網友心裡癢癢,推特網友紛紛轉推,表示期待著有空好好學習一下。

新手也能懂的,機器學習入門教學

「容易理解」的 flag  絕對不是白立的,從課程設置上就能看出,裡面的內容絕對友好。

這套資源主要在解決四個問題:

  1. 機器學習的定義是什麼?
  2. 什麼時候開始流行,發展趨勢是什麼?
  3. 機器學習的類別都有哪些?
  4. 最常見的機器學習算法以及如何實現它們?

針對這些問題,這套課程的設置了如下目錄,共分為三章:

前言

  • 機器學習概覽

第一章:核心概念

  • 交叉驗證
  • 線性回歸
  • 過擬合和低度擬合
  • 正則化

第二章:監督學習

  • 邏輯回歸
  • 樸素貝葉斯分類
  • 決策樹
  • K-近鄰
  • 線性支持向量機

第三章:監督學習

  • 聚類
  • 主成分分析
  • 第四章:深度學習
  • 多層感知機
  • 卷積神經網路
  • 自編碼器

不要看到這些專業詞彙就被繞暈了,別忘了這可是套小白可食用的入門課。在每一個小節之後,都又細分出了更多小單元。比如在邏輯回歸這一節:

包含了邏輯回歸的簡略介紹:

使用方法:

然後才是需要一些門檻的數學原理:

最後,還附上了相關案例及其程式碼,絕知此事要躬行:

雖然這套課程中沒有影片,但裡面用到了大量的動圖元素方便理解,選擇省流量課程的好去處。

關鍵是,它還完全免費呢。

好資源大放送

課程傳送門: 點這

GitHub 傳送門:點這

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈GitHub 热榜第四!这套 Python 机器学习课,免费获取还易吸收 | 资源 〉,首圖來源:unsplash, CC Licensed。)

你可能感興趣

GitHub 遭駭客攻擊!勒索交出比特幣贖金,不然就公開你的私有程式碼

Python 早就落伍了!AI 權威 LeCun 直言:深度學習需要更靈活的程式語言

最新「數據科學」自學清單:六個月無師自通,菜鳥新手趕快存起來


怎樣才能算是一個卓越的 JavaScript 開發者?看你怎麼對待屎一樣的 code

$
0
0

怎樣才算是一個優秀的 JavaScript 開發者?JavaScript 開發者網站 The Full Stack 作者 Dor Tzur 撰文 分析了如何辨別出卓越/優秀/平庸/差勁的 JavaScript 開發者,雖然一個 JavaScript 開發者到底有多優秀可能難以有準確的數據去衡量,問 10 個不同的工程師可能他們會說出 10 個不同答案,但或許你能看看以下 Dor Tzur 所說有沒有道理。

在進入正題之前,先來一個事實爆擊。

所有的開發者當都會寫出可怕的 code,那些可恥的、爛到爆的 code,儘管你知道一個成功的工程師背後可能都有一堆爛 code,但你就是不希望別人看到的那種狗屎 code。我們往往都會為這些屎一樣的 code 找理由,可能是:

「時間來不及啊!」、「codebase 就真的太爛了」或者有時候你在陌生的 project 裡面寫幾行 code,這事情雖然不是什麼大事,但也不能麻煩別人,本來負責這 project 的同事又休假,只好輪到你身負重任,所以抱持著「幹完這事我就能撤了」的心態寫下了屎一樣的 code。

爛到爆的 code,是開發者能力的「終極試金石」?

沒時間是最常見的原因和理由;有時候給開發者的 codebase 是真的很糟;更沒人想要寫出爛到爆的 code,但 Dor Tzur 觀察到:開發者怎麼去對待這些屎 code,他們對這些爛爆的 code 有什麼反應,就是這些開發者能力的 「終極試金石」

Dor Tzur 舉了一個例子:

Ron 今天寫了段爛 code,但是因為令人討厭的  5 level deep Backbone Model 繼承鏈,除非推翻全部重來,所以他也沒辦法改,除了他自己,所有人都因為他交了 code 而滿意,他向自己的組長說了這件事,並且想辦法一起解決。

最後他們討論的結果是打破繼承鏈,並且重構,Ron 並向組長要求分配多一些時間讓他完成重構。

另一位 Roger,他同樣也寫出了爛 code,他告訴他的工程師朋友,他寫了段超級酷炫的 code(無視了 5 level deep Backbone Model 繼承鏈),在設法繞過了整個代碼架構、達成目標後就把 code 準時交出去了,他非常滿意這樣的做法,且不需再有任何進一步行動了。

卓越、優秀、平庸、差勁的 4 種開發者,你是哪一個?

差勁的開發者 Barney

Barney 是個不在乎寫出爛 code 的開發者,他唯一在乎的是能不能準時完成,只要 code 可以動就好、一切就非常完美,但他寫的爛 code 有時會打亂整個 project 的進程,並且會弄壞許多東西,最後拖累整個 project,不過 Barney  覺得自己挺好的,挺精通 JavaScript 的,而且不需要再進修了。

平庸的開發者 Bill

Bill 沒有意識到自己寫了段爛 code。他遵循團隊的規則,覺得自己做得還算 OK,但他不會去花時間去理解整個 project 的結構以及不同模組之間會有什麼相互作用,到最後,只能用亂七八糟、一團混亂來形容。

Bill 在決定大方向的設計前沒有諮詢過任何人,他即興表演、臨時發揮一般,只參考了他一年前讀過的 3 篇部落格文章,看 Bill 的 code 就像走在到處都埋著地雷的所在,一步踏錯、一個錯誤的舉動,一切就會在你臉上炸開。

優秀的開發者 Roger

在上文,我們已經先認識 Roger 了,而他被 Dor Tzur 分類在「優秀的開發者」。他完完全全能意識到自己寫了段屎一樣的 code,然而他只是安慰了自己一下,並且繼續完成這段屎一樣的 code。

Dor Tzur 指出,他做了自己份內的工作,還做得很好,但他的錯在於「沒嘗試去改變」,他覺得花時間追求完美,還不如維持現狀就好。

卓越的開發者 Ron

就像你所想的,Ron 是一名卓越的 JavaScript 工程師,他清楚自己寫出了那些爛到爆的 code ,也知道必須想辦法解決,他能想出需要怎樣的重構、怎麼去改進或改變,並且真的付諸行動。

看到這裡,你是 Ron,還是 Roger 呢?或許我們還曾不自知的狀況下當過 Bill 或 Barney,或者在閱讀文章時,你想起了自己身邊哪位優秀的同事。

總結上文,你不難發現為何 Dor Tzur 會說爛 code 其實就是開發者能力的試金石,因為這彰顯出了開發者的「態度」。

沒有人想要成為 Barney,但我們要怎麼成為 Roger,甚至進化成 Ron,至少我們得先嘗試改變,Dor Tzur 最後引用了 Art Williams 說過的一句話來勉勵工程師們,他們或許是 Bill,或許是 Roger,也或許是別人眼中的 Barney。

人才時時刻刻在增強自己的技術,
>>> 6 月 12、13 日雲端年度盛會 AWS SUMMIT 登場  <<<
聽更多人工學習與機器學習免費課程。

Art Williams 是這麼說的:「記住,在你變得『優秀』之前,你需要做得『好』;在你做得『好』之前,你可能會做得很『差』;但在你甚至可以做得很『差』之前,你至少需要先去嘗試。」

參考資料來源:

1.《BitTiger》:〈如何鉴别一个优秀的 JavaScript 开发者?
2.《The Full Stack》:〈The Difference Between Excellent, Good and Bad JavaScript Developers

(本文提供合作夥伴轉載,首圖來源:Pexels,CC Licensed。)

延伸閱讀

【我只想靜靜 coding】菜鳥工程師是怎麼一步步失去理想與熱情的?問題其實出在主管身上
工程師只能 996 嗎?三個老工程師教你如何在程式界開心存活 20 年
寫程式不再崩潰!介紹 5 個 Google 工程師都在用的好習慣


掌握 2019 年行銷思維:TechOrange 數位行銷論壇

2018 年台灣數位廣告量全年達新台幣 389.66 億, 廣告價格與成效 之間平衡如何拿捏? 找出成效型廣告操作的最精華關鍵,打造數位品牌勝利第一步! 6/19 TechOrange 數位行銷論壇, 6 折早鳥價只到 5/30 >>>> 手刀購買

專案管理必備 3 個基本功:不會寫 code 沒關係,至少要會畫 wireframe 吧!

$
0
0

【我們為什麼挑選這本書】對專案管理者來說,除了資源、時程上的掌控外,工程知識也是極大的挑戰;然而,不是每個專案管理者都有相關的技術背景,該如何應對這種情況?

軟體專案管理的 7 道難題》的作者施政源是寓意科技執行長,提供手機軟體經營與網路開發等服務。我們將透過下文了解,一個好的 PM 所需要做到的三件事情。(責任編輯:郭家宏)

軟體世界對於產品經理或專案經理,比過往的要求又更多一些,因為很多產品開發的過程,大量使用一些外部工具,很多工具可能連產品負責人都不是十分理解, PM 懂得描述需求就已經相當不容易。

PM 基本功:描繪產品線稿、列出使用者情境、審視重要事項

我常聽到一些 PM 找我們合作案子,說要做一個 Uber,問題是你要做的是 Uber 的 APP,那後台你要怎麼呈現?Uber 的 APP 除了給一般用戶,還有要給司機的,要做在同一個 APP 用不同帳號去區別功能,還是要做成兩個 APP;另外,整體流程裡面是真的完全一樣,還是某些地方仍有所區別,這些都不交代清楚。

如果問到一個懂產品的工程師,或許還會回饋你一些問題,幫助你找些答案;但如果問到一個不管事的工程師,最後做出來的東西,八成跟這位 PM 腦袋裡想的不一樣。

雖然用模仿去做產品是個不錯的方法,但作為一個好的 PM,至少自己把產品的線稿描繪一遍,使用者情境列出來,然後自己重新審視哪些重要、哪些不重要,這都是產品開發管理內的基本功,如果團隊裡的 PM 連這些基本功都無法去嘗試,那麼找工程師進來合作,失敗的機率一定扶搖直上。

PM 需要讀懂基本技術文件,並向資深工程師請教

第二個問題對一般的 PM 來說,恐怕是困難的,但為什麼會特別列出這個問題呢?原因很簡單,如果你真的想請教工程師問題,有些功能的改變,因為他會大大影響資料庫結構的改變,如果 PM 不了解 API 結構、DB 結構,跟工程師之間的溝通只怕是瞎子摸象,每個人摸的都不一樣。

所以,哪怕 PM 不會寫 Code,稍微讀懂一些基礎邏輯,知道前後端的資料怎麼互相溝通,討論事情時會更快聚焦,有些會議也可以從兩小時變成二十分鐘,效率自然大大提升。

第三個問題,我認為是關鍵中的關鍵。對一個 PM 來說,他需要的導師可說是非常多元,每個工程師也許都有自己的堅持,有時為了品質或各種不同的因素,一個很簡單的事情卻可以做很久,這時 PM 如何知道這個決定到底是不是好的?因此,如果能有個值得信賴的資深工程師,有空稍微幫忙理解一下,PM 就會知道現在花費大量時間所打造的,對未來的工作是否有幫助。

(本文書摘內容出自《軟體專案管理的七道難題》,由 法意 授權轉載,並同意 TechOrange 編寫導讀與修訂標題。首圖來源:Pxhere CC Licensed。)

更多專案管理技術

常跟工程師講到爆氣?一個工程師眼中「有腦」的 PM 要先做到這七點!
從三個職業練好「策略人」的基本功:公關、助理、專案執行
Google 找什麼人才?大中華區業務總監:「獨立規劃、能完成一個專案的領導者」


掌握 2019 年行銷思維:TechOrange 數位行銷論壇

2018 年台灣數位廣告量全年達新台幣 389.66 億, 廣告價格與成效 之間平衡如何拿捏? 找出成效型廣告操作的最精華關鍵,打造數位品牌勝利第一步! 6/19 TechOrange 數位行銷論壇, 6 折早鳥價只到 5/30 >>>> 手刀購買

駭客綁架美市政系統,勒索比特幣贖金!上萬台政府電腦全面癱瘓邁入第三週

$
0
0

【為什麼我們要挑選這篇文章】全球接近一半的地方政府每天都受到網路攻擊,但卻有 41% 不確定網攻的時間與原因。2019 年是資安大年,當產業開始數位轉型,世界政府走向數據上雲,網路系統成為駭客劫財的最大搖錢樹。

巴爾的摩市政系統癱瘓至今已 3 週,與勒索病毒與駭客周旋的官員採取的手段是否正確?(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  jobs@fusionmedium.com

政府電子郵件無法訪問、所有水電費、停車費無法繳納、所有房產交易無法進行。

在美國東部城市巴爾的摩市(Baltimore),這樣的市政系統癱瘓已經持續了三周。

月初,駭客入侵並控制了美國馬里蘭州巴爾的摩市的大約 10,000  台政府電腦,並索要 13  個比特幣(約 352 萬台幣)。

但市政府拒絕交付贖金。

在接下來的幾個周,政府公務員無法訪問他們的電子郵件帳戶,普通市民無法使用基本市政服務,包括那些用於支付水費、財產稅和停車票的網站。

對峙已經持續了三個星期,至今仍僵持不下。

這場都市規模的搶案怎麼發生?

一起看看事情的經過。

巴爾的摩是美國馬里蘭州最大城市,毒品,動亂,犯罪,破舊是很多人對這座城市的印象。根據美國 FBI  在 2018  年  月 24  日發佈的報告,在美國 50  個大城市中,巴爾的摩的凶殺率佔據榜首,被稱為全美最危險的城市。

這一回,危險來自於無聲無形的網路襲擊。

月  日,巴爾的摩市政府電腦的螢幕突然被鎖定,一條粗暴的聲明赫然出現在畫面 —— 駭客要求用比特幣支付大約 10  萬美元來釋放他們的系統:「我們不會與政府進行談判,我們只要錢!快點!滴答,滴答,滴答,聽到了嗎,時間在流逝!」

勒索軟體 RobbinHood 綁架市政系統,至今無人能解

駭客使用的是一款名為 RobbinHood  的勒索軟體攻擊巴爾的摩市政府系統。

「想象一下一個人潛入政府大樓 ,用卡車帶走裝滿了所有待辦許可證,以及所有正在進行的待處理業務的文書的一堆箱子,他們要求巨額贖金,才會將卡車開回來。」約翰霍普金斯大學電腦科學教授和網路安全專家阿維魯賓如此描述這次攻擊的嚴重性。

這就是巴爾的摩正在發生的事情。名為 RobbinHood  的程式悄悄入侵,使得政府部門在沒有特定數字密鑰的情況下無法訪問服務器。

魯賓教授表示,勒索軟體使用一種名為  RSA  的公開算法來加密數據。據信,任何政府都沒有能力打破它。 而如果沒有鑰匙,該市必須從頭開始重建其服務器。這可能需要幾個月的時間來實施新的硬件和軟體以及恢復該市的所有數據。

駭客要求政府為每個系統支付  個比特幣,或一共支付 13  個比特幣來解鎖所有被劫持的系統。如果不能在四天內支付,駭客就會增加贖金;如果在 10  天內還收不到贖金,所有的系統內數據將永遠丟失。目前這兩個截止日期都已過去

這是一次典型的「勒索軟體」攻擊,即駭客利用惡意軟體來阻止訪問或接管電腦系統,直到系統所有者支付贖金為止。

這是一種非常惡意的網路攻擊,因為即使受害者完全準備好使用數據備份,仍需要大量的時間和資源來重新啓動所有受感染的電腦。

市政府目前拒絕支付贖金,現在駭客所控制的政府電子郵件系統和支付平台仍處於離線狀態。

房地產系統鎖死,大量購屋者無處可去

這次攻擊還波及了巴爾的摩的房地產市場,房地產交易系統也無法訪問。

巴爾的摩居民對這場忽然陷入的「災難計劃」深深絕望。

「你依賴的電腦系統完全不可靠,而你並沒有任何準備,這讓人無助,」31  歲的保姆阿什利梅森說。

阿什利梅森和她的哥哥

梅森四年來一直在為換套新房子省吃儉用。終於,今年,她償還完了債務,得到了足夠的信用評分,最後終於能夠租得起一座兩居室的複合式房子。

她已經準備好離開她和哥哥合住的擁擠公寓了。

但正當她即將定居新家,政府系統被襲擊。

市政官員在  月 20  日啓動了一項解決方案,使得房地產交易已經恢復正常,這發生在城市服務器遭到破壞的兩周之後。

梅森現在希望大量積壓的購房者不會拖延她的搬遷。她表示她目前居住的公寓的租金馬上就要漲價。現在她無力再支付多餘的租金。

「20% 勒索軟體受害者付款後,還是拿不回數據主權」

剛剛上任的巴爾的摩市市長 Jack Young  在  月 17  日的一份聲明中表示,市政府工作人員正在進行系統恢復,並聘請了行業領先的網路安全專家提供幫助。

「在恢復的過程中我們會重建某些系統,以確保我們以一種安全的方式重啓業務功能,」Young  說到。但他沒有給出所有系統重新上線的時間表。根據魯賓教授估計,系統啓動和運行至少還需要幾個月。

巴爾的摩給出了許多解決措施。例如,使系統離線以防止惡意軟體傳播、設置在線系統的離線替代方案以處理房屋銷售。

但在  月 20  日的一次採訪中,此前態度堅決的市長 Young  第一次對是否屈服於駭客產生猶豫 :「是否要為了為了推動城市向前發展支付贖金?我可能會想一想,我還沒有做出決定。」

Jack Young(Washington Post)

從財務的角度來看,Young  考慮駭客的要求是完全合理的 —— 這個城市將花費超過 10 萬美元來恢復被破壞的系統。但從長遠來看,它強化了軟體勒索是一種可行的,有利可圖的商業模式的觀點。它會鼓勵犯罪者繼續使用這一途徑進行網路犯罪。

另外,即使支付贖金,駭客可能仍然不會恢復系統,甚至會繼續索要贖金。根據卡巴斯基實驗室  2016  年的一項研究,大約五分之一的勒索軟體受害者向駭客付款之後仍然無法檢索他們的數據

而且即使肇事者在收到付款後恢復巴爾的摩的電腦系統,也無法保證他們將來不會再次攻擊該城市。他們甚至可能在城市的系統上留下惡意軟體或後門的痕跡,以便於下一次的攻擊。其他攻擊者也會知道巴爾的摩政府是一個易於攻破的靶子。

今年  月北卡羅來納州格林維爾市的政府電腦系統也曾受到類似的 RobbinHood  攻擊。格林維爾市政府的一位發言人表示該市沒有支付贖金,雖然其電腦系統目前尚未完全恢復,但「所有的主要(安全)技術指標都已達到要求。」

市政府和警察部門應該做的是通過緩慢,艱苦,昂貴的恢復和保護系統的工作來保護公共利益,而不是採取簡單的支付贖金的方法拆東牆補西牆。 

單 2019 年,美國受網攻程式超過 20 座

這不是第一起惡意攻擊政府系統的駭客行為。

2017  年,一款針對 Microsoft Windows  操作系統的名為 WannaCry  的勒索軟體襲擊了超過 100  個國家數以萬計的電腦系統。同年,英國、法國、俄羅斯、以色列和烏克蘭等國的公司先後遭遇勒索軟體攻擊,美國的醫院也成為駭客的目標。

2018  年,駭客要求亞特蘭大支付約合 50,000  美元(約 150 萬台幣)的比特幣作為部分贖金。據《亞特蘭大憲法報》和《第二頻道行動新聞》的一份報告稱,由於亞特蘭大市政府拒絕支付贖金,修復這次攻擊事件的影響最終導致該市損失 1,700  萬美元(約 5.1 億台幣)。

而僅今年一年之內,美國就有 20  多個城市受到網路攻擊。

勒索軟體背後的基本思想很簡單:犯罪分子侵入你的電腦,使用無法破解的加密程式來破壞系統里的文件,然後要求你花錢來買恢復文件所需的加密密鑰。如果你的機器上有重要文件,那麼你就可能為了避免丟失這些重要文件而支付大筆贖金。

自  2009  年比特幣發明以來,勒索軟體攻擊已經變得更加容易。駭客要使用像 Visa  和萬事達卡這樣的傳統支付網路進行收款通常都需要身份信息,但比特幣不需要。 因此,在過去的四年中,勒索軟體攻擊毫無防備的電腦用戶的事件數量激增。

某些勒索軟體體系非常完善,甚至還提供客戶支持服務,幫助那些想要支付贖金的受害者弄清楚複雜的比特幣怎樣獲取和支付。

自 2017  年起,許多部門和組織都對其安全措施進行了改進,以防止勒索軟體攻擊。但最新的巴爾的摩駭客事件說明瞭這是一場打地鼠遊戲:這個領域改進了安全措施,駭客就會去尋找下另一個領域。

「世上大多政府領導人不懂網路攻擊的嚴重性」

像許多地方政府一樣,巴爾的摩市並沒有為這樣的事情做好準備。政府很容易這樣為自己辯解:「既然這類事情從未發生過,為什麼我們要為此花很多錢呢?」

現在各地政府擁有並依靠著各種各樣的互聯網技術系統來運營服務:官員使用的筆記本電腦,燈桿和路面的傳感器系統,警車內的測繪和信息系統等等。城市特別容易受到網路攻擊,因為它們的 IT  系統往往比私營部門組織更老,更複雜。而且預算常常非常緊張,這導致負責保持這些系統的安全的員工數量完全不足。 

網路攻擊威脅應該是眼下最重要的安全問題,但是事實上地方官員並沒有做到足夠的措施來保護他們的技術免受攻擊。

44%  的地方政府報告稱他們每天都會收到網路攻擊,41%  的政府聲稱他們不知道自己什麼時候遭到了攻擊54%  的政府不會對攻擊進行編目計數。世界上大多數的政府領導人根本不瞭解網路攻擊的嚴重程度。

政府機構必須創立起一種網路安全文化,包括為網路安全提供資金,建立更強大的網路安全政策,以及培訓員工的網路安全協議。網路安全不應該僅僅是 IT  部門的事情,他必須成為地方政府的首要任務,防止和減輕網路襲擊需要政府之間的通力合作,比如地方與地方在州際之間展開協同,並與聯邦政府合作開展選舉、管理交通、分享情報等關鍵任務。

技術進步正在改善政府的工作效率,比如幫助使其從昂貴低效的紙質系統轉向數字系統,更好地辦公,大數據也為政府在決策方面帶來飛躍進步。但是有光明的地方就有陰影,如果說智慧城市是技術為政府帶來的光明,那麼網路攻擊就是黑暗角落。我們不需要停止技術部署,但網路安全必須提上議程。

圖片來源:美聯社

這已經是巴爾的摩在 15  個月內受到的第二次勒索軟體攻擊,去年的一次攻擊使得該市的 911  報警系統關閉將近一天。這兩起襲擊促使巴爾的摩市開始進行嚴密的網路安全審查。市議會主席正在計劃組建一個特別委員會來調查這次的駭客攻擊,以確保不會再發生類似事件。

截至發稿,巴爾的摩的市政癱瘓狀態仍在繼續。

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈黑客锁定市政系统勒索比特币,政府拒付赎金!全美最危险城市陷入瘫痪的第三周……〉。)

你可能感興趣

12 億台幣比特幣遭洗劫!駭客橫行全球最大加密貨幣交易所 Binance

GitHub 遭駭客攻擊!勒索交出比特幣贖金,不然就公開你的私有程式碼

一年幣值狂跌 40 萬台幣!比特幣委靡不振,我還該在區塊鏈領域創業嗎?


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

如何讓 6 萬個工程師順暢合作不互雷?微軟法寶「完整程式碼審查」揭密!

$
0
0

【為什麼我們要挑選這篇文章】微軟擁有上萬名工程師,讓不同團隊開發的程式能順利進行至關重要,他們的秘密武器就是一套完善的程式碼審查機制。審查機制具體如何運作?本篇文章為採訪過 900 多位微軟開發人員的結果,將介紹、分析微軟程式碼審查的運作模式。(責任編輯:方禹涵)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至   jobs@fusionmedium.com

全球最大的軟體公司之一微軟擁有約 140,000 名員工,其中大約 44%,即超過 60,000 名員工,是工程師。

Office、Visual Studio 或 Windows 等幾種產品,都是由數千名同時在同一程式碼庫上工作的工程師開發的。確保由不同子團隊開發的程式碼完美地協同工作是一件非常重要的任務。

那麼你想過嗎,如此大的工程師規模下,微軟是如何確保程式碼品質的呢?

微軟法寶在於「完整的程式碼審查機制」!

微軟程式碼審查是一種被廣泛採用的工程實踐。成千上萬的工程師認為這是一個偉大的最佳實踐。大多數高績效團隊花費大量時間進行程式碼審查。

那麼,微軟的程式碼審查究竟是一種怎樣的機制呢?今天,文摘菌(本文作者)就帶你來一探究竟。

研究微軟的程式碼審查

在微軟程式碼審查的大規模研究中,我們採訪、觀察並調查了 900 多名開發人員。

我們的目的是了解如何在微軟完成程式碼審查。我們想知道,在進行程式碼審查的時候,開發人員面臨哪些陷阱,以及他們為克服這些挑戰而開發的最佳實踐。

大多數經驗教訓對於小型或大型團隊組織都很有價值。如果您的團隊尚未進行程式碼審查,我會向您展示該實踐的好處。如果您的團隊已經有了程式碼審查機制,您可以將您的實踐與微軟的程式碼審查實踐進行比較。

微軟工程師多久進行一次程式碼審查?

在這項研究中,36% 的開發人員表示他們每天進行多次程式碼審查。另有 39% 的開發人員表示,他們每天至少進行一次程式碼審查。12% 的人每週多次進行程式碼審查,只有 13%的人表示過去一週他們沒有進行程式碼審查。

這意味著, 微軟的開發人員將大量時間花在程式碼審查上 。因此,確保有效使用這段時間非常重要。

程式碼審查提供哪些好處?

程式碼審查的好處

程式碼審查最重要的好處是,提高程式碼品質並找到程式碼中的缺陷,另一個重要好處是知識轉移

「知識轉移」意味著,審核彼此程式碼的團隊成員熟悉程式碼庫的大部分內容。但是,這也意味著程式碼審查最好在團隊內部實施。另一個優點是,新的團隊成員和初級開發人員可以在審閱或獲得反饋的同時學習和提高他們的編碼技能。

如果開發人員在程式碼審查期間討論替代解決方案,它不僅可以改善程式碼庫,還可以為所有相關人員提供學習機會。因此,學習、指導和自我改進是程式碼審查之所以被認為是微軟的一種有益實踐的主要原因。

開發人員通常如何進行程式碼審查?

程式碼審查可以通過多種方式執行。有時,可以很不正式, 比如一位開發人員走到另一位開發人員的桌邊一起看一些程式碼。其他時候,團隊一起審核程式碼。但是,您在微軟的程式碼審查中遇到的最可能的情況是:程式碼審查是在藉助工具的幫助下完成的。

程式碼審查的工具有很多種。在微軟,團隊可以自由選擇他們的工具。至 2016 年, 89% 的開發人員表示使用 CodeFlow 程式碼審查工具。稍後我將解釋更多有關此程式碼審查工具的信息。從那時起,隨著 Git 的興起,工具領域發生了變化。

現在,讓我們考慮一個典型的程式碼審查案例: 微軟的開發人員 Rose 剛剛完成了一個功能,現在想要得到她同行的反饋。

開發人員 Rose 如何在微軟開始程式碼審查?

Rose 首先要為程式碼審查做準備。這一步包括打開程式碼審查工具,允許她預覽程式碼更改。程式碼審查工具可以執行差異化對比任務,幫助羅斯確切了解她做了哪些更改。

在仔細審查了這些變化之後,她標記了一些備註,告訴評審人她做了什麼以及為什麼這樣做。備註說明有助於審閱者了解程式碼更改的目的和動機。至此,程式碼已準備好可以發送給審閱者了。

如何選擇合適的程式碼審閱者?

許多經驗豐富的開發人員都知道應該選誰作為程式碼審閱者。然而,對於團隊中的新人或新的工作領域,選擇可能會更棘手。如果 Rose 不知道她應該添加誰,她會查看團隊規定或詢問她的同事。她還可以使用程式碼審查工具的推薦功能,該工具可以根據程式碼庫的經驗和知識幫助選擇審閱者。

誰是相關審閱者?

Rose 選擇她認為可以為這段程式碼貢獻知識的審閱者。審閱者通常是其他開發人員,但也可以包括其他利益相關者,例如開發人員工程師,UI 專家或經理。一些評審員被選是基於他們的專業知識,其他評審員被選是為了讓他們能隨了解即將發生的變化。

程式碼審查的一般步驟

要求同行反饋

一旦選中每個人,Rose 就會發出程式碼審查。程式碼審查工具會自動發送創建評審的通知到每個人。通知對像不僅包括所有審閱者,也會包括其他人員,例如相關團隊的經理或產品經理。這些通知允許他們的信息保持同步,即使他們不需要執行評審。

接受反饋是個疊代過程

Rose 的同事們有時間就會審查程式碼。每個審查者都能評註程式碼,完事後把程式碼發回 Rose,Rose 可以據此修改程式碼。

審查者通常關注的點包括:程式碼有 bug 嗎?程式結構有問題嗎?程式碼有拼寫錯誤、少個冒號之類的小毛病嗎?不是所有的評註都重要,但是有幾個小技巧可用來提升程式碼評註。

準備新版本的程式碼

Rose 根據評註修改程式碼。如果有的地方弄錯了或有爭議,Rose 可能直接去跟審查者面談,或者通過審查工具交流會更私人化一點。

不管怎樣,一旦 Rose 根據反饋完成了程式碼修改,她可以發一份新版本的程式碼給審查者,這份程式碼叫修訂版。

若有必要,她還會收到反饋。這個循環視情況而定會持續好幾輪,一般的小程式碼審查一次即可,複雜的程式碼可能得審查多輪。

這樣的工作是很常見的,還可能在作者和審查者之間擦出思維的火花。

所有的審查者都批准,登記程式碼

完事之後,審查者標記程式碼為 okay,Rose 終於可以把程式碼補充到公共程式碼庫了。有些團隊會允許開發者在審查結束前就把程式碼上傳到程式碼庫。這種情況通常在程式碼只需小修小改的時候發生,這樣可以異步審查並加速開發。

上面我說的所有步驟都是 Microsoft 程式碼審查週期的正常程序,被所有團隊執行,根據團隊不同而略有出入。

並非所有團隊都一樣

如你所想,事情並非一成不變。Microsoft 的一些團隊會有些額外步驟或工具助力程式碼審查。我會簡單介紹這些額外步驟。

包含測試結果的程式碼審查

可能你最不想做的事情就是,審查那些程式碼審查軟體就可以審查的程式碼。所以你應該在審查之前先跑一遍測試。

一些團隊要求做程式碼審查的時候把測試結果也一起上傳。這樣可以保證人人都測試一下。

其它團隊可能更加嚴格,每個審查者審查的時候都會觸發編譯,編譯和測試的結果都會被放在審查報告上。

涉及使用者交互介面的程式碼審查

如果開發者把使用者交互介面也改了,那 TA 最好截個屏給別人看下。這樣審查者就省的跑程式碼了,直接看圖片就行,審查者也可以方便檢查因運行環境不同而產生的差異。

包含靜態分析的程式碼審查

靜態分析對規範程式碼樣式來說尤其有效。微軟的一些團隊使用自動化的靜態和動態分析工具作為專用的機器人評審員。這些機器人評論程式碼樣式和其他靜態問題。這樣就能騰出時間讓人工程式碼審閱者執行更有趣的任務。

微軟的程式碼審查工具

多年來,微軟實際上的程式碼審查標準之一是一個名為 Codeflow 的內部工具。這是一個複雜的程式碼審查工具,它支持開發人員並指導他們完成程式碼審查的所有步驟。

Codeflow 幫助編寫程式碼,自動通知審閱者,並具有豐富的註釋和討論功能。

Codeflow 是一個相當依賴 UI 的工具,很像 Word 或 PowerPoint,如下面的截圖所示。

CodeFlow 螢幕截圖 (2016)

CodeFlow 介面說明

看螢幕截圖,在左邊 (A) 你可以看到所有受影響的文件。

同樣在左邊,您可以看到 (B) 分配給評審的審核員名單以及他們的狀態(例如,已簽署或待決)。活動文件顯示在編輯器 (C) 中。在底部,您可以看到 (D) 所有文件的註釋列表。

另一方面,在活動文件 (F) 中只有一個註釋。此註釋連接到程式碼的具體部分(即一行中的一個單詞)。最後,在頂部,您可以看到 程式碼審查 的總體狀態。在這種情況下,已經完成。之前的數字表明了不同的修正。在這次審查中,進行了五次修訂。

評論功能

Codeflow 最優秀的特性之一是它的評論功能。程式碼審閱者可以非常精確地選擇她想要評論的程式碼的部分。例如,審閱者甚至可以在一行中加亮顯示一個或兩個字符,而不是突出顯示整個行。然後,審閱者可以將評論附加到該選擇。

將此註釋通知程式碼作者或其他審閱者,並可以圍繞此註釋以線程的形式啟動會話。

討論功能

這種評論功能就像在 Twitter 或 Facebook 等社交媒體平台上發表評論。因此,Codeflow 的評論體驗非常自然,人們可以進行豐富的對話和討論。另一個不錯的好處是可以為這些評論線程中的每一個指定一個狀態。例如,狀態可以是「不會修復」、「已解決」或「打開」。

程式碼審查修訂的比較

你也可以選擇程式碼審查的兩個不同版本,並比較兩者之間的差異。這意味著您可以準確地看到程式碼審查作者在一個程式碼審查修訂版和另一個程式碼審查修訂版之間執行了哪些更改。這方便了跟踪審查的進展。

程式碼審查分析工具

開發人員花費大量時間在 Microsoft 執行程式碼審查。為了確保這段時間得到充分利用,Microsoft 擁有自己的程式碼審查分析平台。

該平台存儲從程式碼審查開始的所有程式碼審查數據,參與程式碼審查的開發人員,以及開發人員的所有評論。甚至可以追溯每次修訂的程式碼更改。

這些程式碼審查數據是 Microsoft 對程式碼審查進行多項實證研究的基礎。許多產品團隊也使用它來理解他們自己的程式碼審查實踐。

微軟程式碼審查的未來

隨著 Micorosft 的參與和對 GitHub 的收購,改變是不可避免的。例如,在 Microsof t 中廣泛採用 git 作為源程式碼管理工具,就可以看出這種變化。但是,這也意味著在微軟,以「pull request」的形式進行的程式碼審查正在上升。

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈我们走访了 900 名微软员工,为你揭秘全球最大软件公司的代码评审机制 〉。首圖來源:Wikipedia。)

延伸閱讀

【內附程式碼】工程師技能大全:如何用 Python 寫出所有的演算法?
GitHub 最強 AI 數學解題神器!拍照上傳秒給答案,連微積分都難不倒他
GitHub 史上最大改版:能讓程式碼在網頁上運行的 GitHub Actions


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

【手刀快存!】讓小孩從小就懂程式語言!這有 6 個最適合的 Coding 教學網

$
0
0

【為什麼我們要挑選這篇文章】程式語言堪稱本世紀最重要,也是最吸金的技能之一。當全世界都在搶學程式語言,怎麼學、何時開始學成為兩個最重要的問題。

本文不會解釋孩子最慢幾歲得接觸程式語言,但卻提供 6 個最適合兒童入門程式語言的網站。想培育工程師的各位爸爸媽媽們,趕快手刀存起來啊~(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息 
快將你的履歷自傳寄至 jobs@fusionmedium.com」

打開百度,搜索兒童學寫程式語言,映入眼簾的就是各種兒童程式語言培訓班的加盟和報名廣告,而在往下翻,則又是一些媒體在質疑兒童學習程式語言是否有必要,是否就是賺錢的新套路。由此看來,兒童學習程式語言在市場需求和輿論評價方面,都存在極大的話題和爭議。

程式語言成為中國考生「必讀」科目

2018 年開始,高考數學江蘇卷、天津卷,就開始要求考生通過閱讀偽程式碼理解程式邏輯,並根據算法得出結果。

而早在 2017 年,浙江省實施的新高考政策,就將通用技術與電腦技術納入選考範圍,除必考的國語數學外 3 門科目外,考生可在技術、歷史、物理等 7 門學科中任選 3 門。

去年三月,教育部通過陽光高考資訊公開平台,公示了當年保送生名單。其中因入選 2017 年、2018 年國際資訊學奧林匹克競賽國家集訓隊而獲得保送生資格的學生總計 53 人。教育部門的導向和保送政策讓許多家長將程式語言學習視為孩子新的起跑線和踏入名校的捷徑。

需求促生市場,根據《中國兒童程式語言行業研究報告》,截至 201810 月,國內小孩學習程式語言行業市場規模約為 30 億元至 40 億人民幣(約 150 至 200 億台幣),用戶規模約為 1550 萬,行業規模將在 5 年內達到 300 億人民幣(約 1,500 億台幣)。

不同於美國以 2B2C 教育軟硬體工具的銷售為兒童學習程式語言的主要商業模式,中國程式語言兒童教程創業公司主要以開設線下培訓班為主。第一個原因是由於中美兩國人才選拔模式不同,而第二個原因則是相比開發成系統的軟硬體,線下培訓班的用時更短、成本更低、獲利更快。

市場的巨大需求引起了眾多投資者的進入,紅杉、華創等一線風投皆有所動作,少兒程式語言也被行業內稱為:「基礎教育市場的最後一塊藍海」。《2018 教育行業藍皮書》顯示,截至 20188 月,在科創教育部分,兒童學習程式語言的案例數和金額數均為最多,其案例數佔比達到 44.4%,融資總額則高達 7.82 億元。據不完全統計,到目前為止已經有 200 多 家品牌和機構。

中國爸媽狂問:我小孩最慢幾歲得開始學程式語言?

兒童程式語言教程的火熱的市場催生了大大小小、良莠不齊的培訓班,有的培訓班甚至在網上買幾套課程破解,租個房子請幾個老師就開始招生,並且根據齊魯壹點報道,有的兒童程式語言培訓機構還打著「學程式語言 —— 參加比賽 —— 拿到好成績 —— 升學有保證」的旗號招生,並且宣稱 3 歲就可以開始學程式語言了,8 歲都有點晚了。這樣的情況引來了不少的人的質疑,是否所有的小孩都要去學程式語言?幾歲開始學才是合適的年齡?

今年二月,央視財經做過一個兒童程式語言教程的專題調查。

其中接受採訪的 Botball 機器人競賽項目負責人郝帆說:「實際上程式語言這個東西還是比較適合反應比較快的孩子,適合邏輯思維能力這方面比較強的孩子,學生想真正在少兒程式語言領域獲得成績,除了天賦以外還需要大量的時間上課,訓練,一直到競賽。而能夠脫穎而出的孩子畢竟只是鳳毛麟角,如果不是出於真正的興趣,而是單純想通過學習程式語言,達到升學、加分的目的,結果可能會讓人失望。」

圖片來自央視財經

而真正感興趣的小孩子幾歲開始學比較合適,也成了家長們最關心的話題。其實這一點家長並不需要太焦慮,3 歲開始,8 歲開始學有點晚」這種說辭純粹是培訓機構的招生手段 。就拿很多培訓機構使用的 Scratch 兒童程式語言學習 平台來說,其官方網站上的說明都是主要針對為 816 歲的孩子設計的,更小的孩子可以學習簡化版,但是最低年齡也要有 5 歲。

全球都在推!年少學習程式語言已成世界趨勢

隨著大數據和人工智慧時代的來臨,各國確實非常重視青少年的資訊基礎教育。2016 年,美國政府為了兒童程式語言教程,不惜投入大把的資金,要求全國的學校提高和推廣程式語言學科的質量;而英國在 2014 年時也將少兒程式語言加入了必修課程當中,要求全國五歲以上的小學生必須就開始接觸程式語言兒童教程;澳洲也要求十歲的學生開始進行學習;日本則早在就在中小學中普及程式語言教育科目。

可以說,對於青少年來說,進行程式語言學習確實能夠提高邏輯思維能力,尤其對於感興趣的孩子來說,是非常好的一個課外活動。

之前文摘菌(本文作者)也就兒童學習程式語言這個問題採訪過吳軍博士,他也認為年少學習程式語言其實是一種科學思維的培養方式,而在時間和精力比較充裕的情況下,是可以進行科學思維的培養的。

但是許多家長可能有這樣的疑惑,父母都是文科生,沒學過電腦,想要讓孩子學習程式語言,只能送去質量未知的培訓班麼?

答案肯定是 NO

其實國外已經有了很多成熟的兒童教程網站和軟體,包括許多培訓班選擇的 MIT 開發的平台 Scratch,都有配套的家長教程,也就是說,家長先學一下教程,然後就可以帶著孩子學習了,對於有時間的家長來說,完全沒必要花錢去培訓班學同樣的東西。

下面文摘菌給大家介紹幾款非常好用的的程式語言學習平台,趕緊為自己的小孩增添點知識!

送你 6 個適合孩童的程式語言學習網

Minecraft for Education(我的世界教育版)

我的世界是全球最受歡迎的遊戲之一。除了我們平常見到的那個,還有有一個教育版,其中有一個少兒程式語言的課程 ——Coding with Minecraft,它是基於 CSTA 標準,涵蓋了基礎電腦科學概念,如條件,函數和坐標。課程一共有 30 小時,包括課程計劃,學生工作簿,評估指南和 Minecraft 世界,以幫助學生建立計算思維技能。

適合年齡:11-16

傳送門

Kodable 和 CodeHS

Kodable 是一個完整的 K-5 課程,讓小孩從幼兒園開始就像工程師一樣思考,到 5 年級編寫真正的 JavaScriptKodable 的課程同樣也是符合 CSTA 標準,同時還提供教學說明,因此不瞭解電腦科學知識的家長也可以教他們的孩子程式語言。CodeHS 屬於進階版,將課程擴展至 6-12 年級。

適合年齡:幼兒園 高中

傳送門

Scratch

Scratch 是一種基於程式碼塊的程式語言語言,同時也是一個在線社群,孩子們在這裡可與世界各地的同齡人交流互動故事、遊戲和動畫。學習 Scratch 的同時,他們也間接培養了邏輯推理、創意思考和協同合作的能力。Scratch 由麻省理工學院媒體實驗室設計和維護。

適合年齡:8-16

傳送門

ScratchJr

Scratchjr Scratch 的一個更基礎的版本,是一個完全免費的手機 App 兒童學習程式語言軟體(兼容 IOSAndroid),旨在為更小的孩子介紹電腦程式語言。 家長可以通過動畫指南和書面說明向孩子們解釋遊戲,以便讓他們開始。Scratchjr 可以提供很多創建腳本的選項,包括不同的背景和動作,孩子一學就是幾個小時,根本停不下來!

適合年齡:5+

傳送門

ScratchJr 界面

Tynker

Tynker 也是使用可視化程式碼塊教學程式語言,對孩子來說好玩又簡單,這個平台自由度比較大,提供很強大的自由發揮空間。Tynker 在全球普及度很廣,全球各地的孩子們在平台上製作和分享了超過 2000 萬個項目,創建了一個龐大的 Tynker 社區。

適合年齡:4+

傳送門

Hopscotch 

Hopscotch  中文名叫「跳房子」,也是一款兼容 IOSAndroid 的免費 APP。 孩子們編寫自己控制字符的程式碼,使用應用程序程式碼塊進行程式語言設計。 這款應用程序的基於字符的設計使它有別於其他應用程序, 孩子們也可以在他們的程序中添加文本。 「 跳房子」是開放式的 APP,這意味著孩子們不需要為角色編寫程式碼來做特定的事情,而是可以自由想象和發揮,這是這個遊戲與眾不同的另一個方面,但同時也要求孩子更強的思維能力和創造能力。

適合年齡:8+

傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈8 岁学编程已经晚了?6 个网站让你在家教孩子学编程 〉。)

你可能感興趣

數據科學家必讀的五本書:重要的不是會打 Code,而是背後的資料邏輯思維

最新「數據科學」自學清單:六個月無師自通,菜鳥新手趕快存起來

下一代要學得東西太多!中國新手爸媽上網急問:「小孩幾歲學 Tensorflow 才不算晚?」


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

LinkedIn 如何透過機器學習,建造世界最強的「求職推薦系統」?

$
0
0

【為什麼我們要挑選這篇文章】LinkedIn 找工作平台,已經成為美國年輕人另類的社交平台,就算沒有在找工作,還是會習慣性上去刷一下,了解職場趨勢,而 LinkedIn 的人性化設計是成功關鍵,背後的人工智慧技術更是功不可沒。

所以 LinkedIn 人工智慧研發總監張梁才表示,人工智慧於 LinkedIn 而言是氧氣般的存在,是所有用戶體驗的 DNA,貫穿其社交聯繫、職位推薦等應用。下文來了解  LinkedIn 是如何運用「氧氣」般重要的人工智慧!(責任編輯:黃穗懷)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至 jobs@fusionmedium.com」

LinkedIn 是迄今為止市面上極受歡迎的招聘平臺之一。來自世界各地的招聘者每天會從 LinkedIn 上網羅挑選適合他們招人崗位的候選人。

像 LinkedIn Recruiter 這款產品,就可以説明招聘者創建並管理一個人才庫,最大限度地提高徵人成功率。這款產品的高效性能是通過一系列極其複雜的搜索和推薦演算法來實現的,這些演算法利用了最先進的機器學習架構,也考量了很多實際因素。

除了在構建一個世界上最有價值的資料集之外,LinkedIn 一直在通過各種實驗來突破機器學習技術,希望把人工智慧的一流體驗帶入 LinkedIn 產品中。

LinkedIn 以三大標準建立搜尋推薦模型

招聘產品的推薦功能對 LinkedIn 的機器學習技術提出了很大的挑戰。除了處理龐大且不斷增長的資料集,招聘產品還需要處理很多隨機且複雜的查詢和篩選需求,並提供與之非常相關的結果。搜索環境是如此多變,以至於很難將這個問題簡單轉換為機器學習的模型來解決。以招聘產品為例,LinkedIn 使用了一個包含三個因素的標準來描述搜索推薦模型需要實現的目標。

1.關聯: 搜索結果不僅需要返回給相關的候選人,還需要顯示可能對目標職位感興趣的候選人。

2.智能查詢: 搜索結果不僅應該返回匹配特定條件的候選人,還應該返回相近條件的候選人。例如,搜索機器學習應該返回在技能集中列出資料科學的候選人。

3.個性化: 通常,為一家公司尋找到理想候選人考慮的因素並不在搜索條件裡。還有些時候,招聘人員也不確定使用什麼標準。個性化搜索結果是任何成功的搜索和推薦體驗的關鍵因素。

LinkedIn 招聘產品搜索和推薦體驗的第四個關鍵標準不像前三個標準那麼明顯,它關注的是簡單的衡量指標 。為了簡化推薦體驗,LinkedIn 對一系列關鍵指標進行了建模,這些指標是成功招聘的有效指標。例如,站內信閱讀數量似乎是判斷搜索和推薦過程有效性的一個明確指標。從這個角度來看,LinkedIn 將這些資料作為衡量其機器學習演算法優化程度的關鍵指標。

優化目標:接收到的站內信數量。從招聘者開始 1、搜索 2、發站內信到候選人 ,然後候選人 3、接受閱讀並回饋給招聘者

線性回歸上加入梯度增強決策樹,創建穩固結構

LinkedIn Recruiter 最初的搜索和推薦經驗是基於線性回歸模型。雖然線性回歸演算法很容易解釋和調試,但它們在 LinkedIn 等大型資料集中找不到非線性關聯。為了改善這種體驗,LinkedIn 決定使用梯度增強決策樹(GBDT)來將不同的模型組合成更複雜的樹結構。除了更大的假設空間外,GBDT 還具有其他一些優點,如能夠很好地處理特徵共線性、處理不同範圍的特徵以及缺少特徵值等等。

與線性回歸相比,GBDT 本身提供了一些切實的改進,但也未能解決搜索體驗的一些關鍵挑戰。有一個著名的例子,輸入搜索牙醫的請求,卻返回了具有軟體工程頭銜的候選人,因為搜索模型優先考慮尋找工作的候選人。為了改善這一點,LinkedIn 添加了一系列基於成對優化技術的上下文感知功能。從本質上講,該方法擴展了 GBDT 的兩兩排序目標,以比較相同背景下的候選人,並評估哪個候選人更適合當前的情況。

Linkedin Recuriter 瓶頸:個性化需求

Linkedin Recuriter 的另一個挑戰是,如何將應聘者與「資料科學家」和「機器學習工程師」等相關頭銜匹配起來。僅使用 GBDT 很難建立這種相關性。為了解決這個問題,LinkedIn 引入了基於網路嵌入語義相似特性的代表學習技術。在這個模型中,搜索結果將根據查詢的相關性由具有類似職位的候選人補充。

可以說,LinkedIn Recruiter 面對的最難解決的挑戰是個性化。 從概念上講,個性化可以分為兩大類。實體級個性化側重於在招聘過程中考慮進去不同參與個體的偏好,如招聘人員、合同、公司和候選人。

為了應對這一挑戰,LinkedIn 採用了一種著名的統計方法,稱為廣義線性混合(GLMix),它使用推理來改進預測問題的結果。

具體來說,LinkedIn 的招聘人員使用了一種架構,它結合了學習排名功能、樹交互功能和 GBDT 模型評分。將學習到等級的特徵作為預先訓練的 GBDT 模型的輸入,該模型生成編碼為樹交互特徵的樹集合和每個數據點的 GBDT 模型得分。然後,利用原始的學習排序特性及其以樹交互特性和 GBDT 模型評分形式的非線性轉換,廣義線性模型可以實現招聘級和合同級的個性化。

LinkedIn 招聘官所要求的另一種個性化體驗是在當前搜索環節裡的體驗升級。

利用離線學習模型的一個缺點是,當招聘人員審查推薦的候選人並提供回饋時,這些回饋是不會被採用到當前搜索環節裡的。為了解決這個問題,LinkedIn Recruiter 使用了一種被稱為「多武器強盜模型」的技術來改進不同候選人群體的推薦。體系結構首先將工作的潛在候選人劃分為技能組。然後,利用一個多武器強盜模型,根據招聘人員當前的意圖來瞭解哪一組更適合,並根據回饋更新每個技能組中的候選人排名。

架構:先海選人才,再進行候選人分序

LinkedIn Recruiter 的搜索和推薦體驗基於一個名為 Galene 的專有專案,該專案建立在 Lucene 搜索堆疊之上。上一節描述的機器學習模型有助於為搜索過程中使用的不同實體構建索引。

 

招聘人員搜索體驗的排名模型基於一個具有兩個基本層的體系結構。

L1 挖掘人才庫,並對候選人進行評分/排名。在這一層中,候選檢索和排序以分散式方式完成。
L2 改進入圍人才,以應用更多的動態功能使用外部緩存。

在該體系結構中,Galene 代理系統將搜索查詢請求分散到多個搜索索引分區。每個分區檢索匹配的文檔,並將機器學習模型應用於檢索到的候選文檔。每個分區對候選項的子集進行排序,然後代理收集排序後的候選項並將它們返回給聯邦伺服器。連接使用附加的排序功能對檢索到的候選項進行進一步排序,並將結果交付給應用程式。

LinkedIn 是大規模構建機器學習系統的公司之一。LinkedIn Recruiter 使用的推薦和搜索技術的想法與不同行業的許多類似系統有著驚人的相關性。LinkedIn 工程團隊發佈了一份詳細的幻燈片來展示他們是如何建構世界級推薦系統的。

(本文經 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈揭秘 LinkedIn!全球最大的招聘推荐系统如何被机器学习驱动?〉 。首圖來源: 大数据文摘 。)

延伸閱讀

Netflix 幕後最大功臣是 Python!工程師: 每個數據工具都靠 Python 建構
如何用 LinkedIn 開發客戶?讓達人用 3 個步驟教你
三個月拿下 6 次主管職面試機會,LinkedIn 達人告訴你怎麼用才能達成最大效益


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

只懂摩爾定律就 low 了!軟體工程師還必需知道這 5 項定律

$
0
0

【為什麼我們要挑選這篇文章】Github 上常有神人整理的懶人包,這次又出爐了所有軟體工程師必備的定律,整理者將此稱為駭客信條(hacker-laws),就來看看這些作業時的潛在規定有哪些吧。(責任編輯:方禹涵)

摩爾定律(Moore’s Law) 知道嗎? 帕金森定律(Parkinson’s Law)講的又是什麼?

作為一名合格的開發人員,除了本身「碼力」超強外,或多或少要知道幾條「潛規則」,例如依賴反轉原則(DIP)、強健性原則(Robustness)……

關於開發人員必須要知道的定義、原則以及理論,一位名叫 Dave Kerr 的小哥哥在 Github 上專門開了個科普樓,為廣大程式設計師介紹必備的定律。

他將這個項目稱為:駭客信條(hacker-laws)。

下面文摘菌(本文作者)為大家編譯幾條,具體內容,請大家移步 GitHub。

Hacker-laws GitHub 傳送門:點這

阿姆達爾定律(Amdahl’s law)

一個計算機科學界的經驗法則,因吉恩·阿姆達爾而得名。它代表了處理器並行運算之後效率提升的能力。

並行計算中的加速比,是用並行前的執行速度和並行後的執行速度之比來表示的,它表示了在並行化之後的效率提升情況。

可以看出,即使是一個 50% 可並行的程序,在超過 10 個處理單元的情況下也幾乎沒有什麼提高,而一個 95%可並行的程序,在超過 1,000 個處理單元的情況下,仍然可以顯著提高速度。

炒作週期(The Hype Cycle)和阿瑪拉定律(Amara’s law)

「人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。」—— 羅伊·阿馬拉(Roy Amara)

Hype Cycle(技術成熟度曲線)是製技術興奮度和發展成熟度的直觀表現,最初由高德納公司(Gartner)提出,如下圖所示:,如下圖所示:

簡而言之,這個週期表明,新技術及其潛在影響通常會引發一陣高度關注。技術團隊經常馬不停蹄進入這些技術領域,但往往無功而返。這可能是因為該技術還不夠成熟,或者現實應用還沒有完全實現。經過一段時間後,技術的能力提高,使用它的實際應用機會增加,團隊最終可以取得成功。 羅伊·阿馬拉 最簡潔地總結了這一點:「人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。」

霍夫施塔特定律(Hofstadter’s law)

表面上和帕金森定律截然相反的霍夫施塔特定律表明:「 即使已經考慮到了霍夫施塔特定律 ,你在一件事上花費的時間總是要比想像得要多。」

該定律與帕金森定律看起來相互矛盾,但其實兩者可以並行使用。霍夫施塔特定律表明,在給一個複雜的項目制定截止期限的時候,人們很容易自信過度。

帕金森定律(Parkinson’s Law)

帕金森定律是官僚主義或官僚主義現象的一種別稱,被稱為 20 世紀西方文化三大發現之一(編按:另外兩項為「莫非定律」、「彼得原理」)。也可稱之為「官場病」、「組織麻痺病」或者「大企業病」。

帕金森得出結論:在行政管理中,行政機構會像金字塔一樣不斷增多,行政人員會不斷膨脹,每個人都很忙,但組織效率越來越低下。這條定律又被稱為「金字塔上升」現象。

將帕金森定律與霍夫施塔特定律結合,會得出一個更加悲觀的結論:你的工作範圍會不斷擴大,結案日期遙不可及。

Unix 哲學(Unix Philosophy)

這一理念表明的是:小即是美,程式做好一件事即可;工程師盡可能早地建立原型 ;可移植性比效率更重要 。另外數據應該保存為文字檔案 ,盡可能地榨取軟體的全部價值 。使用 shell 指令碼來提高效率和可移植性 、避免使用可定制性低下的使用者介面,所有程式都是數據的過濾器。

觀看更詳細內容,G itHub 傳送門:點這

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈Github 一天标星 1k+,程序员需要知道的那些定理和法则 〉。首圖來源:Pixabay。)

延伸閱讀

GitHub 上破 10 萬顆星!工程師寫程式控訴中國「996」血汗加班制度
GitHub 神人整理出一份 Python 開源清單:15 個領域、181 個開源項目任你用
破千顆星的 GitHub 超強資源包,所有好用的「深度學習」資源都在這裡啦!


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

【我只想靜靜 coding】菜鳥工程師是怎麼一步步失去理想與熱情的?問題其實出在主管身上

$
0
0

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至 jobs@fusionmedium.com」

菜鳥工程師初出茅廬時大多是帶著熱情與理想的,他們是怎麼一步步變成那個「別吵我,我只想靜靜 coding」一臉厭世的工程師?

《Habits That Harm Your Technical Team》一書的作者 Marcus Blankenship 說,大多數主管都會認為,一個工程師從充滿熱情,到偏執甚至被孤立,問題是出在他自己身上。

但 Marcus Blankenship 認為,其實菜鳥工程師會變成這樣,問題是出在「主管」身上,他出現的消極行為,其實來自上司給他的反饋,是公司環境塑造了今日的厭世碼農。

怎麼給「第一次建議」非常重要

Marcus Blankenship 認為,主管、上司第一次給菜鳥工程師的建議「非常重要」,因為這決定了他們會不會在將來分享更多的想法,或者成為一個選擇閉嘴、不再多管閒事的人。

因此,儘管他們提出的想法可能不適用於公司現況,但主管給的建議若帶有鄙視、貶低的想法,「尤其在他們剛來幾個月內做出這種舉動是最糟糕的。」

因為當他的滿腔熱情一而再、再而三地被潑冷水,他不久就會意識到「唯一的取勝方式就是不玩了、保持沉默」。

他不再提出想法、不要求與客戶見面,也不再真誠地理解業務,只會靜靜地敲 code,其他什麼都不想幹,而這是身為主管的人最不希望工程師吸取的教訓,最後成了雙輸的局面。

當菜鳥工程師給出建議時,其實也在承擔風險

Marcus Blankenship 說,當這些菜鳥工程師提出新的想法時其實是在「冒險」,且想法越大,風險就越大,因為我們的想法其實反映了我們自身的觀點與熱情,「我們不會去推動那些自己不關心、自己認為不可行的想法」,所以我們提出新的想法時,是把最好的想法給貢獻出來,希望能被接受。

「這需要有暴露脆弱的勇氣,」而如果我們認為自己的想法不會被接受,就不會再說。

主管對工程師想法的反饋塑造了他日後的行為。當上述的情況發生,那麼他就只會退回去只做能讓自己成功的事情,也就是寫代碼,不會再對自己正在建造的事物提供意見,只沉迷於它的建造方式。

不曾明說,但主管正在傳遞的「企業文化」其實是……

是什麼讓當初曾抱有創造、創新與開發熱忱的菜鳥工程師,變成了一個只會更關心自己賺了多少、頭銜是什麼,以及自己的 LinkedIn 看起來如何的厭世工程師?其實是主管不知不覺正在傳遞的企業文化。

Marcus Blankenship 說,雖然主管可能永遠不會說出這些話,但其培訓方式與文化,可能會傳遞以下訊息:

「我們的公司不喜歡小人物的大想法。」

「你做好開發的事情就夠了,我們會弄清楚客戶要的是什麼。」

「你就只是個程序猿。」(“You are just a code monkey.”)

「嗯……為什麼你有十萬個為什麼,你沒有代碼可寫了嗎?」

例如美媒 《CNBC》 就曾在今年稍早揭露 Facebook 的企業文化「不鼓勵提出反對意見」,在美國知名求職網站 Glassdoor「最理想雇主」調查中,Facebook 每況愈下,從去年的冠軍寶座一路跌到第 7 名,顯示企業文化的重要性。

Marcus Blankenship 說,所謂的企業文化不是貼在牆上的口號,也不是在面試時向面試者介紹的公司使命,而是在這間公司 「大家的做事之道」,文化不是命令,而是學習、榜樣與模仿。

Marcus Blankenship 建議主管,若看到你不喜歡的東西,那就去改變它,「身為主管,值得別人效仿是你的工作。」

TO 編按:如果工程師想開心工作 20 年,你可以……

雖然這是一篇給主管的建議,但相信也有正在失去熱情的菜鳥工程師正在看這篇文章。TO 在這推薦你一篇文章。

根據 Stack Overflow 近期公布的 2019 年工程師普查 報告 ,在這份近萬人參與的調查中,有 40% 以上的工程師碼齡不到 5 年。

《大數據文摘》作者文摘菌關心了中國工程師面臨的 996 問題,並撰寫了一份給工程師的職涯警惕文,他在評論中看到工程師普遍擔心與焦慮的疑問,例如:

「工程師真的都應該 996 嗎?」
「工程師和空姐一樣,吃的都是青春飯。」
「一直寫代碼,沒有時間學習提升,難道要寫到 40 歲嗎?」

文摘菌因此決定採訪幾位老工程師,發現了他們開心工作 20 年的祕密。

綜觀這些老工程師對工作、加班、生活的想法,可以發現他們通常對工程師的工作充滿了熱情,都是選擇了自己喜愛的工作來做,如果你想要知道這個秘密的詳情,請點 【傳送門】

參考資料來源:

1. Marcus Blankenship:Why your programmers just want to code
2.《CNBC》:〈Inside Facebook’s ‘cult-like’ workplace, where dissent is discouraged and employees pretend to be happy all the time

(本文提供合作夥伴轉載,首圖來源:Flickr,CC Licensed。)

延伸閱讀

工程師只能 996 嗎?三個老工程師教你如何在程式界開心存活 20 年
給工程師的職涯警惕:矽谷工程師平均年齡只有 30 歲,老工程師去哪了?
扼殺企業文化的第一步:把口號寫在牆上


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

【日本工程師の夢魘】改元「令和」工程師集體崩潰,後頭還有更可怕的「昭和 100 年」要解決呢

$
0
0

改元令和,為何成為日本工程師的惡夢?

【為什麼我們要挑選這篇文章】若說千禧蟲危機是全球工程師的危機,那麼改元令和發生的「類千禧蟲危機」恐怕僅有日本工程師自己能解。

作為世界唯一保留了年號和皇曆的國家,改元令和究竟給日本工程師帶來了怎樣的挑戰?又,為何在令和之後還有更恐怖的「昭和 100 年」問題等待解決?下文,讓我們來看看日本工程師是怎麼集體崩潰的。(責任編輯:藍立晴)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息   
快將你的履歷自傳寄至    jobs@fusionmedium.com

從 5 月 1 日開始,日本就徹底告別了平成時代,步入令和元年。

而且由於天皇更替舉國歡慶,日本往年最長只有 5 天的黃金周將被加量到 10 天,也就是說,日本社畜(日本企業底層上班族的自嘲用語,意思為「公司的牲畜」)即將迎來夢幻般的十連休!

這也是自 1948 年日本頒布《假日法》以來的首個十連休。

但對於已經到來的令和元年十連休,也不是每個人都歡天喜地。因為伴隨著新元號而來的,是一系列煩死人的系統年號變更問題。

作為全球唯一保留了年號和皇曆的國家,儘管日本在日常生活中也普遍使用公曆,但無論是銀行、證券、保險等金融機構還是行政機關,都仍在使用年號紀元。

改元令和,日本工程師前所未有的大挑戰

因此,從 2019 年 5 月 1 日正式改元開始,日本所有的電腦和軟件系統都必須在當天同步改用新年號。而在日的國際 IT 公司,更需要將公曆與日本皇曆切換,將日本使用的軟件版本日期更新為新年號紀元。

而且,1989 年開啟的長達 30 的年平成時代裡,網路資訊技術迅猛發展,比起上次改元時,今日的網路系統對人們生活的影響已不可同日而語。

如今電腦、手機、保險券甚至 ATM 機都已經接入了電腦系統,對於日本工程師來說,讓所有的電腦都在 5 月 1 日同步改元,這還是歷史上從未有過的大挑戰… …

以至於一位 Twitter 網友吐槽道: 在改元的祝賀氣氛裡,IT 從業者看到這幅畫面卻只想罵人

身為 IT 業不相關人士、隔壁看戲人員,大家可能無法理解日本工程師「隨時都會被拖出去祭天」的恐慌,然而在工程師甚至日本政府看來,改元確實是件關係國計民生的大事。

開年有點慌,令和印章洛陽「章」貴

儘管從小接受西式教育、業餘熱衷研究蝦虎魚的明仁天皇非常特立獨行,2016 年就宣布自己將打破慣例成為第一位生前退位的天皇,然而新年號還是要等到退位前一個月才能揭曉。對於需要做出「技術性調整」的各行業人員來說, 真正留給他們的時間只有短短一個月。

於是,新年號甫一公佈,全日本上下立刻緊張了起來!

一些選擇手動升級的中小企業為了繼續利用已經打印出的文件,開始搶刻令和年號橡皮章,橡皮章一時洛陽紙貴。

辦公用品製造商 Hanko21 的總經理瀧口修表示,自己從 4 月 1 日起就開始親自下場和 20 多名員工加班在工廠裡趕製令和印章,但是他的努力沒有維持多久,因為 「年號公佈三天後,我們囤積的橡膠原料就全部用完了。」

而為了在一個月內對旗下的八十多個行政單位電腦系統進行快速調整,名古屋市政府撥款四億八千萬日元進行加班在 5 月 1 日前完成了賦稅、社會保障等重要系統的改造,但還有更多「不緊迫」的系統會留在 1 至 7 日由工程師加班完成……

電腦系統和平成年代一樣古老

當然,最發愁的還是電腦系統老舊過時的私人小企業。因為更新系統耗資巨大,有些日本公司的電腦系統已經二三十年沒有更新過了,幾乎和平成年代一樣古老,根本無法自動升級。

面對改元,山梨縣北杜市的一家老字號點心鋪可能是少有的能淡然處之的實體之一。這家店的老闆在 30 多年前昭和時代預定帳本時,把 50 本訂成了 5000 本,整個平成時代過去了帳本還沒用完。

元號變成令和後,起碼老闆今後只用改一個字了(昭和改令和)。

中小公司改元亂成一鍋粥,而那些自稱「我好了!」的公司,也紛紛出現大漏洞。

一個月前微軟表示,將通過雲端向日本客戶推送 令和更新包 。而 5 月 1 日上午,就有還在加班的日本上班族表示 Excel 日期混亂,不僅顯示出平成 31 年 5 月 1 日這種不存在的日期,公曆年份還變成了 5 位數。

與此同時,北海道銀行、北陸銀行和橫濱銀行開始發生大規模 ATM 機混亂事故。所有的轉帳日期都變成了 1989 年 5 月 7 日,至於被轉走的錢到底去了哪裡、利息怎麼計算誰也不知道(畢竟在系統裡這已經是一筆來自 1989 年,存了 30 年的錢),不過這三家銀行表示他們有信心盡快修復錯誤。

而這場曠日持久的改元混亂,還要持續到 5 月 7 日。

在 2019 年 5 月 1 日內閣會議後的新聞發布會上,日本內閣官房長官菅義偉宣布,儘管 5 月 1 日年號就已經更替為令和,但改元工作要到 5 月 7 日才會結束。「我們不會影響公眾生活。」菅義偉說,但日本民眾對此存疑。

菅義偉

為什麼這麼驚慌?

也許有人不理解,「年號不過是一個名字而已,會造成這麼大的影響嗎?」

事實是,年號與日本的電腦系統和各種證件的系統息息相關,一旦出現混亂,輕則證件失效,重則金融交通系統崩潰。

比如著名的「駕照迷思」。平成 29 年發放的駕照有效期至平成 32 年(2020 年),然而在這個日期來臨前,日本就已經進入了令和時期,理論上平成 32 年是不存在的。

人工操作時還比較好加以判斷,然而對於六親不認的電腦來說,所有有效期在平成 31 年 4 月 30 日以後的契約合同證件證券,全部都是無效的。

此時,就需要工程師們上陣迅速修改系統,保證人們的正常生活了。

西元 2000 年,日本工程師忘了是個大閏年…

而在平成 12 年(即 2000 年)2 月,因為日本工程師忽略了 2000 年是個大閏年,沒有在系統裡加入 29 日,這一天在北海道札幌市拿月票卡通勤的上班族統統被堵死在路上,造成了交通癱瘓和大規模遲到。

雖然犯這種低級錯誤的真實原因已經不得而知,但總覺得換做用公元紀年的話,應該挺好發現 2000 年是閏年的。

因為年號和電腦系統實在過於煩人,維基百科專門在日語「元號」條目中加入了「元號​​與電腦」這一欄,長篇大論元號的種種弊端。

日本工程師受的苦,外人真的沒法數。

令和之後會更慌?「昭和 100 年」要來了

儘管令和的劫已經快渡完了,但日本工程師的夜明還遠遠沒有來到……

在 2019 年開年之初,有一位工程師小姐姐在 Twitter 上提醒大家:「比起新元號對應問題,還有更需要擔心的事哦~昭和 100 年就快要到了哦~

她的言論立刻引發大量轉發,評論區一片工程師的悲鳴。

日本的昭和時代從 1926 年開始,1989 年結束,歷經 64 年,因此昭和年號最多只有 64 年。那麼讓日本工程師聽了就要跪的昭和 100 年又是什麼鬼?

這還要歸功於前代工程師綿延三十年甩來的巨鍋。

1989 年,日本經歷了昭和到平成的改元,那時的電腦還比較原始,內存只有 64-128 KB,每一個 bit 都至關重要,工程師只能想方設法從各種地方摳內存(ram)。於是,在記錄日期時,年份都只會記錄後兩位,比如 1989 年 1 月 1 日,就會被記錄為 890101。

然而一旦到了 2000 年,巨大的 bug 就出現了。由於只保留後兩位數,銀行裡面的電腦可能把 2000 年解釋為 1900 年,從而算錯利息甚至直接消除帳面記錄,而你在 1999 年 12 月 31 日 23:59 分打了三分鐘的電話,電信局的帳單卻可能出現負數計數而導致系統崩潰(-100 年+3 分鐘)。

這就是大名鼎鼎的千年蟲問題。

在全球同行都為千年蟲焦慮不已的同時,先代日本工程師們卻靈機一動……

如果繼續延用昭和年號計數的話,千年蟲問題就會被推後 25 年,即昭和 100 年(2025 年)才歸零!比別人多了 25 年,肯定足夠我們解決問題了!

所以如今日本政府和企業的系統裡表面上看起來一團和氣,實則一直在底層為昭和續命。

然而眼看令和元年都來了,清算的日期還有六年就要到了,新一代日本工程師們面對 COBOL 等上古語言開發的系統卻更加迷惑了。

「銀行和大企業的基礎系統像古董一樣脆,怎麼也不能更新……!」

「30 年 40 年前的代碼根本沒有說明文檔,剩下的部分也沒有追加變更記錄!」

「法律規定的 5 年追訴期早就過了,因為人事變動,當年的負責人全都找不到了。」

日本工程師大型崩潰,只能祈禱到 2025 年自己已經轉行了……

當然看熱鬧不嫌事大的人也是存在的。

「從平成到令和時代,昭和 100 年問題即將到來,好像被遺忘的時代的亡靈要來了,這不是很帥嗎?」

到那時面對「時代的亡靈」,日本工程師會不會想出新的甩鍋辦法,那就是另一個故事了。

至於當年甩鍋的老工程師們表示,「誰能想到 20 年後你們還在用這一套啊!!」

(本文經合作夥伴 品玩 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈为什么改元“令和”,竟然成了日本程序员的魔咒?〉。首圖來源:  品玩

延伸閱讀

迎接「令和」放 10 天連假,但為什麼日本上班族卻「鬱鬱寡歡」?
全家打算推出「日本版 Amazon GO」,但是他們選擇「保留人類店員」
【文科生在哀號】學 AI 不只是理科生的事!日本政府:你讀文科也得要會


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

GitHub 遭駭客攻擊!勒索交出比特幣贖金,不然就公開你的私有程式碼

$
0
0

【為什麼我們要挑選這篇文章】本是同根生,相煎何太急。駭客、工程師都是寫 Code 的好夥伴,幹嘛想不開攻擊 GitHub,甚至進行勒索呢?(責任編輯:陳伯安)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/ 曉查 乾明

工程師的大本營被駭客攻擊了。

就在五一假期的最後一天(編按:中國五一勞動節皆為連假),一些工程師查看自己放到 GitHub  上的程式碼時發現,他們的原始碼和 Repo  都已消失不見,取而代之的是駭客留下的一封勒索信。

這封信中表示,他們已經將原始碼下載並存儲到了自己的服務器上。

受害者要在 10  天之內,往特定帳戶支付 0.1  比特幣(約 17,000 台幣),否則他們將會公開程式碼,或以其他的方式使用它們。

要找回丟失的程式碼並避免程式碼洩漏:將 0.1  比特(BTC)發送至我們的比特幣地址 1ES14c7qLb5CYhLMUekctxLgc1FV2Ti9DA ,並通過郵件與我們聯繫,提供您的 git 登錄信息和付款證明。地址為 admin[at]gitsbackup[dot]com

如果你不確定我們是否有你的數據,請聯繫我們,我們會給你發送證明。你的程式碼已經被下載並備份到我們的服務器上。

如果我們在接下來的 10  天內沒有收到你的付款,我們將公開你的程式碼或以其他方式使用它們。

從這個威脅話語來看,受到攻擊的是 GitHub  上的私有資料庫。而且,不僅僅是 GitHub,其他程式碼管理網站 GitLabBitbucket  也受到了攻擊。

上百名用戶受害,兇手專攻「私有數據庫」

根據 GitHub  上的搜索數據顯示,一共有 373  名用戶受到了攻擊。根據 GitLab  公佈的數據,駭客至少可以訪問所有 131  個用戶和 163  個資料庫。

這些受到攻擊的資料庫的程式碼和提交信息,全都被一個名為「gitbackup」的帳號刪除。

在各大社交媒體上,一些受害者將遭到攻擊歸咎於 Atlassian  開發的 Git GUI  應用程序 SourceTree,認為駭客利用了其中的漏洞。

但攻擊波及的範圍涵蓋多個平台,The Register  報道稱,這次攻擊很可能是針對無意識的安全性較差的存儲庫,而不是特定的漏洞。

根據 ZdNet  報道,駭客可能是掃描網路上的 Git  配置,然後提取了其中的登錄憑證登錄 Git  庫,來完成的這波操作。

截止到發稿時間(5/5),還沒有人向攻擊者的比特幣帳戶支付贖金。取而代之的是,這一比特幣地址遭到了不少舉報。

根據 Bitcoin Abuse  數據庫顯示,已經有 31  人舉報了這一比特幣地址,表示對方是一個駭客,希望刪除地址。

ZdNet  記者 Catalin Cimpanu  表示,攻擊現在已經停止,並沒有新的帳戶被攻擊的情況出現。

被攻擊帳號有個共通點:密碼沒有保護好

根據 GitLab  的官方聲明,這次駭客攻擊事件最大的問題在用戶:

「我們有充分證據表明,受影響帳戶的密碼以明文形式存儲在相關程式碼數據庫的部署中。」

因此提高安全意識才是保護自己程式碼的最好方法,GitLab  建議用以下方法防止密碼被駭客盜取:

1、使用強密碼,降低被駭客破解的風險

2、用密碼管理工具存儲密碼,不要使用明文

3、開啓雙因素身份驗證,並使用 SSH  密鑰提高

如果你已經不幸中招,也不要急著交贖金,因為即使交錢也無法保證程式碼不會被駭客公開。

至於已經被刪除的程式碼,一位早期受害者在 StackExchange  論壇指出,程式碼其實還在,是可以恢復出來的,只是 HEAD  被駭客修改了而已。

他還給出了一系列補救辦法,被 GitLab  官方推薦。

專家教你如何補救

輸入以下程式碼:

git checkout origin/master
git reflog # take the SHA of the last commit of yours
git reset [SHA]

能看到駭客的提交記錄,並修復 origin/master。但是問題還沒有完全解決,如果輸入 git status,還是會顯示:

HEAD detached from origin/master

如果你在本地備份了程式碼,那就好辦了,直接把本地程式碼強制 push  上去:

git push origin HEAD:master –force

如果你沒有備份,仍然可以從遠端數據庫複製過來,用 git reflog  或者 git fsck  可以找到最後一次提交並更改 HEAD

接下來唯一需要擔心的可能就是駭客是否會公佈你的私有程式碼了。

中、小企業頂得住程式碼公開的代價嗎?

關於程式碼被公開,中國一些公司也有切膚之痛。

比如大疆,其一名前員工,將含有公司商業機密的程式碼上傳到了 GitHub  的公有倉庫中,造成源程式碼洩露。

根據這些原始碼,攻擊者可以 SSL  證書私鑰,訪問客戶的敏感信息,比如用戶信息、飛行日誌等等。

根據評估,這次洩漏程式碼一共給大疆造成了 116.4  萬人民幣(約 582 萬台幣)的經濟損失。

前不久,關於這一程式碼洩露事件也得到了判決:

有期徒刑六個月,並處罰金 20  萬人民幣(約 100 萬台幣)。

最近, 站(中國影音串流網站 Bilibili)的原始碼也被人公開到 GitHub,雖然很快被封禁, 站也已經報警處理,但有不少網友早複製了資料庫,隱患已經埋下,補救起來也頗為頭疼。

如果駭客公開了這次獲取的所有程式碼,對其中一些小團隊來說可能就是滅頂的打擊了。

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈GitHub 遭攻击!黑客给出十天限期:不交比特币赎金,就公开用户私有代码 〉,首圖來源:Pxhere, CC Licensed。)

你可能感興趣

Python 早就落伍了!AI 權威 LeCun 直言:深度學習需要更靈活的程式語言

顛覆熱力學第二定律!物理學家用 IBM 量子電腦讓「時間倒回」了

最新「數據科學」自學清單:六個月無師自通,菜鳥新手趕快存起來


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

【手刀快存!】讓小孩從小就懂程式語言!這有 6 個最適合的 Coding 教學網

$
0
0

【為什麼我們要挑選這篇文章】程式語言堪稱本世紀最重要,也是最吸金的技能之一。當全世界都在搶學程式語言,怎麼學、何時開始學成為兩個最重要的問題。

本文不會解釋孩子最慢幾歲得接觸程式語言,但卻提供 6 個最適合兒童入門程式語言的網站。想培育工程師的各位爸爸媽媽們,趕快手刀存起來啊~(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息 
快將你的履歷自傳寄至 jobs@fusionmedium.com」

打開百度,搜索兒童學寫程式語言,映入眼簾的就是各種兒童程式語言培訓班的加盟和報名廣告,而在往下翻,則又是一些媒體在質疑兒童學習程式語言是否有必要,是否就是賺錢的新套路。由此看來,兒童學習程式語言在市場需求和輿論評價方面,都存在極大的話題和爭議。

程式語言成為中國考生「必讀」科目

2018 年開始,高考數學江蘇卷、天津卷,就開始要求考生通過閱讀偽程式碼理解程式邏輯,並根據算法得出結果。

而早在 2017 年,浙江省實施的新高考政策,就將通用技術與電腦技術納入選考範圍,除必考的國語數學外 3 門科目外,考生可在技術、歷史、物理等 7 門學科中任選 3 門。

去年三月,教育部通過陽光高考資訊公開平台,公示了當年保送生名單。其中因入選 2017 年、2018 年國際資訊學奧林匹克競賽國家集訓隊而獲得保送生資格的學生總計 53 人。教育部門的導向和保送政策讓許多家長將程式語言學習視為孩子新的起跑線和踏入名校的捷徑。

需求促生市場,根據《中國兒童程式語言行業研究報告》,截至 201810 月,國內小孩學習程式語言行業市場規模約為 30 億元至 40 億人民幣(約 150 至 200 億台幣),用戶規模約為 1550 萬,行業規模將在 5 年內達到 300 億人民幣(約 1,500 億台幣)。

不同於美國以 2B2C 教育軟硬體工具的銷售為兒童學習程式語言的主要商業模式,中國程式語言兒童教程創業公司主要以開設線下培訓班為主。第一個原因是由於中美兩國人才選拔模式不同,而第二個原因則是相比開發成系統的軟硬體,線下培訓班的用時更短、成本更低、獲利更快。

市場的巨大需求引起了眾多投資者的進入,紅杉、華創等一線風投皆有所動作,少兒程式語言也被行業內稱為:「基礎教育市場的最後一塊藍海」。《2018 教育行業藍皮書》顯示,截至 20188 月,在科創教育部分,兒童學習程式語言的案例數和金額數均為最多,其案例數佔比達到 44.4%,融資總額則高達 7.82 億元。據不完全統計,到目前為止已經有 200 多 家品牌和機構。

中國爸媽狂問:我小孩最慢幾歲得開始學程式語言?

兒童程式語言教程的火熱的市場催生了大大小小、良莠不齊的培訓班,有的培訓班甚至在網上買幾套課程破解,租個房子請幾個老師就開始招生,並且根據齊魯壹點報道,有的兒童程式語言培訓機構還打著「學程式語言 —— 參加比賽 —— 拿到好成績 —— 升學有保證」的旗號招生,並且宣稱 3 歲就可以開始學程式語言了,8 歲都有點晚了。這樣的情況引來了不少的人的質疑,是否所有的小孩都要去學程式語言?幾歲開始學才是合適的年齡?

今年二月,央視財經做過一個兒童程式語言教程的專題調查。

其中接受採訪的 Botball 機器人競賽項目負責人郝帆說:「實際上程式語言這個東西還是比較適合反應比較快的孩子,適合邏輯思維能力這方面比較強的孩子,學生想真正在少兒程式語言領域獲得成績,除了天賦以外還需要大量的時間上課,訓練,一直到競賽。而能夠脫穎而出的孩子畢竟只是鳳毛麟角,如果不是出於真正的興趣,而是單純想通過學習程式語言,達到升學、加分的目的,結果可能會讓人失望。」

圖片來自央視財經

而真正感興趣的小孩子幾歲開始學比較合適,也成了家長們最關心的話題。其實這一點家長並不需要太焦慮,3 歲開始,8 歲開始學有點晚」這種說辭純粹是培訓機構的招生手段 。就拿很多培訓機構使用的 Scratch 兒童程式語言學習 平台來說,其官方網站上的說明都是主要針對為 816 歲的孩子設計的,更小的孩子可以學習簡化版,但是最低年齡也要有 5 歲。

全球都在推!年少學習程式語言已成世界趨勢

隨著大數據和人工智慧時代的來臨,各國確實非常重視青少年的資訊基礎教育。2016 年,美國政府為了兒童程式語言教程,不惜投入大把的資金,要求全國的學校提高和推廣程式語言學科的質量;而英國在 2014 年時也將少兒程式語言加入了必修課程當中,要求全國五歲以上的小學生必須就開始接觸程式語言兒童教程;澳洲也要求十歲的學生開始進行學習;日本則早在就在中小學中普及程式語言教育科目。

可以說,對於青少年來說,進行程式語言學習確實能夠提高邏輯思維能力,尤其對於感興趣的孩子來說,是非常好的一個課外活動。

之前文摘菌(本文作者)也就兒童學習程式語言這個問題採訪過吳軍博士,他也認為年少學習程式語言其實是一種科學思維的培養方式,而在時間和精力比較充裕的情況下,是可以進行科學思維的培養的。

但是許多家長可能有這樣的疑惑,父母都是文科生,沒學過電腦,想要讓孩子學習程式語言,只能送去質量未知的培訓班麼?

答案肯定是 NO

其實國外已經有了很多成熟的兒童教程網站和軟體,包括許多培訓班選擇的 MIT 開發的平台 Scratch,都有配套的家長教程,也就是說,家長先學一下教程,然後就可以帶著孩子學習了,對於有時間的家長來說,完全沒必要花錢去培訓班學同樣的東西。

下面文摘菌給大家介紹幾款非常好用的的程式語言學習平台,趕緊為自己的小孩增添點知識!

送你 6 個適合孩童的程式語言學習網

Minecraft for Education(我的世界教育版)

我的世界是全球最受歡迎的遊戲之一。除了我們平常見到的那個,還有有一個教育版,其中有一個少兒程式語言的課程 ——Coding with Minecraft,它是基於 CSTA 標準,涵蓋了基礎電腦科學概念,如條件,函數和坐標。課程一共有 30 小時,包括課程計劃,學生工作簿,評估指南和 Minecraft 世界,以幫助學生建立計算思維技能。

適合年齡:11-16

傳送門

Kodable 和 CodeHS

Kodable 是一個完整的 K-5 課程,讓小孩從幼兒園開始就像工程師一樣思考,到 5 年級編寫真正的 JavaScriptKodable 的課程同樣也是符合 CSTA 標準,同時還提供教學說明,因此不瞭解電腦科學知識的家長也可以教他們的孩子程式語言。CodeHS 屬於進階版,將課程擴展至 6-12 年級。

適合年齡:幼兒園 高中

傳送門

Scratch

Scratch 是一種基於程式碼塊的程式語言語言,同時也是一個在線社群,孩子們在這裡可與世界各地的同齡人交流互動故事、遊戲和動畫。學習 Scratch 的同時,他們也間接培養了邏輯推理、創意思考和協同合作的能力。Scratch 由麻省理工學院媒體實驗室設計和維護。

適合年齡:8-16

傳送門

ScratchJr

Scratchjr Scratch 的一個更基礎的版本,是一個完全免費的手機 App 兒童學習程式語言軟體(兼容 IOSAndroid),旨在為更小的孩子介紹電腦程式語言。 家長可以通過動畫指南和書面說明向孩子們解釋遊戲,以便讓他們開始。Scratchjr 可以提供很多創建腳本的選項,包括不同的背景和動作,孩子一學就是幾個小時,根本停不下來!

適合年齡:5+

傳送門

ScratchJr 界面

Tynker

Tynker 也是使用可視化程式碼塊教學程式語言,對孩子來說好玩又簡單,這個平台自由度比較大,提供很強大的自由發揮空間。Tynker 在全球普及度很廣,全球各地的孩子們在平台上製作和分享了超過 2000 萬個項目,創建了一個龐大的 Tynker 社區。

適合年齡:4+

傳送門

Hopscotch 

Hopscotch  中文名叫「跳房子」,也是一款兼容 IOSAndroid 的免費 APP。 孩子們編寫自己控制字符的程式碼,使用應用程序程式碼塊進行程式語言設計。 這款應用程序的基於字符的設計使它有別於其他應用程序, 孩子們也可以在他們的程序中添加文本。 「 跳房子」是開放式的 APP,這意味著孩子們不需要為角色編寫程式碼來做特定的事情,而是可以自由想象和發揮,這是這個遊戲與眾不同的另一個方面,但同時也要求孩子更強的思維能力和創造能力。

適合年齡:8+

傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈8 岁学编程已经晚了?6 个网站让你在家教孩子学编程 〉。)

你可能感興趣

數據科學家必讀的五本書:重要的不是會打 Code,而是背後的資料邏輯思維

最新「數據科學」自學清單:六個月無師自通,菜鳥新手趕快存起來

下一代要學得東西太多!中國新手爸媽上網急問:「小孩幾歲學 Tensorflow 才不算晚?」


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

LinkedIn 如何透過機器學習,建造世界最強的「求職推薦系統」?

$
0
0

【為什麼我們要挑選這篇文章】LinkedIn 找工作平台,已經成為美國年輕人另類的社交平台,就算沒有在找工作,還是會習慣性上去刷一下,了解職場趨勢,而 LinkedIn 的人性化設計是成功關鍵,背後的人工智慧技術更是功不可沒。

所以 LinkedIn 人工智慧研發總監張梁才表示,人工智慧於 LinkedIn 而言是氧氣般的存在,是所有用戶體驗的 DNA,貫穿其社交聯繫、職位推薦等應用。下文來了解  LinkedIn 是如何運用「氧氣」般重要的人工智慧!(責任編輯:黃穗懷)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至 jobs@fusionmedium.com」

LinkedIn 是迄今為止市面上極受歡迎的招聘平臺之一。來自世界各地的招聘者每天會從 LinkedIn 上網羅挑選適合他們招人崗位的候選人。

像 LinkedIn Recruiter 這款產品,就可以説明招聘者創建並管理一個人才庫,最大限度地提高徵人成功率。這款產品的高效性能是通過一系列極其複雜的搜索和推薦演算法來實現的,這些演算法利用了最先進的機器學習架構,也考量了很多實際因素。

除了在構建一個世界上最有價值的資料集之外,LinkedIn 一直在通過各種實驗來突破機器學習技術,希望把人工智慧的一流體驗帶入 LinkedIn 產品中。

LinkedIn 以三大標準建立搜尋推薦模型

招聘產品的推薦功能對 LinkedIn 的機器學習技術提出了很大的挑戰。除了處理龐大且不斷增長的資料集,招聘產品還需要處理很多隨機且複雜的查詢和篩選需求,並提供與之非常相關的結果。搜索環境是如此多變,以至於很難將這個問題簡單轉換為機器學習的模型來解決。以招聘產品為例,LinkedIn 使用了一個包含三個因素的標準來描述搜索推薦模型需要實現的目標。

1.關聯: 搜索結果不僅需要返回給相關的候選人,還需要顯示可能對目標職位感興趣的候選人。

2.智能查詢: 搜索結果不僅應該返回匹配特定條件的候選人,還應該返回相近條件的候選人。例如,搜索機器學習應該返回在技能集中列出資料科學的候選人。

3.個性化: 通常,為一家公司尋找到理想候選人考慮的因素並不在搜索條件裡。還有些時候,招聘人員也不確定使用什麼標準。個性化搜索結果是任何成功的搜索和推薦體驗的關鍵因素。

LinkedIn 招聘產品搜索和推薦體驗的第四個關鍵標準不像前三個標準那麼明顯,它關注的是簡單的衡量指標 。為了簡化推薦體驗,LinkedIn 對一系列關鍵指標進行了建模,這些指標是成功招聘的有效指標。例如,站內信閱讀數量似乎是判斷搜索和推薦過程有效性的一個明確指標。從這個角度來看,LinkedIn 將這些資料作為衡量其機器學習演算法優化程度的關鍵指標。

優化目標:接收到的站內信數量。從招聘者開始 1、搜索 2、發站內信到候選人 ,然後候選人 3、接受閱讀並回饋給招聘者

線性回歸上加入梯度增強決策樹,創建穩固結構

LinkedIn Recruiter 最初的搜索和推薦經驗是基於線性回歸模型。雖然線性回歸演算法很容易解釋和調試,但它們在 LinkedIn 等大型資料集中找不到非線性關聯。為了改善這種體驗,LinkedIn 決定使用梯度增強決策樹(GBDT)來將不同的模型組合成更複雜的樹結構。除了更大的假設空間外,GBDT 還具有其他一些優點,如能夠很好地處理特徵共線性、處理不同範圍的特徵以及缺少特徵值等等。

與線性回歸相比,GBDT 本身提供了一些切實的改進,但也未能解決搜索體驗的一些關鍵挑戰。有一個著名的例子,輸入搜索牙醫的請求,卻返回了具有軟體工程頭銜的候選人,因為搜索模型優先考慮尋找工作的候選人。為了改善這一點,LinkedIn 添加了一系列基於成對優化技術的上下文感知功能。從本質上講,該方法擴展了 GBDT 的兩兩排序目標,以比較相同背景下的候選人,並評估哪個候選人更適合當前的情況。

Linkedin Recuriter 瓶頸:個性化需求

Linkedin Recuriter 的另一個挑戰是,如何將應聘者與「資料科學家」和「機器學習工程師」等相關頭銜匹配起來。僅使用 GBDT 很難建立這種相關性。為了解決這個問題,LinkedIn 引入了基於網路嵌入語義相似特性的代表學習技術。在這個模型中,搜索結果將根據查詢的相關性由具有類似職位的候選人補充。

可以說,LinkedIn Recruiter 面對的最難解決的挑戰是個性化。 從概念上講,個性化可以分為兩大類。實體級個性化側重於在招聘過程中考慮進去不同參與個體的偏好,如招聘人員、合同、公司和候選人。

為了應對這一挑戰,LinkedIn 採用了一種著名的統計方法,稱為廣義線性混合(GLMix),它使用推理來改進預測問題的結果。

具體來說,LinkedIn 的招聘人員使用了一種架構,它結合了學習排名功能、樹交互功能和 GBDT 模型評分。將學習到等級的特徵作為預先訓練的 GBDT 模型的輸入,該模型生成編碼為樹交互特徵的樹集合和每個數據點的 GBDT 模型得分。然後,利用原始的學習排序特性及其以樹交互特性和 GBDT 模型評分形式的非線性轉換,廣義線性模型可以實現招聘級和合同級的個性化。

LinkedIn 招聘官所要求的另一種個性化體驗是在當前搜索環節裡的體驗升級。

利用離線學習模型的一個缺點是,當招聘人員審查推薦的候選人並提供回饋時,這些回饋是不會被採用到當前搜索環節裡的。為了解決這個問題,LinkedIn Recruiter 使用了一種被稱為「多武器強盜模型」的技術來改進不同候選人群體的推薦。體系結構首先將工作的潛在候選人劃分為技能組。然後,利用一個多武器強盜模型,根據招聘人員當前的意圖來瞭解哪一組更適合,並根據回饋更新每個技能組中的候選人排名。

架構:先海選人才,再進行候選人分序

LinkedIn Recruiter 的搜索和推薦體驗基於一個名為 Galene 的專有專案,該專案建立在 Lucene 搜索堆疊之上。上一節描述的機器學習模型有助於為搜索過程中使用的不同實體構建索引。

 

招聘人員搜索體驗的排名模型基於一個具有兩個基本層的體系結構。

L1 挖掘人才庫,並對候選人進行評分/排名。在這一層中,候選檢索和排序以分散式方式完成。
L2 改進入圍人才,以應用更多的動態功能使用外部緩存。

在該體系結構中,Galene 代理系統將搜索查詢請求分散到多個搜索索引分區。每個分區檢索匹配的文檔,並將機器學習模型應用於檢索到的候選文檔。每個分區對候選項的子集進行排序,然後代理收集排序後的候選項並將它們返回給聯邦伺服器。連接使用附加的排序功能對檢索到的候選項進行進一步排序,並將結果交付給應用程式。

LinkedIn 是大規模構建機器學習系統的公司之一。LinkedIn Recruiter 使用的推薦和搜索技術的想法與不同行業的許多類似系統有著驚人的相關性。LinkedIn 工程團隊發佈了一份詳細的幻燈片來展示他們是如何建構世界級推薦系統的。

(本文經 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈揭秘 LinkedIn!全球最大的招聘推荐系统如何被机器学习驱动?〉 。首圖來源: 大数据文摘 。)

延伸閱讀

Netflix 幕後最大功臣是 Python!工程師: 每個數據工具都靠 Python 建構
如何用 LinkedIn 開發客戶?讓達人用 3 個步驟教你
三個月拿下 6 次主管職面試機會,LinkedIn 達人告訴你怎麼用才能達成最大效益


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

只懂摩爾定律就 low 了!軟體工程師還必需知道這 5 項定律

$
0
0

【為什麼我們要挑選這篇文章】Github 上常有神人整理的懶人包,這次又出爐了所有軟體工程師必備的定律,整理者將此稱為駭客信條(hacker-laws),就來看看這些作業時的潛在規定有哪些吧。(責任編輯:方禹涵)

摩爾定律(Moore’s Law) 知道嗎? 帕金森定律(Parkinson’s Law)講的又是什麼?

作為一名合格的開發人員,除了本身「碼力」超強外,或多或少要知道幾條「潛規則」,例如依賴反轉原則(DIP)、強健性原則(Robustness)……

關於開發人員必須要知道的定義、原則以及理論,一位名叫 Dave Kerr 的小哥哥在 Github 上專門開了個科普樓,為廣大程式設計師介紹必備的定律。

他將這個項目稱為:駭客信條(hacker-laws)。

下面文摘菌(本文作者)為大家編譯幾條,具體內容,請大家移步 GitHub。

Hacker-laws GitHub 傳送門:點這

阿姆達爾定律(Amdahl’s law)

一個計算機科學界的經驗法則,因吉恩·阿姆達爾而得名。它代表了處理器並行運算之後效率提升的能力。

並行計算中的加速比,是用並行前的執行速度和並行後的執行速度之比來表示的,它表示了在並行化之後的效率提升情況。

可以看出,即使是一個 50% 可並行的程序,在超過 10 個處理單元的情況下也幾乎沒有什麼提高,而一個 95%可並行的程序,在超過 1,000 個處理單元的情況下,仍然可以顯著提高速度。

炒作週期(The Hype Cycle)和阿瑪拉定律(Amara’s law)

「人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。」—— 羅伊·阿馬拉(Roy Amara)

Hype Cycle(技術成熟度曲線)是製技術興奮度和發展成熟度的直觀表現,最初由高德納公司(Gartner)提出,如下圖所示:,如下圖所示:

簡而言之,這個週期表明,新技術及其潛在影響通常會引發一陣高度關注。技術團隊經常馬不停蹄進入這些技術領域,但往往無功而返。這可能是因為該技術還不夠成熟,或者現實應用還沒有完全實現。經過一段時間後,技術的能力提高,使用它的實際應用機會增加,團隊最終可以取得成功。 羅伊·阿馬拉 最簡潔地總結了這一點:「人們總是高估一項科技所帶來的短期效益,卻又低估它的長期影響。」

霍夫施塔特定律(Hofstadter’s law)

表面上和帕金森定律截然相反的霍夫施塔特定律表明:「 即使已經考慮到了霍夫施塔特定律 ,你在一件事上花費的時間總是要比想像得要多。」

該定律與帕金森定律看起來相互矛盾,但其實兩者可以並行使用。霍夫施塔特定律表明,在給一個複雜的項目制定截止期限的時候,人們很容易自信過度。

帕金森定律(Parkinson’s Law)

帕金森定律是官僚主義或官僚主義現象的一種別稱,被稱為 20 世紀西方文化三大發現之一(編按:另外兩項為「莫非定律」、「彼得原理」)。也可稱之為「官場病」、「組織麻痺病」或者「大企業病」。

帕金森得出結論:在行政管理中,行政機構會像金字塔一樣不斷增多,行政人員會不斷膨脹,每個人都很忙,但組織效率越來越低下。這條定律又被稱為「金字塔上升」現象。

將帕金森定律與霍夫施塔特定律結合,會得出一個更加悲觀的結論:你的工作範圍會不斷擴大,結案日期遙不可及。

Unix 哲學(Unix Philosophy)

這一理念表明的是:小即是美,程式做好一件事即可;工程師盡可能早地建立原型 ;可移植性比效率更重要 。另外數據應該保存為文字檔案 ,盡可能地榨取軟體的全部價值 。使用 shell 指令碼來提高效率和可移植性 、避免使用可定制性低下的使用者介面,所有程式都是數據的過濾器。

觀看更詳細內容,G itHub 傳送門:點這

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈Github 一天标星 1k+,程序员需要知道的那些定理和法则 〉。首圖來源:Pixabay。)

延伸閱讀

GitHub 上破 10 萬顆星!工程師寫程式控訴中國「996」血汗加班制度
GitHub 神人整理出一份 Python 開源清單:15 個領域、181 個開源項目任你用
破千顆星的 GitHub 超強資源包,所有好用的「深度學習」資源都在這裡啦!


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

Google 開源 TensorNetwork 數據庫,加快 TensorFlow 運算速度 100 倍!

$
0
0

【為什麼我們要挑選這篇文章】量子力學顛覆科學家對 AI、大數據相關技術的應用想像,然在量子運算領域常使用的 Tensor Network 卻因系統複雜且運算力不足導致無法普及化。

Google 團隊出手改變現況,並且還暖心的開源了數據庫。學習機器學習的工程師們,趕快存起來用吧。(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  jobs@fusionmedium.com

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/ 乾明

量子系統複雜,暴力運算無效,原有張量網路(Tensor Network)難以廣泛使用,讓開發高溫超導體等複雜問題受限於此。

現在,Google 出手了。

聯合 Perimeter  理論物理研究所和 Google X,開發全新物理和機器學習數據庫 TensorNetwork,用於提高張量計算的效率,現在已經開源。

這一數據庫使用 TensorFlow  作為後端,並針對 GPU  處理進行了優化,與 CPU  上相比,可以實現高達 100  倍的加速。

Google AI 的研究工程師 Chase Roberts  和 的研究科學家 Stefan Leichenauer  表示,通過開源社團,他們會持續向 TensorNetwork  添加新功能。希望 TensorNetwork  成為科學家們和機器學習從業者的寶貴工具。

為什麼 TensorNetwork 能有效加速運算?

張量(Tensor),是按照順序在層次結構中分類的多維數組,普通的數或者標量,是零階張量,向量是一階張量,矩陣是二階張量。

張量網路,是圖形編碼的張量收縮模式(張量上的數學運算類型),由幾個張量組成,並共同構成一個新的張量。

張量網路並不直接存儲或者操縱張量,而是將張量表示為較小張量在較大張量網路形狀中的收縮。

因此,張量網路可以非常有效地表示幾個、幾十個、甚至幾百個張量,而且還不需要佔用大量內存。

現在,張量網路已經廣泛應用於量子物理學等領域之中。這些優勢,也使得其在圖像分類、物體識別和其他人工智慧實踐中更加實用。

TensorNetwork,就是 Google 在這個方向上努力的成果。

作為一個通用的張量網路數據庫,效果如何?谷歌進行了測試。

近似量子態,是張量網路在物理學中的一個典型用例,能夠直觀地說明張量網路庫的能力。

Google 的研究人員用 TensorNetwork  實現了一個樹狀張量網路(TTN) 算法,用來逼近週期量子自旋鏈(1D) 或薄環面(2D) 上的點陣模型的基態。

在這個任務中,使用了 TensorNetwork  庫的 GPU ,與沒有使用 TensorNetwork 庫的 CPU  相比,運算速度顯著提高了 100  倍。

TensorNetwork 大量傳送門:兩篇論文+開源連結

現在,Google  已經將 TensorNetwork  開源(傳送門), 也放出了與 TensorNetwork  相關的兩篇論文。

第一篇論文,對 TensorNetwork  進行了概述,並介紹了這一開源數據庫和 API

TensorNetwork: A Library for Physics and Machine Learning(傳送門

第二篇論文,展示了 TensorNetwork  在物理學領域中的用例,以及運算性能上的表現。

TensorNetwork on TensorFlow: A Spin Chain Application Using Tree Tensor Networks(傳送門

Google 表示,接下來將使用 TensorNetwork 對 MNIST  和 Fashion-MNIST  數據集中的圖像進行分類。

此外,也將在探索其在時間序列分析上的應用,以及量子電路仿真等用例。

Google AI 部落格地址: 點這

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈实现 100 倍加速!谷歌开源超强张量计算库 TensorNetwork〉,首圖來源:Pxhere, CC Licensed。)

你可能感興趣

GitHub 遭駭客攻擊!勒索交出比特幣贖金,不然就公開你的私有程式碼

最新「數據科學」自學清單:六個月無師自通,菜鳥新手趕快存起來

Python 早就落伍了!AI 權威 LeCun 直言:深度學習需要更靈活的程式語言


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

【稱霸 GitHub 熱門榜】菜鳥也懂的 Python 教學,手把手打造「哄女友回話神器」

$
0
0

【為什麼我們要挑選這篇文章】哄女友是一門學問,乾脆不要學直接交給神器。自動化噓寒問暖,只要傳訊息就會秒回,內容還很到位。本文手把手教你用 Python 客製化設計。不怕你覺得懶,就怕你沒有心。(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  jobs@fusionmedium.com

哄女朋友最高的境界是什麼?

除了用心之外,每天不重複的年言蜜語必然是少不了的。雖然國文老師上學的時候也教了一些東西,但是日子長了必然「江郎才盡」。

大家都是混科技圈的,借助自動化的手段能不能一次性的解決問題呢?

稱霸 GitHub 熱門榜數天的「哄女友神器」

嗯,顯然是可以的。Github  作為全球最大的同性交友網站,工程師們不僅可以在上面交流寫程式的技巧,還能學到如何開發一個自動哄女友神器。

先附上 GitHub  地址:(傳送門

這個自動給女友發送微信暖心話的項目,已經連續霸榜 Github  趨勢榜好幾天了。作者用 Python3  和 Itchat  微信介面開發了一款小工具,可以定時給朋友發送每日天氣、提醒、每日一句。通過圖靈機器人,也可以智慧自動回覆信息。

操作簡單且容易上手,即使是小白(新手),只要配置好了 Python  環境,安裝好必要的 Python  數據庫,下載程式碼之後,只要 CMD  一下即可實現。

在手把手教大家操作之前,文摘菌(本文作者)先帶大家看下效果

首先,我定的時間是 22:20,一到時間文摘菌的帳號就收到了發送的信息,包括英文和中文情話。北京的天氣以及在一起的多少天。

調整圖靈機器人之後,兩個帳號便可以對話,圖靈機器人還算強大,當我發送:這是個測試之後,圖靈機器人回覆:你不放心我嗎?

備註:工具項目中的天氣信息來自 SOJSON API  介面,暖心情話來自金山詞霸上面的每日一句,還有英文版。圖靈機器人使用需要申請密鑰,每天免費數量只有 100  條。如果使用超過了,可使用青雲客智慧聊天機器人,這個不限制次數。

手把手教學示範

首先,把 Python  安裝好,並配置好環境,個人建議新手安裝 anaconda,具體安裝教程,可自行 Google 搜尋。

然後安裝必要的 Python  數據庫,環境配置好的同學可以直接用 pip install+ 數據庫名 進行安裝。必須安裝的數據庫為:requestsbeautifulsoup4itchatapschedulerpyyamllxmlsimplejson。記住了,一個數據庫都不能少。

然後進入 Github  地址下載項目的全部文件,解壓縮過後,找到 _config.yaml Python IDE 打開。然後進行一系列的配置。

就是這個文件

第一步:配置自動回覆機器人

開啓自動回覆

 is_auto_relay  設置為:True

配置圖靈機器人

打開 圖靈機器人官網 進行註冊。

創建機器人,得到 apikeyuserid

將 apikey userid 填入到  _config.yaml  文件中的:

turing_conf:

 apiKey: ‘你所獲取 apiKey’

 userId: ‘你所獲取的 userId’

指定自動回覆的好友名單

# 指定自動回覆的好友名單。

auto_reply_names:

 – ‘好友 1′

 – ‘好友 2′

注意:

  1. 只能自動回覆文字類消息
  2. 機器人還無法自動回覆群組消息(待完成)
  3. 如果消息發送太頻繁,微信會限制登錄網頁端登錄。放心,並不會封帳號
  4. 並不是對所有人自動回覆,只是回覆 auto_reply_names 中的人
  5. 當沒有圖靈機器人 apikey UserId,或者數量超出時。會使用備用的青雲客智慧聊天機器人獲取數據

第二步:配置定時提醒

開啓並設置提醒時間

如:

alarm_info:

 is_alarm: True

 # 定時發送時間

 alarm_timed: ‘9:30’

填寫需要發送的好友

如:

girlfriend_infos:

 – # 女友微信暱稱或者備注名,不能輸入微信號。

   wechat_name: ‘文摘菌

   # 女友所在城市,用於發送天氣。(可空)

   city_name: ‘北京

   # 從那天開始勾搭的(可空)( 最終效果為:寶貝這是我們在一起的第 111 )

   start_date: ‘2019-06-13’

   # 後綴(可空)

   sweet_words: ‘來自最愛你的我。

 # 如果你有多個人需要發送,則參照這個樣式,複製即可

 # 如不需要,則刪除或註解下面所有的數據

 – wechat_name: ‘happy’

   city_name: ‘朝陽區

   start_date: ‘2018-11-11’

   sweet_words: ‘來自你俊美的老公。

然後,直接將 run.py  文件直接拖到命令窗口介面,會出現二維碼,掃描之後,實現網頁登錄。

發送成功如下

自動回覆成功如下

注意事項:

  • 檢查是否是最新的程式碼,檢查是否是 Python3.5+,檢查有沒有安裝完整。
  • 先檢查微信是否可登錄微信網頁版,如網頁端不能用,此項目也不能用。
  • 請更新你的  itchat  為最新版本。
  • 與微信相關的可以先去 itchat issues  是否有相似問題。
  • 微信名只能是暱稱或者備注名,不能輸入微信號。

在這裡,文摘菌不介紹程式碼的背後邏輯,感興趣以及有能力的同學可以去作者 Github  查看。

最後,再次給出  Github  地址(傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈手把手教你用 Python 做一个哄女友神器,小白可上手 〉。)

你可能感興趣

GitHub 神人整理出一份 Python 開源清單:15 個領域、181 個開源項目任你用

Netflix 幕後最大功臣是 Python!工程師: 每個數據工具都靠 Python 建構

衝上 GitHub 熱門第四名!Python 機器學習最強教學資源,新手工程師快存起來


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

Adobe 全新反 PS 工具!一秒標出修圖位置,還可以直接「打回原形」

$
0
0

【為什麼我們要挑選這篇文章】Adobe 趕盡殺絕,推出一個「反 PS」工具。大家不怕死的話,可以來玩玩這個 AI 神器,一秒把網美照打回原形。(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  jobs@fusionmedium.com

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/ 劈栗子

人艱必拆。

發明 Photoshop  的明明是 Adobe ,打擊 PS 還要靠 Adobe

官方推出的新功能充滿了惡意,一能識別哪張照片修過了,二能看出修了哪裡,三能還原最初的模樣:

被修窄的下頜骨,在 AI  面前完全藏不住。

手動上揚的嘴角,也被 AI  發現並沒收了。

再把 AI  還原的照片,和沒修過的原圖對比一下:

不過,「還原」也不一定是「變醜」。

比如,妹子的眼睛不知被誰修過,變得兩邊上翹,看上去有些刻薄:

修後與修前

這時候,交給 AI  去還原,眼角就變回了平和的樣子,和原圖幾乎無差:

這是一張動圖

偵測照片有無修圖,精準度高達 99.4%

這優秀的算法,是 Adobe  聯合加州伯克利一同開發的,程式碼快要開源了。

讓它判斷照片有沒有修過,準確率高達 99.4%

相比之下,讓人類用肉眼判斷,準確率只有 53.5%,幾乎是隨機猜的成績。

那麼從識別到還原,是怎樣做到的呢?

現場教學:如何把 P 過的圖修回來

首先,要有真圖和假圖的數據,向 AI  餵食。

團隊給 Photoshop  寫了一個程式碼腳本,讓系統根據輸入的真圖,自動生成臉上各種部位被拉伸過的假圖:

然後,在真圖和假圖之間,計算出一個光流場(Optical Flow Field)

這樣一來,假圖到底假在哪裡,自動標注數據就行了(如上圖)。

然後,把真圖和標注好的假圖, 拿去訓練一個 Dilated ResNet 網路

訓練完成之後,給網路輸入一張假圖,它便能自己預測光流場:

這看上去又是瘦過臉。)

得出光流場,AI  就知道了圖像被拉伸/扭曲的過程。

然後,就可以用一個相反的過程,把  過的圖再扭回去。

實際測試,讓修圖師 P 圖,再讓 AI 修回來

那麼,也該看一下效果了。

測試圖片,是一位專業修圖師的手動加工而成,AI  需要找出圖樣本來的樣子:

被 AI  看穿之後,男子的微笑並沒有消失,只是臉大了幾圈。

然後,把 AI  還原的圖像,和專業修圖師加工之前的原圖,對比一下:

AI  還原的臉型,和原本照片上的臉型,已經十分接近了。

無法阻擋的真相大白。

程式碼開源 Coming Soon

現在,程式碼的狀態還是「Coming Soon」。

不過等開了源,你也可以訓練一隻反向 PS  神器。

沒什麼事情的時候,逛逛朋友圈,讓 AI  幫你看看裡面的自拍,原本都是什麼樣子。

論文傳送門

GitHub傳送門

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈一秒回到 P 图前:Adobe 发布“反向 PS”利器,知道你修过哪里,还帮你修回去 〉,首圖來源:Unsplash, CC Licensed。)

延伸閱讀

GitHub 遭駭客攻擊!勒索交出比特幣贖金,不然就公開你的私有程式碼

最新「數據科學」自學清單:六個月無師自通,菜鳥新手趕快存起來

GitHub 最強 AI 數學解題神器!拍照上傳秒給答案,連微積分都難不倒他

衝上 GitHub 熱門第四名!Python 機器學習最強教學資源,新手工程師快存起來


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

從臉書跳槽到 Google 薪水怎麼算?這個網站揭密矽谷科技巨頭「薪資等級」

$
0
0

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至  jobs@fusionmedium.com

眾所皆知在矽谷工作的軟體工程師薪水豐厚,但其實網路上缺乏薪資的實際訊息,外界難以真正得知他們的薪資數字。最近,由 Zuhayeer Musa 和 Zaheer Mohiuddin 創辦的新興網站 Levels.fyi,靠著群眾外包的資料庫,透明化這個所有工程師都有的疑問:這些矽谷工作的薪酬到底多少?

薪水多少,就看你在公司內部的「等級數」

根據 CNBC 報導,剛出社會的軟體工程師年薪通常落在六位數美金,其中不包括股票酬勞。而按照資歷計算,一些程式設計師的年薪還能上看至數百萬美金,而這一些薪水的評估標準,其實多半都取決於公司內部的「等級數」。

譬如,在 Google 的菜鳥工程師等級從 Level 3 開始算起;Apple 則是從從 ICT2 到 ICT6 將工程師分為五個等級(Individual Contributor Tech,意指「個人貢獻者技術」)。微軟的分級是從 59 級的軟體開發工程師開始往上爬,能爬升至 80 級的「技術院士(technical fellow)」或是某個領域的領導人。等級越高,薪酬就越高。

Levels.fyi 估計,Google Level 3 的初階工程師,年薪為 18.9 萬美元(約 586 萬新台幣),或 12.4 萬美元(約 385 萬新台幣)加上 4.3 萬美元(約 133 萬新台幣)股票薪酬。而同樣是入門等級的 Facebook 的 E3,年薪則為 16.6 萬美元(約 515 萬新台幣)。

Levels.fyi 創始人表示,薪資通常隨著等級的提高上升,甚至可能指數加乘。例如,在 Google 堪稱頂端階級的 Level 7,年薪預估可達 60.8 萬美元(約 1887 萬新台幣)。

各家科技公司的等級數「互通」嗎?

不過,在這個員工流失率非常高的時代,科技業人才的相互跳槽已經十分普遍。於是開始有人好奇:如果在 Google 為 Level 4 的工程師程度跳槽到 Facebook,會是哪一個等級?

美國問答網站 Quora 前人資經理歐斯曼(Ahmed Osman)表示,薪資和等級因公司而異,但各家企業互相影響,衡量方式大同小是,通常分成六個級別,每個級別在各個公司的職位名稱略有不同但有其中關連。他指出,Google 和 Facebook 就是在這一方面尤其相似。

不過由於 Levels.fyi 網站的數據來源是群眾外包,包括自行挑選的族群,不免產生數據不可靠的風險,因為薪酬豐厚的人通常更願意呈交薪資細節。但兩位創辦人表示,他們通常會刪除異常值和其它不可靠的數據點,且網站的薪資數據與 Radford 或 Connery Consulting 等顧問公司販售的薪資數據相近,招聘人員或人資部也會參考該網站。

由於各家公司並不會總讓任何職位的薪資透明公開,使得員工和公司在薪資談判時缺乏參考標準,這就是為什麼 Levels.fyi 決定群眾外包薪資的訊息。

多少人可以達到最高等級?

「如果你是軟體工程師,可能會得到六位數的薪酬,但是也有高級工程師瘋狂賺入數百萬。 讓人大開眼界,這就是我們建造網站的原因。」創辦人之一 Zuhayeer Musa 表示。「人們在網站上看重的是我們將薪酬與特定等級結合呈現。Glassdoor 或其它付費網站沒有這方面的功能。」

不過,Triplebyte 的創始人 Harj Taggar 表示,雖然等級薪資網站有利於高需求的科技人才,矽谷的生活成本也因此提高,造成其他薪資不及科技產業的員工難以負擔。他也指出,Facebook 和 Google 可以說是軟體工程師調薪的指標,帶動矽谷薪酬不斷提高。通常進入公司 4 或 5 年是薪資調漲的時機。

另一位創辦人 Zaheer Mohiuddin 表示,僅有極少數的人真正能爬上科技業的最高等級。科技業金字塔的形狀越高、爬梯子的人越多,那個等級的人就越少。

雖然一些特別傑出的工程師可以躍升至最高級,例如根據 2018 年 12 月《紐約客》,Google 全球系統最厲害的工程師 Jeff Dean 和 Sanjay Ghemawat 已達到 11 級,但大多數的工程師已經務實地將 Level 7 視為職涯天花板。整體來說,大部分工程師介於  Level 3 到 Level 5 之間 。

參考資料:
1.《CNBC》:Here’s how big tech companies like Google and Facebook set salaries for software engineers
2.《大紀元》:谷歌臉書給軟件工程師多少薪資
3.《經濟日報》:〈矽谷工程師賺多少? 這個網站告訴你…

(本文提供合作夥伴轉載。首圖來源:Pixabay

延伸閱讀

台灣科技業薪水大公開!你的薪資是否在同業中少的可憐?
我的薪資合理嗎?行政院「薪情平台」,一看就知道自己的薪水等級
【血汗 AI】負責訓練 AI 的作業員,薪水只有 9 到 18K 是怎麼回事?


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

【研究人員集體崩潰】工程師苦問:如果研究被搶先發表了,你應該放棄嗎?

$
0
0

【為什麼我們要挑選這篇文章】寫論文、做研究最怕想法搶先被別人發表。那種過去幾個月的努力付之一炬的感覺,真的是生不如死。海外有網友在 Reddit 上訴苦:如果自己的研究已經有人發表了,該怎麼保持動力啊?本文幫你整理其他網友的四大回覆。(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至    jobs@fusionmedium.com

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/ 秃栗子

做研究,常常令人頭禿。

其中,一個重要的禿點是:

當你發現自己想做 / 正做著的東西,已經有人發表了,還怎麼保持動力啊?

有位讀研的少年 (vikigenius),就在 Reddit  機器學習版,這樣發問了。

一日之間,熱度已有 180 點。大概是擊中了每個研究人員都會遇到的困境。

想起去年秋天,首爾大學的一群研究人員發現自己的語音合成研究,跟英偉達剛發表的 WaveGlow  之相似,於是趕忙把自家論文也傳上了 ArXiv

英偉達論文
首爾大學等論文

為了搶時間,還迅速開源了程式碼。這一步,總算趕在了英偉達前面。

當然,韓國的研究人員們很幸運,發現「撞車」的當下,剛好有成品在手,隨時可以提交。事後還收到了英偉達發來的橄欖枝。

而通常來說,一己之力想要抗衡大廠幾乎是不可能的,被搶先才是常態。這該怎麼辦呢?

Reddit  樓下,討論十分熱烈。

總結起來,大概有這樣幾個思路。

題目選難一點,具體一點的來做

第一,是關於研究問題該如何選擇。一位網友(-Tyrion-Lannister-)說:

大體來說,如果要避免撞車,就盡量選一個有些難度、又有些意義的問題去做。

不過,不建議離整個領域的關注點太遠,除非你有很強的直覺或者理論,證明它的合理性。

找個中間地帶,一個受關注的問題,只要解決的角度和其他人稍有不同就可以。

雖然,發現這樣的點,要花不少時間,但質量還是比數量更重要。

還有一位網友(alexmlamb)說:

如果你的想法,總是被別人發表,也許是那些想法還不夠具體,或者不夠豐富。

好比,如果你的想法是「用 GAN  來做基於模型的強化學習」,或者是「對影像進行無監督學習來做圖像分類」,那肯定會被搶;

但如果是像「分布式強化學習」或者「Wasserstein GAN」這樣豐滿的技術思想,就很難被其他人挖到了。

當然,對一個研究生來說,擁有獨一無二的想法並不容易。

別一看撞到就放棄,你還有很多空間能發揮

第二,不要因為撞車就放棄。網友是這樣說的:

不要看到有人發表,就把自己的想法扔掉了,可以考慮怎麼才能擴展它,強化它,在它的基礎上做些什麼。科學也就是這樣發展的。

只要想法是認真思考過的,就應該還有一些餘地,可以繼續做下去。

另一位網友(machocornflakes)補充說:

要仔細看過那篇和你撞車的研究,找出不一樣的地方。

如果真的仔細看了,還可能會發現對方的研究,其實沒你厲害。

其實意譯了,原版長這樣:

你會很驚喜,外面都是垃圾

清楚意識「結論」和「論證過程」,哪個對你重要

第三,重點是培養能力。還是來自網友(-Tyrion-Lannister-)

讀研,還在開發自身技能的階段,不到改變世界的時候。

所以,如果有一項已經發表的研究,你為這項技術找到一種特別的應用,依然可以是有用的貢獻。

第四是個提示,不要太追求驚天動地的結論。

這關係到學術創新的環境,網友引用了之前 Nature  的一篇評論文章:

審查論文的時候,主要問題應該在於結論得出的過程合不合理,而不在於結論本身重不重大。

所以,即便兩項研究主張了相同的結論,也應該重視他們各自的方法。這樣,才更有利於提升發表論文的整體質量。

後來者參考前人工作的時候,才能更大程度上避免引用到那些片面的、或者在狹窄範圍內得出的結論。

對審稿人如此,對研究生也是如此。再聯繫上一條,學生時期的重點是培養能力,不是驚天動地。

如果前四條都沒幫上你,可以借鑒最後一條,來自網友(po-handz)

湊合一下,克服一下,適應一下。

畢竟,想法被別人搶發的事情,以後還會不斷出現的。

加油吧,各位研究人員

所以,做人最重要就是開心。

提問的少年也是懷著這個目標,才發問的。他說:

發現自己的想法被人發表,已經好多次了,這次也只是需要一個解壓的出口而已。

和大家討論了一波之後,已經恢復了元氣。

各位也要加油啊。

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈发现自己的 idea 已经被人发表了,该怎么办?研究生灵魂发问,引起热烈讨论 〉,首圖來源:Unsplash, CC Licensed。)

延伸閱讀

Adobe 全新反 PS 工具!一秒標出修圖位置,還可以直接「打回原形」

GitHub 最強 AI 數學解題神器!拍照上傳秒給答案,連微積分都難不倒他

PDF 英文翻譯神器!0.3 秒「不跑格式」自動複製,Ctrl+C 都不用按了呢


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

AI 工程師最佳入門資源!史丹佛公布「自然語言理解」免費課程,新手們趕快存起來

$
0
0

【為什麼我們要挑選這篇文章】史丹佛最新免費課程上線了!工程師們不用付學費也能學到史丹佛的 AI、機器學習相關課程,更重要的是,這學習資源超適合新手入門。

快點把資源存起來,週末沒事跟史丹佛學生一起補腦吧。(責任編輯:陳伯安)

「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息 
快將你的履歷自傳寄至 jobs@fusionmedium.com」

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請聯繫出處

作者:量子位/ 銅靈

史丹佛大學的免費學習資源又來了。

新課程名為自然語言理解(Natural Language Understanding),代號 CS224U,是史丹佛大學今年春季的新課程。

目前,這套課程的所有資源均開放了,包括授課影片、練習程式碼和課程 PDF  資料等,想瞭解自然語言的相關知識,這是一次合適的機會,不出家門也可以和名校學生上同一門課了。

課程公開後,得到不少 AI 研究相關人士 歡呼,這套想要很久的課,終於可以開放獲取了。

CS224U  裡面的內容還真不少,屯著假期充電用再合適不過了。

超適合新手的自然語言課程

這套課程內容較為入門,從電腦語言學的發展歷史開始講起,由淺及深主要內容不少。

課程主要側重開發系統和算法,借此加深學生對自然語言機器理解,內容包含語言學、自然語言處理、機器學習等學科的基礎概念。

這套課程的主要有  個目標,一是瞭解人類的認知,二是帶你動手自己開發一個 AI  助理 / 夥伴,三是學以致用解決 AI  領域的一個子問題。

課程時間表如下:

畢竟是一個學期上完的內容,課程包含的知識點也不少,包含基本工具和框架的使用教程,分布式詞表示,向量空間模型、監督情緒分析、關係提取、自然語言推理、語義解析、評價指標及方法、自然語言語義互動等內容。

課程影片中,史丹佛將內容重新劃分成了幾部分,分別為:

  1. 詞向量(3 節)
  2. 情感分析(2 節)
  3. 關係提取
  4. NLI(自然語言語義互動,Natural Language Interaction)(2節)

不用擔心內容太多難以堅持學下去,CS224U  將大知識點拆成小知識點,以每個小點為單元提供相關的講義、課程 PDF  等內容。

並且,針對每個小點,還附上了相關的學習資源列表,方便進一步學習和查詢。

此外,課程的講義中也有配圖,也不用擔心字太多看不下去。

最後,還有相關的作業,方便鞏固知識點。

作者曾跟吳恩達合作,曾任蘋果、Google 高級研究人員

這套課程的編寫人員均來自史丹佛大學,主要編寫團隊為史丹佛電腦科學顧問助理教授 Bill MacCartney

Bill  本科博士也畢業於史丹佛大學,此前還和吳恩達、Christopher D. Manning  等業界大牛合作過。

畢業後,Bill  曾在谷歌任職了一段時間,為谷歌高級研究科學家。目前 Bill  也在蘋果任職,擔任高級工程經理。

另一位參與課程設計的是 Christopher Potts,是史丹佛語言學教授。

課程資源傳送門

課程網頁

GitHub 程式碼

課程 PDF  版資料

課程影片

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈2019 斯坦福自然语言理解课程开放:视频代码 PDF 都有,名师上课还免费 | 资源 〉,首圖來源:Pxhere, CC Licensed。)

延伸閱讀

2020 年 QS 世界大學排名出爐!從百大排行榜,你能看出哪些世界趨勢?

Adobe 全新反 PS 工具!一秒標出修圖位置,還可以直接「打回原形」

GitHub 最強 AI 數學解題神器!拍照上傳秒給答案,連微積分都難不倒他

衝上 GitHub 熱門第四名!Python 機器學習最強教學資源,新手工程師快存起來


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我
Viewing all 585 articles
Browse latest View live