国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

25 歲,畢業寫前端的這三年

zlyBear / 2205人閱讀

摘要:趕上時代的第一年我畢業后加入的第一家公司是科大訊飛。畢業的第一年里,我的工作以實現訊飛開放平臺的部分前端需求為主。以此為契機,我推動了團隊的前后端分離實踐,后來也有幸被評為了那一年的部門最佳新人。記得訊飛的內部可以顯示每天的打卡排名。

時間回到 2016 年,彼時 996 還不算福報,比特幣單價也還遠遠不到 1000 美元。那時的我懷著對大廠的敬畏和對前途的迷茫,拿著一紙畢業證告別了校園。這第一份名為 Web 前端開發的工作,代碼寫著寫著就到了今天。

一晃三年過去了,從純粹的趕需求到造輪子、做分享和帶團隊,許多剛畢業的自己只能仰望的事情,現在看來也并非那么遙不可及了。簡單地說,我這三年中我換了三份工作,而每份工作的年終績效都是所在部門里最高的。不過這種說法未免太功利、太乏味了。我相信這段經歷并不只是周報和簡歷上刻板的流水賬,把它在我滿 25 歲之際整理下來,也許對大家來說可以是個好故事。因此也就有了這篇文章。

趕上時代的第一年

我畢業后加入的第一家公司是科大訊飛。雖然這不是家小公司,但科大訊飛對于一個科大學生來說,想入職幾乎就像藍翔學生去開挖掘機一樣容易。記得面試流程大致就是和幾位在訊飛身居高位的科大校友聊聊,然后就收到 offer 了。

現在的技術社區里,常常因為培訓班與科班的出身之爭吵個不停。但那時算是半個科班出身的我,并不覺得當時的自己除了學歷,和培訓班的學員有很大的區別:那時我還不清楚絕對定位和相對定位有什么差別,基本只會 jQuery 加 Bootstrap 把功能堆出來而已。不過沒關系,總有不差錢的公司愿意雇 985 的同學來切圖寫頁面,這也就是我在訊飛主要的工作內容了。

畢業的第一年里,我的工作以實現訊飛開放平臺的部分 Web 前端需求為主。這期間我的精力除了實現各種業務需求,主要還是放在了對開源技術的學習和個人項目上。在我剛入職時,我所在的開發團隊技術棧還是前后端不分離的 jQuery + JSP 模式,前端代碼上傳到靜態服務器還需要靠 FTP,而團隊同學還在調研 Knockout 作為下一代基礎庫的可能性——即便是那時,離 Knockout 誕生也有將近十年了。其實,只要能接觸到社區的主流技術,許多過時的工具都是很容易被替換的。正因為如此,我很快地就應用了 Gulp 全家桶來處理一些很容易自動化的工作,并在那一年的十一假期起,開始試水現在如日中天的 Vue 2.0 和 Webpack。而后,我又搭建了內網的私有 NPM 倉庫,發布了腳手架在內的十余個包來幫助大家向新的技術棧遷移。這套現在對于前端同學司空見慣的技術在那時還是頗有點新鮮的。以此為契機,我推動了團隊的前后端分離實踐,后來也有幸被評為了那一年的部門最佳新人。

剛畢業的那段時間,能學的和想學的東西都實在太多了。記得訊飛的內部 App 可以顯示每天的打卡排名。如果你在晚上 12 點準時打卡,那么你就有機會搶到第二天的打卡第一名——這個時段的打卡截圖,我的手機里存著三十多張。當然,即便訊飛確實是我呆過的公司里強制加班最多的,但其實也遠遠沒有忙到這個量級。真相是自從那時我就發現,只要你對著一屏幕的代碼又能按時交差,沒人關心你到底寫的是什么。借著那時候高漲的興趣,我鼓搗出了不少現在看來基本純屬娛樂的東西。比如:

Ove Lang 編程語言,可以解釋執行形如 (表態 (欽點 董先生 特首) (= 特首 董先生) 哦。 的代碼。

Merry8 虛擬機,可以模擬運行用上古的 Chip8 匯編指令寫出來的 PONG 游戲。

Sinomap 地圖庫,可以用麥卡托投影算法把 GeoJSON 數據渲染到 Canvas 上。

Flylog 遠程調試工具,可以將其它設備頁面中的 log 信息推送到 PC 端的后臺上。

CSS Emoji 示例,可以用兩個 div 畫出 Emoji 表情。

你當然可以指責那時的我只醉心技術而不管業務(這確實是某家大廠對我的面試評價),不過折騰起這些有趣的項目,讓我感覺那時的生活比起在每個周末都要痛苦地趕(抄)作業的大學要自在得多。從旁觀者的角度來看,我在訊飛成長得并不慢,也有許多科大校友歷經多年成為了那里的技術骨干。然而事實是,我在訊飛并沒有呆滿一年,留下了篇《小記在訊飛的 300 天》作為紀念之后就告別了合肥。為什么離開呢?非要用一句話概括的話,應該是我感覺自己并不屬于那里吧:合肥這座城市對我這個南方人來說并沒有那么多歸屬感,而我熟悉的前端技術對于一家并非互聯網公司的科技公司來說,更偏向于錦上添花而非雪中送炭。出于對地緣和個人價值的向往,我選擇了告別這家食堂至今讓我十分懷念的公司。感謝勁東、芳姐和家軍等不少人的關照,希望有緣能夠江湖再見吧。

一張調試 2016 年會大屏 Demo 的照片。那是我在訊飛最忙的 24 個小時,也是唯一一次直接和董事長匯報工作。

參與社區的第二年

我在自我介紹的時候,常常說我呆過的地方好像都是「假的」:我在科大讀書,但它不在北京;我畢業前水到了鵝廠的實習,但 base 不在深圳;我離開訊飛后去了美團點評,但部門卻在廈門。直到現在,我暫時也還沒有離開這座城市的打算。只要不去為了那些庸俗的同齡壓力去束縛自己,廈門呆起來就是個既離我的家人很近又很容易看到海的舒適城市。2017 年,美團點評的廈門研發中心在搬家前還能看到游艇,每天騎著單車上下班都能吹到海風,有時下班還能和小伙伴們去沙灘抓螃蟹 :)

我加入美團點評的面試很順利,最主要的流程就是我把上面的一些各色玩具和相應的博客和前端老板虎哥秀了一下吧。在那里,我的主要工作是開發一個名為學城的內部知識庫系統。雖然我為這個項目提交的代碼占比可能已經所剩無幾,但我相信只要它還活著,就總會和我有著點微妙的關系——學城的名字就是我起的??催^《權力的游戲》的同學應該都知道容納維斯特洛大陸七國學士的 Citadel 吧,這個聽起來就很有智慧的名字是不是挺適合一個知識庫的呢?

對類似 Wiki 的知識庫系統來說,Web 前端的富文本編輯器就非常重要了。稍有經驗的同學都知道,富文本編輯是個長期以來被認為是天坑的領域,相關主流基礎庫從啟動到成熟的時間都是以年為單位來計算的。我們顯然沒有必要重新發明輪子,可以基于社區已有的成熟框架來開發。在這個背景下,我首先接觸了 Slate,這是一個可以讓你以編寫 React 組件的形式來定制自己的富文本應用的框架,它的 API 之優雅、文檔之完善與源碼之整潔使我很快就決定上車了,甚至都沒有太在意它還屬于 Beta 狀態的友情提醒。

在學城的最早的幾個版本中,我們基于 Slate 編寫的代碼還算工整。但很快問題就來了:它還不能算一個 battle-tested 的框架,我們定制的組件在編輯時暴露出了很多狀態問題,bug 數量非常高。在我之前的工作經歷中,對于框架用著不順手的問題,基本都可以在業務中變通或繞過。但這對于富文本編輯器來說不適用,因為許多 bug 本身就在框架層,即便反饋到社區,也沒人有義務馬上替你解決。所以該怎么辦呢?下載一份源碼自己改吧。

修復框架的 bug 和修復業務代碼的 bug,其實并沒有本質的不同。畢竟只要能穩定復現,幾乎所有 bug 最終都是能被修復的,只是業務代碼中更容易出現骯臟的修復代碼而已。但修復 bug 之后呢?在我第一年工作的時候,我在 GitHub 上還幾乎沒有為其他人的項目提交過代碼,但我知道只要代碼合并入主干分支,你就會成為這個項目的貢獻者。雖然這沒有任何物質獎勵,但這作為貢獻過開源項目的證明仍然讓我十分心動。抱著這種向往的心情,我為社區提交了第一個 PR。

到現在我還記得很清楚第一個 PR 的內容:給 .npmignore 文件增加了一行,來解決 Babel 默認重復編譯的問題。雖然只有一行代碼,但出于我對開源項目的敬畏,我還是寫了相當詳細的描述來表達我為什么需要增加這一行代碼,以及它會通過什么方式來解決問題。作者也很快就合并了這個 PR。在發現貢獻開源項目原來也就是這么回事之后,我有了很大的動力將更多我的改進提交到上游。到我離開學城項目為止,我把包括 bug 修復、測試、文檔在內的近 20 個 MR 合并入了 Slate 的主干,并維護了一份 0.24 版本文檔的完整中文翻譯。今天 Slate 已經有接近 1.5 萬個 star 和超過 200 名貢獻者了,而我在它的 contributors 排行榜里仍然可以排在前十。

可惜的是,即便我盡力改進 Slate,它對于表格、列表等存在嵌套的 UI 組件,其穩定性仍然難以滿足學城的需求。再加上它較為激進的更新方式,我們很快就遇到了難以繼續同步上游更新的問題。在充分地向公司上層拋出問題并給出備選方案之后,我們將富文本框架遷移到了架構相似但更為穩定的 ProseMirror 上,它應該已經在學城上沿用至今了。雖然 Slate 的落地時間不長,但在對它的使用與改進過程中,讓我充分地理解了開源項目的運作和參與方式,我在 GitHub 上也終于不再僅僅是自娛自樂了。

2016 年和 2017 年我在 GitHub 的貢獻對比。

到了第二年,我在 GitHub 上提交的代碼雖然還是有不少玩票成分,但也不再是清一色的玩具了。大致有這些:

異步的數據遷移工具 Bumpover,它實現了 100% 的單元測試覆蓋率。

通過提取語法樹節點來比較 Vue 與 Angular 相似度的 naming-style-demo 示例。

HTML 字符串轉虛擬 DOM 的解析器 html-toy-parser。

40 行的 MVC 框架 nano-mvc。

在美團點評的那段時間里,除了在 GitHub 上提交代碼外,我在一些技術社區里也相當活躍。記得剛入職時需要把 Vue 切換到 React,對 Vue 的懷念促使我去 SegmentFault 上回答了許多 Vue 的問題,一度是某幾周內這個話題下的第一名。并且,我還發現掘金是個很適合發(新手向)前端技術文章的地方。在 2017 年結束時,我的 掘金專欄 已經有了 3000 以上的關注者。不過,我可不是純粹只貢獻技術正能量的傻白甜。如果那段時間你在掘金發文章講如何深入理解 this 的四種指向和寄生混入繼承之類老掉牙的糟粕內容,那么我多半會在評論區義無反顧地站出來吐槽 :) 只是現在的我已經沒有興趣參與這些口水話題了而已。

由于遇到了更適合我的機會,我也沒有在美團點評工作超過一年,不過我還是很留戀剛剛入職時的那支團隊。不論是晚上飯點時小伙伴們吃遍菜單的日常聚餐,還是不定期能蹭到的虎哥牌星巴克,都是相當有趣的回憶。也還要額外感謝佳立、根龍、春雨等接手學城的同學們。多虧了你們,鄒老板才沒有找上門來追殺我啊。

圖中多邊形風格的大樓就是美團點評廈門研發中心的前所在地,我們的團隊曾在照片拍攝地捕獲螃蟹。

突破瓶頸的第三年

在離開美團點評前,我確實可以 hold 住一些基礎框架的開發了。但富文本編輯器的性質決定了它在基本穩定后的迭代方式,更多地只是修修補補而非開疆拓土。這讓我感到焦慮,感覺自己處在一個為了四處救火而疲于奔命,技術進步開始放緩的瓶頸狀態。在這個時候,新的機會出現了。

2017 年底的某一天,我在掘金上灌水時發現了一篇名為《我們在海邊寫代碼》的軟文,署名糖餅,看起來出自個頗有底氣的前端團隊。巧的是它的 base 也在廈門,并且實際地址剛好在我的上班路上。本著聊一聊反正不虧的心態,我騎著單車拜訪了這家當時名叫歡樂逛的公司。

接待我的兩名面試官,一位說自己花名就是糖餅(真人和頭像畫風不符),另一位說自己花名叫小米。他們兩個人看起來蠻樸素的,但對我的長篇大論卻出奇的有耐心,中途還有一名穿著黃拖鞋的男子參與了旁聽。那是我經歷過的最久的一輪面試,總共和我扯了應該有兩三個小時。我本來以為這就是一次初面,尋思著這公司的一線同學還蠻經得住忽悠的。但其實我已經把技術面該遇到的全部 Boss 都過了一遍,沒想到說好的青銅局里來了一群王者啊。

必須說,如果糖餅沒有貼出他合并到 Webpack 的并行構建支持 PR,我是不會輕易選擇在畢業還不到兩年的時候被他慫恿著換第三次工作的。當然,我們一般的日常也并不都是那么高大上的 Rocket Science。我在這里的工作,主要集中在當時還沒有獨立出來的稿定設計項目里。我負責維護這個設計站點中的平面編輯器 SDK,以及相關的 UI 組件。最開始,我還以為稿定就是個較為邊緣的新業務,直到公司搬家后前臺都掛著稿定設計的招牌,才發現我在這大概相當于在中國郵政分拆之前進了名叫中國移動的部門。

平面設計編輯器與富文本編輯器有許多相似之處,并且這個細分領域中當前的主流開源項目,其設計思想還達不到 Slate 那種高度可擴展的靈活性,這無疑給了我很多發揮的空間。在過去的一年多的時間里,我從細小的 bug 修復開始一步步熟悉這個編輯器,終于在上個季度上線了我最想從 Slate 中借鑒的特性:組件化的可編輯元素。Slate 賦予了我們只要用 React 聲明一個

組件,就能在富文本編輯器中編輯表格的擴展能力。我將這個思想應用到了我們基于 Vue 的編輯器上?,F在我們只需要提供基于 Vue 編寫的 UI 組件,就能輕松地為編輯器組裝出新的可編輯元素類型支持,而無需改動框架核心源碼。再加上小伙伴在前端出圖上的不懈努力,我們的編輯器做到了兼取 Canvas 與 DOM 二者之所長,目前暫時還沒有主流的開源編輯器能滿足這一點。

我們的平面編輯器,歡迎大家訪問 gaoding.com 體驗噢。

除了在較高的層面上,將框架按照自己的設計思想重構之外,我還在較低的細節層面上做了些有意思的工作。比如,我使用坐標系變換的思想,將圖形旋轉后的 裁切拖拽限制算法 從上百行的 if else 判斷簡化為了十余行數學變換;基于節點序列化數據的哈希值,實現了更細粒度的歷史狀態結構共享,并開源了歷史狀態管理庫 StateShot;使用 CodeMod 自動將 ES5 代碼重構為 ES6;設計實現了編輯器的特效調節機制,并作為第一發明人提交了專利申請等等。現在我是 Web 工具團隊名義上的負責人(吉祥物),工作至今寫了 80 篇左右的技術博客,掘金專欄的閱讀量也超過了 20 萬,看起來似乎還過得去吧?

但這些工作并沒有讓我感覺突破了瓶頸。

很早之前我就問過小米,我們做的事情比起 Adobe,有什么特別的優勢嗎?小米的回答是我們需要主打內容與細分的場景,做到對普通用戶更高的易用性。從商業角度來講我很認可這個答案,但我在純粹的技術角度上,總覺得這是更適合市場部門負責人的回答而不是屬于技術部門的覺悟。并且,我也一直覺得我自己的技能體系還差了一些什么,使我雖然在一家主打商業設計而特別重視前端技術的公司里,做的事情卻還不夠酷。到底還差了什么呢?我的答案是渲染。

我們前端同學們所擅長編寫的 JavaScript,只是在 CPU 里執行的單線程代碼而已。別忘了我們還有 WebGL 這個雖然非常繁冗,但能讓我們釋放 GPU 潛力的武器。這個領域常常被認為是游戲開發者所專屬的。而大家對于應用 Web 上的 3D 能力,首先想到的可能也都是套用 Three 等充分封裝后的成熟開源渲染引擎。因此,在這個領域就沒有必要重新發明輪子了嗎?恰恰相反,我發現這是一片巨大的藍海,它在 Web 設計領域的應用幾乎還是白紙一張,存在著非常大的定制、優化可能性和應用前景。限于篇幅和本文的主題,這里不再詳細展開,只展示一下我們自研的渲染引擎在投入開發一個月之內所得到的一些渲染效果就足夠了:

在我前一段時間選擇深入 WebGL 的時候,幻神提醒過我這基本相當于刪號重練了。確實,在學習曲線的初期,圖形學晦澀 API 的門檻讓我感到非常艱難,但在堅持不使用現成引擎來實現 Demo 的一段時間后,某個時間點上我感覺自己終于可以把那些零散的點連接起來了。而這時再加上前端框架的設計經驗,我確實找到了非常適合我們應用場景的一個自研方向,具體的內容暫時沒有辦法在這里詳述,只能說我和小伙伴們正在緊張的開發中,非常希望能讓我們的新特性早日和大家見面 :)

在 25 歲的今天,我感覺終于走出了之前幾年在 CPU 上編寫邏輯的瓶頸。從最早的玩具編程語言和游戲模擬器,再到現在的渲染引擎,所謂「編程語言、操作系統和計算機圖形學」的程序員三大浪漫,我也能吹牛說自己都略有涉獵了。對我來說,從事一份工作三年之后仍然保持高漲的熱情和找到值得繼續鉆研的技術領域,可能不是件很容易的事,因此現在的狀態對我來說已經很好了。當然,要想在未來在技術上還能夠繼續深入,所需要的應該就不僅僅是傳統的 Web 前端的領域知識,還需要更多跨領域和學科的知識了。感謝稿定這里鉆研游戲引擎和圖形學的大佬們,和他們的交流讓我獲益匪淺。現在我實在有太多需要做的事情了,因此我的博客和專欄也可能不能再維持月更的節奏,希望日后能用更多的干貨來彌補 :D

后記與致謝

從第一年編寫展示頁和后臺業務邏輯,到第二年活躍在開源社區,再到第三年開發自研框架并嘗試往圖形學領域轉型,畢業以來的這些經歷讓我覺得我確實還在成長。我雖然已經不再是團隊里最年輕的成員了,但現在我還遠遠沒有到轉型完全的管理者去分配需求和任務的時候:還有這么多有趣的代碼可以寫,放棄了豈不可惜?

雖然這篇文章主要和技術相關,但我的生活其實也并不只有技術啦:我有微單和無人機,玩通了 Switch 上的塞爾達和馬里奧,花名(雪碧)和公眾號名(彩色相簿)都來自白學,畢業以來除了公費游歷了北上廣滬杭等大城市,也去了臺灣、新加坡、捷克、法國(包括白學家的圣地斯特拉斯堡)等相當有趣的地方。只要在生活里保持開放的心態,總能認識到許多比自己更厲害的人并向他們學習。如果按照論文致謝的方式列出個名單,那么我感覺對我影響最大的是這么幾位,即便其中的一些人我還未曾謀面:

我司的小米和糖餅在對技術的態度和團隊管理上都給我起到了很棒的「模范帶頭作用」,在這個團隊的成長體驗是最好的。

Slate 的作者 Ian Storm Taylor 在我初入開源社區時給了我很多熱情而不失嚴格的 Review,他的框架設計理念對我有很深的影響。

攜程的工業聚向我展示了代碼邏輯所能達到的優雅水平。聚聚總結的 GSP 編碼風格即便在編寫渲染引擎時都十分適用,扭轉了我對函數式編程矯枉過正的態度。

Photopea 的作者 Ivan Kutskir 在布拉格熱情地招待了我,他的作品對圖形學的應用給了我巨大的信心來深入這一領域。

一位不愿透露姓名的女性在我遇到困難時給了我很大的安慰,我已經習慣在每個周末去見她的動車上安心地寫代碼了。

在斯特拉斯堡巡禮時拍下的照片。

我還要感謝畢業到現在遇到的很多很多人,畢竟終歸是和大家因緣際會的無數選擇才能成就一個人。在生活這個巨大而混沌的系統里,幸運的是我們可以作出選擇來結識他人、追求理想并作出改變——We are what we choose. 最后,同樣感謝你的閱讀噢 :D

本文首發于我的公眾號「彩色相簿」,不圖流量不圖廣告,純屬交個朋友,歡迎關注 :)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/6671.html

相關文章

  • 程序人生 | 0基礎成功轉行IT軟件測試,坐標上海薪資2w,分享下我本科畢業2年轉行的經歷!

    摘要:在這種情況下,跟繼續死熬下去相比,轉行,或許是最不壞的選擇。轉行是個不容易的過程,轉行之后的技能積累和學習過程也是不容易的。最好是有經驗的人帶你,有大腿抱,學習效率極高,這個我深有體會。 如題,本人一個普通二本大學機械專業畢業,14年畢業,16年轉行,目前做IT行業的軟件測試已經有3年多,...

    Carson 評論0 收藏0
  • 大學渾渾噩噩度過四年;畢業做過行政、人事、繪圖等工作;也沒呆多久,選擇軟件測試成功逆襲達到月薪25K

    摘要:更多更頻繁的測試在回歸測試階段,如果是每天每天都要發布一個版本供測試人員測試,一個系統的功能點有幾千個上萬個,手工測試將是非常的耗時和繁瑣,而且非常的枯燥,這樣必然會使測試效率低下。 ...

    fireflow 評論0 收藏0
  • 學習容易找工作難??應不應該轉行軟件測試?。。?/b>

    摘要:專業專業這一塊肯定是計算機專業最好,計算機專業其實也包括很多,包括計算機科學網絡工程,包括我看到現在還有專門的軟件測試專業,我們以前那一會都沒有。次優勢是什么呢就是說你雖然不是計算機專業,但是你學過一些計算機相關的一些內容。 ...

    NicolasHe 評論0 收藏0
  • 在頭條干了兩年后含淚整理的職場經驗,太真實....

    摘要:兩年半的時間完成了一次晉升,順利地從一個職場小菜鳥轉變為了一名資深打工人額。。后來隨著工作經驗的積累,我發現這個想法其實是非常錯誤的。不可否認,互聯網行業在這一點上確實不如公務員等體制內職業。后面的工作基本是在吃老本,沒有主動學習,。 先簡單說一下背景,某不知名 985 的學生,18年畢業進...

    不知名網友 評論0 收藏0
  • (二)工作三年的一些感悟

    摘要:西游記可以讓你了解社會是如何運作的深刻的理解社會規則與政策的制定以及人性的冷漠。無論是工作還生活中,凡事都多問三個為什么。要兼顧家庭和工作,但是要知道,其他的女性也和你一樣。針對其個性的管理,使其快速融入團隊。前言你的未來時刻因你現在的努力而改變!在努力不夠的時候,永遠不要談天賦!  工作三年,時不時會和身邊的朋友、同學,談論開發這個崗位的前途性,總覺得事多且累,學不完的新技術。  A同學:...

    Profeel 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看

      <