如何像算法工程師一樣,看待這個世界?
大數(shù)據(jù)文摘作品
作者:諸葛越
來源:《未來算法》
盛夏來臨,又到了畢業(yè)季。每年的秋招,互聯(lián)網(wǎng)和科技大廠的應屆生薪資基本都是應屆生們最關心的問題。良禽擇木而棲,應屆生在選擇第一份工作的時候,除了平臺自身水平與職業(yè)發(fā)展前景之外,薪酬也是非常重要的參考因素。
CSDN論壇里,一篇2021屆互聯(lián)網(wǎng)大廠薪資對比帖顯示,算法工程師一職當屬最炙手可熱的崗位。其中,一些拿到special offer的算法應屆畢業(yè)生居然可以拿到高達60萬的年薪!
互聯(lián)網(wǎng)大廠新入職員工各職級薪資對應表(技術線) 圖片數(shù)據(jù)來源:知乎
算法,這個聽起來高深又晦澀的概念,仿佛逐漸支配了我們日常生活的方方面面,依托這個概念而衍生出的工作行業(yè),也逐漸成為兼具“前途”與“錢途”的香餑餑。
其實要搞清楚“算法”為什么值錢,看看我們的日常生活就知道。從早上出門打車用的打車軟件、導航軟件,上班用的電腦、文件和在線工具,點外賣咖啡的App(應用程序)和快遞調度,到手機支付,孩子上的網(wǎng)課,在淘寶、京東購物,看微信,刷抖音,用語音助手,和機器人聊天,這些行為背后全是強大的算法在操縱。
未來是人和機器一起仰望星空的時代,而算法是打開未來世界的鑰匙。普通人需要深度了解算法嗎?答案當然是肯定的。或許你已經聽倦了“我們生活在算法操控的時代”這樣一種說辭,那以下的幾個生活場景,會讓你意識到將算法思維為我所用是多么重要。
可以被算法優(yōu)化的生活場景
時間管理大師
最近幾年,“時間管理大師”一詞逐漸走入大家的視野中,一開始只是用作調侃,但放在認真生活的語境之下,提升時間管理效率其實是許多職場人的必修課。世界著名的“艾維·利時間管理法”教會上百萬人如何利用“優(yōu)先級”管理自己的時間:
(1)寫下你明天要做的6 件最重要的事。
(2)用數(shù)字標明每件事的重要性次序。
(3) 明天早上第一件事是做第一項,直至完成或達到要求。
(4)然后再開始完成第二項、第三項……
(5)每天都要這樣做,養(yǎng)成習慣。
這其中,第二步,也就是排序,是最重要的,它幫助人們遵從兩個重要原則:(1)先解決最重要的問題,(2)每次只解決一個問題。
我們在生活中常??床磺宄膬?yōu)先級問題,比如工作和生活的平衡,該去同學聚會還是在家里看書,都是沒有想清楚要按什么來排,什么對你最重要。每天的時間對于每個人都一樣多,用排序思維來管理時間可以讓你的每一天更高效。
解除焦慮,安心躺平
哪怕現(xiàn)在眾多人呼吁“躺平”,不得不承認的是,焦慮感依然充斥在每個人的生活當中。在斯蒂芬·柯維(Stephen Covey)的《高效能人士的七個習慣》中,他寫了兩個我們思考的圈子:關注圈子和影響圈子。
我們可以關注自己的健康、職業(yè)、人際關系,我們關心環(huán)境保護,關心孩子的教育,我們也可以影響這些事,這些都屬于我們的關注圈子和影響圈子。但如果我們關注別人的成功,隔壁家孩子的考分,經濟是否下滑,這些事情我們基本上影響不了,它們屬于關注圈子,但不屬于影響圈子,而它們是造成人們焦慮的主要原因。
你如果感到焦慮,可以試試下面的三步法。第一步,坐下來把你想到的所有的事情寫下來,然后分類成“我能影響”和“我不能影響”的兩類。僅僅這樣的分類,就能讓你看清楚自己是否花了太多的時間在擔心不能影響的事。第二步,對“我能影響”的那些事,你可以積極主動地去改變,比如改變自己對他人的態(tài)度。第三步,對“我不能影響”的那些事,你可以問自己:“我自己能做些什么?”比如你擔心經濟下滑,你是否可以儲蓄更多?把自己擔心卻不能影響的事,變成自己可以執(zhí)行的行動,可以減少沒有意義的焦慮。
是做海王,還是從一而終?
談戀愛應該多談幾個,還是從一開始就選定對象,從一而終?多談幾個是否有成為“海王”的風險,從一而終給是否會錯失更佳的伴侶?
找伴侶,在計算機領域是一個典型的優(yōu)化問題。這個優(yōu)化問題叫作最佳停止問題(optimal stopping)。最佳停止問題的場景是你有一系列的可能選擇的目標,你可以一個一個地檢驗,記住它們的特點和優(yōu)劣,給它們打分。但是你看過了就不能回頭了。問題是:你在什么時候做決定,是最佳的選擇呢?
這個最佳選擇有一個答案:37%。也就是說,在你所有的可能的選擇中,前面37%不要選,用來積累數(shù)據(jù),建立你對選擇對象質量的評估標準,讓你知道什么是好的,什么是不好的。從第38%位對象開始,你轉變成開放的可以做決定的狀態(tài)。這時候,你如果遇到比前面看到的都更好的選項,你就可以做出選擇。
找餐廳可以做類比,如果798園區(qū)有10家餐吧,那么前面4 家(接近37%),你可以看看而不要進去。從第5家開始,只要看著比前面的都好,你就進去吃午飯吧,這可能就是你的最優(yōu)選擇。
找伴侶的例子也一樣。假設你在18歲到36歲之間,每年可以交一個異性朋友,那么你可能一共就有18個人可以交往。在這種情況下,對前面7個人(接近37%),你只需要交往一下,了解一下異性,看看交朋友是怎么回事。在第7個人之后,也就是在你25歲的時候,你要轉變策略,再碰到一個合適的就要抓住時機定終身,進入人生下一個階段。
這個最佳停止的問題和答案,被譽為優(yōu)化算法里最完美的算法之一。它的問題簡單易懂,使用場景很多,答案也很清晰。最佳停止問題和答案在20世紀60年代被提出來后,廣泛應用于統(tǒng)計學、經濟學、計算機科學、金融學等領域。
如果你仔細思考,它可以對我們人生中做的決定產生深遠的影響,因為在我們的生活當中有特別多的問題是“你什么時候停止觀望,做出選擇”。
像算法工程師一樣思考
以上的生活場景,是否讓你意識到“計算思維”的重要性?現(xiàn)在你大概知道了,為什么“算法工程師”們的思維模式有價值,值得每個普通人去學習。女性計算機科學家諸葛越博士在她的新書《未來算法》中,詳細解釋了普通人為什么要訓練計算思維,以及如何訓練計算思維的辦法。
首先,計算思維會對你的每日生活和工作有幫助。了解了算法思維后,你會發(fā)現(xiàn)生活中處處是算法,會從一個全新的角度看待日常的問題。除了管理時間,接觸焦慮,尋找伴侶之外,生活中的千萬個問題都可以用算法思維給出答案。比如如何找到去公司的最短路徑,如何管理時間,如何加密你的信息,機場人流是怎么回事,騙子是怎么利用簡單算法讓很多人上當?shù)摹?/p>
其次,計算思維也能幫你了解日常應用是怎么工作的。比如為什么滴滴知道你要去哪里,朋友圈為什么可以一直刷,淘寶為什么隨時隨地都能向你推送你想要的東西。
還有,計算思維還會幫你做事,幫你更有效地利用這些強大的計算機應用。比如了解搜索引擎的原理后,當你要找一份工作,你就知道如何縮小范圍去找到合適的結果。再比如你想提高自己淘寶店商品的排名,你如果了解其分類和排序的規(guī)則,你的商品就有可能排到前面。
最后,計算思維也可以幫助你解決人生的復雜問題。計算思維是一套方法論,一套解決復雜問題的方法論,這套方法論可以遷移到生活當中,給你指導:如何做好一名CEO(首席執(zhí)行官)?如何讓孩子上好大學?如何在享受現(xiàn)在的生活和探索新的機會之間找到平衡?這些問題的本質是如何優(yōu)化,如何做選擇,如何做成一件大事。
我們都知道人生的難題不能用一個算法來解。計算思維會教你分解問題,找出規(guī)律,教給你直覺和框架。這對我們了解復雜的世界,做正確的人生決策有很大的幫助。
那么如果把計算思維拆解開來,它,到底是什么?它的底層邏輯有哪些?
計算思維的4個方向
目前業(yè)界公認,計算思維包含4個方面:分解問題、抽象、算法、模式識別。其中,算法是直接用來解決問題的方法,而其他幾個概念能幫助人們用算法來表示生活中的問題,從而讓計算機來解決這些問題。
第一,拆解復雜問題,直到復雜問題成為可重復的簡單問題(分解問題)。
用計算思維解決問題,首先就要拆解。分解問題是把原問題分解成子問題,解子問題,再把子問題的解合成原問題的解。無論多么強大的計算機應用,背后都是把原問題分解成可以解的子問題,只是規(guī)模不同。
以抖音為例,抖音的成功依賴于它強大的個性化推薦算法。在計算機看來,“探究用戶喜歡哪種視頻”可以拆解成:(1)把所有的視頻按內容分類和排序;(2)根據(jù)所有用戶(包括你)以前各自的觀看習慣,推導出喜好;(3)把視頻內容和用戶喜好進行匹配,按匹配程度排序。也就是說,你用抖音刷視頻對計算機來說分三大步,每一步都可以繼續(xù)拆解,直到每一步都可以用算法來完成。
第二,把生活中的問題抽象化,用約定俗成的算法來解(抽象)。
我們生活在一個物理世界里,計算機生活在一個數(shù)字世界里。計算機并不像人一樣理解真實的事物,我們需要把真實的世界表達成它能理解的語言。然后在計算或操作后,它才能在真實世界中把結果展示出來。
比如,抖音需要用ID(身份標識號)或者名字把視頻表示成計算機可以理解的形式,也要把視頻內容表示成計算機可以理解的形式。同樣,淘寶需要把商品的名字、內容、價格等表示成計算機可以理解的形式。被計算機排序后,這些物品需要轉換回人能夠看見的視頻或者商品。這個把真實物理世界和計算機數(shù)字世界對應的過程就是抽象。
一旦問題被抽象成計算機可以理解的形式,比如轉化為上面提到的排序問題,那么,這個問題就有約定俗成的解法了。而一些常用的排序算法,比如冒泡排序、插入排序等,都可以幫助我們提升解決問題的效率(這些算法在《未來算法》中都有介紹)。這些算法是計算機科學家研究出來的正確而高效的算法,是放之四海而皆準的算法。我們不需要重新去發(fā)明它們,就好比造房子的時候有其他公司已經能做出世界一流的窗戶,那我們只需要知道是哪家公司有這個能力,把尺寸要求給它,讓它造窗戶就行了。
第三,算法是流程化的、可調用的、邏輯清晰的(算法)。
計算機的算法就是一系列的指令,而指令是計算機能理解的語言。
人類的語言本身是復雜的、模糊的、會意的,比如“空山鳥飛絕”這句詩,看到的人會“腦補”這個畫面。而計算機語言像小孩的語言,你必須給它所有精確的信息,它才能懂。計算機需要數(shù)過每一棵樹,不多也不少,才知道這是一片有幾棵樹的森林。計算機的指令需要清晰、流程化,就像做一杯咖啡的指令,不管誰拿到這個指令,都可以做出同樣的咖啡。
清晰的語言表達是計算思維的要點。拆解使語言變得清晰。比如,計算機把物體從小到大做一個排序隊列,它的辦法是:(1)拿一個新的物體;(2)從隊列第一個開始比較,直到找到這個物體合適的位置;(3)把這個物體插入這個位置。這3個步驟非常清晰,沒有歧義,對任何數(shù)目的物體都會奏效。
這個算法叫插入排序算法。抖音排視頻可以用這個算法,淘寶排商品也可以用這個算法。無論是抖音需要每天推薦1億個短視頻,還是淘寶同時服務1000萬名用戶,當它們做到最后一步,需要向用戶展示一個排好序的清單的時候,它們用的都是排序算法。
可以說,現(xiàn)代和未來的數(shù)字世界就搭建在這些算法之上。算法是約定俗成的好方法,一個算法可以解不同的問題,一個問題可以由不同的算法來解。我們需要知道各種算法的存在,懂得它們的原理,學會調用它們,讓算法為我們服務。
第四,可重復性帶來規(guī)模效應(模式識別)。
計算機的算法不是用來解一個問題的,而是用來解一類問題的。這個解是可以重復的。比如,抖音不是給一個人推薦視頻,它的算法可以給一億人推薦視頻,每個人看到的內容是不一樣的,形式和方法卻是一樣的。再比如,一個人臉識別算法不是只能識別某個人,而是可以把每個人的身份證照片和實際的影像進行匹配。
可重復性帶來規(guī)模效應,這是計算機強大的根本原因。所謂模式識別,就是識別出哪些問題有共性,可以用同一個方法(比如排序)來解,這樣我們就可以把這些問題交給計算機算法,讓它重復做,做成千上萬遍。
計算世界是精美和巧妙的?,F(xiàn)在入行做程序員或許已經來不及了,但我們依然可以訓練“算法工程師”們看世界的方法,學習如何用非常優(yōu)美的、極其聰明的、超常簡潔的辦法去解決復雜的難題。希望在計算思維之下,我們都能擁有一個不同的看世界的視角。
本文綜編自《未來算法》,諸葛越著,中信出版集團2021年6月出版。
*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。
電機保護器相關文章:電機保護器原理