4500字干貨!UI和PM都需要知道的開發(fā)技術(shù)知識
今天要討論的是一個老生常談的問題,產(chǎn)品經(jīng)理或設(shè)計(jì)師,需不需要懂技術(shù)?
我可以直接給出答案 —— 必須要懂!而下面要討論的,就是為什么該懂技術(shù),以及該懂哪些技術(shù)!
一、為什么我們要懂技術(shù)
無論產(chǎn)品經(jīng)理還是 UI 設(shè)計(jì)師,都是互聯(lián)網(wǎng)產(chǎn)品團(tuán)隊(duì)中的一員,我們的工作產(chǎn)出都要通過編程和其它技術(shù)轉(zhuǎn)化成最終的成品。
將產(chǎn)品設(shè)計(jì)研發(fā)的流程進(jìn)行簡化,就可以劃分成方案和實(shí)施兩個部分,方案包含功能設(shè)計(jì)和界面設(shè)計(jì),施工包含前端開發(fā)和后端開發(fā)。
除了面向網(wǎng)絡(luò)營銷的運(yùn)營設(shè)計(jì)師外,幾乎任何具有方案設(shè)計(jì)的行業(yè)中,都包含實(shí)施的階段。換句話說,方案和實(shí)施是分離開的,它們需要有不同的專業(yè)人員來負(fù)責(zé)對應(yīng)的工作。
比如,建筑的規(guī)劃和設(shè)計(jì),需要工程團(tuán)隊(duì)進(jìn)行施工。鞋帽服裝的靈感和設(shè)計(jì),都需要交給產(chǎn)線批量生產(chǎn)。轎車的研發(fā)和設(shè)計(jì),也需要交給車間進(jìn)行組裝。
雖然每個崗位是獨(dú)立的,不需要方案人員到車間里去打螺絲,但不代表他們可以只沉浸在自己的工作和暢享中,完全不需要理解和關(guān)注實(shí)施階段的知識和限制。常規(guī)的項(xiàng)目流程中,方案進(jìn)入實(shí)施階段必然會包含一個審查的節(jié)點(diǎn),通過會議、審計(jì)、評估、測試來確定方案的可行性。
無論是建筑、服裝、室內(nèi)、家具或者工業(yè)領(lǐng)域,方案設(shè)計(jì)的專業(yè)人員都必然要學(xué)習(xí)和實(shí)施有關(guān)的知識。建筑設(shè)計(jì)師需要學(xué)習(xí)結(jié)構(gòu)力學(xué)和工程學(xué)知識,服裝設(shè)計(jì)師需要學(xué)習(xí)各類染色技術(shù)和面料知識,汽車設(shè)計(jì)師需要學(xué)習(xí)空氣動力學(xué)和材料學(xué)等……
這和互聯(lián)網(wǎng)行業(yè)形成巨大的反差,原因就是這些行業(yè)都相對成熟,在漫長的發(fā)展過程中充分認(rèn)識到了方案制定者對實(shí)施方式和技術(shù)原理認(rèn)知的重要性,所以在本科教育階段就會著重制定對應(yīng)的教材和考試。
而產(chǎn)品、UI 設(shè)計(jì)師這些崗位僅是這十幾年才興起的崗位,相關(guān)認(rèn)知方面的教育一片空白。所以自學(xué)的從業(yè)者普遍也會認(rèn)為,這又不是我負(fù)責(zé)的事情,為什么要了解?是需求分析太容易,還是設(shè)計(jì)的工作太少了?
當(dāng)這種想法開始根深蒂固并自我強(qiáng)化后,那么團(tuán)隊(duì)成員間的隔閡就會放大,協(xié)作效率就會受損。因?yàn)榇罅康姆桨负蜎Q策在技術(shù)端的可行性或成本是完全不能接受的,而這種盲目導(dǎo)致的結(jié)果就會演變成產(chǎn)品或設(shè)計(jì)單純認(rèn)為開發(fā)人員消極怠工(不管是不是),不配合你們的工作。
首先我們先從產(chǎn)品層面討論,為什么產(chǎn)品規(guī)劃需要懂技術(shù)。因?yàn)樽鳛檎麄€項(xiàng)目的起點(diǎn),產(chǎn)品對需求優(yōu)先級的判斷就必須考慮技術(shù)成本。
比如有時候一個不是很重要又小的改動需要耗費(fèi)大量的開發(fā)資源,那在前期就可以直接往后排而不需要等到評審時再討論?;蛘咭恍?gòu)思出來的新需求技術(shù)端根本不可能在指定時間內(nèi)交付,那需求肯定要改進(jìn)并簡化。
到具體的業(yè)務(wù)需求中,搭建了一個中臺,要從不同業(yè)務(wù)系統(tǒng)中同步某項(xiàng)數(shù)據(jù),并做統(tǒng)一的備份和管理,那么產(chǎn)品經(jīng)理制定需求就必須要了解數(shù)據(jù)庫和接口本身的特性,理解數(shù)據(jù)是怎么在不同服務(wù)器間分發(fā)并存儲到指定數(shù)據(jù)庫表文件或者運(yùn)用數(shù)據(jù)倉庫的方式。
或者設(shè)計(jì)一個跨境支付功能,要接入銀行和境外支付服務(wù)商,除了理解業(yè)務(wù)邏輯外,為了保證功能的嚴(yán)謹(jǐn)和有效,對第三方的技術(shù)和 API、SDK 都需要做深入的檢查和分析,然后才能制定最終的需求交給開發(fā)評估,而不可能只是畫個原型剩下的交給開發(fā)自己處理。
在設(shè)計(jì)和視覺方向,同樣涉及很多需要了解技術(shù)才能執(zhí)行的場景。最常見的就是設(shè)計(jì)支持響應(yīng)式的網(wǎng)站,響應(yīng)式本身是由前端技術(shù)發(fā)展出來的設(shè)計(jì)模式,如果對 Html、CSS、JS 等代碼邏輯沒有任何學(xué)習(xí),就很難理解響應(yīng)式的具體是怎么"響應(yīng)"的,然后在第一步創(chuàng)建畫布就不知道應(yīng)該怎么辦,更遑論后續(xù)設(shè)計(jì)出符合響應(yīng)式需要的組件元素。
再到一些圖形應(yīng)用中,如數(shù)據(jù)圖表或 3D 可視化場景,大多是由技術(shù)特征去驅(qū)動的設(shè)計(jì),而不是設(shè)計(jì)成什么樣開發(fā)就要做成什么樣。從一開始產(chǎn)品和技術(shù)就要根據(jù)場景選擇的圖形引擎(WebGL、Unity、Unreal 等),而引擎類型決定了圖表生成、3D 模型、渲染方式的差異,無論是功能還是視覺都必須尊重引擎本身的特征和限制,否則方案就肯定和落地效果南轅北轍。
能舉的例子還有非常非常多,相信有工作經(jīng)驗(yàn)的同學(xué)一定也有感慨。而我要表達(dá)的意思,就是如果產(chǎn)品經(jīng)理或設(shè)計(jì)師完全不懂技術(shù),是不夠稱職的,必須對技術(shù)的認(rèn)知持開放、學(xué)習(xí)的態(tài)度。
逃避不能解決問題,只會積壓更多問題……
二、我們應(yīng)該懂那些技術(shù)
既然產(chǎn)品和設(shè)計(jì)師都需要懂技術(shù),那下個問題就是應(yīng)該懂哪些技術(shù),懂到什么地步呢?
提前聲明一點(diǎn),懂技術(shù)并不是指必須全部學(xué)會程序員應(yīng)用的編程語言和框架模型,而是通過幾個基礎(chǔ)的編程語言入門,再學(xué)習(xí)理解產(chǎn)品、功能、服務(wù)運(yùn)轉(zhuǎn)的技術(shù)邏輯即可。
第一步掌握幾個基礎(chǔ)的編程語言這點(diǎn),只需要簡單入門,再做一些案例練習(xí)即可,目的是為了理解和具備開發(fā)的思維模式,這是通過他人分享和教學(xué)無法實(shí)現(xiàn)的實(shí)踐經(jīng)驗(yàn)。
而我建議掌握定的程序類型包含下面幾個:
HTML、CSS、React / Vue / Python、SQL
1. HTML & CSS
這是前端最基礎(chǔ)的兩種語言,用于在客戶端運(yùn)行并展示頁面內(nèi)容。HTML 是類似 Markdown 的標(biāo)記型語言,通過固定的一些標(biāo)簽和簡單的語法來描述內(nèi)容的含義。幾乎沒有任什么學(xué)習(xí)成本,在一天能就能掌握并入門。
而 CSS 則是專門搭配 HTML 用于指定標(biāo)簽樣式的表,通過指定標(biāo)簽背景色彩、位置、大小、字號、字色等屬性值來控制頁面的樣式。
這兩個語言因?yàn)樘唵危瑢儆诒怀绦騿T開除"編程"籍的代碼類型。但簡單不代表它們不重要,學(xué)習(xí)它們是為了感受頁面樣式搭建的過程,理解前端代碼本身的局限性,以及為什么跟著設(shè)計(jì)稿還原出來的效果就是不一致的原因。
而 iOS、AndROId、Windows 等平臺應(yīng)用雖然不用這兩個語言,但實(shí)現(xiàn)界面的邏輯大體一致,所以學(xué)習(xí) HTML & CSS 可以在很短的時間內(nèi)帶給我們長遠(yuǎn)的收益。
2. React / Vue / Python
作為正經(jīng)的編程語言,它們和 HTML&CSS 最大的差異,就是需要應(yīng)用條件判斷和函數(shù)處理等復(fù)雜功能。只要入門并掌握其中的一門語言,就可以對編程的邏輯和思考方式有初步的認(rèn)識。一方面今后再使用 Axure、Protopie 等工具的表達(dá)式時就可以得心應(yīng)手,另一方面和程序員的溝通也會更容易和高效。
其中 React / Vue,都是在 Javascript(簡稱 JS)基礎(chǔ)上開發(fā)的前端框架,類似之前的 JQuery。而很多了解過一點(diǎn)網(wǎng)頁開發(fā)的同學(xué)肯定都聽過網(wǎng)頁開發(fā)三件套是 HTML、CSS、JS,之所以不建議直接學(xué) JS 是因?yàn)樗鼘?shí)在是太"啰嗦"了,這些新的 JS 框架就是對原有語法的重構(gòu),上手更容易,用起來更輕松。對于不是專業(yè)從事前端開發(fā)工作的我們來說再適合不過。
至于 Python 相信大家一定沒少聽說,也是各大網(wǎng)站或者朋友圈天天在推送賣課的編程類型,被不同的互聯(lián)網(wǎng)大佬呼吁要加入小學(xué)課程,以及互聯(lián)網(wǎng)從業(yè)者必會的語言。它的主要特征也是簡單、清晰、易用,它不僅可以幫助我們適應(yīng)編程的思維,也可以在生活、職業(yè)發(fā)展中帶給我們巨大的幫助(要自己去了解了)。
學(xué)習(xí)它們我都不建議直接到不同網(wǎng)站中看幾十個小時的視頻教學(xué),或者買一本大部頭編程指南,而是直接到編程類的知識庫網(wǎng)站,如 W3Cschool、菜鳥教學(xué)等,跟著章節(jié)學(xué)習(xí)入門既可,建立初步的認(rèn)識后再搜索其它稍微進(jìn)階點(diǎn)的教學(xué)深入。
3. SQL
SQL 是一個關(guān)系型數(shù)據(jù)庫管理語言,用于對數(shù)據(jù)庫進(jìn)行增、刪、改、查的操作。SQL 非常的簡單,可以說是一個上午就可以學(xué)會基礎(chǔ)的語法和入門應(yīng)用,而相對高級的功能和命令也只需要花幾個小時看一遍就夠了,在真有需要的時候再回頭來查看相關(guān)的命令手冊即可。
學(xué)習(xí)它的主要目標(biāo)一方面是理解數(shù)據(jù)庫的概念,數(shù)據(jù)存儲和調(diào)用在 B 端項(xiàng)目中至關(guān)重要,絕對不是把業(yè)務(wù)需求轉(zhuǎn)述給開發(fā)就可以避開的工作。所以針對這方面的需求,才衍生出一個專門的崗位 —— 數(shù)據(jù)產(chǎn)品經(jīng)理。
另一方面是 SQL 在日常工作中是有大量應(yīng)用場景的。在缺乏可視化統(tǒng)計(jì)工具的情況下,產(chǎn)品經(jīng)理和運(yùn)營都需要自己去數(shù)據(jù)庫拉數(shù)據(jù)手動換算。
上面這些編程的基礎(chǔ)知識,只需要花兩周時間就可以入門,慢的話一個月也夠了(再久就自己反省,沒錯,就是你自己的問題)。
然后,就可以進(jìn)入下一步,去理解功能、服務(wù)、技術(shù)運(yùn)轉(zhuǎn)的邏輯了。簡單解釋一下,就是去理解你日常接觸到的各類 IT 服務(wù)、軟件功能、新技術(shù)領(lǐng)域背后的技術(shù)實(shí)現(xiàn)原理和框架。這是個沒辦法系統(tǒng)學(xué)習(xí)只能依靠自己主動去搜索和理解的過程,所以下面我會舉一些簡單的例子,幫助大家上手這個過程。
比如之前我分享過一篇有關(guān) SaaS 的說明,它是通過連接遠(yuǎn)程服務(wù)器(云服務(wù))而實(shí)現(xiàn)的軟件服務(wù)方式。在此之上還有 PaaS、IaaS 等服務(wù),這些服務(wù)分布在 9 個從屬條件之中。而這每一級的作用和詳情都可以去做進(jìn)一步的認(rèn)識和理解。
或者一個網(wǎng)站的運(yùn)行和訪問是怎么實(shí)現(xiàn)的,從用戶在瀏覽器輸入域名以后,如何進(jìn)行通信,解析域名,并在服務(wù)器端計(jì)算并準(zhǔn)備對應(yīng)數(shù)據(jù)返回給客戶端,然后進(jìn)行文件的解析和圖形渲染的全部過程。
我非常建議大家自己動手整個軟路由或者 DIY NAS,通過在自己家中搭建一個簡單的 "服務(wù)器" 來實(shí)現(xiàn)公網(wǎng)的連接,然后安裝你需要的應(yīng)用或 Docker (同步盤、相冊備份、影視存儲、PT 下載、虛擬機(jī)等)進(jìn)行遠(yuǎn)程訪問。這樣你就不得不搞清楚內(nèi)網(wǎng)、公網(wǎng)、網(wǎng)關(guān)、端口、轉(zhuǎn)發(fā)、IP、TCP 等技術(shù)的關(guān)聯(lián)和作用。
除此之外,還有每隔一段時間就會興起的一些新技術(shù),我們都可以去網(wǎng)上搜它們的技術(shù)原理和專業(yè)性科普。比如之前的區(qū)塊鏈應(yīng)用,再到近期的 AIGC。只要你愿意花時間找,這些熱門的新技術(shù)都會有非常全面的解釋,包含了詳盡的文字說明和圖例。
可以了解的技術(shù)內(nèi)容太多了,而以上的建議,并不是要讓你們成為運(yùn)維還是 IT 專員,而是和我們關(guān)聯(lián)較大,或者熱門的題材更能激發(fā)你們的興趣。在這個過程中你們就會明白,理解背后的邏輯并不是非得需要懂代碼不可,而建立出完整的服務(wù),必然要涉及多個端、層級、領(lǐng)域的共同作用,任何編程語言都僅僅是實(shí)現(xiàn)這個服務(wù)中的其中一環(huán),而不是全部。
在這個過程中,我們要學(xué)會的就是理解和建立負(fù)責(zé)服務(wù)的技術(shù)框架,能以目標(biāo)為導(dǎo)向用更宏觀的視角來理解技術(shù)的實(shí)現(xiàn)方式,并能對每個不了解的節(jié)點(diǎn)自發(fā)進(jìn)行咨詢和掃盲,不會再對項(xiàng)目的技術(shù)內(nèi)容一無所知。
這就能理解不同程序員在這個框架下的職能,發(fā)揮的作用,以及整個框架的優(yōu)缺點(diǎn)、上限和下限,并能夠在出現(xiàn)問題時和技術(shù)人員共同定位問題節(jié)點(diǎn)。
對技術(shù)的認(rèn)識不是一步到位的,而是隨著項(xiàng)目經(jīng)驗(yàn)的積累逐步增加,在一定時間之后,你就可以獲得足以駕馭相關(guān)議題、會議、需求的能力。
尤其在 B 端的領(lǐng)域,技術(shù)對項(xiàng)目的重要程度是毋庸置疑的,且大量 B 端產(chǎn)品解決的本身就是技術(shù)問題,如云服務(wù)、自動化、數(shù)據(jù)管理、DevOps 等產(chǎn)品都是建立在技術(shù)需求上的產(chǎn)物,從業(yè)人員對技術(shù)本身一無所知是不可能的。
了解技術(shù),對于 B 端產(chǎn)品經(jīng)理和設(shè)計(jì)師已經(jīng)不能算隱性要求,它不僅能幫助我們有效的解決真實(shí)的項(xiàng)目問題,還能擴(kuò)大我們的擇業(yè)范圍,一定不要忽視它的重要性!
結(jié)尾
基于技術(shù)類的知識,過幾天就會有一篇 DevOps 相關(guān)文章分享~
因?yàn)槲易约簩λ鼈兊睦斫庖埠芩槠?,所以接下來一段時間我還會繼續(xù)深度學(xué)習(xí)和重新整理這些知識點(diǎn),把它們串聯(lián)起來并能系統(tǒng)性一點(diǎn)的分享出來(想想還有點(diǎn)小興奮)。
這次的分享就到這里,下篇再賤~
作者:超人的電話亭
想了解更多網(wǎng)站技術(shù)的內(nèi)容,請?jiān)L問:網(wǎng)站技術(shù)