閱讀646 返回首頁    go 阿裏雲 go 技術社區[雲棲]


二周年雜記

前言

去年工作一周年時,寫了一篇總結(小前端一周年雜記),現在來看裏麵一些觀點還是頗為幼稚的。如今過了兩周年了,我想還是繼續記錄一下自己的職業曆程和真實想法。或許明年再看此文依然會覺得很幼稚,但這也正是我所期望的。

相比第一年一直在搬磚,第二年的職業經曆要豐富的多,技術上依然沒有什麼突破,倒是自己的很多觀念和想法被不斷刷新。所以,本文是沒有任何技術幹貨的,更多的是思考。

這是十年技術之路的第二篇,以下是年度關鍵字總結。

以下內容僅代表個人觀點,與任何組織及公司無關,若有不當之處請及時指出或者大吼一聲 LZSB 然後關閉頁麵。

落地業務

我所遇到的幾乎所有的程序員,都是傾向於去做基礎建設做底層開發做純技術的,認為做業務沒有什麼挑戰性並且不利於技術成長。

直到後來我意識到包括自己在內的大部分程序員其實都是在做業務開發,最多不過是做做組件化,工具化。讓一群內功不夠的人去做基礎建設是十分冒險的。業務代碼沒設計好影響的是一條線,大不了項目重構,基礎設施沒設計好影響的是一大片,動不動就來個技術大升級大遷移簡直就是噩夢。優化迭代不可避免,隻是高手上路可以少走很多彎路。

而對於業務程序員,經常會被業務需求變更、資源排期、開發質量等問題搞得焦頭爛額,你連這些問題都處理不好,還好意思去做基礎建設,去搞底層開發?況且編程的核心問題就是抽象(個人觀點),函數,類,模塊,組件都可以看做一種抽象方式,設計的好可以降低複雜度,更好的“擁抱變化”。因此從本質上講,所有程序員編程時所麵臨的問題其實是一樣的,那就是抽象設計。

做業務並沒有想象中的那麼簡單,需求在不斷變化,我們除了在流程上去限製變化,還得從編碼抽象上去擁抱變化。業務程序員也不能隻從技術角度去思考問題。**技術需要反哺業務,最終創造價值,這才是我們作為一個技術人員核心使命,程序員端正自己的位置很重要**。

說這麼多,其實就是想說明業務編碼被忽視的技術價值。這是自己觀念上的變化之一。這一年,很多精力都投入在了業務中,也取得了一些結果。況且在體製內,隻有大家一起努力把業務做好了,才能拿到更多的年終獎,更快的升職加薪。踏踏實實做好業務,悶聲發大財豈不美哉。

技術大會

現在前端圈的技術大會越來越多了,這一年(2016.07~2017.07),有幸參加了 JSConf(參加 寧JS(JSConf CN 2016)是個什麼樣的體驗?),SFDC,D2(參加第11屆D2前端技術論壇,你有什麼收獲?)以及 WeexConf,感受頗深。

不純粹的商業活動

現在很多技術大會打著技術的名號實則是在招聘打廣告做宣傳。作為商業活動廣告一下無可厚非,但如果因此影響到會議本身的內容和質量,是讓人寒心的。主辦方對於講師的內容和演講的質量如果沒有一個較高的篩選標準,就好像是把台下幾百上千程序猿當猴耍:我買這麼貴的票大老遠跑過來,你就給我看這個?

這也引發了自己思考,到底以怎樣的姿勢去參會才是合理的?

參會的核心是交流,提升自己的參與感

一開始參會感覺蠻有意思,參加幾次 Conf 之後就會覺得越來越沒有意思,一是新鮮感降低,二是演講質量不符預期,三是分享內容乏味。後來我仔細總結了下,拋開客觀因素,主觀原因在於自己是否積極參與到會議中了,**參會的核心是交流,提升自己的參與感,這樣才能有更多收獲,而不僅僅是作為一個聽眾**。

NingJS 是自己參加的第一個 Conf, 此前我提前了解了每個講師要講的內容,所以現場不至於太懵逼。中途還上台打過廣告,提過問題,After Part上主動和大神交流,知乎上的回答也收獲了不少讚,整個過程參與感很強,所以感覺印象深刻。而後麵的 SFDC,D2和 WeexConf,基本是作為一個吃瓜聽眾過去的,所以印象並不深刻,再加上演講內容質量的參差不齊,收獲並不大。這其中的落差,很大程度上取決於你在整個過程中的參與感。

所以,**一場友好的技術大會,應該要給參與者們提供更多的溝通交流機會;一場深刻的技術大會,應該是讓自己積極參與到互動交流中去的大會**。如果僅為學習,自學比大老遠跑過去聽別人講 PPT 效率要高的多。

社區&分享

世界上有兩種程序員,一種上開源社區的,一種不上的。

脫離社區,知識圈和技術邊界是封閉的,擁抱社區,才能可持續發展。互聯網本身就是一個開放的平台,我們每天在google上搜索各種文章,各種問題的解決方案,都要歸功於這些熱衷分享自己知識,熱衷於幫助別人解決問題的人們。你分享的一篇文章可能解決了一個普遍性的技術問題,而當別人遇到類似問題因為你的分享而節省了很多時間,找到了正確的解決方案時,你就創造了額外的價值,並且越多人因為你的文章而受益,你所創造的價值就越大,這些是薪資無法衡量的。而分享的價值遠不止於此,它往往還伴隨著人脈的擴張和個人及團體影響力的提升,影響力的價值也是不可估量的。

分享的形式有很多種,線上有博客,Live,視頻等,線下有微分享,講座,技術大會等。我其實很懶,差不每個月會寫點東西,之前加入了 SF 的講師直到現在也沒開講...線下的分享其實更有意義,因為可以更好的交流和表達,今年還有幸去大學當了一回講師,算是個不錯的開始。團隊現在每周都有微分享也挺好的,技術人員的這些軟技能在關鍵時刻會非常有用,分享能鍛煉演說能力,拓寬自己的技術視野,排除知識誤解等等。

對技術人來說,**排除知識誤解很重要**。工作以後的大部分技術都是自學,每個人的理解能力是不同的,對知識的理解多多少少會有些偏差。如果不跟別人去交流,去分享自己的看法,可能永遠不知道自己錯在哪裏。就好比我在這篇文章裏麵表達了很多自以為正確的錯誤觀點,如果我不發表出來別人就無法指出我的錯誤,我也無法得知我錯在哪裏,在這裏先感謝指出我錯誤的各位大神們。

晉升後的思考

貌似大家到了一個新的層級都會有一段迷茫或者適應期。從去年底晉升到現在已過半年,期間自己也思考了很多問題,晉升究竟給我帶來了哪些變化?我是否達到了預期?是否發揮了更高的價值?如何去尋找更大的挑戰?如何向下一個層級邁進...

然而這半年多來在工作上並沒有體現出多大不同,倒是思想上發生了很多變化。

戒驕戒躁

晉升是公司對員工能力的認可,這個能力是綜合的,更多的體現在你負責的業務中來。晉升是公司體製內對個人能力的認可,並不完全代表個人水平,所以不存在晉升的同學就比沒晉升的同學要強,這其中影響因素很多。假如脫離了體製,個人究竟處在業界什麼水平,自身短板和優勢在哪裏,發展瓶頸在哪裏,自己心裏得有杆秤。

責任越大

晉升是公司對員工能力的認可,晉升意味著**,**越高,責任越大,老板對你的期望越高。如果無法尋找新的挑戰做出新的亮點以更高的標準要求自己,自然是無法滿足期望的,最後隻能3.5甚至3.25了。

尋找突破

新的起點需要新的要求,而當大家都站在新的高度時,要讓所有人都找到突破點其實是不可能的。**成長是自己的事情,需要自己去規劃**。團隊麵臨的業務和問題是有限的,找到適合自己的點去發力並做好,實在找不到就以下一個層級的標準來要求自己總沒錯的。再不行就換一個環境,發展才是硬道理。

競爭力

有時候 P5/P6/P7 可能幹的活差不多,如何體現競爭力?如何體現出水平差異?一個人的競爭力在哪裏,一個程序員的競爭力在哪裏,一個前端的競爭力又在哪裏?跟別人比我的競爭力又在哪裏?

這些問題我想了很久,並沒有得到一個理想的答案。但是我確信的是,決定程序員競爭力的往往不是某些具體的技術能力或者管理能力,而是思維方式和執行能力。

一個人的能力和潛力如何,工作一段時間大家都是能感覺出來的。我觀察了身邊一些大牛,發現牛逼的人總是相似的,都具有敏銳的思維能力和高效的執行能力。處在業務線上的技術人員,競爭力往往體現在辦事能力上。這種素質與專業能力無關,這些人,即使是拋開專業技能換了一個行業依然能在新的領域做到最好,這就是作為人的競爭力。

而在技術上,不同類型的程序員在技術上體現的競爭力也是不一樣的。之前還一本正經的去看編譯原理,算法,機器學習這些容易在外麵裝逼的計算機基礎知識,後來發現花了大量精力去看這些東西然而工作上並沒有用到,而且由於實戰少對其理解並不深刻,還是看重構,代碼大全或者 SICP 這些思想性比較強的知識比較好,可以擺正自己的三觀。

後來我越看,越是焦慮,覺得這就是個無底洞,計算機的範疇太廣了,就算你興趣再濃也無法麵麵俱到。單是前端領域就已經包含了很多,在鞏固基礎的同時還得與時俱進引入新技術來提高工作效率,光是做到這兩點就很不容易了。

學海無涯而吾生有涯,以有涯隨無涯,殆已。**找準自己的方向並將精力投入在對自己最有價值的技術上,才能更好地形成自己的技術競爭力**。

而具體到前端的競爭力,還是在端,在於體驗。剛好今年BU的一大目標就是把 UE 做好,這也讓自己更加重視體驗這塊。前端和 UED 一起背負了體驗上的使命,前端和後端一起背負了技術上的使命,我們需要作出權衡來背負產品上的使命。一個搜索框,功能實現可以很簡單,要做好體驗也會很複雜,一個前端的競爭力,往往就體現在這些細節。阿裏的產品長久以來被吐槽體驗,我想這些都會逐步改善吧。

思維高度

偶然間翻到4年前寫的文章,那時候還在學校做項目,有這樣一段話:

永遠對自己有信心,對自己的項目有信心。對自己的付出應該要有一種自豪感,因為我們所做的東西是有益於這個社會的,而正是這種自豪感,讓你懷著責任感一直做下去,並且會做的越來越好。

我很吃驚,我當時竟然能說出這樣的話!(明顯像是老板對員工說的)
我很慚愧,我來公司做了這麼多項目,卻沒有一個萌生過這種想法。(明顯自己還是底層農民工)

老實說很多項目我還持懷疑態度(比如當聽到要在微信中做傳播時),業務方自己有時也沒有底氣,我們隻是向著 KPI 拿需求辦事,思維層麵上自然顯得被動。說到底,我是把自己當成了“資源”,而不是一起合作的“人”,這樣業務方也隻會把你當“資源”,這樣自己的思維方式就會一直停留在任人差遣的“資源”階段。而之前之所以有那樣的想法,因為我們是整個項目的締造者,產品就跟自己的孩子一樣,而現在,自己更像是一顆螺絲釘。

我是在一本正經的瞎說大實話,然即便如此,公司的體製限製了你的工作就是一顆螺絲釘,但是自己的思維卻不能被限製於方寸之間。員工跟老板的思維高度肯定是不一樣的,從員工到老板的過程需要不斷跨越思維高度。成長的過程,不僅是技術和能力提升的過程,也是思維方式不斷刷新的過程,不以更廣的思維方式去思考問題,又如何能站在更高的高度去看世界?

麵試

麵試是一個挑選人才的過程,對自己來說也是一個共同學習和進步的過程。我會盡我所能,到手的每一封簡曆都會認真看並熟悉其中的技術點,爭取能對候選人有一個較為客觀的評估。我沒想到這麼快就能參與到阿裏的麵試流程中來,這也算一個挑戰吧。自己在這方麵還是新手,需要多學習。

另外多次下來,一點感受:

  • 基本功真的很重要,就算工作數年的人也未必紮實;
  • 技術人得對自己的職業有所規劃,沒有成長便是退步;
  • 看到一些很有潛力的同學因為技術能力暫時不過關被刷真的很可惜;
  • 簡曆評估階段麵的問題都很基礎啊,你們麵試前都不刷題的麼?

機會總是會給已經準備好的那些人,一起加油。

總結

做總結也是職業規劃的一部分,這能讓我清晰的認識到自己所處的位置以及下一步的方向。本來是打算在阿裏呆滿三年就出去浪的,這幾天一衝動看來得多呆兩年了,這也為自己的職業生涯增添了許多挑戰。十年磨一劍,好好打鐵,迎娶 UED 指日可待。

這種毫無幹貨的文章我爭取一年隻發一次。

2017.07 杭州

最後更新:2017-08-13 22:48:36

  上一篇:go  小明,小紅,小麗的故事
  下一篇:go  防逆向技術簡史:從代碼混淆到虛擬機保護技術