博客專欄

        EEPW首頁 > 博客 > 如何像算法工程師一樣,看待這個世界?

        如何像算法工程師一樣,看待這個世界?

        發布人:數據派THU 時間:2021-07-16 來源:工程師 發布文章

        大數據文摘作品

        作者:諸葛越

        來源:《未來算法》

        盛夏來臨,又到了畢業季。每年的秋招,互聯網和科技大廠的應屆生薪資基本都是應屆生們最關心的問題。良禽擇木而棲,應屆生在選擇第一份工作的時候,除了平臺自身水平與職業發展前景之外,薪酬也是非常重要的參考因素。

        CSDN論壇里,一篇2021屆互聯網大廠薪資對比帖顯示,算法工程師一職當屬最炙手可熱的崗位。其中,一些拿到special offer的算法應屆畢業生居然可以拿到高達60萬的年薪!

        1.png

        互聯網大廠新入職員工各職級薪資對應表(技術線) 圖片數據來源:知乎

        算法,這個聽起來高深又晦澀的概念,仿佛逐漸支配了我們日常生活的方方面面,依托這個概念而衍生出的工作行業,也逐漸成為兼具“前途”與“錢途”的香餑餑。

        其實要搞清楚“算法”為什么值錢,看看我們的日常生活就知道。從早上出門打車用的打車軟件、導航軟件,上班用的電腦、文件和在線工具,點外賣咖啡的App(應用程序)和快遞調度,到手機支付,孩子上的網課,在淘寶、京東購物,看微信,刷抖音,用語音助手,和機器人聊天,這些行為背后全是強大的算法在操縱。

        未來是人和機器一起仰望星空的時代,而算法是打開未來世界的鑰匙。普通人需要深度了解算法嗎?答案當然是肯定的。或許你已經聽倦了“我們生活在算法操控的時代”這樣一種說辭,那以下的幾個生活場景,會讓你意識到將算法思維為我所用是多么重要。

        可以被算法優化的生活場景

        時間管理大師

        最近幾年,“時間管理大師”一詞逐漸走入大家的視野中,一開始只是用作調侃,但放在認真生活的語境之下,提升時間管理效率其實是許多職場人的必修課。世界著名的“艾維·利時間管理法”教會上百萬人如何利用“優先級”管理自己的時間:

        (1)寫下你明天要做的6 件最重要的事。

        (2)用數字標明每件事的重要性次序。

        (3) 明天早上第一件事是做第一項,直至完成或達到要求。

        (4)然后再開始完成第二項、第三項……

        (5)每天都要這樣做,養成習慣。

        這其中,第二步,也就是排序,是最重要的,它幫助人們遵從兩個重要原則:(1)先解決最重要的問題,(2)每次只解決一個問題。

        我們在生活中常常看不清楚的優先級問題,比如工作和生活的平衡,該去同學聚會還是在家里看書,都是沒有想清楚要按什么來排,什么對你最重要。每天的時間對于每個人都一樣多,用排序思維來管理時間可以讓你的每一天更高效。

        解除焦慮,安心躺平

        哪怕現在眾多人呼吁“躺平”,不得不承認的是,焦慮感依然充斥在每個人的生活當中。在斯蒂芬·柯維(Stephen Covey)的《高效能人士的七個習慣》中,他寫了兩個我們思考的圈子:關注圈子和影響圈子。

        我們可以關注自己的健康、職業、人際關系,我們關心環境保護,關心孩子的教育,我們也可以影響這些事,這些都屬于我們的關注圈子和影響圈子。但如果我們關注別人的成功,隔壁家孩子的考分,經濟是否下滑,這些事情我們基本上影響不了,它們屬于關注圈子,但不屬于影響圈子,而它們是造成人們焦慮的主要原因。

        你如果感到焦慮,可以試試下面的三步法。第一步,坐下來把你想到的所有的事情寫下來,然后分類成“我能影響”和“我不能影響”的兩類。僅僅這樣的分類,就能讓你看清楚自己是否花了太多的時間在擔心不能影響的事。第二步,對“我能影響”的那些事,你可以積極主動地去改變,比如改變自己對他人的態度。第三步,對“我不能影響”的那些事,你可以問自己:“我自己能做些什么?”比如你擔心經濟下滑,你是否可以儲蓄更多?把自己擔心卻不能影響的事,變成自己可以執行的行動,可以減少沒有意義的焦慮。

        是做海王,還是從一而終?

        談戀愛應該多談幾個,還是從一開始就選定對象,從一而終?多談幾個是否有成為“海王”的風險,從一而終給是否會錯失更佳的伴侶?

        找伴侶,在計算機領域是一個典型的優化問題。這個優化問題叫作最佳停止問題(optimal stopping)。最佳停止問題的場景是你有一系列的可能選擇的目標,你可以一個一個地檢驗,記住它們的特點和優劣,給它們打分。但是你看過了就不能回頭了。問題是:你在什么時候做決定,是最佳的選擇呢?

        這個最佳選擇有一個答案:37%。也就是說,在你所有的可能的選擇中,前面37%不要選,用來積累數據,建立你對選擇對象質量的評估標準,讓你知道什么是好的,什么是不好的。從第38%位對象開始,你轉變成開放的可以做決定的狀態。這時候,你如果遇到比前面看到的都更好的選項,你就可以做出選擇。

        找餐廳可以做類比,如果798園區有10家餐吧,那么前面4 家(接近37%),你可以看看而不要進去。從第5家開始,只要看著比前面的都好,你就進去吃午飯吧,這可能就是你的最優選擇。

        找伴侶的例子也一樣。假設你在18歲到36歲之間,每年可以交一個異性朋友,那么你可能一共就有18個人可以交往。在這種情況下,對前面7個人(接近37%),你只需要交往一下,了解一下異性,看看交朋友是怎么回事。在第7個人之后,也就是在你25歲的時候,你要轉變策略,再碰到一個合適的就要抓住時機定終身,進入人生下一個階段。

        這個最佳停止的問題和答案,被譽為優化算法里最完美的算法之一。它的問題簡單易懂,使用場景很多,答案也很清晰。最佳停止問題和答案在20世紀60年代被提出來后,廣泛應用于統計學、經濟學、計算機科學、金融學等領域。

        如果你仔細思考,它可以對我們人生中做的決定產生深遠的影響,因為在我們的生活當中有特別多的問題是“你什么時候停止觀望,做出選擇”。

        像算法工程師一樣思考

        以上的生活場景,是否讓你意識到“計算思維”的重要性?現在你大概知道了,為什么“算法工程師”們的思維模式有價值,值得每個普通人去學習。女性計算機科學家諸葛越博士在她的新書《未來算法》中,詳細解釋了普通人為什么要訓練計算思維,以及如何訓練計算思維的辦法。

        首先,計算思維會對你的每日生活和工作有幫助。了解了算法思維后,你會發現生活中處處是算法,會從一個全新的角度看待日常的問題。除了管理時間,接觸焦慮,尋找伴侶之外,生活中的千萬個問題都可以用算法思維給出答案。比如如何找到去公司的最短路徑,如何管理時間,如何加密你的信息,機場人流是怎么回事,騙子是怎么利用簡單算法讓很多人上當的。

        其次,計算思維也能幫你了解日常應用是怎么工作的。比如為什么滴滴知道你要去哪里,朋友圈為什么可以一直刷,淘寶為什么隨時隨地都能向你推送你想要的東西。

        還有,計算思維還會幫你做事,幫你更有效地利用這些強大的計算機應用。比如了解搜索引擎的原理后,當你要找一份工作,你就知道如何縮小范圍去找到合適的結果。再比如你想提高自己淘寶店商品的排名,你如果了解其分類和排序的規則,你的商品就有可能排到前面。

        最后,計算思維也可以幫助你解決人生的復雜問題。計算思維是一套方法論,一套解決復雜問題的方法論,這套方法論可以遷移到生活當中,給你指導:如何做好一名CEO(首席執行官)?如何讓孩子上好大學?如何在享受現在的生活和探索新的機會之間找到平衡?這些問題的本質是如何優化,如何做選擇,如何做成一件大事。

        我們都知道人生的難題不能用一個算法來解。計算思維會教你分解問題,找出規律,教給你直覺和框架。這對我們了解復雜的世界,做正確的人生決策有很大的幫助。

        那么如果把計算思維拆解開來,它,到底是什么?它的底層邏輯有哪些?

        計算思維的4個方向

        目前業界公認,計算思維包含4個方面:分解問題、抽象、算法、模式識別。其中,算法是直接用來解決問題的方法,而其他幾個概念能幫助人們用算法來表示生活中的問題,從而讓計算機來解決這些問題。

        第一,拆解復雜問題,直到復雜問題成為可重復的簡單問題(分解問題)。

        用計算思維解決問題,首先就要拆解。分解問題是把原問題分解成子問題,解子問題,再把子問題的解合成原問題的解。無論多么強大的計算機應用,背后都是把原問題分解成可以解的子問題,只是規模不同。

        以抖音為例,抖音的成功依賴于它強大的個性化推薦算法。在計算機看來,“探究用戶喜歡哪種視頻”可以拆解成:(1)把所有的視頻按內容分類和排序;(2)根據所有用戶(包括你)以前各自的觀看習慣,推導出喜好;(3)把視頻內容和用戶喜好進行匹配,按匹配程度排序。也就是說,你用抖音刷視頻對計算機來說分三大步,每一步都可以繼續拆解,直到每一步都可以用算法來完成。

        第二,把生活中的問題抽象化,用約定俗成的算法來解(抽象)。

        我們生活在一個物理世界里,計算機生活在一個數字世界里。計算機并不像人一樣理解真實的事物,我們需要把真實的世界表達成它能理解的語言。然后在計算或操作后,它才能在真實世界中把結果展示出來。

        比如,抖音需要用ID(身份標識號)或者名字把視頻表示成計算機可以理解的形式,也要把視頻內容表示成計算機可以理解的形式。同樣,淘寶需要把商品的名字、內容、價格等表示成計算機可以理解的形式。被計算機排序后,這些物品需要轉換回人能夠看見的視頻或者商品。這個把真實物理世界和計算機數字世界對應的過程就是抽象。

        一旦問題被抽象成計算機可以理解的形式,比如轉化為上面提到的排序問題,那么,這個問題就有約定俗成的解法了。而一些常用的排序算法,比如冒泡排序、插入排序等,都可以幫助我們提升解決問題的效率(這些算法在《未來算法》中都有介紹)。這些算法是計算機科學家研究出來的正確而高效的算法,是放之四海而皆準的算法。我們不需要重新去發明它們,就好比造房子的時候有其他公司已經能做出世界一流的窗戶,那我們只需要知道是哪家公司有這個能力,把尺寸要求給它,讓它造窗戶就行了。

        第三,算法是流程化的、可調用的、邏輯清晰的(算法)。

        計算機的算法就是一系列的指令,而指令是計算機能理解的語言。

        人類的語言本身是復雜的、模糊的、會意的,比如“空山鳥飛絕”這句詩,看到的人會“腦補”這個畫面。而計算機語言像小孩的語言,你必須給它所有精確的信息,它才能懂。計算機需要數過每一棵樹,不多也不少,才知道這是一片有幾棵樹的森林。計算機的指令需要清晰、流程化,就像做一杯咖啡的指令,不管誰拿到這個指令,都可以做出同樣的咖啡。

        清晰的語言表達是計算思維的要點。拆解使語言變得清晰。比如,計算機把物體從小到大做一個排序隊列,它的辦法是:(1)拿一個新的物體;(2)從隊列第一個開始比較,直到找到這個物體合適的位置;(3)把這個物體插入這個位置。這3個步驟非常清晰,沒有歧義,對任何數目的物體都會奏效。

        這個算法叫插入排序算法。抖音排視頻可以用這個算法,淘寶排商品也可以用這個算法。無論是抖音需要每天推薦1億個短視頻,還是淘寶同時服務1000萬名用戶,當它們做到最后一步,需要向用戶展示一個排好序的清單的時候,它們用的都是排序算法。

        可以說,現代和未來的數字世界就搭建在這些算法之上。算法是約定俗成的好方法,一個算法可以解不同的問題,一個問題可以由不同的算法來解。我們需要知道各種算法的存在,懂得它們的原理,學會調用它們,讓算法為我們服務。

        第四,可重復性帶來規模效應(模式識別)。

        計算機的算法不是用來解一個問題的,而是用來解一類問題的。這個解是可以重復的。比如,抖音不是給一個人推薦視頻,它的算法可以給一億人推薦視頻,每個人看到的內容是不一樣的,形式和方法卻是一樣的。再比如,一個人臉識別算法不是只能識別某個人,而是可以把每個人的身份證照片和實際的影像進行匹配。

        可重復性帶來規模效應,這是計算機強大的根本原因。所謂模式識別,就是識別出哪些問題有共性,可以用同一個方法(比如排序)來解,這樣我們就可以把這些問題交給計算機算法,讓它重復做,做成千上萬遍。

        計算世界是精美和巧妙的。現在入行做程序員或許已經來不及了,但我們依然可以訓練“算法工程師”們看世界的方法,學習如何用非常優美的、極其聰明的、超常簡潔的辦法去解決復雜的難題。希望在計算思維之下,我們都能擁有一個不同的看世界的視角。

        2.png

        本文綜編自《未來算法》,諸葛越著,中信出版集團2021年6月出版。

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

        電機保護器相關文章:電機保護器原理


        關鍵詞: 算法

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 修文县| 邵阳县| 罗田县| 武穴市| 贵溪市| 凤台县| 武山县| 沾化县| 大理市| 赫章县| 金昌市| 巴青县| 洛浦县| 盘锦市| 达拉特旗| 二连浩特市| 阿鲁科尔沁旗| 运城市| 山西省| 葵青区| 勐海县| 通山县| 土默特左旗| 定南县| 商都县| 博罗县| 东平县| 灵石县| 荆门市| 斗六市| 海宁市| 临洮县| 长汀县| 乐至县| 山阳县| 侯马市| 长丰县| 淮阳县| 新乡县| 罗田县| 新安县|