【隨筆】跳出程序員思維看世界

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

先分享兩件事吧。

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

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

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

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

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

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

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

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

需求是程序員與產品經理之間永恆的話題。每次產品提需求,你都是先拋一個 5W2H 的靈魂拷問。做什麼、爲什麼做、誰來做、什麼時候做、在哪裏做、怎麼做、做多少。有一點不清楚都要找產品經理倒騰清楚,說不清楚大家都別下班。記得,以前我在網上查項目經理與產品經理的區別。知乎上有一個答案讓我印象深刻,他說『產品經理着眼於做正確的事情,項目經理着眼於正確的做事情』。項目經理其實代表了程序員這一類羣體。這個回答其實很好的闡述兩者的關係。產品經理其實更多的是設計出一張正確的圖紙,而我們程序員作的是拿着這張圖紙正確的去實施。其實,經常我們會自嘲是搬磚的,但是如果從這方面看,還真是這個樣子。

產品經理會去想做什麼,爲什麼這麼做等問題。而我們可能只是被動去想怎麼做。這是現在企業工作高度分工的原因導致的。這本身無可厚非,但是如果長此以往,可能會剝奪我們的思考能力。因爲很大一部分思考,產品經理幫你做了,你不清楚的就找產品經理問清楚,缺乏思考的過程,久而久之很容易變成了一個沒有感情的代碼機器。

上面說的是工作上,生活中更是這樣,雖然有本書叫作《人人都是產品經理》,但是現實世界中肯定不是這樣。教練跟我說的時候,我拋個 5W2H 問題給她,她可能轉身一腳就把我踹下車了。生活中太多不準確、不明確、不科學、不冪等的事情了。只能學的去接受,生活中沒有產品經理,先什麼都理好了,然後告訴你怎麼做,也沒有測試同學,幫你一遍遍調試定位問題。我們不能因爲工作的分工原因,養成了依賴別人思考的習慣。要學着適當的跳出程序員的思維去看這個世界。

本文由博客一文多發平臺 OpenWrite 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章