分享
定制
作者丨沈礫捷(磐沖)
出品丨阿里巴巴新零售淘系技術
來源丨juejin.im/post/6859534933384396808
大家是否有這樣的困惑?在公司跟了幾個項目,可能就是組長跟我們說下需求然后就開始動手寫頁面,也不用自己選型,腳手架也是現(xiàn)成的,除了 Vue 就是拿Echarts寫過圖表都沒什么技術含量,照著文檔寫,遇到問題查一下就解決了。
但寫簡歷時又要體現(xiàn)出在項目中的作用。
怎樣找到只屬于自己的那些亮點呢?
你負責的業(yè)務是什么?
我接觸過不少同學,有說在小公司,被業(yè)務需求壓著。
既然大家都說在做業(yè)務,那么,正看到這里的你,能不能5分鐘說明白,你負責的業(yè)務是什么?
這個問題我在活動群的 github issue 活動中,帶有業(yè)務理解標簽的題目里經(jīng)常會問到,可是大部分同學都沒有說到位,甚至答非所問。
這里談談我個人對業(yè)務的理解,或許沒有普遍意義,所以僅供參考。
業(yè)務最核心的要素是業(yè)務本身的價值
一家公司,或者一個部門,做的事情有許許多多,零零散散。
也有很多事情合到一起,促成了一件大事的時候。
那么,我們是把那些零散的事情都看成業(yè)務?還是只把那一件大事看成業(yè)務呢?我認為都可以。
決定權在于這件事是否邏輯自洽,以及是否具有獨特的價值。
接下來讓我們拿著一個例子來說,假設你在開發(fā)一個營銷活動頁,這個頁面能夠給公司帶來3000人的新用戶,這些人有可能會購買公司的產品,從而帶來收入。
這里明顯可以感受到,營銷是一個業(yè)務線,他的商業(yè)邏輯是投放頁面 -> 拉新回流 -> 商品銷售,價值在于新用戶的觸達,以及商品銷售利益。
基于這兩點,我們就值得投入精力,因為做的越好,公司業(yè)績越好。
那么,做個頁面就是亮點了?
當然不是,但是亮點已經(jīng)離我們很近了。
如果你想要有亮點,那你需要保持思考。
在上面的例子中,我們有許多可以優(yōu)化和驗證的事情。
營銷頁每天換內容,怎么快速替換?
營銷部門人越來越多了,頁面每天要10個,一個人怎么做得完?
前端的人也越來越多了,改個組件不能只靠復制黏貼,怎么管理?
拉新回流效率具體有多高?新人真的有買我們的商品嗎?這么多人投入,都是要工資的,賣- 出去的商品能夠發(fā)我們的工資嗎?
轉化率低了,怎么才能提升?
這個按鈕寫錯個樣式到了右邊,居然點的人特別多?那下次是不是都應該放右邊?
上面列舉的幾個問題,估計很多同學日常都有做類似的事情。
但問題是,這些事情是你想做的,還是產品讓你做的?這些事情能誕生什么出來呢?
b運營配置后臺與投放策略
營銷搭建體系
工程化研發(fā)套件
業(yè)務埋點與數(shù)據(jù)分析系統(tǒng)
數(shù)據(jù)倉庫與數(shù)據(jù)分析后臺
nA/B test系統(tǒng)
至少在我看來,如果面試的同學上來自我介紹的時候,能夠講一下上面例子中遇到的問題,之后再說做了下面對應的某一個系統(tǒng),那么,這就是絕對夠分量的亮點。
只可惜這樣的同學少之又少,大部分同學是因為產品說要做就去做了。
所以,你真的想過業(yè)務是什么嗎?有為業(yè)務想過什么嗎?有了你,業(yè)務有什么不同嗎?
可以開始寫代碼了?
好了,假設我們思考了一下,想了點東西出來,接下來我們可以開始寫代碼了.....嗎?
做一個有亮點的技術產出,可不是擼起袖子就能快速干出來的,當然,如果你是個天才,那請自便。
如果和我一樣是普通人,那么請先做好技術方案設計。
而設計的第一步,就是做一個ppt工程師,畫圖。
圖,是思想的結晶
在上面提到過的github issue活動里,大部分同學的業(yè)務大圖或者技術架構圖,都沒法說明白先表達的意思。
幾個最典型的問題是:
思路混亂:下面幾個框在寫業(yè)務的系統(tǒng),上面畫了一個vue或者webpack的框。
層級混亂:底層寫的是native容器,上層畫了個api gateway。
答非所問:要求畫業(yè)務大圖,結果畫了一堆前端腳手架的關鍵字,或者畫成了流程圖。
如果看到這里,不明白畫圖是干什么的同學,可以去查一下架構圖是什么,以及如何做程序設計。
這經(jīng)常是被大家忽略的事情,雖然很多同學在大學里學習的時候,都學過相關的課程,但是估計大部分都還回去了。
怎么畫好一張圖?
這里不做具體的展開,畢竟我自己也不是畫圖高手,每次畫圖也是遲遲不知如何下筆。
只給到幾個建議,供大家參考。
同時,以一個模擬面試同學的案例來做參考。
第一步,先想明白這張圖要表達什么?
這位同學說他參加過很多技術會議,看那些分享的ppt里面的大圖,都很酷炫,自己平時也有總結(這點非常好),但是總畫不出那種圖來。
面試過程中我問了這位同學,這張圖他想表達什么,答案是他想說明白消息通信業(yè)務的技術方案。
但是,這張圖并不能表達出一個技術方案來。
這張圖第一個問題是不夠完整,他只有一條主鏈路,對于IM這樣的復雜技術產品,主鏈路只是冰山一角,如果真的只做了主鏈路,那么代表思考不夠,早晚會出現(xiàn)線上故障。
第二個問題在于含義不明與層次混亂。
最下面的UI層有個箭頭指向存儲層,那是指渲染進程會去調用localStorage?那再向上2級的網(wǎng)關層呢?UI層會調用網(wǎng)關層?這里顯然邏輯是不通順的。
第二步,圖里的每一個大塊必須是同一個領域或類似概念的,每一個框都有意義
在這個問題上,這位同學做的還是很好的,但也還是有些小問題,比如UI層里的兩個進程。
這兩個框顯得意義不明,在沒有描述的情況下,至少我是不明白他想表達的意思,而實際在溝通過程中,他也覺得這里挺奇怪的。
第三步,畫完回顧一下是否描述清楚了第一步里的核心邏輯
很多時候我們一氣呵成畫了一張大圖,結果一不小心容易畫成一張流程圖,把怎么寫代碼的思路也畫到圖上了。
這就會導致圖上有些地方是模塊劃分,而有些地方則是細節(jié)流程,整體就很失調。
這只能通過反復的回顧和思考,進行自我調整了。
最后,我給出當時模擬面試時,對于這個業(yè)務的粗略設想:
知道原理有什么用?
有了大圖,我們終于可以開始實現(xiàn)亮點了......嗎?
現(xiàn)實很殘酷,哪怕我們想出了一個大餅,并不代表我們能吃到嘴里,從圖變成面餅,我們需要太多的中間步驟。
而擺在技術人面前的問題是:如果有面粉了,你會揉面嗎?你揉面的技術能保證烤出來的餅好吃嗎?
知其然,而后使其然
我認為這就是為什么我們要了解原理。
曾經(jīng)有一位模擬面試的同學,在最后互問互答的時候問了我一個問題,怎么看待面試造火箭,平時擰螺絲?我覺得有點冤枉,因為一面大部分問的都是怎么擰螺絲,以及螺絲的型號,二面開始也就問問怎么造飛機,但是真的進入工作狀態(tài),阿里的場景里,至少在我們團隊的場景里,我們就是在造火箭,只是造火箭的時候必須要擰擰螺絲,沒螺絲你敢上?
有同學又不服了,我會擰螺絲,和我需要知道用什么螺絲有什么關系。
那么上面那個烤餅,你能告訴我放白芝麻好吃還是放黑芝麻好吃嗎?我相信大廚一定能回答上來,他甚至連小麥原產地都會和你掰扯一下。
為什么到了同樣需要匠心的編碼領域,我們就不用關心用什么螺絲了呢?
當時我給這個同學舉了個實際的例子:簡歷中有提到上傳,那你能不能當場告訴我,這個上傳是服務端http接口配合你上傳,還是用阿里云oss?用oss是服務端每次加簽,還是用sts,還是前端直接加簽?http上傳你用什么contentType?用form表單組件提交還是自己通過xhr發(fā)送?如果需要登錄鑒權怎么辦?如果出現(xiàn)跨域問題怎么辦?兩種場景都有,都要實現(xiàn),怎么封裝組件?
什么?你說你要百度一下?你要百度一天?那我為什么不聘用那個不用百度的人呢?一天的工資算上5金這些成本,月薪20k來算,估計也得有小2000了,如果我把這2000增加到一個懂原理的大神手里,我們豈不是雙贏,為什么要等你去搜索呢?只是個簡單的上傳文件功能,也就是頁面里的一個豆腐塊,這么小的螺絲,里面卻有大大的學問。
而日常工作中我們遇到類似的問題有非常多,具體可以參考我上一篇文章的解讀,這里就不重復了。
任務的拆解
對于平時愿意學習的同學,到這一步可能開始陷入迷茫了,我之前也遇到過類似的困惑,那就是:要不要造輪子
我們經(jīng)常會發(fā)現(xiàn)好像什么都能做,比如:你有的,我改改也能實現(xiàn);社區(qū)有個差不多能用的,要不要直接用;好像大圖上都有差不多的,那是不是拼拼湊湊就可以了,這個方案是不是沒什么好做的了。
從我個人來說,每次畫圖我都會陷入這樣的思考,還常常會鉆牛角尖,為了整點差異化,故意換一些思路去做,這樣能保證這個餅是我的。
但最后我都會繞出來,這得益于上面畫圖的第三步,每次畫完我都會重新回顧一下我真正想做的事情是什么。
我認為這也是是否造輪子的一個評判標準:從業(yè)務的價值出發(fā),思考真正核心的目標,并且為之努力,如果有現(xiàn)成的輪子,能滿足業(yè)務核心訴求,那就放手去用。
首先,現(xiàn)實往往是這樣的,當我們放手去用的時候,會發(fā)現(xiàn)這個輪子好像不那么好用,或者這個輪子沒人維護了,又或者業(yè)務變化太快,輪子自己覺得頂不住了。
機會自然會來到身邊,而觸發(fā)這些機會的,是我們不斷的站在業(yè)務的視角去思考問題,業(yè)務的變化一定比一個平臺化的輪子要來得快。
其次,真正核心的系統(tǒng)一定是緊貼業(yè)務,而且很難大范圍復用的,好的技術架構在設計的時候,講究的是夠用即可,過度設計大部分就是沒用的設計。
在之后的迭代中,會隨著業(yè)務的不斷變化,被帶動著自我進化,那最終的產物也自然是和業(yè)務形態(tài)非常貼合。
所以,我個人在選擇的時候,一些核心的輪子,該造就造起來,但這些輪子一定是帶有業(yè)務特色的,比如我會去造一個業(yè)務組件庫,但是我絕不會去造一個antd。
最后,隨著事物的演變,分久必合合久必分,單一業(yè)務用的好的系統(tǒng)一定是可以在更高的視角上抽象、整合的,在整個過程中,每個人的成長就會是我們想要的亮點了。
或許在簡歷上你寫下的是一個已經(jīng)廢棄的系統(tǒng),但是它的靈魂在你心里,也存在于把他整合了的系統(tǒng)里,這種亮點在個人介紹的時候,一定是能侃侃而談的。
從1到10能做什么?
終于,我們經(jīng)歷的各種抉擇,投入了大量的時間,把一個亮點做出來了,完成了美好的從0到1,可有時候我們會發(fā)現(xiàn)的問題:從0到1看上去有很多要做的,做完了,從1到10還能做什么?
這個問題我個人也沒有太多話語權,因為這兩年總是在做從0到1的事情,甚至和我老板也聊過這個,總感覺自己沒有個確定的事情。
從0到1做一次挺爽的,一直做,不會一直爽,卻只會讓人覺得心慌,畢竟誰能保證永遠能想出從0到1的事情呢?
而靜下來反思之后,我發(fā)現(xiàn)事情并不是這么一刀切的,誰能說明白現(xiàn)在做的事情是0到1,還是1到10呢?這里的邊界其實并沒有那么明確,但抽象看,他們都是同一個套路
業(yè)務/技術思考 => 發(fā)現(xiàn)痛點 => 產出方案 => 拆解實現(xiàn)
伴隨著這個閉環(huán),業(yè)務永遠在變化,而變化又會帶來新的問題,只要保持一個思考的狀態(tài),沒有必要區(qū)分具體再哪個階段,因為你總能找到可以實現(xiàn)自我價值的地方,發(fā)現(xiàn)屬于你的亮點。
?
?
【使用錘子簡歷小程序制作簡歷】
零經(jīng)驗實習簡歷模板
21254人用過
學生求職簡歷模板
52754人用過
申請研究生簡歷模板
2324人用過
經(jīng)典工作簡歷模板
6254人用過
投行咨詢簡歷模板
12465人用過
產品經(jīng)理簡歷模板
7532人用過
程序員簡歷模板
7457人用過
留學英文簡歷模板
4554人用過