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

微軟工程師推出 Python 零基礎課程,用 10 分鐘的短片讓你輕鬆上手!

$
0
0
首圖來源:Python for Beginners YouTube 畫面

【為什麼我們要挑選這篇文章】程式已逐漸成為職場的基本技能,因此不少人開始嘗試學習 Python,問題是坊間資源那麼多,到底該如何下手?

微軟工程師看到不少人的痛處,推出「Python for Beginners」的系列課程,讓新手可以藉由 5 到 10 分鐘的影片,建立對 Python 的基本知識,就可以懂得如何找資源,根據自己的需求進深 coding 技術。(責任編輯:郭家宏)

Python 可以說是當今最夯的程式語言之一了。

數據科學家和人工智慧從業者們尤其喜歡 Python,因為它有豐富的、易於理解的語法和廣泛的開源軟體。

如果你想了解一門既實用又簡單的語言,作為你程式人生的第一步,那麼 Python 無疑是適合你的。但是對於學習程式語言來說,最大的障礙,可能就是不知從哪裡開始。

你可能買過一些書,《X 天 Python 從入門到精通》,可能看過一些影片,「XX 大廠工程師帶你從零開始學 Python」,但是當你打開書或者影片一看,發現說好的入門,沒想到還是有一定的門檻。

幾百頁的書和動不動上百個小時的學習影片對有的人來說,無疑是勸退。微軟意識到了這一點,也「充分理解」了大多數人對於學習的耐心,於是就開發了一門教你如何入門 Python 的入門課程,基於原生 VS Code,每節課只有 5 到 10 分鐘,簡直是「嬰兒」級別的入門課程了。

課程 傳送門

影片片長僅 5 到 10 分鐘,讓你輕鬆入門 Python

這門課的名字叫 Python For Beginners,由 Chris 和 Susan 講授,這門課的目的不是為了讓你學會 Python 的所有知識,而是試圖讓你在學完這門課之後,有勇氣打開文檔、書籍和影片去自學更深層的內容。

從了解什麼是 Python,到安裝到寫出第一個「Hello world!」,不僅講的很細,而且關鍵內容還搭配演示的 demo,比如簡簡單單的註釋,也要給你演示一下。

這門課包含 demo 一共 44 節,每節課 5 到 10 分鐘,只講一個內容,總片長不到 5 個小時,對於學習有拖延症的同學來說,真的在合適不過了,刷刷短影片,Python 就入門了!

課程的兩位老師都是微軟的工程師,Susan Ibach,商務部門,專注於 AI 遊戲,喜歡馬拉松和金屬音樂,兩個孩子的母親;Christopher Harrison,產品經理兼網站開發,喜歡馬拉松和瑜伽,也是一位孩子的父親。兩位老師經驗豐富自不必說,有家庭有娃的身份似乎也在告訴要入門程式的人,工程師的中年也可以很幸福。

另外,對於那些想學的更詳細的同學,微軟也提供了文字版的 Python 入門教程,並有配套的沙盒系統可供訓練。

課程 傳送門

如此貼心的課程,還不趕緊學起來?

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈入门课的入门课,微软推出 Python 零基础教程,基于原生 VS Code〉。首圖來源:Python for Beginners YouTube 畫面

更多關於 Python 的資訊

【內附教學】唐鳳愛用的「番茄鐘工作法」,教你用 Python 幾分鐘製作!
用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!
上班族自學 Python、機器學習寶典!Kaggle 全新免費課程教你快速入門,且馬上能應用


針對「網管」問題一次說明白!

轟動 CES 大展的  Wi-Fi 6 是什麼?

馬上了解


【共居實錄】住在矽谷的科技人共享公寓 ,連洗澡都要滑平板記靈感?

$
0
0

寸土寸金的舊金山,想找一戶獨立套房,不含水電月租起碼要 2,000 美金(約 60,392 台幣)以上,如果想住靠近市區一點,或是屋況較優的,一個月花掉將近 3,000 美金(約 90,588 台幣)都有可能,雖然有許多高收入的軟體工程師,但因為房價太嚇人,讓許多工作者都選擇合租 Townhouse 、 Flatshare 等。

有一位在經濟學人跑科技線的記者哈德森(Hal Hodson),到矽谷出差兩個月,臨時需要找住處,但不論飯店或 Airbnb 都貴到嚇人,後來他選擇在臉書社團找短租共享公寓。

原文 傳送門

科技人,「優化」每一件事

「我當時帶了一箱啤酒回家,坐在餐桌上吃飯的室友們一臉尷尬。」

哈德森回憶,某天帶著啤酒回家,居然遭受到室友異樣的目光,原來是當時大家在討論怎麼優化自己睡眠,例如睡眠檢測、飲食調整等等,其中飲食調整一大準則就是「不要碰酒精」,哈德森莫名的帶了禁品回家。

他選的這間共享公寓,月租金 1,300 美金(約 39,328 台幣),是在市區附近的某處地下室,以舊金山的行情來說,算是划算的了。在這間房子裡,加哈德森在內總共有 17 個人,室友們大部分都是科技圈的工作者,有的在 AI 公司工作、有的當創業家,還有前 Google 員工(但目前待業中)

在宿舍也要開 Slack,時刻「精進自己」

跟公寓有關的事物,我們都透過 Slack 聯絡,在裡面我們分了好幾個群組,例如#生活瑣事、#活動、#社區管理等等,還有約會群組,有些事有會在裡面討論感情事。

如果在台灣有一起跟別人合租過,應該都是用 Line 來聯絡室友,但哈德森住的這間共享公寓,室友們互相討論事情反而是用工作上常用的軟體 Slack ,其中還有細分好幾個群組,像是小社區的佈告欄一樣。

這些群組甚至還有其中一個叫「精進自己」,哈德森回憶,剛搬進去的那天,在「精進自己」群組裡,公告一篇貼文寫道「不要讓你寶貴的靈感跟著水一起流掉」,原來是 室友在浴室安裝了一台防水平板,讓大家如果在洗澡的時候,突然靈光乍現可以即時記下來。

地下室房租近 4 萬台幣,高薪矽谷人找房難

哈德森實際體驗矽谷「地下科技圈小社會」兩個月,他分享好的地方是在室友們都是科技圈的人,隨時可以來個辯論或討論,如果說壞處可能就是大家太過熱衷「精進自己」了,連睡眠都要想辦法優化!

矽谷人雖然收入高,但房價逼的即使收入 20 萬的工程師,都有可能淪為月光族,不過因為高房價現象衍生出的共居小社會,也形成另類的文化。

參考資料

你可能感興趣

 


針對「網管」問題一次說明白!

轟動 CES 大展的  Wi-Fi 6 是什麼?

馬上了解

Kaggle 發布新冠病毒數據分析挑戰賽,邀請全球工程師破解病毒資訊

$
0
0
新冠肺炎病毒研究挑戰賽。圖片截至 Kaggle 頁面

【為什麼我們要挑選這篇文章】抗疫戰爭,工程師不會置身事外!有科研團隊建立新冠病毒的研究數據集(CORD-19),讓全球的研究人員使用;而 Kaggle 更組織了新冠病毒數據集挑戰賽,讓資料科學家使用 CORD-19 的數據,挖掘新冠病毒的資訊,而這些資訊有助於醫療團隊研發藥物、疫苗。大數據將是人類打贏新冠病毒的關鍵!(責任編輯:郭家宏)

最夯學術研究:新冠病毒開源分析挑戰賽

新冠病毒科研資料開源

由企業家保羅.艾倫創辦的艾倫研究所(Allen Institute)和世界領先的科研小組合作,建立了一個新的、結構化的開放研究數據集(CORD-19),全世界的機器學習社區都可以使用它,來推進新冠病毒(COVID-19)的研究。該數據集是一個統一的免費資源,包含超過四萬四千篇學術文章、超過兩萬九千篇有關 COVID-19 和冠狀病毒家族的病毒的資料全文,供全球研究團體使用。它旨在動員研究人員應用自然語言處理技術的最新進展,為對抗這種傳染病提供新的認知。隨著新研究每週發表在同行評審的出版物上,語料庫將隨之更新。

參加 CORD-19 挑戰:Kaggle 組織了一個關於新冠病毒的開源研究數據集挑戰,旨在激勵社區使用 CORD-19 的數據集,以尋找有關 CORD-19 的新發現。

報名連結 點這裡
數據集 傳送門

適用於多種人類語言的 Python 自然語言處理工具包

本文介紹了 Stanza,一個支持 66 種人類語言的開源 Python 自然語言處理工具包。與現有的其他工具包相比,Stanza 具有用於語言分析的不定語言全神經管道,包括標記化、多詞標記擴展、詞形化、詞性和形態特徵標記、依賴項解析和命名的實體識別等特徵。

研究人員表示,他們對 Stanza 進行了共計 112 個數據集的訓練(包括 Universal Dependencies 樹庫和其他多語種語料庫),來證明相同的神經體系結構可以很好地泛化並在所有測試的語言上表現優異。此外,Stanza 還使用了一個與 Java Stanford CoreNLP 軟體相連接的本地 Python 接口,這個接口進一步擴展了原有功能,從而能夠涵蓋其他任務,例如共引用解析和關係提取。

Stanza 的神經管道不僅涵蓋廣泛的人類語言,由於其結構設計與語言無關、只靠全神經網絡,因此也能在所有任務上都準確無誤地使用。

原程式碼、文檔和已經訓練好的模型(適合 66 種語言)傳送門
原文 點這裡

Structured3D:用於結構化 3D 建模的大型照片數據集

在這項工作中,研究人員展示了一個大型的合成數據集:Structured3D。它具有 21835 個房間豐富的地面真實 3D 結構註釋,和超過 19 萬 6 千個逼真的 2D 渲染。

這一數據集為大型的逼真圖象提供了豐富的 3D 結構註釋,可以用於各種結構化 3D 建模任務。

這個數據集還有許多潛在用途,研究人員從不同方向,進一步證明了它在增加真實數據和促進房間佈局估計任務的域適應方面的優勢。

研究人員認為,這項工作是建構智慧機器重要且令人興奮的一步,這種機器可以實現人類水平的整體 3D 場景理解。他們也將合成數據集與真實圖像結合使用,訓練深層網絡進行房間佈局估算,並展示了基準數據集的改進性能。

模型 在這裡
原文 傳送門

OpenImage 2019 第一名:對象檢測和實例分割

本文介紹了 OpenImage Challenge 2019 中兩個冠軍團隊的項目:分別是用於檢測軌道的「MMfruit」和用於分段軌道的「MMfruitSeg」。

在競賽中,研究人員觀察到,即使具有共享特徵,一個對象中的不同位置在兩項任務上的表現也完全不一致。例如,顯著位置的特徵通常有利於分類,而對象邊緣周圍的特徵則有利於迴歸。

從這個發現出發,他們提出去耦頭(DH)透過自學習的最佳特徵提取來解開對象的分類和迴歸,從而帶來了很大的改進。此外,他們將 soft-NMS 演算法調整為 adj-NMS,以獲得穩定的性能提升。最後,他們透過對邊界框的位置和信賴度進行分析,提出了一種精心設計的整合策略。他們的工作還介紹了幾種訓練/推理策略以及一些技巧,這些技巧可對檢測器進行較小的改進。

原文 傳送門

使用 MediaPipe 在移動設備上進行實時 3D 對象檢測

Google AI 最近發佈了 MediaPipe Objectron,這是一種用於日常 3D 對象的實時移動檢測方法。它可以檢測 2D 圖象中的對象,並通過在新建立的 3D 數據集上訓練的機器學習(ML)模型來估計其姿勢和大小。Objectron 在 MediaPipe 中實現,MediaPipe 是一個開放原代碼的跨平台框架,能夠用於構建處理不同形式感知數據的程式,Objectron 可以在行動設備上即時計算所面對物體的 3D 邊界框。

為了鼓勵研究人員和開發人員根據我們的演算法進行實驗和原型設計,Google 在 MediaPipe 中發佈了其設備上的 ML 管道,其中包括端到端演示移動應用程式(見連結)以及兩個經過訓練的模型。

開發者希望透過與廣泛的研究社區共享解決方案,並推進新的用例,新的應用程式和新的研究工作。他們計劃將模型擴展到更多類別,並在未來進一步改善我們的設備性能。

GitHub 連結
Demo 點這裡
原文 傳送門

其他熱門論文

在醫學圖像的背景下更深入地瞭解對抗性示例,了解基於深度學習的醫學圖像分析系統的對抗性攻擊

基於轉換器的、端到端的、語音識別語義掩碼

深度學習對 CT 圖像中 COVID-19 的肺部感染定量

TREC 2019 深度學習軌道概述

向可解釋的機器學習再邁進一步,透明的深度神經網路

AI 大事件

亞馬遜的研究人員開發了可改善知識導圖性能的 AI

用於改善機器人操縱性能的計算機視覺,Google 和 MIT 研究視覺轉移學習以進行機器人操縱

如何從 X 射線圖像中檢測到 COVID-19?使用 Keras、TensorFlow 和深度學習檢測 X 射線圖像中的 COVID-19

Microsoft Teams Update 添加了 AI 背景消除功能

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈一周 AI 最火论文 | 新冠病毒数据开源,Kaggle 发布新冠病毒挑战赛 〉。首圖來源:Kaggle 病毒挑戰賽頁面

更多關於程式的資訊

【工程師隱身術】200 行 TensorFlow.js 程式碼,讓你從視訊會議的畫面中「消失」
用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!
「不一定要會寫程式」比爾蓋茲:未來企業需要這 3 種背景知識的人才


遠端工作免費資源在這!

高品質線上會議工具,簡單 3 步驟註冊免費體驗

馬上註冊

【已翻成中文】GitHub 破 10 萬星的超完整 Google 面試攻略,是由一位亞馬遜工程師寫的

$
0
0

【為什麼我們要挑選這篇文章】想去 Google 工作,或是想知道工程師去面試應該如何準備,看這位亞馬遜工程師整理的攻略準則準沒錯。(責任編輯:陳伯安)

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

作者:量子位/郭一璞

一位從 1997 年就入行的 Web 工程師,立志要成為 Google 軟體工程師,3 年前寫下了一篇超完整學習和面試教程,以此作為自己的奮鬥計劃。

這位名叫 John Washam 的工程師,換了好幾份工作,最後卻陰差陽錯在 2017 年成為了亞馬遜 AWS 的技術專家。

但這並不妨礙他的教程成為熱門,在 GitHub 上線以來,已獲得近 10 萬星的好評。

而且最近這篇教程已經完成了中文翻譯,就算你沒有去 Google 面試的機會,也可以用它來好好充實一下自己。

「想去 Google 工作千萬不要妄自菲薄」

作者 Washam 本人並非電腦學位,但在兒時就已經展現出對電腦的濃厚興趣,從事的工作是關於 web 程式的構建、服務器的構建。

作為一名非專業人士轉行,Washam 已經算是相當成功。然而,他還是想去 Google 工作,真正地去理解電腦系統、演算法效率、數據結構性能、低級別編程語言及其工作原理。

可對這些知識都不瞭解的他,怎麼會被 Google 應聘呢?

於是他在網上收集了各類電腦專業知識,以及進入 Google 工作的員工分享的資源,並系統地整理了這些資料。

Washam 強調,想去 Google 工作首先不要妄自菲薄。Google 的工程師都是才智過人的。但是,就算是工作在 Google 的他們,仍然會因為覺得自己不夠聰明而感到一種不安

首先掌握 C++、Java、Python 其中一個

接下來就跟著 Washam 的腳步去學習。

首先要做的就是選擇一門語言,在 Google 一般是 C++、Java、Python,有時也會用到 JavaScript、Ruby。背後還有一些如 SQL、HTML 等技術沒有列出。

接著開始學習電腦硬體知識:

然後補充電腦專業的基礎數學知識,如演算法複雜度 / Big-O / 漸進分析法、數據結構、樹、排序、圖論。

此外還有遞歸、動態規劃、組合與概率、NP&NP- 完全和近似演算法、緩存、線程與進程、系統設計、可伸縮性、數據處理。

看到這麼多知識點,你會不會覺得有點懵呢?Washam 告訴你一點小技巧。

把重點知識變成小字卡複習

因為你不可能一遍就記住所有知識點。所以需要把要回顧的知識點做成抽認卡(flashcard):正常的及帶有程式碼的,類似於背單詞。

每種卡都會有不同的格式設計。項目主頁中就有抽認卡的源程式碼,可以根據自己的學習特點去製作。

Washam 還留有一組 ASCII 碼表、OSI 堆棧、Big-O 記號及更多的小抄紙,以便在空閒的時候可以學習。每編程半個小時就要休息一下,並去回顧你的抽認卡。

當然,論文的閱讀也是必不可少的,尤其是谷歌曾經發表的一些基礎技術論文。

書籍則推薦一些關於演算法和 C++ 編程之類的。

去 Google 面試要注意什麼

面試的第一步當然是要有一份好的簡歷,這樣才能為你爭取到寶貴的面試機會。知名科技部落客 Steve Yagge 給出了 10 個建議,幫你做出一份還不錯的簡歷。

這位 Steve 曾經在亞馬遜、Google 都工作過,Washam 的這個項目就大量地引用了他的技術部落格內容。

在面試時,你可能會遇到這 20 個問題,每個問題準備 2-3 種回答。準備點故事,而不要只是擺一些你完成事情的數據。

面試官在也會問你還有哪些問題,不要說自己沒有什麼要問題,可以試試問一些此類問題:

當然,進入 Google 也不意味著結束,你還要新的學習過程。

Washam 還有一份附加內容,包括 Emacs 和 Vim、Unix 命令行工具、密碼學。這些內容雖然不會直接用到,但是會大大提高你的效率。

最後,在這樣一個特殊的時期,好好給自己充個電。祝大家在新的一年裡都能面試成功!

GitHub 資源傳送門

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈一份来自亚马逊工程师的 Google 面试指南,GitHub 收获 9.8 万星,已翻译成中文 〉,首圖來源:Pxfuel, CC Licensed。)

你可能感興趣

【錄取攻略】《富比世》雜誌 :這 4 個行為決定了你的面試成功率
【優秀履歷這樣寫】財經外媒揭秘:面試官最重視的 5 大職場技能
面試明明很順利,為什麼最後沒被錄取?關鍵取決於「面試順序」


Azure 真的比 AWS 好用嗎?

微軟代表親上陣,快問快答各種辛辣轉型問題!

馬上收看

【內附資源】Adobe 工程師開發只用「一張圖」就能訓練 GAN 的機器學習技術

$
0
0

【為什麼我們要挑選這篇文章】著名網站 This person do not exist(這個人不存在)即是使用 GAN 技術製成,但要做出假以亂真的圖片,訓練 GAN 需要一定數量的數據集做訓練;對於數據量偏少的開發者,真的就只能乾瞪眼放棄嗎?

Adobe 工程師開發新型態 GAN 技術,一張圖也能成功訓練!(責任編輯:陳伯安)

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

作者:量子位/十三

數據集太小了,無法訓練 GAN?試試從ㄧ個圖像入手吧。

去年谷歌就提出了 SinGAN,是第一個拿 GAN 在單幅自然圖像學習的非條件生成模型(ICCV 2019 最佳論文)。

而最近,來自 Adobe 和德國漢堡大學(University of Hamburg)的研究人員,對這個方法做了改進,探討了幾種 讓 GAN 在單幅圖像提高訓練和生成能力的機制

研究人員將改進的模型稱作 ConSinGAN。

那麼,先來看ㄧ下 ConSinGAN 的效果吧。

上圖左側是用來訓練的單個圖像,右側是利用 ConSinGAN 訓練後生成的複雜全局結構。

可以看出效果還是比較逼真。

當然,ConSinGAN 還可以用來處理許多其他任務,例如圖像超分辨率(image super-resolution)、圖像動畫(image animation),以及圖像去霧(image dehazing)。

下面兩張就是它在圖像協調(image harmonization)和圖像編輯(image editing)上的效果。

ConSinGAN 是怎麼做到的?

首先,我們先來看下 SinGAN 的訓練過程。

SinGAN 在圖像中訓練幾個單獨的生成網路,下圖便是第一個生成器,也是唯一從隨機噪聲生成圖像的無條件生成器。

在 SinGAN 中訓練的第一個生成器

這裡的判別器從來不將圖像看做一個整體,通過這種方法,它就可以知道「真實的」圖像補丁(patch)是什麼樣子。

這樣,生成器就可以通過生成,在全局來看不同,但僅從補丁來看卻相似的圖像,來達到「欺詐」的目的。

在更高分辨率上工作的生成器,將前一個生成器生成的圖像作為輸入,在此基礎上生成比當前還要高分辨率的圖像。

所有的生成器都是單獨訓練的,這意味著在訓練當前生成器時,所有以前的生成器的權重都保持不變。

這一過程如下圖所示。

而在 Adobe 與德國漢堡大學的研究人員發現,在給定的時間內僅能訓練一個生成器,並將圖像(而不是特徵圖)從一個生成器傳輸到下一個生成器,這就限制了生成器之間的交互

因此,他們對生成器進行了端到端的訓練,也就是說,在給定時間內訓練多個生成器,每個生成器將前一個生成器生成的特徵(而不是圖像)作為輸入。

這也就是 ConSinGAN 名字的由來——並行的 SinGAN,過程如下圖所示。

然而,採取這樣的措施又會面臨一個問題,也就是過擬合。 這意味著最終的模型不會生成任何「新」圖像,而是只生成訓練圖像。

如何避免 ConSinGAN 無法生成新圖的 bug?

為了防止這種現象發生,研究人員採取了 2 個措施:

在任意給定時間內,只訓練一部分生成器;對不同的生成器採用不同的學習率(learning rate)。

下圖就展示了使用這兩種方法實現的模型。默認情況下,最多同時訓練 3 個生成器,並對較低的生成器,分別將學習率調至 1/10 和 1/100。

在這個過程中,有一個有趣的現象。

如果對較低的生成器採用較高的學習率,那麼生成的圖像質量會高些,但是差異性較弱。

相反,如果對較低的生成器採用較小的學習率,那麼生成圖像的差異性會豐富一些。如下圖所示。

程式碼已在 GitHub 上開源

ConSinGAN 的程式碼已經在 GitHub 上開源。

老規矩,先介紹一下運行所需要的環境:Python 3.5;Pytorch 1.1.0。

安裝也非常簡單:

pip install -r requirements.txt

若要使用論文中的默認參數訓練模型:

python main_train.py –gpu 0 –train_mode generation –input_name Images/Generation/angkorwat.jpg

在英偉達 GeForce GTX 1080Ti 上訓練一個模型大約需要 20 – 25 分鐘。

不同的學習率和訓練階段數量,會影響實驗的結果,研究人員推薦二者的默認值分別是 0.1 和 6。

當然也可以修改學習率:

python main_train.py –gpu 0 –train_mode generation –input_name Images/Generation/colusseum.jpg –lr_scale 0.5

修改訓練階段的數量:

python main_train.py –gpu 0 –train_mode generation –input_name Images/Generation/colusseum.jpg –train_stages 7

當然,模型也可以用來處理「圖像協調」和「圖像編輯」等任務,詳情可參閱 GitHub。

資源傳送門

論文

GitHub 連結

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈单张图像就可以训练 GAN!Adobe 改良图像生成方法 | 已开源 〉,首圖來源: 截自量子位 。)

你可能感興趣

Python 弱掉了!中國工程師開發「文言文程式語言」,讓你的 coding 充滿文學情懷
在家從零自學沒問題!22 歲數據工程師大推 3 本必看的機器學習入門書
矽谷神話不再!為何工程師「從新創逃到大廠」一樣面臨裁員?


Azure 真的比 AWS 好用嗎?

微軟代表親上陣,快問快答各種辛辣轉型問題!

馬上收看

口罩實名制 2.0 推手,關貿公司如何在 12 天內開發 eMask 系統?

$
0
0
開發 eMask 口罩預購系統的關貿公司 50 人團隊。圖片來源:中央社

【為什麼我們要挑選這篇文章】口罩實名制 2.0 已上路將近一個月,大幅提升購買口罩的便利性,讓原先排不到口罩的人可以買到口罩。而 eMask 系統從開發到上路僅用的 12 天,完成這項「不可能的任務」的,是負責報稅軟體的關貿公司。他們如何在 2 週內開發系統?當中最困難的環節是什麼?(責任編輯:郭家宏)

口罩實名制 2.0 能夠順利上路,幕後的功臣之一,是財政部旗下負責報稅軟體的關貿公司,50 人團隊用短短 12 天推出 eMask 口罩預購系統,成功整合金流、物流與客服等,完成國家級任務。

唐鳳決定將報稅系統改造成口罩實名制 2.0 平台

武漢肺炎疫情使得口罩成為搶手貨,2 月起購買口罩採用實名制,民眾需每週持健保卡到健保特約藥局買口罩;而 3 月上路的「口罩實名制 2.0」,進一步採網路預購、超商領貨方式,可讓上班族、學生等族群更容易買到口罩,不用到藥局排隊。

「口罩實名制 2.0」行政院從 3 月 4 日啟動相關討論,5 日決定實施,12 日開放預購,從提出構想到網購正式上路,僅約一週,系統開發時間更只有約短短 5 天;預購平台不僅要介接健保署的使用者資料庫,還要結合手機 APP、物流、金流等各種系統,是一項大工程。

主責網購系統的政委唐鳳,定調要改版報稅系統來製作口罩實名制 2.0 平台,這項重責大任,便交到財政部轄下、製作報稅軟體的關貿網路股份有限公司手上。

關貿公司接到任務後,50 人團隊 24 小時輪班開發

關貿公司董事長許建隆接受中央社專訪時表示,自從 3 月 5 日接到行政院一通電話,就此啟動了這個「國家級的 O to O 任務」(Online to Offline,從線上到線下的電子商務模式)。這是關貿公司過去從來沒有過的突發任務,不僅任務時間短,系統內容也非常繁瑣,但是疫情當下,「我們當然是責無旁貸」。

許建隆說,關貿公司接到電話當天,便開始著手調度,從營運、報稅系統、資安、客服等各部門抽調人力,組成約 50 人團隊,全力投入開發。

許建隆表示,為完成系統開發任務,團隊成員 24 小時輪班,幾乎每天都待在公司,可說是沒日沒夜;關貿公司也盡力提供支援,開放會議室當作休息室,並訂下公司對面的商務旅館房間,讓沒時間回家的團隊成員,有地方可以好好梳洗或休息。

口罩平台最困難的是整合線下服務

外界可能以為關貿公司做好網路預購系統、3 月 12 日開放預購後,關貿公司就已完成任務,但事實上,預購開始後,才是真正的挑戰。

接受專訪同時,關貿公司戰情中心的螢幕上,正顯示著 eMask 口罩預購系統目前的登入人次與預購完成人次,以及網站流量等各項監控數據。

許建隆說,口罩預購平台最難的不是線上(Online)的網站系統,而是線下(Offline)服務的整合。

他指出,過去政府的網路服務系統,很少做線下整合服務,這次口罩實名制 2.0 要除了提供線上預購,等到預購結束後,還要整合線下的通知、銀行付款金流、中華郵政配送、超商物流等等,有非常繁瑣的資訊整合工作。

口罩實名制 2.0 從無到有,關貿公司團隊只花了 12 天

從接到任務,系統開發只有約 5 天時間,加上第一輪預購 7 天期間,口罩實名制 2.0 從無到有,關貿公司團隊只花了 12 天。許建隆說,團隊每天跟時間賽跑,在 3 月 12 日到 18 日的第一輪預購 7 天期間,團隊仍是上緊發條,繼續進行各項整合;許多跨部會協調工作也有賴行政院與唐鳳協助,他打趣說,「國家機器真的動得很厲害」。

他表示,關貿公司從事貨物通關與報稅系統服務 20 年,在疫情發生的初期,也發想過為國營事業開發人不用接觸的打卡系統,避免上下班排隊打卡散播疫情,沒想到被交付了意外的任務。

許建隆在專訪中也多次強調,「我們的同仁真的要給他們鼓勵」,用這樣短短 12 天時間,完成幾乎不可能的任務,為防疫盡一份心力。

(本文經合作夥伴 中央社 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈口罩實名制 2.0 推手 關貿公司 12 天完成國家級任務 [影]〉。首圖來源: 中央社

更多關於新冠肺炎的資訊

【民間自救】美國大學研發平價呼吸器,成本不到一萬元台幣
CEO、CTO 弱掉了,新冠肺炎病毒瞬間讓企業數位轉型!
【疫情重災區】營收歸零、生意全部熄火,旅遊業龍頭雄獅準備靠「精打細算」打生存戰


GitHub 重量級講者現身說法

微軟 AI 應用實戰教學來了!

免費線上看

【N95 口罩是台灣人發明的】工程師優化熔噴布技術,讓口罩用「靜電」過濾 95% 的細菌病毒

$
0
0

【為什麼我們要挑選這篇文章】在 SARS、新冠肺炎疫情中備受重視的 N95 口罩,其實是台灣人發明的!蔡秉燚曾在美國田納西大學材料系工作,他研究熔噴布並解決關鍵技術,讓布料能夠帶上靜電,吸附空氣中的細菌與病毒,發明出過濾程度高達 95% 的 N95 口罩。

雖然熔噴布聽起來沒有 iPhone、Facebook 那麼 fancy,那麼廣為人知,但其實人類多數的突破性技術也是如此,默默在實驗室誕生,默默應用在某些場域中,默默提升人類的生活品質,而在某些緊急狀況中,也能成為救命的關鍵技術。(責任編輯:郭家宏)

美商 3M 拒絕美國政府強制購買 N95 口罩引發喧然大波,也讓 N95 口罩受重視,不織布公會 7 日在官網資訊分享,談談 N95 口罩的發明人,來自於台灣的美國工程師蔡秉燚(Peter Tsai)。

救命的 N95 口罩,不為人知的台灣發明者-Peter Tsai 博士「利用 Peter Tsai 博士的新方法所得到的帶電不織布,過濾空氣中顆粒的能力強了 10 倍,還不會阻礙空氣流通,奠定了 N95 口罩的技術基石。去年,曾有人估計這項技術保護和改善了超過 10 億人的健康。」http://www.nonwoven.org.tw/index.php?Act=0&SK=11370&MK=0&PK=5345

Posted by 台灣區不織布工業同業公會 on Monday, April 6, 2020

透過靜電,N95 口罩能夠吸附細菌與病毒

N95 口罩裡的 N 代表 not resistant to oil,也就是不防油,但是在過濾效果極佳,95 就是至少能過濾掉 95% 的流感病毒、灰塵、花粉、霧霾、以及煙塵等微小顆粒物;為何可以過濾掉病毒細菌與粉塵,答案在於口罩中間層的靜電熔噴布。

熔噴布在生產過程可以將纖維變得細微,纖維中產生孔洞就能捕捉粉塵與顆粒物等,同時透過駐極方式,將靜電附著在布料上,當病毒細菌經由表層穿透到中間層時,靜電就會吸附著所有病毒細菌,這也是為何熔噴布被譽為「口罩之心」的原因。

話說的簡單,不過 30 年前開發過程,蔡秉燚與研發團隊投入許多心力。

發明 N95 口罩的台籍工程師,曾在田納西大學材料系工作 35 年

蔡秉燚在材料方面涉獵廣泛,他既研究熔噴不織布工藝,又解決駐極處理問題。在熔噴不織布方面,他不斷嘗試優化熔噴工藝,推動其發展,時至如今,人們可以直接利用一套成熟的方法,在高壓、高熱空氣下將聚合物牽伸成超細纖維。

在駐極處理技術方面,他利用電場使中性的空氣發生電離,產生帶相反電荷的離子和電子,然後通過電場和感應使不織布纖維帶上電。經過這種駐極處理的纖維便可以吸附各種企圖穿過口罩的微小物體。

蔡秉燚在田納西大學(諾克斯維爾主校區)材料科學系工作長達 35 年,日前已從學校退休,副校長瑪哈.克裡希那穆提(Maha Krishnamurthy)曾這樣評價蔡秉燚,「他證明了我們學校的研究人員是怎樣建立並保持科研與產業間聯繫的,是怎樣將創新產品推向市場並產生巨大影響的。我們感謝他對研究的奉獻,以及對研究成果產業化的熱情和動力」。

曾經有人估計蔡秉燚的研發技術,保護和改善超過 10 億人的健康。

(本文經合作夥伴 中央社 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈來自台灣的他 N95 口罩之父守護逾 10 億人健康 〉。首圖來源: 中央社

更多關於新冠肺炎的資訊

比爾蓋茲點名稱讚!台灣防疫策略被評為「抗肺炎的全球榜樣」
小企業喊救命!再兩週全美國約超過 60% 小公司將停工或倒閉
防疫期間台灣人都去哪?Google 數據:公園人潮增加 17%


GitHub 重量級講者現身說法

微軟 AI 應用實戰教學來了!

免費線上看

【Deepfake 入侵視訊會議】工程師推出最新假冒馬斯克濾鏡,Github 上已開源

$
0
0

【我們為什麼挑選這篇文章】目前 Deepfake 換臉合成影片評論兩極。很多網站限制上傳此類合成影片,但有些影音平台甚至提供簡易軟體使用,單純的禁止阻止不了創作者的好奇心。儘管技術備受爭議,但開源社群中仍然不斷冒出新的應用方式。(責任編輯:鍾佳瑀)

受疫情影響,很多企業和學校都利用 Zoom 以及 Skype 等等的視訊會議軟體來工作以及上課,而長時間面對電腦進行會議,或會有疲態。外國就有網絡工程師因倦於使用視訊會議軟體,嘗試利用動畫技術,令視訊會議可以像進行「換臉」的動作,以增加會議趣味。

開源程式碼讓人輕鬆「換臉」

工程師 Ali Aliev 在 GitHub 發佈了一個名為 Avatarify 的程式碼,用戶可利用該程式碼,在視訊會議期間將別人的臉實時疊加到自己的臉上,就如 Instagram 或 Snapchat 上常見的特效般,可以輕鬆「換臉」。

Aliev 利用由義大利特倫託大學和 Snap Inc. 的研究人員在 arxiv 上發佈的開源程式碼 First Order Motion Model for Image Animation 構建 Avatarify,再借助 Deepfakes 等技術,試圖進行實時「換臉」。

變成馬斯克:眼睛跟頭部移動要穩定才行

Aliev 早前發佈了一條短片,在 Zoom 會議中將自己「偽裝」成 Tesla CEO Elon Musk,只要眼睛和頭部的移動穩定,要發現是合成的仍有一定難度。

不過,要運行 Avatarify 並不容易,用家需要一定的編程知識才能順利運作該程序,而且,要同時運行視象軟件和 Avatarify 需要相當大的記憶體,並不是普通手提電腦可以負荷的。不過,Aliev 指,只要再花時間研究,應該可以改善上述問題。

(本文經合作夥伴 Unwire.hk 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈實時特效扮 Elon Musk 開會 外國工程師 Zoom 會議加入 Deepfake 效果 〉。)(首圖來源:Unwire.hk

你可能有興趣

【特效全開】南韓醫療新創採用 NVIDIA 做 AI 產品,看 X 光片速度提高 20 倍!
Deepfake 技術可換臉、換聲音!美學界砸重金打假,籲全民正視此課題
假新聞、隱私權、大規模失業,11 個你必須思考的 AI 倫理困境 


#專心開完會提早下班啊!

G20 專屬的虛擬會議軟體,把關遠端工作高效率

免費註冊


【coding 抗疫】美國政府急需會 COBOL 的工程師,退休工程師投身抗疫之戰

$
0
0

【為什麼我們要挑選這篇文章】現在工程師大多使用 Python、Java、 C 語言等程式語言,然而新冠肺炎疫情讓 60 年前的程式語言「COBOL」重出江湖,會寫 COBOL 的工程師成為市場的當紅炸子雞,而許多退休的工程師也再度上任,為抗疫貢獻心力。(責任編輯:郭家宏)

GitHub 的趨勢榜單中,都會標記項目所屬語言。習慣了榜首被 C、java、Python 占版的文摘菌(本文作者),突然看到了一個不認識的語言課程霸佔榜首,一天內星標超過了 200!

經過查證,這是一個有著 60 年歷史的古老程式語言:COBOL,最早是以葛麗絲.霍普開發的 FLOW-MATIC 語言為範本開發。

60 年前的程式語言是什麼概念呢?那一年電腦剛好邁入整合電路時代,仙童公司向美國專利局申請專利「半導體整合電路」,5 年後,滑鼠才出現,又過了 5 年,Unix 作業系統和 C 語言才出現。

經過幾十年多年的不斷修改、豐富完善和標準化,COBOL 已發展為多種版本的龐大語言,在財會工作、統計報表、計劃編製、情報檢索、人事管理等數據管理及商業數據處理領域,都有著廣泛的應用。

然而由於程式語言的迭代,我們現在已經很少能看到使用 COBOL 進行編程了,那麼又是什麼讓這個「上古」程式語言重出江湖,並登上 GitHub 榜首呢?

這一切要從一隻蝙蝠說起。

疫情之下,COBOL 寫的失業救濟申請系統不堪重負

隨著疫情逐漸在美國大肆蔓延,本月 14 日,美國總統川普正式宣佈美國進入全國緊急狀態,與此相伴的,是自美國大蕭條以來從未有過的失業率,幾乎每個行業都在裁員,不少企業因客戶流失被迫倒閉,儘管不少公司仍對外開放,但銷售額也大幅下降。

根據最新數據顯示,3 月份製造業生產創下 1946 年以來的最低水平,新房建設下降幅度是近 40 年來最大的一次。

也正是因為疫情之下經濟的不景氣,最近幾週,申請失業救濟的人數激增。截至 4 月 4 日的一週內,有 660 萬被解僱或停業的人提交了福利申請,這些申請使三週申請失業救濟的總人數超過 1600 萬,相當於美國勞動力的十分之一。

這些申請已經淹沒了康乃狄克州、佛羅里達州和其他地方的電腦系統,其中不少州的主機系統是基於 COBOL 建立起來的,而在過去幾年甚至幾十年的時間裡,這些系統都沒有更新過。

4 月 4 日,紐澤西州州長 Phil Murphy 在記者會上明確闡述了這一點,「會有很多事後調查,其中一個就是我們是怎麼熬過來的,這也是我們需要 COBOL 工程師的原因」。不過,在記者會上,州長錯誤地把 COBOL 說成了 Cobalt,這也反映出 COBOL 這門語言的確有些年頭了。

紐澤西並非個例,佛羅里達州的失業救濟申請系統也已經不堪重負,該州甚至正在恢復使用紙質申請,麻塞諸塞州部署了 500 多名新僱員進行遠端協調工作,以處理數量不斷增長的申請,這如此龐大的申請量早已使得失業體系超負荷運轉。

康乃狄克州勞工部擱置了更新失業救濟系統的工作,以處理大量失業者的申請。州政府官員表示,在過去三週,部門處理的申請數量已經超過了正常情況下 18 個月的處理量,目前還有 6 週的申請書有待處理。

康乃狄克州勞工部正在重新招募退休人員,並利用其他部門的 IT 人員來升級該州已有 40 年歷史的 COBOL 系統,這個系統不是完全自動化的,需要在過程中的多個點上進行人工操作。

該部門的通訊主管 Nancy Steffens 說:「我只知道,現在回來的退休人員都是懂 COBOL 的工程師。」

美國政府的系統大多用 COBOL 運作

1959 年,在格蕾絲‧霍珀(Grace Hopper)和 COBOL 的六人組共同努力之下,COBOL 問世,之後就一直被政府和金融機構廣泛使用,意思因為它能夠穩定地處理大量的處理數據,更重要的是現在要替換 COBOL 需要花費大量的時間和金錢。

COBOL 是一種面向數據處理的、面向文件、面向過程(POL)的高級程式語言,是一種功能很強而又極為冗長的語言。

IEEE 曾在一篇文章中把 COBOL 語言稱作「一個老古董,一個好東西。」

當時出現之後,由於具有循環處理週期的環境(例如列印工資支票)以及數據操縱量相當大的環境,COBOL 被廣泛用於商業數據處理領域,對各種類型的數據進行收集、儲存、傳送、分類、排序、計算及列印報表、輸出圖像是它的強項。

根據 2016 年美國美國政府責任署的一份報告,除了州政府,多個聯邦機構仍在使用它。據路透社報導,95% 的 ATM 刷卡系統、80% 的面對面交易和 43% 的銀行系統都是依託於 COBOL。

由於 COBOL 出現的時間太早了,1963 年美國國家標準學會對其進行了標準化之後,ANSI 標準還是很少被遵循,因此 COBOL 程式只是部分可移植的。隨著使用的場景越來越少,熟悉 COBOL 的工程師也越來越少,在 2019 年,IEEE Spectrum 的頂級程式語言名單中,COBOL 排名第 44 位。

當然了,作為一個橫穿 60 年光輝歲月的「上古語言」來說,多少有一些傳奇故事。

比如在經典科幻電影《終結者》中,反噬人類、毀天滅地的天網系統中出現的程式碼便是一串 COBOL 程式。

但是該段程式的原作者 Swirsky 表示,這只是一個累加計算的程式碼,摘自他 1984 年 5 月發表在雜誌的一篇文章中,他還找到了當年的雜誌原文,但是網友們還是不依不饒,「指責」他:「就是你創造了天網!」

COBOL 人才告急,退休工程師投入支援

儘管「天網」系統都是用 COBOL 編寫的,但是日漸式微的 COBOL 語言還是面臨重大的人才儲備問題,美國急招 COBOL 工程師來維護國家失業救濟電腦系統,也是因為維護人員實在是不夠用。

然而問題正在得到解決,一大批已經退休的工程師表示願意提供幫助,經過了「年少輕狂」和「中年危機」的老工程師們,又迎來了第二春。

據招聘委員會的一位發言人稱,自今年 1 月以來,提到「COBOL」的招募廣告增加了 6.47% 。

還有一些專門招募工程師的公司也開始了擴徵。COBOL Cowboys 是一家位於蓋恩斯維爾的公司是一家職業介紹所,在過去的三年裡,公司的工程師數據庫中掌握 COBOL 和其他更現代的語言的工程師,從 50 個增加到了 350 個,他們的平均年齡在 45 歲到 60 歲之間。

該公司首席運營官艾琳.欣肖(Eileen Hinshaw)表示:「我們有一位年紀比較大的工程師,他曾與格蕾絲.霍珀(Grace Hopper)共事過,我敢說她已經 80 多歲了。」

欣肖表示,COBOL Cowboys 在看到墨菲州長的新聞發佈會後聯繫了紐澤西州,目前正在就支援 COBOL 工程師問題「與該州進行溝通。」

除了私營的職業介紹所之外,還有一些公益組織,比如 U.S. Digital Response(美國數位反應組織),由一群公共利益技術專家組成的,其中包括一些在歐巴馬政府中擔任技術職務的人員,這個組織為需要幫助的聯邦和州政府機構以及希望提供幫助的具有數位技能的志願者進行牽橋搭線。

美國數位響應組織的聯合創始人之一、前美國首席技術官的 Cori Zarek 表示,已經有 3500 多人加入了該組織的志願者隊伍。

目前來看,退休的工程師員們對於參加這樣的專案還是非常積極的,Zarek 表示,「我們已經看到許多經驗豐富的老手在積極報名,太不可思議了。」

果然工程師在面對需求的時候,是控制不住自己的雙手的。

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈六十年前的上古编程语言教程登上 GitHub 榜首,退休老程序员如何焕发第二春?〉。首圖來源:Pickpik CC Licensed

更多關於寫程式的資訊

30 年前的工程師怎麼寫程式?神人開發 8 位元雲端電腦,讓你體驗古早味的 coding 情懷
【工程師隱身術】200 行 TensorFlow.js 程式碼,讓你從視訊會議的畫面中「消失」
用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!


#專心開完會提早下班啊!

G20 專屬的虛擬會議軟體,把關遠端工作高效率

免費註冊

有必要把程式語法背熟嗎?資深工程師:其實你更需要 Google 的能力

$
0
0

【為什麼我們要挑選這篇文章】程式語言不斷演進,從先前的 Java 到近年的 Python,再加上因應 AI 需求而浮出的 Tensorflow、Pytorch。這麼多種語法,工程師該怎麼學習最有效率?下文為你統整資深工程師的觀點。(責任編輯:郭家宏)

當你搬到一個新城市,不知道最近的便利商店在哪。你不會因此自責,畢竟這很正常。你只要打開手機地圖就能找到它。等你去過幾次以後,很可能就不用借助地圖了。

其他地方也是一樣,比如最近的餐廳或者健身房,剛開始你可能要用地圖導航,等你熟悉了它們的位置就不需要導航了。

你知道怎麼找到它們,但你並沒有刻意去記每一條馬路、每一條可行的路線。還有些地方你去了一次就沒再去了。

當你使用一門程式語言調用各種語法時也是一樣的。

學習新程式語言,要多久才能掌握它的語法?

新的工程師 / 軟體工程師 / 開發者可能因為沒記住足夠的語法而感覺很糟。他們發現自己仍要參考文檔,於是覺得自己不是一個好的開發者。

以下是他們開始編程之旅時可能有的幾個常見問題:

▌我如何才能學會所有這些語法?
▌我要多久能掌握這門語言,然後就不用參考文檔來寫程式?

當能記住一些常用語法時,他們可能覺得自己已經成了寫程式高手。在他們的印象裡,能記住多少語法,或者能掌握多少不同的程式語言和框架,就是真正重要的事。

為了說明問題,我們來比較一下不同的程式語言是怎麼獲取字元串長度的:

▌seq.length — JavaScript lists, Java arrays.
▌seq.size() — Java sequences,jQuery expressions (deprecated).
▌len(seq) — Python.
▌seq.count() — Django querysets.
▌SeqType’Length — Ada arrays.
▌length seq — Haskell.
▌(count seq) — Clojure.
▌sizeof(seq)/sizeof(seq[0]) – C,statically allocated.
▌strlen(seq) –C, null-terminated.

如你所見,為了獲取字元串長度,每一種語言或技術都有自己的語法。這說明,同時記住某個函數的 12 種版本真的很難。

一個使用過多種編程語言的開發者,不太可能把過去用過的所有語法都背下來。他們甚至可能根本懶得去學。

語法有那麼重要,以至於我必須記住嗎?

為了回答這個問題,我們來看看一些資深工程師是怎麼說的。

很多資深工程師不會記程式碼的細節

「我是 Google 的團隊主管,有超過 30 年的寫程式經驗,但是我仍然需要去查怎麼得到一個 Python 字元串的長度。」——Tim Dierks

「我寫了將近 8 年的 Objective-C,仍然需要用 Google 去查 objc 的 block 語法。」——Lukas

「我是將 Node.js 部署在商用飛機上的人。然而我現在還是不懂 .substr() 和 .substring() 的區別。甚至寫這句話的時候我還得查一下 ‘substring’ 的大小寫規範是啥樣。」——JP

「我是 Phunware 的 Android 主管。不借助 StackOverflow 我就沒法去讀一個輸入流。」——Jon

「我是紐約時報的 GDE 工程師,也是主管,我不懂什麼是 np。我應該懂嗎?」——Mike

「在 12 年的 JavaScript 開發中,我總是被 substr() 和 substring() 弄糊塗,總是需要到網上來確認。」——Faisal

「我寫了 6 年 JS,我仍然需要去查不用 fetch 或者 jQuery 的話怎麼做 AJAX 請求。」——Dominik

「我從 1979 年就開始寫程式了,我仍然得查 java.lang.String 的用法,一直如此!」——Tim Bray

「我寫了 255 行程式碼,其中包括一個可以運行的伺服器和一個客戶端。我在 Google 上查詢了 23 次,大多數時候被引到 StackOverflow、Netty 4 網站、GitHub 和 JavaDocs 上。你算一下,平均每 10 行程式碼就有 1 次查詢!」——Umer Mansoor

「假如我告訴你我用 Google 查什麼,你一定會把這當成『證據』,證明我不是『真正的』工程師。」——Erica

「我經常把 O(n) 以及諸如此類的東西混在一起。儘管我能寫出一個 for 循環,Google 也用得很溜。」——Scott

這些坦誠的話應該能給你勇氣——你不必為記不住每一個語法細節而感到羞愧。

可能很多初級開發者都擔心這點。但事實是,你真的不需要記住所有的東西。

甚至技術招聘人員也不關心這些。下面是 Google 的那位工程師主管對此的回應:

問:「假如我又要被 Google 面試一次,我能要求程式面試用開書考的形式,好讓我通過嗎?」答:「我經常告訴應徵者們,我並不在乎任何 IDE 可以幫助你完成的事情。」

工程師沒必要記語法,但要有 Google 與邊做邊學的能力

下面的引述來自 Hacker News 網站,是對「有經驗的工程師會經常用 Google 嗎?」話題的評論:

我不光經常用 Google,我甚至用它來搜我自己過去寫的東西。好多次我搜一個程式時遇到的問題,結果在 Stack Overflow 上找到了我自己寫的回答。如果這個回答特別古老,以至於我已經完全忘記了,我甚至會想,「哇,這個天才講起話來跟我很像!」又或者「這個笨蛋根本不知道他在說什麼!」

幾個月前,我在 Facebook 的一個群裡看到一個資深開發者的文章,裡面提到當招募人員問他有沒有某項技術的經驗,而他並沒有時,他回應道:「那不過是又一種工具。」

意思是說,我過去可能沒有機會用到它,但我有信心能學會。我不需要花上幾個月才能用它工作。我可能只需要幾個小時來讀文檔,然後邊做邊學更多,而不是先把所有的東西背下來。

這就好像當你啟程前往目的地時,你不會指望一路綠燈。你會通過當前的綠燈,然後在碰到紅燈時停下來,等到綠燈亮了再繼續行駛。

今天,我們不斷有新的程式語言、新的框架,已有的語言和框架也會有相當大的改動,這樣一來,記住語法不但是困難的,而且也沒那麼重要了。正如一位評論者在這篇文章下方精闢地指出的:

「傑出的工程師懂得如何提出好的 Queries。然而,面試官們期待的卻是行走的活字典。」

原文 傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈想成为杰出的软件工程师?别再只纠结于语法了!〉。首圖來源:Piqsels CC Licensed

更多關於寫程式的知識

從新創企業到大公司,各種工程師會用到的數據分析工具統統整理給你!
【工程師隱身術】200 行 TensorFlow.js 程式碼,讓你從視訊會議的畫面中「消失」
用這 6 種方式優化程式碼,讓你的 Python 速度提升 30%!

【數據看裁員】新創公司盤點支出規劃,忍痛開刀業務跟工程師

$
0
0

全球至今受疫情影響,尤其是科技公司。數據公司 Layoffs.fyi 公開數據,原來公司通常選擇業務(sales)砍第一刀,第二是客戶成長部門(customer success),工程師也不是沒有免疫力,為第三名。公司最不想裁掉的職位則是設計、產品策劃。

新創企業面臨無薪假、裁員潮

新冠肺炎(COVID-19、武漢肺炎)對全世界都出現經濟影響,特別是部分跨國公司出現裁員跡象。主打以 APP 網路共乘服務的 Uber,首席技術長 Thuan Pham 將在 5 月中離職,The Verge  報導 ,Uber 未來將分數批進行裁員計劃,規模將近 2 成。

旅遊評論網站 TripAdvisor 同樣於日前宣布全球裁員,該公司 CEO Steve Kaufer 在部落格公開給員工的 信件 ,提到除了暫停招募,減少辦公室福利,以及預定進行大量裁員跟無薪假。

新創裁員也包含業務、工程師

數據公司 Layoffs.fyi 自疫情爆發後,持續追蹤新創公司的裁員狀況,包含廣受投資人青睞的擴增實境(AR)應用公司 Magic Leap,目前確定裁掉 1000 名員工;知名的美食評論應用程式 Yelp,也至少裁掉 1000 人,另外有 1100 人放無薪假。

公開目前整理的 數據表 ,截至 5/5,總共有 366 間新創公司進行裁員或整併,共 35969 人被裁員。

因為疫情而被裁員的職業組成中,包含業務 29.9%,客戶成長部門 21.7%,工程師 13.7%,營運部門 12.3%,行銷 6.9%。根據這份報告,儘管裁撤任一部門都可能影響到團隊進行,但因應疫情後的變化,對外的業務部門顯然是公司的首要考量,而產品或設計可能在薪資或營運必要上,以縮減規模作為應對方式。

工程師也會被裁掉嗎?

對於新創科技公司來說,工程師應該是公司最核心的人力資源,但在數據 Layoffs.fyi 的整理中,工程師也同樣被推向了裁員浪潮。

搶挖過來的工程師薪資高、福利高,當公司要平衡疫情後的支出,有可能選擇工程師開刀。團購網 Groupon 的裁員名單中,佔最多比例的是工程師。在這樣的狀況中,我們可以預期未來人力市場將出現許多優秀的履歷,接著 6 月後的畢業季,求職者將面臨一場人力資源大廝殺。

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

參考資料來源:

1.《TechCrunch》Data shows which tech roles might be most vulnerable amid layoffs
2.《The Verge》Uber’s CTO steps down as company reportedly mulls 20 percent layoffs 
3. Layoffs.fyi – Tracking Tech Startup Layoffs and Layoff Lists

你可能有興趣

從年薪百萬到艱困求生,新冠疫情下的矽谷員工困境:裁員、面試取消、簽證問題
【疫情加速企業轉型】Volvo 裁員 1,300 人,訂下目標:2025 年電動車出貨占比 50%
肺炎疫情下的新創振興指南:裁員真的是節省成本的「最佳打算」嗎?

美國新創發明「氣味檢測器」,助機場即時偵測炸彈或危險物品

$
0
0

【我們為什麼挑選這篇文章】防堵豬瘟入侵台灣,我們的機場靠「護國神犬」幫忙把關,但若是攜帶炸彈或其他危險物品,得更即時偵測出來才能有效阻止悲劇發生,美國新創公司研發出來的這款偵測設備,可望替旅客擋下最前線的危機。(責任編輯:戴慈慧)

為了檢查旅客的行李中是否藏有毒品或其他危險品如炸彈,各國海關往往會訓練搜查犬以助執法,不過有關做法就可能在數年內被取代。據外國媒體報道, 總部位於美國的初創神經技術公司 Koniku 就在近日研發出一款氣味檢測設備,有望應用於機場的安檢系統中幫助搜出危險及違禁品。

據美國金融時報的報道,民航機製造公司 Airbus 將會與初創公司 Koniku 合作,目前正計劃在全球多個機場內安裝這款由後者研發的氣味檢測裝置。報道中指出, 這款在外型上模仿水母的感應器將具備探測危險化學物質以及爆炸品的能力,更有望在稍後階段可用作分辨登機人士是否身上患有具備散播性的病毒等。

Koniku 創辦人 Oshiorenoya Agabi 就在接受傳媒採訪時表示,這款可以檢測氣味的技術是公司在收集生物樣本後,對它進行基因改造而研發而成,平均未需 10 秒即可完成檢測工序。他又透露目前該技術已經獲多間科技公司的青睞,預計在日後有望擴展至軍事、醫療以及農業方面。

(本文經合作夥伴 Unwire.hk 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈 美國新型安檢氣味檢測系統 助機場偵測炸彈及違禁品  〉。首圖來源:Google Drive)

你可能感興趣

【GitHub 熱門】中年工程師自創「面試寶典」,苦練 8 個月轉職 AWS 拿百萬年薪

$
0
0

【為什麼我們挑選這篇文章】程式設計每年都在變化,本文原作者 John Washam 當年求學時 C++ 都算新潮了,更別說 Python,聽都沒聽過,但為了完成人生目標「到 Google 工作」,他幫自己設計了一套學習寶典,雖然最後沒進 Google,但只用了 8 個月就進到亞馬遜 AWS,還是非常強大!(責任編輯:鍾佳瑀)

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

作者:量子位

Google 工程師條件:名校出身、CS 專業背景、博士學位加持,技術過硬?國外一個叫 John Washam 的小哥告訴你:不用,自學 8 個月 也可以!

John Washam 勵志要成為一名 Google 軟體工程師,但沒有 CS 專業背景的他,只能通過自己的努力來達成理想。於是,8 個月的時間裡,小哥花了數千小時閱讀書籍、編寫程式碼、觀看 CS 技術講座,一路披荊斬棘、打怪升級。

最終,雖然沒有去 Google ,但他人到中年,還順利成為了一名亞馬遜 AWS 的技術專家,年薪百萬。

更加難能可貴的是,小哥還將 自學經驗 編寫成了一份 教程 ,在 GitHub 上線以來,已收穫近 10 萬星的好評。

正如他所說:

即便沒有面上 (?) 夢寐以求的 Google,但是教程,也可以用來好好充實一下自己

(教程有 中文版 哦~~)

GitHub 超 10 萬星自學寶典

是什麼樣的程式設計教程,能如此火爆?

小哥最初的目的是「考上」Google ,於是每天自學 8-12 個小時,堅持了 8 月有餘。邊學還順手整理出了這份自學專案。不過在完成這項學習計劃後,他最終被亞馬遜錄取,成為一名軟體工程師。

Washam 表示:

無論你要面試哪家軟體公司,這裡的資料可以讓你做好充分的準備,包括去像亞馬遜、Facebook、Google 和微軟這樣的科技巨頭。

接下來,我們就跟著 Washam 的腳步去瞭解一下這份面試寶典。

1. 選擇語言、必備知識資源

首先要做的就是選擇一門語言,在 Google 一般是 C++、Java、Python,有時也會用到 JavaScript、Ruby。背後還有一些如 SQL、HTML 等技術沒有列出。

接著開始學習計算機硬體知識:

然後補充計算機專業的基礎數學知識,如算法複雜度 / Big-O / 漸進分析法、數據結構、樹、排序、圖論。

此外還有遞歸、動態規劃、組合與概率、NP&NP -完全和近似算法、緩存、線程與進程、系統設計、可伸縮性、數據處理。

看到這麼多知識點,你會不會覺得有點懵呢?Washam 告訴你一點小技巧。因為你不可能一遍就記住所有知識點。所以需要把要回顧的知識點做成 Flashcard:正常的及帶有程式碼的,類似於背單詞。

每種卡都會有不同的格式設計。專案主頁中就有 Flashcard 的程式碼,可以根據自己的學習特點去製作。

Washam 還留有一組 ASCII 碼表、OSI 堆棧、Big-O 記號及更多的小抄紙,以便在空閑的時候可以學習。每 coding 半個小時就要休息一下,並去回顧你的 Flashcard。

當然,論文的閱讀也是必不可少的,尤其是 Google 曾經發表的一些基礎技術論文。

書籍則推薦一些關於算法和 C++程式設計之類的。

2. Google 面試注意事項

面試的第一步當然是要有一份好的履歷,這樣才能為你爭取到寶貴的面試機會。知名科技部落客 Steve Yagge 給出了 10 個 tips,幫你做出一份還不錯的簡歷。

這位 Steve 曾經在亞馬遜、Google 都工作過,Washam 的這個專案就大量地引用了他的技術博客內容。

在面試時,你可能會遇到這 20 個問題,每個問題準備 2-3 種回答。準備點故事,而不要只是擺一些你完成的事情的數據。

面試官在也會問你還有哪些問題,不要說自己沒有什麼要問題,可以試試問一些此類問題:

當然,進入 Google 也不意味著結束,你還要新的學習過程。Washam 還有一份附加內容,包括 Emacs 和 Vim、Unix 命令行工具、密碼學。這些內容雖然不會直接用到,但是會大大提高你的效率。

3. 一個 Web 前端的新征途

其實嚴格來講,John 並不是一個程式設計小白。

從高中起,John 就開始學習程式設計,學的是 BASIC 語言,這還在是上世紀 90 年代。大學畢業拿到經濟學學位後,他先是在軍隊服役兩年,駐紮韓國。退役後他留在韓國教英語,突然發現自己離開 CS 領域的這幾年間,太多的新技術新工具出現,自己的知識結構出現了斷層,無法支撐起一個工程師的職業生涯了。

於是他利用一切業餘時間,艱苦地學習 Perl、HTML、CSS(當時這還是新東西)、JavaScript 和 SQL。

終於在 2001 年,John 正式成為了一個網頁開發工程師,開始了 19 年的碼農生涯。

截止 2017 年,John 的職業生涯可謂十分成功:在大小公司都有過任職、組建管理過專案團隊、經營壯大過初創公司,自己還親自創辦了 3 家軟體公司,其中 2 家至今還在健康運營。

按照 John 自己的話說,這十幾年的工作經歷,將他鍛鍊成了一個合格的工程師、一個優秀的產品經理、一個 CEO、一個市場銷售。

但是他的目標不止於此。他的夢想是在 Google 任職軟體工程師,在充滿智慧和創造力的團隊裡提高自己。

最初他認為憑自己的工作經驗可以輕鬆獲得職位,但拿到了 Google 面試題他才發現自己欠缺太多。

一個優秀的軟體工程師應該精通數據結構和算法、彙編語言、內存設計等,還要綜合考慮程式碼和程序結構對機器在應用場景下的影響。

於是他以這份 Google 試題為指導,開始了程式設計自學。

並且在 GitHub 上建立了「9894 專案」,因為 Google 建立於 1998 年 9 月 4 日。後來這個專案改名為現在的「coding interview university」。

4. CS 自學三點注意事項

John 結合自己的學習經歷,給出了三點自學程式設計的建議。

一、早問早計劃,不要想當然

John 最大的教訓是自己花了太多時間學習根本用不上的東西,比如他曾經用了 3 周時間閱讀了 1000 多頁 C++ 的資料,但是最後面試和工作中用的卻是 Python。

這是 John 的 C++ 學習資料,最後證明走了冤枉路

原因是他擔心面試時可能會被問到。

這個例子不是說 C++ 沒必要學。而是強調你要 提前收集信息做出計劃 ,在不同的專案上分配合理的學習時間,提高效率。 切忌「我覺得……」

二、影片比看書效率更高

觀看影片的學習效率自然要比自己啃書快。

找到好的教學影片,意味著你有更多的時間實際演練程式設計題目。

三、反復溫習十分重要

不斷反復是形成記憶的關鍵,正如我們在上文提到的,John 推薦使用記憶卡。

他自己製作了 1792 個電子 Flashcard。一有空閒時間就掏出來溫習,比如超市排隊時、公車上等等。對於一個卡片的的問題,回答正確還不夠,John 會在一段時間內多次回答正確才會標記為「已掌握」。

最終這位小哥沒有去 Google,而是接到了亞馬遜的 offer,現在他在亞馬遜做軟體工程師。

但是他自己說之前的學習經歷並不是無用功,現在他已經全面掌握了軟體工程的基本技能,無懼工作中的任何挑戰,並且實現自我飛躍的那一天越來越近。

I’m about as prepared as I can be. I can’t keep studying and putting off the application forever. At some point, I have to take the leap.

I see a bright future ahead.

Thanks for taking the time to read my story.

而且 John 小哥的經歷,也不侷限於工程師本身,多於更多人而言,也有值得參考之處。

他認定了一個目標,然後制定計劃、勤奮付出,最後天道酬勤獲得回報。

John 可能也是一個「一萬小時定律」的擁躉,但就算按照他每天 12 小時、堅持 8 個月 (每月 31 天),他從一個網站前端到 AWS 技術專家,歷時也不過 2976 小時 ——遠未到 1 萬小時。

但就是這樣目標堅定的 8 個月,John 從入門到獲得大廠認可,百萬年薪加持。

這是我們在 GitHub 看到最勵志的故事,也是我們希望讓更多人看到的原因,並且由衷希望更多人因為這樣的經歷和分享,創造屬於自己的故事。

坊間笑談太多的「從入門到放棄」,但也有人「從入門到百萬年薪」。

生命不息,奮鬥不止,Keep walking~

傳送門:
GitHub 專案地址
Flashcard 參考牌組
John 的 部落格分享

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈GitHub 上最励志的计算机自学教程:8 个月,从中年 Web 前端到亚马逊百万年薪软件工程师 | 中文版 〉,首圖來源: Unsplash。)

你可能有興趣

【照片動動動起來】Google 跟柏克萊用 Python 寫出全新讓靜態圖 2D 轉 3D 的無痛方式! 
微軟工程師推出 Python 零基礎課程,用 10 分鐘的短片讓你輕鬆上手! 
程式教育納入課綱,中學生該學 Python 還是 Java?其實科技思維才是重點

【即使高薪卻一點都不高興】4 種讓數據科學家想離職的理由,每種都壓力山大

$
0
0

【我們為什麼挑選這篇文章】過去幾年,中國有許多文章形容數據科學工作是未來「最性感」的職位,再加上 AI 、大數據應用風潮正夯,讓市場上初級人才的數量大大提升,但數據科學家工作真有想像中前途似錦嗎?(責任編輯:戴慈慧)

本文的作者就是一位數據科學家,做了這麼久,他覺得有必要將這個行業的苦惱公之於眾,為那些想進入這個行業的人們做個參考。

話不多說,來和文摘菌一起看看吧~

是的,我是一名數據科學家,你也沒看錯標題,總得有人來說這件事。我們都讀過很多文章,說數據科學是 21 世紀「最性感」的工作,數據科學家可以賺得盆滿鉢滿,以至於數據科學看起來是完全夢幻般的美妙工作。考慮到這個領域裡有大量高技術人才在沈迷於解決複雜的問題,這份工作值得熱愛。

但事實是,數據科學家們通常「每周花 1-2 個小時尋找新工作」,這是《金融時報》的一篇文章中提到的。此外,這篇文章還指出,「表示自己正在尋找新工作的開發者中,機器學習專家位居榜首,佔 14.3 %。數據科學家緊隨其後,佔 13.2%。」這些數據是 Stack Overflow 在一次基於 64000 名開發者的調查中得到的。

我也曾處於這個狀態,我自己最近也換了另一份數據科學的工作。

那麼,為什麼這麼多的數據科學家要找新工作呢?

在我回答這個問題之前,我應該澄清一下,我現在仍然是數據科學家。總體上,我熱愛這份工作,我也不想勸退那些有志成為數據科學家的人,因為這份工作充滿樂趣、令人振奮且回報豐厚。這篇文章是有意要唱唱反調,揭示一下這個職業裡存在的一些負面問題。

在我看來,很多數據科學家對工作的不滿意,可以歸結為四大原因。

理由 1:期望與現實不符

大數據就像是青少年口中的性:每個人都在談論它,沒人真的知道怎麼去做,但是每個人都認為別人在做,所以每個人都聲稱自己在做……——Dan Ariely

這句話太貼切了。我認識的許多資歷不深的數據科學家(包括我自己),想進入數據科學領域是為了用最新的很酷的機器學習算法來解決複雜問題,並且產生巨大的商業影響。這可能會讓我們覺得自己正做著的工作比先前做的任何事都更重要。但事實往往並非如此。

我認為,期望與現實不符是很多數據科學家離開的最終原因。原因有很多,我不可能列出一個詳盡的清單,但這篇帖子基本列舉了我遇到的一些原因。

每個公司的情況都不一樣,所以我講的並不能代表所有公司,但確實很多公司在雇傭數據科學家時並沒有配套的基礎設施,好開始從 AI 中獲取商業價值。這造成了 AI 系統的冷啓動問題。再加上這些公司在雇用資歷不深的數據科學家之前,沒有雇用資深或有足夠經驗的從業者,這就導致雙方都感到失望和不愉快。數據科學家很可能是來寫智能的機器學習算法以助力商業洞察的,但他們做不到這點,因為他們首先要做的是建立數據基礎設施和/或創建分析報告。相反,公司只想要一張圖表,好每天在董事會上展示。於是公司感到失望,因為他們沒能看到價值被迅速創造出來,這一切都會使數據科學家對自己扮演的角色感到不愉快。

在 Robert Chang 給新手數據科學家提建議的一篇文章中,有句話非常精辟:「評估我們的抱負與我們所處環境的前進軌道有多一致,這點很重要。找到與你自身的前進軌道最相符的項目、團隊和公司。」

這話強調了雇主和數據科學家之間的雙向關係。如果公司不合適,或者公司目標與數據科學家的目標不同,那麼數據科學家另尋出路只是時間問題。

如果有興趣,Samson Hu 有一系列精彩的文章,描述了 Wish 公司的分析團隊是如何建立的,我覺得也很有見地。

讓數據科學家感到失望的另一個原因與我自己對學術界的失望很相似:我一度以為自己能給世界各處的人帶來影響,而不只局限於公司內部。事實上,如果公司的核心業務不是機器學習(我的前雇主是一家媒體出版公司),那麼很可能你所做的數據科學只能帶來很小的增量收益。這些收益積累起來可能會變得可觀,或者你可能很幸運碰到一個「金礦」項目,但這些情況很少見。

理由 2:政治至上

關於政治的話題,已經有一篇出色的文章專門介紹了——《數據科學行業裡最困難的事:政治》。我強烈推薦你讀一下。這篇文章的前幾句話基本概括了我想說的內容:

當年我早上六點起床學習支持向量機的時候,我想:「這真是太難了! 不過,嘿嘿,至少對於未來的雇主我會變得非常有價值!」。如果現在能搞到時光機,我一定會回到過去,對自己大罵一聲「傻冒!」。

如果你當真以為瞭解很多機器學習算法會讓你成為最有價值的數據科學家,請回到上面我講的第一點:期望與現實不符。

事實是,你需要讓公司裡最有權力的人對你有個不錯的看法。而這可能意味著,你必須經常做一些臨時安排的工作,比如從數據庫中獲取數字,以便在適當的時候呈給適當的人,或者做一些簡單的項目,只是為了讓某些人對你有個恰當的瞭解。在我的前公司,我不得不做很多這樣的事。儘管讓人覺得沮喪,但這是工作中必不可少的部分。

理由 3:有任何關於數據的事,公司都會來找你

在你盡一切努力取悅合適的人之後,那些大權在握的人卻常常不理解「數據科學家」的含義。這意味著你將既是分析專家又是彙報員,還有別忘了你也將是數據庫專家。

不只有非技術型的主管會對你的技能做出過多假設。別的技術型的同事會假設你瞭解跟數據相關的一切:你懂得 Spark、Hadoop、Hive、Pig、SQL、Neo4J、MySQL、Python、R、Scala、Tensorflow、A/B 測試、NLP、一切跟機器學習有關的事(還有任何你能想到的與數據有關的事——順便說一下,如果你看到一個職位描述上寫了所有這些東西,請保持清醒。這份職位描述顯然來自一個並不知道自己的數據戰略是啥的公司,他們會雇任何人,因為他們認為雇任何一個數據人員都能解決他們所有的數據問題)。

事情還不止於此。因為你懂得這一切,而且你顯然可以拿到所有的數據,所以你應該能回答一切問題,而且是在……好吧,在五分鐘之內就把答案發送到相關人員的收件箱里。

對你來說,嘗試去告訴大家你實際知道和掌握的東西,可能很困難。不是因為有任何人會真的看不起你,而是因為作為一個沒有什麼行業經驗的新手數據科學家,你會擔心別人看不起你。這樣的處境可能相當艱難。

理由 4:在一個孤立團隊中工作

當我們去看成功的數據產品時,我們往往會看到精心設計的用戶界面、智能的功能,而最重要的是具備有用的輸出結果,最起碼能讓用戶感覺到解決了一個相關的問題。如果數據科學家只把時間花在學習如何編寫和執行機器學習算法上,那麼對於推動項目成功並產生價值的整個團隊而言,他們只是這個團隊的一小部分(儘管是必不可少的)。這意味著一個孤立工作的數據科學團隊將很難提供價值!

儘管如此,許多公司的數據科學團隊仍然在執行團隊自身的項目,編寫代碼來嘗試解決一個問題。在某些情況下這就足夠了。例如,如果公司需要的只是一份靜態電子錶格,每季度生成一次,那麼這足以提供一些價值。與此相反,如果目標是要優化一個預訂網站的智能建議功能,那麼這將需要許多不同的技能,對於絕大多數的數據科學家,不能期望他們有這個能力(這種事只有那些數據科學家中的獨角獸能搞定)。因此,如果是一個孤立的數據科學團隊在承擔這個項目,項目很可能會失敗(或者要花很長時間,因為在大型公司裡組織幾個孤立團隊進行項目協作並不容易)。

因此,要在行業裡成為一個卓有成效的數據科學家,僅僅玩轉 Kaggle 競賽、完成一些在線課程是不夠的。很不幸(或幸運,取決於你從什麼角度去看),你需要懂得公司裡的等級制度和政治是怎麼運作的。去找一家與你的前進軌道一致的公司,這應是你在尋找一份數據科學工作時的關鍵目標。但是,你仍可能需要重新調整你對行業的期待。

有任何評論、問題或者異議,請自由發表意見。建設性的討論是非常必要的,能夠幫助胸懷抱負的數據科學家在職業規劃上做出明智決策。

感謝你的閱讀,希望我沒有把你勸退。

  相關報導

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈我,一位数据科学家,用亲身经历告诉你:为啥数据科学家都在离职 〉。首圖來源: 大數據文摘

你可能感興趣


全方位掌握消費者數位軌跡

AI 如何有效提升電商業績、降低導入成本?

《領取白皮書》

【魔法部可能要跟科技部交流一下】外交部徵工程師照法定開 46K,網友求召喚唐鳳回應

$
0
0

昨(5/14)外交部在臉書上徵「系統程式設計員」,資格條件設定在相關學歷、四年以上經驗,但薪水只開 46K,引起網路熱議。

外交部透過臉書「誠徵」網站管理工程師

外交部為了建立貼近跟民眾溝通的形象,偶爾會在網上自稱「魔法部」,並以「魔法師」暱稱外交部的員工。 5/14 下午外交部在臉書上分享徵人消息,以一貫的幽默口吻開出工作條件:

【急徵魔法 (程式設計) 師‼】不是突然夢到、不用靠向北邊來 #魔法部 當工程師吧~實現 IT 人最夢幻的一次跨界還一次跨到魔法界 ✨兩個職缺機會等你丟 CV  系統程式設計員…

Posted by 外交部 Ministry of Foreign Affairs, ROC(Taiwan) on Tuesday, May 12, 2020

消息一出,網友紛紛表示「這薪水不愧是政府」、「這個薪水與行情有點脫節」、「好廉價」,儘管也有人表示理解公部門的敘薪方式,但以資安人才來說薪水確實低於行情。

觀察 1111 人力 銀行薪資平台 ,「資訊安全分析師」、且具有大學學歷,工作 3-5 年的平均薪資為 $48318,高於外交部開出的薪資 $46000。若是注重資安方面的民間公司,好一點的也有可能開到月薪 54K 左右,也是高於外交部的薪資。

約聘工程師約與高普考三等的薪資相近

到外交部徵才 網站 參考,以這次徵的「系統程式設計員」不定期契約臨時人員為例,外交部要求應徵者須具備以下五種技能其一,會 Web 程式開發、資料庫款裡、伺服器管理、資安相關經驗、相關證照,並不要求全部具備,加上聘雇職雖一年一聘但公部門生活也相對穩定,或許是有些人的理想環境。

1、 具 Web 程式開發經驗,如 C#或 PHP 或 JAVA 或 Go。
2、 具資料庫管理經驗,如 MS SQL Server、My SQL Serve。
3、 具伺服器管理經驗,如 WindowsServer2012(含以上)、Linux、VMware 或 Proxmox。
4、 具資訊專案管理及資安相關經驗(履歷請註明)。
5、 具 MCDB、CCNA、CEN 或 VCP 證照者(須附證明)優先錄取

有的人說公家單位的職位不應該直接跟民間做比較。但若以公務人員的薪水來看,外交部的 46K 則與高普考三等的薪資($44660-47630)接近。外交部很有可能是以公部門計算薪資的方式來徵才。

民眾普遍希望政府更重視資訊人員

網友的回應雖然不是大力支持,但也還算溫和,不少人表示建議政府多跟熟悉資訊產業的科技部、經濟部資策會了解一下薪水幅度,甚至頻頻點名希望唐鳳來指導一下。民眾擔心,若政府想以大學剛畢業的行情價來找專業人員,很有可能找不到真正有效率的工作者。

大家對政府重視資訊的期待感越來越高,留言中也多是期待政府重視的建言。

參考資料:外交部臉書 社團

(本文提供合作夥伴轉載,首圖來源:外交部 貼文截圖

你可能有興趣

【被誤解的統計數字】讀的大學愈頂尖,畢業後的薪水就愈高?
用績效獎金激勵員工會有副作用!專家:取消獎金,付「更高的薪水」比較好
【GitHub 熱門】中年工程師自創「面試寶典」,苦練 8 個月轉職 AWS 拿百萬年薪


全方位掌握消費者數位軌跡

AI 如何有效提升電商業績、降低導入成本?

《領取白皮書》


華為工程師提交的 Linux 補丁留有資安漏洞?一文解析大家是否真的需要擔心

$
0
0

華為近期引爆新資安爭議。華為向 Linux 開發社群提交資安程式碼補丁,結果越補資安漏洞越大?

開源資安團隊 Grsecurity 踢爆 華為工程師提交給 Linux 開發社群的資安程式碼補丁 HKSP(Huawei Kernel Self Protection)留有後門,引發軒然大波。

華為週一(5/11)即在官方網站發出公告,澄清 HKSP 並非官方發布資源、也未在華為的產品中使用。華為的迅速切割引起論壇譁然,在中美貿易戰的敏感時機點,各界紛紛質疑此事件是否背後有其他勢力介入。

華為資深工程師在 OpenWall 社群提交補丁

Linux 系統為開源的作業系統。開源是免費、任何人可取用的意思,作業系統則是最底層的硬體跟資源管理。Linux 包含兩個層次,核心(Kernel)與系統呼叫介面。尤其是核心,它是運作系統最重要的組件,直接跟 CPU 溝通。本次華為工程師提交的補丁,就是針對核心的部分進行修補。

在 Linux 的開源社群中,如果任何人發現系統上的問題,都可以在社群提供自己的論點與解方,結合群眾的力量糾錯、補救。若眾人對一致同意某個彌補無運行問題、無資安問題,則該補丁可加入下一次的更新中,提供給全世界使用 Linux 系統的企業或個人自由下載取用。

華為工程師週日(5/10)即在社群 Openwall 開源社群 提出針對 Linux 核心漏洞的補丁。然而隔日資安團隊團隊 Grsecurity 卻發現該補丁本身藏有另一個更大的漏洞,如果社群並未察覺,很可能讓全世界都下載到有後門的更新,讓全世界重要產業的資料陷入門戶大開的資安風險!

開源團隊抓到華為工程師補丁有缺陷

開源資安團隊 Grsecurity 的 報告 指出,HKSP 補丁本身「充滿漏洞跟弱點」、缺乏「威脅建模」(threat model,預期網路攻擊的過程),它的緩解效果,基本上無異於之前 LKRG(Linux Kernel Runtime Guard)補丁的效果。

Grsecurity 團隊指出,這份補丁缺乏了防禦性程序,這份程式碼將引入可輕易利用的漏洞(trivially exploitable vulnerability)。

詳細分析可看這份 報告

雖然團隊不確定提出補丁的行為是否是華為官方授意,或者這份程式碼已經用在華為產品上,但這份補丁使用的是「華為」的名字,且提交者的 Github 帳號中將「華為」作為帳號的機構名稱。

整件事情的爭議點在於「華為」兩字?

由於任何人都能提出補丁、且提出是屬於「貢獻、義務性質」的行為,正常來說沒有太多爭議點,但本次事件的重點,在於提供補丁的工程師來自華為最高階的資安團隊(Level 20)。

今年(2020)二月美國《華爾街日報》才 獨家報導 華為疑似協助中國政府透過電信行動網路設備開啟手機後門,監控各國行動網路超過十年,本次爆出相似事件,加上提出補丁者本身也不是初階的工程師,不見得會忽略明顯錯誤,因此引起外界浮想翩翩。

華為官方顯然也馬上意識到事件的嚴重性,在報導出來的隔天,馬上就發出 澄清文 表示該工程師提交的補丁「不代表華為立場」、「屬於個人與社群的技術探討行為」。華為此舉讓人各界質疑為「快速切割」,無助於提高信任感。

資安問題除了事前防堵、只能謹慎至上

由於 Linux 全免費開放全世界自由使用,因此全世界的科技巨頭如 Google、Amazon、Facebook,或者網路廠商 RedHat、IBM… 等等,都可能是此補丁的潛在受害者。

TechOrange 採訪業界資安專家,專家提醒,若各界不察下載了這次補丁,則「Linux 系統一開啟就運作,在有漏洞的情況下,馬上就會被外界入侵」。

但專家也補充說明,就像一般使用者不會輕易下載 iPhone 最新更新,可能會觀望一下「災情」;企業也是一樣,不會輕易更新本身的 Linux 系統,留待最穩定的時候再進行大幅更新。

參考資料:
Grsecurity 報導
華為官方 公告
ZDNet  Huawei denies involvement in buggy Linux kernel patch proposal

(本文提供合作夥伴轉載。)

你可能有興趣

三層面剖析「華為管理學」,狼性文化不是只有你想的那樣
中國駭客攻擊 Linux 伺服器,竊取知識產權長達 10 年沒被發現
【從死對頭到好朋友】微軟宣布新版 Windows 將採用 Linux 特製核心


多雲平台管理不易,找出資安威脅難上加難

IBM 解惑如何善用「開源技術」自動因應網路攻擊

獲取 IBM 獨家白皮書

數據科學家:9 個理由,我更建議你去當軟體工程師

$
0
0

【為什麼我們要挑選這篇文章】搭著 AI 浪潮,數據科學家是近年最夯的職業,然而過來人建議,與其當數據科學家,更建議去當軟體工程師,為什麼?(責任編輯:郭家宏)

在數據最夯的時候,數據科學家被稱為 21 世紀最性感的工作,一時進入了全民數據科學的時代。數據科學的價值雖然有目共睹,但不是每個公司都有條件來實現數據驅動的商業願景,每個公司的數據基礎設施水準層次不齊,有些遠達不到數據科學家可以大展拳腳的水準。

作為前任數據科學家和現任軟體工程師,作者給出了過來人的建議。讓我們聽聽他為什麼勸想做數據科學家的勇士不如去做軟體工程師。

原文 傳送門

當有人問我如何進入數據科學領域時,我建議他們去做工程師。

這只是我的個人觀點。我很希望能聽到你的反駁意見。

每個人都希望成為一名數據科學家。雖然數據科學可能是 21 世紀最火熱的工作,但是軟體工程師也同樣是一份報酬率很高的職業。

經常有應屆生和跳槽者來問我要如何進入數據科學這個領域。我給他們的建議是:還是去做軟體工程師吧。

我在這兩個領域都有經驗,我想用親身經歷說服你,軟體工程師是更好的選擇。

軟體工程領域的就業機會更多

與數據科學相比,軟體工程領域的工作機會要多出一個數量級。以下截圖展示了 Google 搜尋「數據科學家」和「軟體工程師」工作後的搜尋結果。

Google 搜尋:indeed(求職網站)美國數學科學家
Google 搜尋:indeed 美國軟體工程師

我們可以得到 7616 條有關數據科學工作的搜尋結果,以及 53,8893 條有關軟體工程工作的搜尋結果。該搜尋只是針對於在美國的工作,在其他國家試下來也有類似的結果。

根據 Glassdoor 的說法,數據科學家能賺更多的錢,但根據我個人未經檢驗的假設,數據科學工作的平均所需的工作經驗也要求更高。

數據來源:www.glassdoor.ca
數據來源:www.glassdoor.ca

但如果 Open AI 給你開出 100 萬美元(約新台幣 3000 萬元)的薪水,我建議你還是接下這份工作。

「數據科學」的定義仍沒有達成共識

管理層通常無法對「數據科學」的定義達到共識。由於業務限制,完全尊重該職位的本來定義有時也是一種奢侈。這意味著「數據科學家」的職責因公司業務需求而異。

儘管軟體工程師和數據科學家之間存在很多不同的角色分工,但現實不太可能遵循這種明確的職責劃分。仍在搭建基礎架構的新創公司尤其如此。

被聘用的候選人最終將致力於解決公司當前最需要解決的問題,而不是解決他們被錄用「職位」的工作範疇內的問題。

很多同事的經驗表明,許多數據科學家發現自己像軟體工程師一樣在編寫後端程式碼。我還認識一些精通 Excel 和財務工作的「數據科學家」。

這與你在經歷 Kaggle 比賽中成長時的期望形成了鮮明的反差。

數據科學家們仍處於孤軍奮戰的狀態

大多數公司不需要像軟體工程師那樣多的數據科學家。很多公司目前正在僱用他們的第一位數據科學家。

因此,即使與開發人員坐在同一張桌子上,許多數據科學家最終還是獨自工作,這樣工作的問題是很難獲得別人的回饋。軟體工程師們要嘛不了解預測建模,要麼忙於處理完全不同的問題。

相比之下,當軟體工程團隊的好處之一就是你有機會對同事說:「我認為我們應該以 XYZ 方式實施 ABC。你怎麼看?」

數據科學是偏探索性質的職種,不保證結果

你準備好跟你的老闆解釋「為什麼過去兩週以來的勞動成果不能用於提高業務了嗎?」這種尷尬的對話時常會發生。

解決已知的問題或是未知問題是軟體開發與 AI 之間的根本區別之一。

暫且不談程式碼問題和其他限制,作為軟體工程師,在開始工作之前你大概知道大多數軟體工程項目是否可行。但在建立一個 ML 模型之前,你並不能知道該模型是否會有效。

公司還沒有準備好使用 AI

即使在「每個公司都是 AI 公司」的時代,大多數公司沒有支援 AI 的基礎架構,很多公司甚至不需要 AI。

一家快速擴展的新創公司的數據科學主管最近分享了一些建議。

首先,你要發現問題,然後建構基礎架構,然後請數據科學家來解決問題。這不是一個可以快進的過程。

最近,另一家知名公司請的第一位數據科學家向我抱怨:她被迫在電腦而不是雲端的大數據上訓練 AI 模型。

如果你沒有特定的問題要解決,或者公司沒有做好數據科學戰略的準備,那麼你很難體現自身的價值。

軟體工程學習更普遍的技能

成為初級軟體工程師就像獲得一個科技領域的 MBA 一樣。你可以在很多方面都學到一點知識。

你會學習數據庫、雲端技術、部署、安全性以及如何編寫簡潔的程式碼。

透過敏捷大師、高級開發人員或專案經理,你將學習如何管理軟體開發的過程。

透過程式碼審查,你將得到很多指導。

如果你加入的公司擁有一支成熟的軟體開發團隊,毫無疑問你會迅速提高自己的各項技能。

軟體工程的經驗更容易遷移

當你決定進行跳槽時,軟體工程可以提供更全面的技術經驗,從而給你更好的就業機會。

DevOps、安全性、前端、後端、分散式系統、商業智能、數據工程、數據科學……

我知道許多從軟體轉向數據科學的開發人員。如果你搜尋數據科學的職位描述,你會發現它們包括了很多核心的軟體開發技能。

資料來源:Indeed

如果你可以搭建端到端的項目,那麼除了為 Kaggle 構建模型外,你還可以做更多的事情。你可以搭建一個模型,進行生產化,設置授權和 Stripe(線上支付),然後開始向訪問用戶收費。那麼你已經可以做自己的新創公司了。

我不是說數據科學的經驗不適合遷移。根據數據做決定是一項重要的技能。但是隨著社會變得越來越受數據驅動,這種技能也將成為每一項工作的一部分。

機器學習將成為軟體工程師的一項工具

隨著 AI 的商品化和使用簡化,軟體工程師將開始使用 AI 來解決他們的問題。

我可以用一下午教一位開發人員如何構建 Sklearn 分類器。這並不意味著他們可以建構出下一個 AlphaGo,但這確實為他們提供了一種條件邏輯編碼的方法。

數據科學家具有關於統計,以及模型工作原理的專業知識和直覺。但是維運和安全工程師也有他們自己的專業知識。

我認為這幾者的相同比不同更加普遍。經驗豐富的軟體專業人員可以在不同專業之間遷移,其適應速度可以比新入職者更快。

雖然我不認為數據科學會完全整合到軟體工程中,但我確實感覺數據科學可能會成為另一個軟體工程專業。

人工智慧不能取代軟體工程師

因為擔心 AI 會取代其他工作,我於 2014 年進入軟體工程領域。

自那以後,AI 並沒有像我想像得那樣快速發展。技術的場景落地速度很慢,而 AI 的使用範圍也遠沒有媒體所宣傳得那麼廣。

與其他工作相比,機器學習要實現把軟體工程自動化的進程更路漫漫。雖然有一些新興公司在開發諸如「AI 寫程式」之類的出色產品,但編寫程式並不是真正的工作。真正意義上的工作是指使用技術去解決問題。在 AI 擁有這項能力之前,寫程式將仍然是一項寶貴且高薪的技能。

總結:數據科學家、軟體工程師都透過解決問題獲得報酬

首先,這篇文章只是經驗之談。其次,我把數據科學家、機器學習工程師和 AI 研究人員粗略地歸為一類,這三類工作有其個體差異。但是我認為我的論點仍然值得你考慮,畢竟這關乎你的職業選擇。

不要太把我的觀點當真。我希望你做好充分的行業研究然後做出自己的決定。這也是成為數據科學家的一部分。

追根究柢,我們透過解決問題來獲得報酬。

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈身为一名数据科学家“过来人”,我为什么更建议你去做软件工程师 〉。首圖來源:Piqsels CC Licensed

更多關於工程師的職涯

GitHub 數據告訴你:用哪種程式語言的工程師最快樂?
【GitHub 熱門】中年工程師自創「面試寶典」,苦練 8 個月轉職 AWS 拿百萬年薪
有必要把程式語法背熟嗎?資深工程師:其實你更需要 Google 的能力


全方位掌握消費者數位軌跡

AI 如何有效提升電商業績、降低導入成本?

《領取白皮書》

名列「全美最佳工作排行榜」第 1 名,機器學習工程師在 AI 產品裡的地位有多大?

$
0
0

【為什麼我們要挑選這篇文章】根據美國就業網站 Indeed 的統計,機器學習工程師是全美最佳工作排行榜中的第 1 名;在 AI 當道的今天,機器學習工程師堪稱是近代職場的明星。本文作者是機器學習工程師,想來「打臉」這個想法,告訴讀者機器學習工程師在 AI 產品裡的真正定位。(責任編輯:郭家宏)

這篇文章並不是要攻擊所有的機器學習工程師或者數據科學家。

我自己是一名機器學習/電腦視覺工程師,這篇文章是基於我在 AI 行業的觀察和體驗。

本文的陳述均帶有個人觀點。申明了這一點,我們可以開始了。

機器學習工程師,只在產品佔有一小塊的角色

數據科學家這個崗位被稱作 21 世紀最性感的工作。與此同時,對機器學習工程師的需求量在這幾年呈指數級增長。2019 年,就業網站 Indeed 將電腦視覺工程師、機器學習工程師和數據科學家三者都列入了全美前 25 佳工作,排名分別為第 13、第 1 和第 22。

這種宣揚並非虛言,而是實至名歸,因為有目共睹,機器學習技術幾乎嵌入到了所有的產品裡——從汽車、智慧手機甚至到冰箱,無處不在。

高熱度、高需求量、高薪、高關注度,這一切會讓任何機器學習從業者都覺得自己就是超級明星。

在實際的公司團隊中,機器學習人員受到重視,特別是在他們確實工作出色的時候。話雖如此,機器學習工程師的角色仍然只是整個拼圖的一小塊。

而拼圖是指最終的產品。

在研究和學習階段,大多數機器學習人員都沉浸在電腦和 Python 腳本裡。

對其中一些人來說,他們負責的項目範圍就只到做好應用程式接口,來作為調用機器學習模型的界面。

但是在電腦和應用程式接口的之前和之後都還有更大的世界。

在機器學習工程師接手之前,就有不少人參與專案的決策

在機器學習工程師和數據科學家進入專案之前,已經有其他崗位上的人參與了專案的決策以及別的一些議程。

讓我來列幾個例子:

▌市場研究員:分析產品對應的目標受眾和消費者的相關數據。他們的工作決定了最終的產品採取何種形態或形式。
▌IT 業務分析師:將業務需求表達為可處理的 IT 規程。他們負責對接專案經理和利益相關方提出的方案,將其轉化為工程團隊可以處理的任務。
▌CEO:大老闆。
▌產品設計師:負責在實際開發開始前對產品的用戶界面和互動方式,勾勒出視覺化方案。
▌軟體工程師:根據產品將要發佈的平台,使用各種工具和程式語言編寫軟體。
▌產品負責人:負責實施和監督產品關鍵功能的開發,這些功能是主要的利益相關方議定的。

在產品的開發週期裡,機器學習人員可能從未接觸過承擔上述職責的人。

如果我們再看一看 Indeed 的全美前 25 佳工作名單,會發現這些崗位也都在榜,產品負責人、產品設計師和產品開發人員都排在前列。

是他們為我們這些機器學習工程師和數據科學家搭建了一展身手的場地或者說舞台。

消費者使用終端產品,不會意識到機器學習技術的存在

實現一個模型並不斷訓練它,直到在測試集上得到高準確率和優異的性能表現,沒有什麼能比這種感覺更好了。(要是你的模型足夠小,可以在邊緣設備上運行,那更是加分項。)

譯者註:邊緣設備(edge device),是指位於物聯網「邊緣」、直接採集資訊的終端設備,如智慧手機、智慧家電、工業感測器等,與其相對應的是部署在公司或者雲端的數據中心。

我無意貶低機器學習人員的勞動價值,但是消費者並非直接使用你們的模型。事實上,他們很可能都沒注意到產品中使用了機器學習技術。

這應該並不使人意外。機器學習技術隱藏在 Google 工具套裝或者 Netflix 的個性化推薦系統背後,但沒有公然顯露出來,往往是通過程式接口把產品的複雜性抽象和封裝了起來。

沒錯,用戶可能會驚訝於 Google 推薦了一篇新聞報導,內容恰好關乎自己不久前的一次交談;或者驚奇地發現 Netflix 又給自己推薦了一部刷起來就停不住的電視劇。

但大部分終端用戶通常並不想知道在自己的設備背後,有什麼樣的語音識別或者個性化推薦演算法。

機器學習人員是賦能者,我們對一個更寬廣的產品生態系統進行賦能和支持。

而如果我們的工作做得很成功,終端用戶幾乎感覺遇到了魔法。

把視野放大,你會看到我們的工作成果被其他崗位接力下去。品質測試人員、軟體工程師、產品發佈團隊和行銷人員,我舉例的這幾個角色都將對產品或專案的成功做出貢獻。

AI 產品才是真正的明星

如果你都讀到這裡了,那麼我真得告訴你這場時代秀的明星是誰——有兩個。

AI 產品,以及產品背後的團隊。

為了說明我的觀點,我會拿一個以 AI 為核心業務的公司來做例子,但是請記得,這個邏輯對大多數基於 AI 的公司或者新創企業都適用。

聽說過 DeepMind,以及他們的 AI 系統 AlphaGo 和 AlphaZero 嗎?DeepMind 團隊和他們的 AI 產品備受矚目。

DeepMind 團隊毫無疑問受到了關注,而且注意我並沒有提及團隊裡某個特定的人或角色。DeepMind 團隊自己成為了一個實體,不管成員是誰,這個團隊都可以存在。話雖如此,優秀的團隊只能源於優秀的成員,而 DeepMind 擁有一些業內最優秀的 AI 人才。

AI 領域內有一些天才在推動這個行業走得越來越遠。他們備受尊敬,他們的貢獻和工作將被銘記。但有一個實體,不管在哪個時期,不曾改變,也不曾消失。

這個實體就是人工智慧,就是 AI 自身。

人工智慧是這場時代秀的明星,一直以來都是。
有時候,人工智慧背後的團隊也會受到矚目。

結語:機器學習工程師只是一小部分,AI 產品必須跨團隊合作才能誕生

寫這篇文章不是要貶低 AI 業界任何人的工作。

目的是為了向更多人強調,基於 AI 的產品只有在不同個人和不同的跨職能團隊的有效合作下,才有可能實現。

而我們機器學習工程師和數據科學家是這個有機整體的一部分。我們不是這場時代之秀的明星,但我們是「明星們」中的一員。

不管這場時代之秀如何演下去。

原文報導 傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈为什么说机器学习工程师不是这个时代的明星?〉。首圖來源:Wallpaper Flare CC Licensed

更多關於工程師的資訊

數據科學家:9 個理由,我更建議你去當軟體工程師
GitHub 數據告訴你:用哪種程式語言的工程師最快樂?
【GitHub 熱門】中年工程師自創「面試寶典」,苦練 8 個月轉職 AWS 拿百萬年薪


金融服務上雲,要怎麼建置數位法遵策略,跟上轉型速度?

 

報名 取得 knowhow

【被遺忘的歷史】蘇聯 70 年前就已經設立 AI Lab,還研發出能下西洋棋的 AI

$
0
0

【為什麼我們要挑選這篇文章】雖然現在 AI 由中美主導,但早在 70 年前,蘇聯就已經開始研究 AI,並做出能下西洋棋的 AI。背後的靈魂人物,就是數學家安德烈.萊曼。(責任編輯:郭家宏)

提到人工智慧大國,人們往往聯想到中美這兩個主要國家,但你可能很難想像,早在 70 年前,解體前的蘇聯也曾鍾情人工智慧,並且做出了第一個能玩西洋棋的 AI 程式。

跟著文摘菌(本文作者),一起回顧一下這段不尋常的人工智慧往事。

蘇聯 AI 可以說始於 1955 年,當時的數學家還在使用 M-2 計算機,通過編寫程式來解決難題。可能當時這些數學家都沒有想過,他們中間,竟然有人想去教 AI 下西洋棋。

這段往事得從下面這位男人開始說起。

左為安德烈.萊曼(Andrey Leman)

安德烈.萊曼(Andrey Leman)從小就是一個聰明的小男孩,喜歡打數學競賽,成績挺不錯的,他在 1962 年從莫斯科國立大學畢業,並加入了蘇聯的「第一個 AI 實驗室」。

1958 年安德烈在奧林匹克數學競賽獲獎(有圖有真相)

在那個沒有網路的時代,對數學有興趣的人都會去參加數學競賽,也只有那裡可以感受數學的魅力。

安德烈最開始是想當數學家的,他還在學習的過程中,順帶開發了關於 AI 的第一個小程式,他把心得都寫成書,過了這麼多年,這本書直到很多年後,一直是蘇聯學生面經榜上的 Top。

感興趣的讀者可以 點此下載 這本書來看看

加入蘇聯史上第一個 AI 實驗室

負責蘇聯史上第一家 AILab 的亞歷山大.克朗羅德(Alexander Kronrod)也是個狼人。

克朗羅德專門研究複雜的數學分析以及微分方程,隨後自願參軍,並在二戰中獲得英勇勛章。然而舊傷讓他無法繼續服役。1945 年,退役後的他加入了庫爾恰托夫(Kurchatov)研究所,繼續研究數學。

4 年後,他成為理論與實驗物理研究所(ITEP)數學系主任,主要是核物理領域的創新(計算核反應堆和基本粒子加速器以及處理觀測結果等),這個方向是當時蘇聯研究最重要的方向。

幸好克朗羅德(Kronrod)對研究內容和方向有發言權,要不就沒法繼續研究 AI 了,因此,他和他的團隊便可以在高級電腦上幹活,要知道當年,只要能玩紙牌遊戲和西洋棋的機器就算高級電腦了。(從小學二年級就開始玩踩地雷和蜘蛛紙牌的菌菌(本文作者)簡直太幸福)

ITEP 提出的 AVL 樹。圖片來源:維基百科

當時電腦科學中的熱門話題是離散演算法的複雜性計算,Kronrod 團隊中的兩名成員 G. Adelson-Velsky 和 E. Landis 提出了第一套平衡二叉搜索樹,又稱 AVL 樹。(看看上面的圖你就會明白)

後來,安德烈(Andrey Leman)和 Boris,以及 Kronrod 實驗室成員對圖同構問題很感興趣。他們共同提出了 Weisfeiler-Leman 演算法(1968 年)。該演算法近年來因為機器學習的高速發展,又重新夯了起來。

直到 1971 年,安德烈在 Kronrod 的「督促」下發表了他的第一篇論文。結果,由於辦公室政治鬥爭的原因,導致以評審委員會「論文與數學無關」的理由拒絶了該篇論文。(哼,偏見)

要知道安德列原本就是數學家,活生生被氣到轉行當工程師,終於在 1973 年,在 V. Arlazarov 的指導下,成功發表了第二篇關於數據庫管理的論文。鑒於他對廣泛使用的蘇聯第一個數據庫 INES 的貢獻,他獲得了蘇聯部長理事會獎。(是數學家還是工程師?)

轉行的 Andrey 終於迎來了人生中的光明時刻。

教 AI 下棋,成為世界冠軍

接下來咱們聊聊人工智慧下棋的話題。

自從艾倫.圖靈(Alan Turing)發明了他的「通用圖靈機」開始之後,教電腦下西洋棋的這個想法便成為了當時亟待解決的一個課題。

這個課題一經提出,就在美國和蘇聯異常火熱,大家紛紛開始研發一種可以讓電腦自己下棋的演算法。

1967 年,麥卡錫(J. McCarthy)與克羅羅德(Kronrod)在美蘇兩國之間,籌辦了第一場 AI 西洋棋比賽。在 4 場熱身賽中,克羅羅德團隊研發的凱薩(Kaissa,會下象棋的 AI 程式)表現出了很強的分析能力,獲得得了 3:1 的好成績。

第一場國際 AI 程式西洋棋(蘇聯為白棋,美國為黑棋)

1969 年,由於克倫羅德(Kronrod)和其他數學家共同聲援蘇聯數學家埃塞寧.沃爾平(Esenin-Volpin)所受到的不公平對待,克羅羅德團隊全員被解僱。除了克倫羅德以外整個團隊跳槽控制問題研究所(ICP)繼續做研究。克羅羅德團隊的研究業績,很快就被下面這位大鬍子幸運兒撿去了。

1974 年的斯德哥爾摩,來自 8 個國家的 13 個西洋棋 AI 程式爭奪世界冠軍,在城中最大的酒店音樂廳連續打 5 天。每天都有 6 場比賽同時進行,最後凱薩(Kaissa)贏得了全部 4 場比賽並獲得了金牌,以 3 分的優勢超過美國對手 Chess-4、Chaos(混沌)、Ribbit(裡比特)。對蘇聯隊來說,他們全隊就是全球總冠軍。

在 1974 的斯德哥爾摩,在 Tech-2(美國)與 Kaissa(蘇聯)的比賽中,Stockholm. M. Donskoy(右)打電話控制程式下棋。

安德烈也隨著這次比賽的團隊冠軍,在人工智慧圈聲名鵲起了。

挺進矽谷,在新創擔任工程師

拿了第一名,是時候去矽谷看看了。1990 年,安德烈加入了在矽谷的「搶灘黨」(landing party)。所謂搶灘黨,就是成立新創公司 Cognitive Technology Inc.,開發了光學識別系統的這幫人。該系統是識別不同語言的掃瞄文本的先驅,他們的解決方案 Cuneiform OCR 和許多 IT 巨頭合作,比如甲骨文,IBM 和三星。

Cuneiform OCR(圖)是加入搶灘黨之後,Andrey 和他的同事第一個研發成功的產品。

從 1995 年到 2012 年,安德烈在各種高科技新創公司擔任工程師(有技術隨便跳),他最後在基因公司 Invitae 搬磚,在公司他開發的系統程式非常受歡迎,到目前還在用。雖然他對生物資訊學不熟,但完全不影響他做系統開發。

安德烈在 2012 年去世,大家一致認為他是非常靠譜的朋友,為人比較幽默,樂於助人。

從早年喜歡參加數學競賽,到研發 AI 程式拿到 AI 西洋棋的全球總冠軍,再到矽谷繼續寫程式,他的一生濃縮了無數蘇聯 AI 科研者的故事,而這些都是從 70 年前的蘇聯開始的。

原文報導 傳送門

(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈70 年前,在苏联第一家 AI LAB 从事 AI 研究是种什么体验?〉。首圖來源:Wallpaper Flare CC Licensed

更多關於 AI 的資訊

【音樂不用再找人做?】SONY 發表 PS5 新專利,AI 技術讓每個人都能聽到不同配樂
【腦波控制?】日本嘻哈樂團新歌 feat. 唐鳳,連 MV 都用 AI 做
怎樣課稅最公平?AI Economist 透過強化學習,找出疫情下的理想稅制方案


全方位掌握消費者數位軌跡

AI 如何有效提升電商業績、降低導入成本?

《領取白皮書》

工程師實驗用 AI 互譯 C++、Java、Python 語言代碼,成功率高達 80.9%

$
0
0

【我們為什麼挑選這篇文章】前一陣子美國疫情一發不可收拾,上百萬美國民眾失業需靠保險金補助,大量需求突然湧入,讓美國政府系統瀕臨崩潰 ,但這些系統是用古老語言 COBOL 寫的,幾乎很難找到會這語言的工程師修理。

程式語言日新月異之下,學習的速度趕不上淘汰的速度,一個人能熟悉的語言也有限,這篇文章的作者嘗試語言「翻譯」,看看他嘗試的結果!(責任編輯:戴慈慧)

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

作者:量子位/晓查

還記得美國前一陣要招聘 60 歲的老程序員嗎?都怪編程語言發展太快!

因為新冠疫情的緣故,美國一些地區的失業救濟系統不堪重負,而這些系統都是上古語言 COBOL 寫的。

然而,現在早已經是 C/C++、Java、Python 的天下了,把 COBOL 程序換成 Python,何其難也。

遠的不說,Python 2 剛剛淘汰,過去的老程序手工轉成 Python 3 也是個很大的工程。

既然 AI 能翻譯自然語言,那也應該能翻譯編程語言。

Facebook 也是這麼想的,所以他們最近提出了 TransCoder,一個翻譯編程語言的 AI,現在可以在 C++、Java、Python 語言之間互譯。

經翻譯後的程序,成功運行的通過率最高可以達到 80.9%。

而且 TransCoder 是一種無監督學習算法,意味著不需要大量成對的、標記的編程代碼數據集進行訓練。如果這項技術達到實用化程度,對廣大程序員來說真是巨大福音啊!

難怪論文作者之一 Guillaume Lample 在 Twitter 上宣佈了這篇論文後很快引起了熱議。

翻譯編程語言,什麼原理?

TransCoder 充分利用了編程語言的特點,比如像 for、while、if 這些關鍵詞以及通用的數學運算符。

下圖展示了關鍵字的嵌入。在相似的上下文中使用的不同編程語言的關鍵字在嵌入空間中非常接近。

例如,Python 中的 except 和 Java、C++ 中的 catch 都用於獲取異常,它們被映射到非常相似的嵌入空間位置。

對於映射的實現(map 和 dict)、用於將字符串轉換為字符數組(c_str 和 toCharArray)以及類似的變量類型 (例如 long、int 和 Integer),也可以觀察到相同的現象。

那麼以上這些關鍵詞的嵌入是如何獲得的?

Facebook 提出了實現無監督編程語言機器翻譯的三個原則。

首先,通過 跨語言掩碼語言模型(MLM) 預處理來初始化模型,這有些類似於自然語言的填空題。結果是表達相同指令的代碼片段被映射到與編程語言無關的相同表示。

其次是 去噪自動編碼 ,它能訓練解碼器始終生成有效序列,即使在輸入有噪聲的數據時也是如此,提高了編碼器對輸入噪聲的魯棒性(Robustness)。

最後是 反向翻譯 ,它允許模型生成可用於訓練的並行數據。每當 Python 轉 C++ 模型變得更好時,它就會為 C++ 轉 Python 模型生成更精確的數據,反之亦然。

通過以上步驟,TransCoder 在訓練後獲得了之前提到的跨語言嵌入。我們觀察到,TransCoder 成功地理解了每種語言特有的語法、數據結構、函數庫和方法。

在上面的圖中,展示了 Java 和 C++ 獨有的三元運算符 X ? A : B,翻譯到 Python 中就變成了 if X then A else B。

以下是一個從 Python 翻譯到 C++ 的實例。TransCoder 推斷變量和函數返回值的類型,將 Python 的 deque() 容器映射到 C++ 中類似的實現 deque<>,並使用 C++ 的 front、back、pop_back 和 push_back 方法來檢索和插入 deque 中的元素,而不是使用 Python 方括號、pop 和 append 方法。

實驗結果

為了訓練 TransCoder,Facebook 在 GitHub 上尋找了 280 萬個開源代碼庫進行訓練,其中包含數百億個 token。

然後去 GeeksforGeeks 平台去驗證翻譯成果,該平台是收集各類編碼問題,並以多種編程語言提供解決方案。

和自然語言不同的是,代碼翻譯並不太要求逐字逐句的對照,因此翻譯後的代碼和參考代碼的重合度其實很低,比如 C++ 轉 Java 的代碼和 Ground Truth 僅有 3.1% 匹配。

另外 NLP 翻譯中的 BLEU 也不宜作為代碼翻譯的衡量標準,因為這只能表示實際代碼和參考代碼之間的語法差異。

因此需要一個新的度量標準——計算正確率,它表示翻譯後的代碼測試後是否能與參考代碼有相同的輸出。

以此為標準,C++ 轉 Java 的代碼的計算正確率為 60.9%,而 Java 轉 C++ 的計算正確率為 80.9%。

Facebook 不是唯一開發 AI 代碼生成系統的公司。前不久微軟 Build 大會上,OpenAI 就演示了一個在 GitHub 數據上訓練的模型,僅根據注釋內容即可生成對應功能的代碼。

TransCoder 沒那麼智能,但是在計算機技術飛速發展的今天,誰知道下一個流行的語音是什麼,有了 TransCoder,至少讓我們在移植代碼的時候沒那麼難了。

也許美國社保系統的 COBOL 就靠它解決了。

論文地址 點這裡

(本文經 AI 新媒體 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈用 AI 实现 C++、Java、Python 代码互译,运行成功率最高达 80.9%〉,首圖來源:pexels.com, CC Licensed。)

你可能感興趣


全方位掌握消費者數位軌跡

AI 如何有效提升電商業績、降低導入成本?

《領取白皮書》

Viewing all 585 articles
Browse latest View live