產品悟道:計算機從業者成長之路
即使當前大環境增長困難,但作為個體的我們還是希望在職級、薪資上獲得成長。只是成長是有方法的,認清自己的當前情況,才能做出有效的策略。本文嘗試構建一套數據分析指標,幫助大家定位自己當前的階段,和可能努力的方向。
計算機技術已經與我們的生活息息關聯,不同的人抱著不同的目的,踏進了計算機的門檻。
- 有些人,僅是對計算機有興趣,還沒入門,正在門口觀望。
- 有些人,計算機從業多年,因為某些原因,暫時被困在某個境界,很長時間無法突破認知的瓶頸,等待某個機緣,打開新世界的大門。
- 有些人,因為某個機緣,悟到了軟件設計的更高層次,從普通的碼農或者純功能型產品經理開始成長,打來了新視野,技術和業務能力得到了突飛猛進的成長。
無論當前處于哪個階段,肯定都希望一步步成長。
- 愛好者希望多了解一點計算機的相關知識,能給工作生活帶來更多便利。
- 程序員希望從基層碼農成長為技術組長、技術總監。
- 產品經理希望從產品助理成長為產品經理、產品總監。
無論最終的訴求是什么,希望成長的目的是一致的。
成長前后的差異有哪些呢?有什么數據指標體系能幫助分析一下我與別人的差異有多少嗎?
本文嘗試構建一套數據分析指標,幫助大家定位自己當前的階段,和可能努力的方向。
一、成長指標體系的構建
1. 指標體系的神經學依據
現在這個時代,神經學理論已經有了極大的發展,在神經學理論的直接影響下發展的計算機和互聯網已經極大的改變了我們的生活,我們已經可以直接使用神經學給予的視角來考察這個問題。
從出生開始,我們大腦里就有了140-160億量級的神經元,這些豐富的神經元足以讓我們有能力,在外部世界與這些神經元之間建立健壯的映射關系,大腦神經元的復雜度是我們能理解復雜世界的物質基礎。
嬰兒時期,神經元之間的連接很松散,當嬰兒隨著身體的成長,學習的東西越來越多,神經元之間的連接也越來越多。這些逐漸聯系起來的神經元就是嬰兒對世界的認知。
隨著長大和接觸的各種事物和知識原來越多,大腦的神經元與外在的世界不停的建立映射關系。我們認識的外在世界有多大,內在的世界模型對應的外在元素范圍就能有多大。
當然這種映射并不是簡單的一對一映射,不是外界有100個不同的蘋果,大腦中就也有100個與之完全對應的蘋果,大腦中的世界是對外在世界的模擬,只是外在世界的象。
我們通過這個內在世界的模型,內在世界的復雜的象,可以對外在世界做出反應。
- 如果內在的模型是正確的,外在世界的反應就是可預期的。
- 如果內在的模型是錯誤的,外在世界的給到的回應就是混亂的,不可預期的。
想要詳細了解神經科學的知識,推薦閱讀書籍為:《神經科學講什么》《人類思維中最致命的錯誤》
2. 對世界最早的象的模擬
說到觀象,我們中國有悠久的觀象史,“仰則觀象于天,俯則觀法于地,觀鳥獸之文與地之宜,近取諸身,遠取諸物”。
我們后人在踩在祖先們的肩膀上,可以直接學習他們的觀象成果。
我們天天使用的漢字就是最系統的觀象成果:比如”人”字顯然就是對站立的人的側面描述。
當然我們這里是以漢字舉例的,如果用英語從單詞上肯定無法看到這種象,但是很明確的是英語的單詞也能指向外在世界的各種事物。
這里講的就是符號學的能指和所指,客觀世界是所指,描述的文字,包括動作手勢等是能指。
想要詳細了解符號學的知識,推薦閱讀書籍為:《符號學 原理與推演》
3. 內在世界關系的指標體系
我們的討論是建立在能指與所指已經正確建立前提下的知識學習,而不是重新建立能指和所指關系的知識創新。
我們此處的指標體系是用來衡量人在不同階段,內在世界不同能指之間的關系。(能指可以簡單理解為文字和概念)
圖中主要是元素、元素之間的關系、元素關系的強度:
- 元素:包括概念、手勢、表情、語調等等,可以被捕捉的都是此處的元素。掌握100個概念的人肯定比掌握10個概念的人看問題更透徹。
- 元素的關系:就是各個元素之間的關聯關系,這里指的是元素之間有關系或者沒有關系,哪些元素之間有關系,哪些元素之間沒關系。
- 關系的強度:0表示沒有關系,100%表示因果關系,60%表示強相關關系,40%表示弱相關關系。
圖中的分布會有以下結論:
- 在圖中越靠近原點的地方,掌握的元素和元素之間的關系的量級越小,對世界的認知越簡單,越片面。
- 越遠離原點,掌握的元素和元素之間的關系的量級越大,對世界的認知越復雜,越可能逼近真實世界。
- 越是腦力勞動者越遠離原點,越是體力勞動者越靠近原點。
- 嬰兒是最靠近原點的人,原點處沒有人。
- 越是高認知的人看到的因果關系越多,越是低認知的人看到的越是關聯關系或看不到關系。
- 在絕對頂點的人,肯定就是人類文化中的智者,孔子、老子、佛祖、耶穌這些圣人。
- 我們蕓蕓眾生都是位于中間的位置,每個人占的位置各有不同,每個人也都在向著更高的位置移動,有的人移動的快,有的人移動的慢,有的人可能被暫時困住,解困后會繼續向上走。
- 一般而言,產品總監會比產品經理更遠離原點,技術總監會比程序員更遠離原點。
二、眾多認知元素是如何分布的
各種元素是怎么分布的,有兩個概念需要明確,
- 在外在世界是怎么分布的
- 在內在世界是怎么分布的。
由于我們認識外在世界必須通過我們的眼耳鼻舌身意映射到內在世界才能認識,并且所有的描述本質都是描述的內在世界捕捉的象,所以我們只需要看下內在世界的這些元素是怎么排列的即可。
我們從以下兩個層級開始觀察:
1. 文字的層級
從文字層級觀察,了解文字的排列順序,最直接的就是找到一本《說文解字》書,說文解字是梳理漢字造字原理的書,打開《新說文解字》的目錄,可以看到漢字可以分為:表現人的文字、表現生產的文字、表現自然世界的文字、表現戰爭的文字、表現社會生活的文字等。
在讀說文解字以前,對于漢字,我們肯定不可能全面的清楚他們之間的關系,仔細閱讀說文解字后,就會對漢字的關系有更清晰的認識。
推薦張奇臻老爺子的《新說文解字》,該書是對一千個左右最早出現的基本漢字的研究,通過對照甲骨文、金文、篆一直到簡體字做了對照分析研究。
這本書是我在上海圖書館找到的,淘寶上買不到新書,十分可惜,推薦有興趣的同學可以找來研究下。
2. 概念的層級
我們思考要使用概念,概念實際就是容器。容器將更多的內容封裝到容器里,讓我們可以在更高的層級上考慮問題。
2.1 所有人的平均短時記憶差異很小
雖然在上面的坐標系上每個人所在的位置是不同的,但是同一個時刻我們每個人可以處理的問題數量差異確很小。
如果不借助紙筆、計算器等工具的輔助,我們單靠瞬時記憶能記住的元素基本上在1-7個之間,超過這個數太多我們就會忘記前面的東西,這種記憶特點決定了我們的容器深度,容器深度決定了可以做的計算十分有限。
比如十以內的加減法,是很容易算的,因為可以數手指,超過10個比如需要用更多的容器來輔助了。
容器的重要作用就是,將問題的復雜度降低到普通人可以思考的水平。我們的知識體系的歸納,也會將知識歸納到同一個層級的元素的數量不超過10,這種限度。
根據問題的復雜度,如果想卷入更多的人,同層級思考的元素數量就必須更少。
想要詳細理解上述的知識,推薦閱讀書籍為:《金字塔原理》
2.2 一切的技術都是容器、都是媒介
從本質而言,所有的技術都是媒介,都是容器,都是對人的延伸,都是將復雜的事物降低到人可以操作的可以理解的尺度上。
不能被別人理解,不能影響更多的人的道理都是水中花鏡中月,意義有限。
所謂對人的延伸,就是人本來有類似的屬性,但是強度、速度等方面不盡如人意,人要提高這部分能力,就需要借助其他媒介。
以雙腿的延伸舉例
比如從移動而言,我們有雙腿,但是走的太慢,也走不遠,我們就需要借助其他的媒介幫助我們移動。
顯然,在機械化以前,最成功的媒介是馬,馬可以讓人的移動更快,還可以節省人的體力,所以古代戰爭使用的也最多。
我們可以說能移動的動物特別多,比如雞、狗、豬、馬、老虎、獅子、大象,確實這些動物都可以移動,但是能滿足人的需求的卻不多。
雞、狗、豬體量太小,功率太小,拉不動人和貨物。
老虎、獅子、大象的體量很大,功率夠大,也能拉的動人,但是先不說我們的土地上能否見到這些動物,就算我們的土地上有這些動物,他們也很難馴化,他們如果不配合,也就無法在人類的尺度上幫助人。
以語言的演化舉例
語言文字也一直在演化的,演化有點類似于某個時代的人根據當時的技術水平和認知水平將文字調整,這也類似于動物馴化,馴化后的內容,在人的使用尺度而言更高效,更便捷。
之所以語言說是演化,動物說是馴化,所用的手段不同。因為語言是人創造的,人們怎么寫都可以被寫出來,寫出來是容易的,但是被大家接受和使用則需要符合同時代人的認知,只有被大家廣泛接受并使用過的才能叫化,自己隨便造的,只能是畫。
動物也一樣,互聯網上可以看到,中東土豪們,也圈養獅子做寵物,顯然這只是小部分人的愛好,并不能被更多的人學習。
想要詳細理解上述的知識,推薦閱讀書籍為:《理解媒介 論人的延伸》
三、計算機編程語言的進化
1. 計算機語言的層次
計算機是目前為止,人造的可以承載內容最多的設備,我們可以從計算機的軟件編程模型上來觀察上述理論。
上圖是計算機編程的語言:
第一層:面向01編程
顯然除非匯編語言出現前,或者非常特殊的原因,正常沒有人會使用這種方式和計算機互動,太難了,不是思路難,而是不犯錯難,寫不到50個01人就暈圈了。使用這種方式,肯定少不了頻繁的復制粘貼。
第二層:匯編語言和面相01編程的差異
主要是將01序列的替換從人工改成計算機,從思考的時候使用01序列改成思考的時候使用指令。指令MOV和某個01序列是完全等價的,用MOV 作為這組01序列的容器,才使面相01的編程更貼近人的思維。C語言的循環語句when、while是將一組IF、MOV、Jump語言包裝成一個容器,這是一個動態的容器,容器的大小是由變量的值控制的。
第三層:
第二層整體上還是面向過程設計的。過程在計算機里就是函數,函數就是有輸入、有輸出、有計算方法,面相過程編程就是面向函數編程,面向過程編程主要體現函數之間的相互調用,此方法高度還原了內存之間的調用邏輯。
面相對象就是將多個函數、多個屬性再用一個容器包裝起來,這就是面向對象。對象里的屬性不僅可以是普通的數值,還可以是其他的對象,函數輸入和輸出的內容也不僅可以是普通數值,也可以是對象。
這些對象是怎么包裝和相互調用的呢,肯定不是機械的包裝,從MOV 替換01序列是機械的替換,對應關系也是機械的對應關系。面相對象的調用,則是有機的,是通過模擬現實世界各種對象之間的關系建立起來的。這個關系就是設計模式。
想要詳細理解設計模式的知識,推薦閱讀書籍為秦小波的《設計模式之禪》
第四層:
在第三層的應用構建中,產生了很多優秀的輔助設計框架,包括Spring、Struts等各種軟件框架,在這些框架的協助下,構建SaaS軟件的難度降低了很多數量級。程序員在構建復雜的業務系統時,基本都會基于各種軟件框架架構系統。
第四層就是PaaS的軟件架構了,在這個層次里,構建業務流程象組積木一樣簡單,用可視化的拖拽就可以快速的完成業務系統的構建。這是軟件最終的方向。
2. 計算機語言的掌握者
前三層的掌握者主要是計算機技術人員,除非你學習掌握了計算機的原理、至少能熟練使用一門計算機編程語言,否則你可能聽不懂技術人員在談論的技術場景。
到第四層的時候,普通的IT人員或者普通的產品經理就可以在極短的時間內構建一套業務系統,甚至業務人員自己就可以完成這個操作。
3. 容器理論的可視化論證
軟件編程主要可操作的對象是:
- 存儲器:存儲器是最簡單的容器,在CPU里就是各種寄存器,在內存里就是存儲單元,在外存里就是各種磁道等。通過控制器可以對存儲器進行寫入和讀取動作。
- 運算器:運算器是復雜的容器,在CPU里寄存器和運算器相連,通過指令可以將存入的值,不僅可以讀取還可以應用不同的算法,常見的算法是加法、減法等,所以運算器可以分為加法器、減法器。
- 函數:函數是更高級的容器,可以使用多個存儲器、運算器和運算邏輯一起作用,容納更復雜的功能。函數的設計需要使用很多的數學知識,比如游戲設計的點、線、圓形、方形、長方體、球體等的模擬函數需要復雜的數學知識??梢蚤喿x《游戲引擎原理與實踐》了解。業務型的函數要參照具體的業務。
無論哪種操作對象,無論哪個層級都可以抽象成:有輸入、有輸出、有處理過程。因此用兩個箭頭和一個方框組成的對象來代表這種操作單元。
3.1. 面相過程編程的可視化
在面向過程編程時,各個交互單元都直接存儲在一個或多個有限的函數里,最常見的就是直接在main()函數里執行,各個元素直接的交互關系十分混亂。雖然有內在邏輯性,但是對編程人員的要求很高,并且即使是高手自己寫的代碼,一段時間以后再看,可能也很難弄明白。
3.2. 面相對象編程的可視化
而面向對象的編程,則是將按照高內聚低耦合的原則,分裝到不同的容器中,容器之間的交互的邏輯可讀性更強,降低了編程的難度,無論多久或即使入門不久的程序員也可以方便的讀取內部的邏輯。
3.3. 兩種方式的對比說明
兩種編程方式對于被執行對象的復雜度而言,并未降低。
但是降低了組裝的復雜度,降低了理解的復雜度。
面相對象將各個對象的依賴順序明確化了,在實現某一功能時,可以定出哪些資源要優先加載在內存中,可以定出優先級。
在計算機結構中,最重要的兩個部分是CPU和內存,CPU的速度最快,內存的速度相對較慢,面向對象的關系組織,可以使操作系統根據各依賴對象的優先級,動態的將高優先級的對象從外存調到內存中,等待CPU的召喚。
計算機要完成的事物非常多,無論事物再多,總有輕重緩期,總有優先級,不可能全部都是高優先級的。面相對象的各種明確的依賴關系就使操作系統優先級判定的有了決策依據。
4. 更直觀的生活例子
碼頭上每天往來各種貨物,對貨物的裝車和運輸,需要安排對應的集裝箱、起重機、運輸設備,如果有結構化的對照關系,可以兩步就能找到對象。如果沒有這種結構,每個貨物都要依次嘗試8種設備才能確定合適規格的集裝箱、起重機、運輸設備,顯然可執行的復雜度而言,第二種方式效率更高。
四、計算機從業者的掘墓人
編程語言的發展路徑是面向的可操作人群越來越廣,最終可能會在AI的加持下,面向更廣泛的人群。
這意味著編程語言越來越簡單,對計算機的控制越來越容易,慢慢的從某些人群的專屬技能慢慢變成普通人的通用技能。
對于我們計算機從業人員而言這并不是好事。計算機越發展,計算機的門檻越低,計算機技能越成為一種通用技能,越擠壓計算機從業人員的生存空間。
1. 計算機從業者擠壓出租車司機的空間
在地圖軟件應用之前,出租車是項技術含量非常高的技能,不僅是駕駛汽車的能力,更是因為需要出租車司機熟悉城市的道路,沒有足夠的時間的訓練,是記不住城市這么復雜的道路的。
滴滴打車的出現,一下子給無數普通有車族打開大門,一下子很多人涌進這個賽道,出租車司機的好日子一去不復返了。
是誰降低了出租車的門檻?
- 是滴滴?不,滴滴只是技術的整合者,
- 是高德,是也不僅僅是,是高德、是GPS、是北斗、是衛星,是各種新技術的出現,讓地圖信息越來越準確,是定位系統讓定位越來越準確。
各種新技術是出租車司機這個崗位好日子的掘墓人,我們做編程做軟件的同行們也挖了不少土。是計算機的發展是軟件系統的發展改變了這一切。
2. 擠壓計算機從業者自己的生存空間
我們不僅給別的崗位掘好了墳墓,我們也給程序員、產品經理,給我們自己掘好了墳墓。
隨著PaaS系統越來越成熟,軟件行業必然將更多的程序員、產品經理擠出去,因為業務人員自己就可以通過模塊化的可視化編程直接構建應用系統。
當然不可能把所有程序員和產品經理都擠出去,但是會有很多人被擠出去,相信很多從業者已經有些感覺了。
四、我們應該怎么自救
1. 小雞,快走
僅是做業務和技術之間翻譯工作的產品經理將會被擠走,僅是做將產品經理梳理的業務流程直接翻譯成計算機語言的程序員也會被擠走,留下的只會是有產品規劃能力的產品經理,有架構設計能力的技術總監,我們必須也只能繼續向上走,要么就換賽道。
我們生活的時代,我們從事的行業,就是一個小雞快走的游戲,你必須快走,你只能快走,你不走就會被攆下去。
我們無需怨天尤人,也無需怨恨同行,因為如果我們在同行的平臺,我們也會這么做,因為這就是我們的工作,我們唯有他途自救。
2. 計算機知識的價值
我們并不是只有被追趕的狼狽,我們也有其他行業所不具有的優勢。
計算機給生產生活帶來的優勢,給企業生產給個人生活、給社會治理帶來的影響自不必說,我們無論從事C端還是從事B端軟件設計和開發,我們做的就是在改變企業的生產流程,改變用戶的信息獲取流程,改變商業,改變城市治理的事情。
此處,我只想說給我們自己帶來了哪些價值,當潮水褪去,當我們不能從軟件產品經理、軟件產品設計崗位上掙到足夠養家糊口的薪水,當企業不再需要大部分的軟件產品經理和程序員的時候,我們還剩下什么?
到時候,我們或許主動或被動的只能轉行去做其他的事情,可能是去直播,可能去做網紅,別管做什么吧,這段從業經歷總要能給下一個崗位提供新的視野和高度。
3. 計算機悟道
從歷史上看,計算機系統是目前為止,在“器”的層面最復雜的智慧結晶,無論航空航天探索宇宙、無論生產模擬都需要計算機的協助。
計算機軟件可以模擬各種東西,說明計算機就是一個超級容器,可以無限分身的容器。
我們思考喜歡用類比,計算機正是一個最好的容納這些類比的容器。
接下來我將和大家一起計算機悟道。
計算機悟道,好大的主題,我一直忍著,不希望自己說出這個概念。因為這個太大,一是自己的水平有限,離得道還遠的很,另外這是技術主題的文章,寫悟道又好像偏離主題了。
但是文章越寫越覺得,應該點出這個主題,因為這確實是計算機作為謀生工具以外,還能給每個人帶來的巨大的思想價值之一。
本人就大言不慚了,希望大家多多指正,大家一起探討,共同進步。
本文由 @我是產品張 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!