1. 程式人生 > >【隨筆】跳出程式設計師思維看世界

【隨筆】跳出程式設計師思維看世界

作為程式設計師,我真的有時候特別想 debug 這個世界。看看這個世界究竟是怎麼執行的。因為經常會遇到她的輸出跟我斷言的不一樣,或者我覺得正常的輸入,卻被她判定為非法。

先分享兩件事吧。

第一件事,記得去年考駕照的時候,應該是在練科目三。教練帶著我練車,當開到一個地方時,讓我停車。然後跟我說:『這裡是一個考點,看到前面那棵樹沒?考試的時候,你把車開到離那棵樹大概這麼長的距離,停一下車』。我頓時懵逼了,我發現我對『大概這麼長』完全沒有個概念。我就問教練『大概這麼長是多長?』,這下就輪到教練懵逼了,然後,就聽到後座早就等的不耐煩排隊練車的三個同學跟教練異口同聲的對我說『大概這麼長就是這麼長呀』,同時給我一個看著智障一樣的眼神。大概這麼長就是這麼長,那到底是多長,我徹底凌亂了。那一刻我才發現我和世界不一樣。

好在後來教練沒有放棄對我的治療,但我能明顯感覺出來,她教我的方式跟其它人不太一樣。後面跟我說話的畫風都是這樣的。『看到前面那棵樹沒?考試的時候,你把車開到離那棵樹半米的距離,停一下車。看到那個花臺沒?車輪與花臺平行,並且保持20公分的距離。看到前面那個電線杆沒?車頭與它的夾角成60度的時候,方向盤及時回正』,半米、平行、20公分、60度,這些詞讓我覺得這才是正確的描述。但我還是不明白別人是怎麼明白『大概這麼長』是多長的。

第二件事,我發現我怎麼都學不會做菜。究其原因是什麼呢?因為我發現自己完全看不懂菜譜。每次看到裡面充斥著類似鹽少許、醋若干、醬油適量等這樣的描述我都氣不打一處來。我如果自己明白適量是多少,我還去看菜譜幹什麼。我一直覺得寫這種菜譜的人,心裡一點 B 數都沒有。但是呢?跟上面練車的例子一樣,別人就是可以通過這些少許、若干、適量的字眼學會做菜,還做的不錯。這樣看來我可能才是那個沒有 B 數的那個。

說到 B 數,我其實覺得這是一個比較粗俗的詞彙。但是,我一時又想不到有什麼詞可以去替換它。如果非要找個詞的話,我就想起以前上學打『英雄聯盟』的時候,各種坑隊友。隊友總是能預判出哪個草叢可能有人,哪個地方會有誰來 gank 你,什麼時候該到哪裡去。他們之間的溝通,一個眼神、一個訊號就夠了。而我啥也 get 不到,總是送人頭,打單機。後來我就問他們是怎麼感覺出來,簡直像開掛一樣,我怎麼什麼也感覺不到。他們給我的評價是『因為你沒有意識』。對,就是『意識』這個詞。

為什麼我沒有意識。可能意識這個東西比較偏感性思維,而我偏理性思維,也可能我天生就是一個意識薄弱的人。但是毫無疑問的是,當我選了理科,當我進入社會成了一名程式設計師,都一直在弱化意識這個東西。

就拿程式碼來說,程式碼裡面寫的最多的是什麼,應該是方法。每個系統是由 N 個類組成,每個類又是由 N 個方法組成。而方法又叫函式,取自數學上的概念。wiki 上是這樣描述它的,『_函式就像機器或黑箱,給予輸入值便產生唯一輸出值』。_注意唯一這個詞,理論上函式的外部輸入值一樣,最終得到的結果也是一樣。我們寫程式碼的時候大部分情況下也是這樣,少部分情況下不一致很可能是因為 BUG。這就跟意識沒有半毛錢關係了,通常在你輸入的時候就能知道他應該有什麼樣的輸出,用程式設計師的話說就是斷言。而如何知道輸出斷言,不是靠感覺出來的,是你通過邏輯一步一步推匯出來的,容不得半點感性思維在裡面。

另外一個場景,大家就很熟悉了。就是跟產品經理日常吵架。吵的原因如下,比如加需求了、比如改需求了、再比如需求不明確了。。。無外乎都是圍繞著需求的。而其中最傷腦筋的就是需求不明確。

最近幾年 AI 非常火,每種職業都有一種,以後會不會被 AI 取代的焦慮,程式設計師也不例外。以前就看到過這樣的帖子,作者表達出類似的擔憂。帖子的大概內容就是覺得 AI 發展十分迅速,假以時日,可能以後就沒有什麼程式設計師了,只有產品經理。以後開發系統的場景可能是這樣的,產品經理登入一個 AI 系統,在系統介面劈哩叭啦把需求輸入進去,然後 AI 系統根據輸入的需求瞬間生成了一堆程式碼,組成一個新的系統。看到這個帖子,我瞬間就感受到了那種焦慮,然後我就往下拉,看帖子的回覆,當我看到回覆裡面點贊最高的那一條時,我立刻就釋然了。點贊最高的那一條回覆是這樣說的『這種場景永遠也不可能出現,除非有一天,產品經理能把他們的需求說清楚』。