了解這些技術思維,讓你變成更受程序員歡迎的產品經理
懂技術對于產品經理來說有諸多好處,這并不是為了讓產品經理變成研發,其主要目的在于降低產品經理和開發的溝通成本。要想了解技術,首先需要知道技術源頭在哪里,本篇文章分享了相關的技術基礎知識,希望能對你有所幫助。
產品經理在技術那人人平等,但如果你懂點技術,你會比其他人更加平等。
懂點技術的好處毋庸置疑,作為公司中最受技術歡迎的產品經理,現身說法。簡單來說,因為你要和技術對接,如果你知道他們平時在怎么做事、核心在關心什么問題,那會讓你們溝通成本大大降低。
所以,明確目的,我們懂技術是為了降低溝通成本,而不是為了自己變成研發。當然如果你從此激發了興趣,那算另一回事。
一、要懂技術,那技術的源頭在哪里
技術同學的能力并不是從石頭里蹦出來,一出生就有的。簡單來說,絕大多數技術的起點都是因為大學選了計算機專業而已,大家都是平常人,不存在什么“技術有不同于常人的思維”。所以想了解技術,我們只需要知道他們大學學了什么就能有個大概輪廓。
那么計算機專業到底在學什么,又是為了解決什么問題呢?
下面是一些底層知識,雖然沒法直接應用,但能幫助你了解計算機世界的大體輪廓。
想看實際運用的同學,就跳到下一個標題處吧~
那首先,我們來說計算機要解決什么問題,可以這么認為:計算機的發明就是為了處理數據。
我們可以把計算機想象成一個黑盒子,盒子一頭是“輸入”,另一頭就是“輸出”,盒子內部就是“處理過程”。比如我們讓小朋友計算“1+3等于幾”,那這個問題就是“輸入”,小朋友比著手指一個個數的過程,就是數據的“處理過程”,最后他說是“4”,那就是“輸出”。
整個計算機專業的核心原理就可以概括為“輸入”、“處理過程”、“輸出”。
但這種模型還是過于粗糙,為了進一步了解,我們就來看看計算機專業的四大專業課吧。這四位天王分別是:《計算機組成原理》、《計算機操作系統》、《數據結構與算法》、《計算機網絡》。
它們共同組成了我們熟知的計算機世界。那它們是怎么配合的呢?
眾所周知,計算機是由硬件和軟件兩部分組成的。
《計算機組成原理》書入其名,講述的是怎么用硬件來組成一臺計算機。
拓展一下:計算機硬件中最核心的就是晶體管。晶體管的本質就是一個開關,它有三個種類:與門(and)、或門(or)、非門(not),通過這三種邏輯控制電流的輸入、輸出,人們就在這個基礎上,搭建了無比復雜的計算機世界。
《操作系統》講述的是配置在計算機硬件上的第一層軟件,比如window、Linux等等。
我們把《計算機組成原理》和《操作系統》組合在一起,就得到了一臺PC機。
而無論表現形式多么不同,人們使用計算機的最終目的就是處理數據。
比如你玩王者榮耀會看到傷害數字、刷抖音背后支持你的是推薦算法。你可以把計算機里流動的數據想象成一個個Excel表,那游戲和抖音的表格肯定不一樣,研究如何組織、提取這些數據的就是《數據結構與算法》了。而不同的《數據結構與算法》決定了計算機處理數據的效率。
上面說的都是單獨的計算機,那研究如何把單獨的計算機組織起來,成為“互聯網”的就是《計算機網絡》了。
至此,《計算機組成原理》、《計算機操作系統》、《數據結構與算法》、《計算機網絡》就組成了計算機技術中最核心最基礎的知識。
在我們實際工作中,產品經理用到最多的就是《數據結構與算法》、《計算機網絡》了。
二、了解你需求的數據結構
用研發的語言定義好你需求的數據結構,就能幫助研發快速理解你想要啥,極大降低溝通成本。而且,這種方法我親身實踐過,非常簡單。
數據結構分兩種,基礎數據結構和復合數據結構。基礎數據結構就像不同形狀的磚塊,復合數據結構就是用磚塊自由設計搭好的房子。
基礎數據結構和實例
那首先看下基礎數據結構,比如:
你需要整數,就給研發說要:int
需要小數,就說要:float,最多保留X位
要文本,就說:str,或者說“字符串”
如果是想表示要么是“true”,要么是“false”,這種二選一的情況的,就說此處是個“布爾值”
比如,像這種需求描述:
練習試次:游戲中的操作次數
正確率:游戲的正確率
你就可以改為:
練習試次:int,含義是游戲中的操作次數
正確率:float,最多保留1位小數。含義是游戲的正確率
還有像這種:
在進度條區域,根據單元完成情況配置一條文案描述
單元全部完成:今日訓練已全部完成!
可以改為:
在進度條區域,if 單元狀態==已完成
展示一條str,內容為:
“今日訓練已全部完成!”
這樣的好處就是改起來很方便,研發同學也容易找到重點。
不過在基礎數據結構中,我日常用的最多的,其實是“變量”這個概念,因為我們需求中的文案可能常會變來變去的,所以用變量提前把它標示出來,給研發同學一個心理準備,是不錯的選擇。
比如,在開發一個報告的需求時,我會這么告訴研發:
【】里面是 變量
再生成一個表格,一列title為“內容”,比如:
【報告完成日期】,【用戶名稱】完成了【測評報告名稱】
一列title為“數據結構”,比如:
【報告完成日期】 實例: 2023年1月21日
【用戶名稱】
If 是后臺生成的隨機id: 則【用戶名稱】==“孩子”
If 是用戶手動改的值: 則【用戶名稱】==【用戶手動改的值】
【測評報告名稱】 值==“暫未確定,待確定后@相關人員”
說完了應用,我們來嘮嘮為什么有數據類型這回事。主要是因為計算機能處理的數據太多樣了,如果啥類型都不分,找起來很難找,比如,文本、圖形、音頻、視頻、網頁(就好像最近大家常提的AI的多模態能力一樣),你可以直觀感覺到它們的類型不太一樣。
人腦處理復雜信息能力有限,而分類,就是為了更好地開發。
三、復合數據結構和實例
你有可能看到研發在群里發過類似的東西:
{“name”: “John”,
“age”: 30,
“isStudent”: false }
這種由花括號括起來的玩意就是復合數據結構,它叫做JSON。你可以把JSON這種格式理解為TXT之于文本格式。
JSON在Web開發被中廣泛應用于前后端通信、配置文件、數據存儲等場景,也就是說它在前端、后端、運維、測試、數據分析那都是通用的。
那如果我們會用它寫需求,可就太方便了。
說回到上面的例子,換你用自然語言表達,可能就會寫成:“一個名叫John的用戶,不是學生,現在30歲”,和JSON格式對比,還是JSON清晰一些。
以前,你可能會這么寫:
“展示由當前單元的全部任務串成的進度條,包含任務icon、任務名稱及任務的一級能力名稱”。
現在,你可以這樣寫:
進度條:
{
“任務icon”:png,分辨率待定
“任務名稱”:str,長度不超過4個漢字
“任務一級能力名稱”:str,長度不超過4個漢字
}
四、進一步,定義你的異常
計算機網絡包含了大量異常判定,比如我們常見的“404”,其實就是在說“客戶端(也就是發起請求的電腦)請求的東西在服務器上找不到”。
所以,我們看一看計算機網絡對異常的分類,就能對大部分異常有所了解。
上面說的“404”學名叫:HTTP狀態碼,它由三位數字組成,其中第一個數字定義了響應的類別。
以下是一些常見的HTTP狀態碼及其含義可供你檢索:
1. 看到4開頭,就是客戶端的問題
4xx(客戶端錯誤狀態碼):請求包含錯誤語法或無法完成請求。
- 400 Bad Request:服務器無法理解請求的格式。
- 401 Unauthorized:請求要求身份驗證。
- 403 Forbidden:服務器拒絕請求。
- 404 Not Found:服務器找不到請求的資源。
2. 看到5開頭,就是服務器的問題
5xx(服務器錯誤狀態碼):服務器在處理請求的過程中發生了錯誤。
- 500 Internal Server Error:服務器遇到錯誤,無法完成請求。
- 501 Not Implemented:服務器不具備完成請求的功能。
- 503 Service Unavailable:服務器暫時無法處理請求(可能是過載或維護)。
五、最后,產品經理需要了解技術到什么程度
要說得出OSI模型的7層結構嗎?要能選擇出哪種技術實現路線更好嗎?
這都是我在面試時遇到的真實問題,實話說,我一向不理解這種問百度一下或者GPT一下就能出來答案的問題意義何在。
產品經理了解技術,目的只是為了和技術在溝通時更方便而已,如果要選出技術路線,不如直接去找個研發。
感謝你看到這里,如果還想了解產品經理的技術學習路徑或者還有什么其他建議,請留言。
作者:探索者,公眾號:探索者的神廟
本文由 @探索者 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
挺簡單易懂的,能夠快速學到 !
博主寫的也太清晰易懂了!完全沒有想到prd可以以這個視角去寫,求繼續更新!
好嘞~
不錯,總結的很到位
會excel和函數,就行了。數據庫就是表格,函數就是接口調用
嗯嗯,是這個意思
接口返參異??偨Y的好經典
有幫助就好~
很受用,期待更新!
好嘞,也推薦下我的公眾號:探索者的神廟,會更新這里不好放的工具類文章,歡迎關注