一位前端靚仔工作一周年經(jīng)驗(yàn)總結(jié)
?以下文章來自一位前端靚仔的分享:請看今日故事
?
時間如白駒過隙,回首時已一個春夏秋冬
此文分享一個普普通通的程序員的心路歷程和一點(diǎn)經(jīng)驗(yàn),作為工作一年的紀(jì)念作品?
大家好,我是寒草,我是一名在北京已經(jīng)工作一年的程序猿,我在我們祖國的首都已經(jīng)度過了一個完整的春夏秋冬,小時候沒去過什么外地,一直憧憬著來到北上廣去奮斗去闖蕩一番自己的天地。
但是真正的來到北京,我們大多數(shù)人所經(jīng)歷的并不是那樣中二熱血的激情歲月,而也是會經(jīng)歷煩惱,壓力。但是經(jīng)歷會讓人成長,我在北京,我在這里經(jīng)歷,我在這里成長,我在這里經(jīng)歷普通平凡而又與眾不同的一天又一天。我來到這里是去年的7月23日,到今天已經(jīng)完整的一年,這一年里我:
夏日走過朝陽公園的湖畔

秋天滿眼都是藍(lán)天白云

冬天漫步在華燈璀璨的街道

春天看到玉淵潭的櫻花落英繽紛

又于夏天經(jīng)歷著一次次雷雨突襲

我作為一個前端從業(yè)者已經(jīng)走過完整的一年,有很多經(jīng)驗(yàn)與故事想與各位讀者分享,在此獻(xiàn)給大家,獻(xiàn)給風(fēng)華正茂的你們。
所以,接下來讓我們進(jìn)入
「真正的篇章」
寒草呈獻(xiàn)
我與前端的故事,送給迷茫的你
本文作為我的工作一周年經(jīng)驗(yàn)總結(jié),作為前端從業(yè)者,我先講講我與前端的故事。
我知道我并不算是一個杰出的前端工程師,未來會不會是我不知道,但是現(xiàn)在的我還差的很遠(yuǎn),但是僅僅作為一個普通的前端從業(yè)者,我也已經(jīng)與前端有過一段不長不短的故事了。
我記得是大一那年,我們學(xué)校有一個免費(fèi)的活動,就是可以跟著學(xué)習(xí)產(chǎn)品或者前端,當(dāng)然白嫖誰不喜歡,我就選擇了前端,跟著上了一段時間,那也算是我前端啟蒙了,當(dāng)然在那里我只是知道了簡單的html,css知識。
沒錯!就是只有html和css知識,當(dāng)時我和我的小伙伴一起參加的,大家一起用html,css寫了一個靜態(tài)頁面,當(dāng)時最快樂的事情就是和別人說,你看這是我們寫的頁面,你看這交互,順滑不順滑,你看這頁面風(fēng)格,biu 不 beautiful!我想這可能就是影響我最后做了前端的初衷。「交互的美由我們親手實(shí)現(xiàn)是多么美好的事情」。
其實(shí)我也和很多前端聊過這件事情,也有很多前端工程師問過我為什么選擇前端,我一直會統(tǒng)一我的回答:
“「創(chuàng)造美好的東西很有成就感」”
我相信也有很多人選擇前端也是這樣的原因,因?yàn)樗屛覀凅w驗(yàn)過成就感,雖然我相信做游戲,做動畫給我的成就感或許會更大hhh,誰還不是一個熱愛游戲的少年呢。
當(dāng)然這個也是我會積極參與我們commi-ui[1]的原因,「我要繼續(xù)創(chuàng)造美好的東西」。
但是很多東西會變的,當(dāng)時工作半年有一場答辯,leader問我你為什么做前端,我回答依舊是那樣,但是接下來的問題我傻了:
“「可是咱們現(xiàn)在做的頁面都是一堆表格表單之類的,沒啥美感的時候你的目標(biāo)又會是什么呢?」”
我當(dāng)時沒有答上來,因?yàn)檫@就像是降維打擊,我的世界觀一下子變了,大家可能不知道我在哪工作,我在某個安全行業(yè)的頭部企業(yè),hhh,有沒有猜到的??。不扯皮,我繼續(xù)說,我當(dāng)時就感覺一下子有點(diǎn)懵逼,對哈,我現(xiàn)在做的事情和我的初衷感覺不太一樣了。這個問題,我也思考了很久呢,看上去甚至是一個影響我從業(yè)思想的問題,但是我現(xiàn)在大概想明白了一點(diǎn):
「無論是現(xiàn)在開始寫文章也好,還是寫一些開源項(xiàng)目也好,我想給這個行業(yè)帶來更多創(chuàng)造性的東西,我們參與一個行業(yè)之后我們可能會感覺它并不是我們想的那樣,但是我們會有更多值得我們?nèi)プ龅氖虑椤?/strong>。
不是簡單的機(jī)械勞作
而是
我從前端開始
我在前端創(chuàng)造
?我把真實(shí)想法留在了這里,希望有人愿意與我進(jìn)行思想的碰撞。
?

走過半載春夏,寫作的心路旅程
我開始發(fā)文章已經(jīng)半年出頭了,雖然我現(xiàn)在肯定是還是一個沒啥熱度的作者,但是其實(shí)寫著寫著發(fā)現(xiàn),我自己真的感覺到收獲很多,無論是為了寫出更加精彩的內(nèi)容而去靜心學(xué)習(xí)的經(jīng)歷,還是因?yàn)閷懳恼抡J(rèn)識了很多很有趣的朋友。
其實(shí)我寫文章的初衷可能是覺得在外工作需要一些認(rèn)同感,所以大家每一次點(diǎn)贊或者評論我都會開心,所以期待大家的點(diǎn)贊 ?? 和關(guān)注 ? 哦,哈哈哈。不僅如此,也是希望通過寫文章認(rèn)識更多的志同道合的同伴,有一起努力的朋友真的很重要。
我反正是推薦每個從業(yè)者都去寫點(diǎn)東西,目的可以不是讓更多人看到(我不是這樣哦,我還是希望更多人看到,只是人家不來看罷了嘿嘿嘿),我在這里說一下我覺得寫文章做記錄的好處吧,從我這半年的體驗(yàn)出發(fā)哈:
別人的點(diǎn)贊真的是學(xué)習(xí)的正反饋,會學(xué)習(xí)更有積極性的 學(xué)會整理總結(jié),有助于提升自己 可以認(rèn)識一些志同道合的伙伴 鍛煉寫作能力,雖然我現(xiàn)在文筆也普普通通,但是確實(shí)是進(jìn)步了哈哈哈 當(dāng)然或許有的大佬真的會打造出屬于自己的技術(shù)影響力 ...
話說我曾經(jīng)表示過,我很喜歡食夢者這部漫畫作品,我覺得純粹的愛和夢想都是美好的。我也想讓我的職業(yè)生涯更加純粹一些,所以呢:
?純粹的職業(yè)生涯,從分享寫作開始吧~
?

奔赴一年輪回,我的經(jīng)驗(yàn)之談
?此處僅僅代表我的個人觀點(diǎn)。
?
工作中如何交流
簡潔,明確,直白,省去不必要的環(huán)節(jié),該懟就懟,該說就說。
?我剛開始工作的時候,真的感覺大家都是大佬,就我一個小菜雞??,很多東西都不敢提,不敢說,怕被笑話,怕被批評。其實(shí)這是不對的,不要服務(wù)端說啥是啥(當(dāng)然如果你是服務(wù)端或是別的也可以變成不要前端說啥是啥hhh),不要產(chǎn)品說啥就是啥,大家一起工作,有著一致的目標(biāo),即使你是萌新,你也有發(fā)表想法的權(quán)利。
?
「敢于表達(dá)會讓你在工作中獲得更大的主動權(quán)。」
突然同時有好幾個事情要做怎么處理
有個東西叫做緊急性重要性四象限,大家可以了解一下,并以統(tǒng)一的維度確立自己的處事風(fēng)格,我在此表達(dá)一下我的理解:
?首先,我們明確知道一個點(diǎn),人可以并發(fā)處理問題,而不是并行,遇到很多要解決的事,我們還是要一個一個做的。之后,我們按照事情的緊急程度和重要程度進(jìn)行排列,一般情況下,緊急程度更加值得關(guān)注,我們優(yōu)先按照緊急程度由高到低去處理問題,同等緊急的事情再去根據(jù)重要性和耗時長短去考量事件的優(yōu)先級。如果事情都不太緊急,再去按照重要性去安排任務(wù)。
而且,我眼里,一旦開啟一件事情,除非發(fā)生難以個人推動的阻塞性問題,或者極其緊急的事情需要處理,就盡量不要中途切換到別的任務(wù)。因?yàn)槭录那袚Q是需要時間的。
?

如何解決參會者時間沖突問題
這個事情是我有個小伙伴曾經(jīng)因?yàn)檠麜栴}被訓(xùn)斥了,我思考思考,整理了一下我的想法。
?首先,參會者是有優(yōu)先級的,我們先要去搞清楚,哪些人是必須參會的,哪些人是可以不參加的,之后我們再去優(yōu)先安排對會議內(nèi)容更關(guān)鍵的角色的時間,較不重要的參會人可以通過其他方式了解會議結(jié)論,比如會議紀(jì)要或者討論內(nèi)容的相關(guān)文檔更新記錄。
?
如果工作遇到問題超出自己認(rèn)知范疇怎么辦
作為萌新的我們肯定會遇到一些超出自己認(rèn)知的問題,這種時候其實(shí)也是需要一個處理問題的準(zhǔn)則。
?說白了,這還是個時間問題,我認(rèn)為,優(yōu)先解決問題,如果可以快速Google到解決方案,就直接自己解決掉,并記錄問題【最好自己有一個markdown】。如果不能,優(yōu)先去問身邊的有經(jīng)驗(yàn)者或者技術(shù)大佬(如果他有時間并愿意搭理你的話),不要把較長工作時間浪費(fèi)在探索問題原因這件事情上,我眼里這個時間我會控制在一小時,當(dāng)然如果任務(wù)少,我就死磕,任務(wù)重時間緊的時候,我看一看就直接暴露,快速找人解決。反正根據(jù)任務(wù)量,工作緊張程度,去自己衡量一個閾值。留給自己去探索解決問題時間的閾值。
?
但是,最后,我們一定要記錄問題!并盡量本周事,本周畢,不要留尾巴,把問題弄清楚,搞明白,這也是提升的過程。
需求混亂,理解困難怎么辦
大家是不是都經(jīng)歷過這樣的情況,項(xiàng)目進(jìn)展比較混亂,需求沒有理順就開始開發(fā)了,或者說剛剛接手一個項(xiàng)目,你壓根就不了解需求,結(jié)果上來就對需求,有很多不懂的,一臉懵逼。
反正我有過,產(chǎn)品壓根講不清楚需求,或者說他對一些細(xì)節(jié)還沒有確定的答案呢,這一期需求就開始了,這樣大家所有人都不去主動的推動需求明確的話,是很危險的!
當(dāng)時我們開始大家都沒有弄清楚需求就毛毛躁躁的開始了,問服務(wù)端他一臉懵逼,問測試她也一臉懵逼,問產(chǎn)品還幾乎是一天一個答案變著花的改來改去。
于是我當(dāng)時直接拉著服務(wù)端和測試來著對了兩三天的需求,寫了很多很多的文檔和圖例,最后進(jìn)入了穩(wěn)定的開發(fā)環(huán)節(jié),最后我眼里我們這個前期極度混亂的模塊完成度和質(zhì)量也是超于預(yù)期的。
有過這樣的經(jīng)歷,我有幾點(diǎn)經(jīng)驗(yàn)分享給大家,但是是一家之言,不一定正確:
「如果對于一件事沒有人主動,不如你主動去推動」
?相信我,在大家都混亂的時候,你主動出擊,大家都會更加的信任你,你會更加的主動,更加的有決策力。
?
「去做(最)了解需求的人」
?或許很多前端都覺得,服務(wù)端給我啥,我渲染啥,對于需求的了解不是那么重要,但是其實(shí)完成任務(wù)和把一件事情做好是有區(qū)別的,當(dāng)你了解需求,你可以去做到更好的優(yōu)化和編碼,也有助于你增加業(yè)務(wù)深度。
?
「大膽說話」
?有想法就說出來,不了解就問出來。憋著不會讓你成長,怯懦會丟失機(jī)會。問了個很拙略的問題大不了被嘲笑幾句,被陰陽怪氣幾句,然而我認(rèn)識的大多數(shù)人還是很儒雅隨和的哈哈哈。
?
計算機(jī)基礎(chǔ),到底要不要學(xué)
如果了解我的朋友肯定知道,我最近寫的技術(shù)文基本都是和計算機(jī)基礎(chǔ)相關(guān)的
前端學(xué)編譯原理(一):編譯引論[2]
草系前端手摸手帶你實(shí)現(xiàn)正則引擎,點(diǎn)燃夏日最熱情的煙火??[3]
不是因?yàn)槲易砸暽醺哌€是什么的,我其實(shí)計算機(jī)基礎(chǔ)并不好,也是一邊學(xué)習(xí)一邊給大家分享,就是因?yàn)槲矣X得這些東西很有必要。
我們作為計算機(jī)行業(yè)從業(yè)者,雖然可能大家覺得「編譯原理」,「計算機(jī)組成原理」,「操作系統(tǒng)」,「計算機(jī)網(wǎng)絡(luò)」,「算法導(dǎo)論」什么的離我們很遙遠(yuǎn),但是其實(shí)不然,其實(shí)都已經(jīng)融入到我們工作接觸的東西的方方面面了。
這里我不展開來說,我先說我推薦先去學(xué)的,或者說是至少要去學(xué)的兩門科目。
「算法」 「數(shù)據(jù)結(jié)構(gòu)」
有個說法是:
?程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)
?
算法和數(shù)據(jù)結(jié)構(gòu)可以說是我們?nèi)粘9ぷ鹘鉀Q問題離不開的東西,說白了吃飯的家伙。怎么形容呢,我這里的比喻恰不恰當(dāng):
「我們?nèi)绻獜?fù)用某些能力,可能會把這些能力抽象出來和視圖層做解藕。那算法和數(shù)據(jù)結(jié)構(gòu)就是我們作為計算機(jī)從業(yè)者可以脫離出編程語言可以復(fù)用的解決問題的能力。」
整潔編碼,是工程師的職業(yè)素養(yǎng)
我自認(rèn)為我并不是一個編碼習(xí)慣多么多么好的人,但是我會想盡力去把我的代碼都去做到盡可能的整潔,因?yàn)槲覀円酪患?,編碼是協(xié)同工作的過程,也是人與人的交流,不是一個人悶著干,代碼不僅會被執(zhí)行,也會被閱讀。
我眼里,入行的第一件事情就是建立良好的編碼習(xí)慣,保證編碼質(zhì)量是工程師應(yīng)具備的職業(yè)素養(yǎng),畢竟人人都不想天天讀屎山一樣的代碼,「己所不欲,勿施于人,先從自己開始吧」。
關(guān)于老代碼,我的慘痛經(jīng)歷
其實(shí)最開始,我對編碼可讀性沒什么感覺的,但是我剛剛工作接手的項(xiàng)目,簡直就是屎山??,大家想象一下,一個剛剛?cè)肼毜某绦騿T,其實(shí)一張白紙,其實(shí)會的東西可能不少,畢竟面經(jīng)看了一大堆,文檔看了一遍又一遍,但是可能實(shí)踐經(jīng)歷大部分人應(yīng)該還是很匱乏的,一個老手遇到惡心的代碼可能都要抖一抖,當(dāng)這樣一個萌新看到了肯定更加一臉懵逼。
于是我也經(jīng)歷了一段痛苦的經(jīng)歷,讀代碼讀的反胃??的經(jīng)歷,這樣的痛苦作為一個新生代工程師肯定不能讓他重現(xiàn)在我的后來者身上的,于是我便開始了我的探索之路,并發(fā)誓:

?我的代碼要做到的基本點(diǎn)是易于閱讀的,是整潔的。
?
很容易做到并提升巨大的點(diǎn)
我說了那么多廢話,不說如何提升就還是沒啥意義,代碼中變量和函數(shù)占據(jù)了很大的比重,我在這里就簡單的介紹一下如何在命名和函數(shù)上提升編碼整潔度,參考《代碼整潔之道》,本章后面還會進(jìn)行書籍推薦環(huán)境??。
有意義的命名
所有的命名都要「有實(shí)際意義」,命名會告訴你它為什么存在,它做什么事情,應(yīng)該怎么用。 避免引起誤導(dǎo),變量方法名和實(shí)際意義不符 做有意義的區(qū)分, array1和array2這樣的名字你告訴我有啥區(qū)別使用讀的出來的名稱,真的很有效,編程是社交活動,名字要讀的出來! 使用可以搜索的名稱,難以搜索的名字會讓你難以定位變量或者方法調(diào)用等 程序中有意義的數(shù)字或者字符串應(yīng)該用常量進(jìn)行替換 「類名和對象名應(yīng)為名詞或名詞詞組,方法名應(yīng)為動詞或動詞詞組」 每個概念對應(yīng)一個詞,你可以建立一個術(shù)語表參考,要做到統(tǒng)一一致
函數(shù)
短?。?0封頂最佳 函數(shù)要只做一件事 函數(shù)參數(shù)盡量少 使用具有描述性的函數(shù)名 標(biāo)識參數(shù)丑陋不堪,向函數(shù)傳遞布爾值做法并不推薦 函數(shù)名是動詞,參數(shù)是名詞,并保證順序 無副作用,方法不要做方法名語義外的事情
書籍推薦
我曾經(jīng)專門出過一篇文章,里面講了我的編碼經(jīng)歷和書籍推薦:關(guān)于整潔代碼與重構(gòu)的摸爬滾打[4]
其實(shí)就是以下幾本書:
代碼整潔之道重構(gòu):改善既有代碼設(shè)計代碼大全2
這我列出的順序,就是閱讀這幾本書籍的順序。因?yàn)?code style="padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;">代碼大全2真的是比較難讀。

關(guān)于整潔編碼,有幾句話要說
當(dāng)你負(fù)責(zé)一塊的代碼時,一定要保證你離開的時候比你剛接手的時候更加整潔,即: 營地法則即使無人監(jiān)督review,你也要認(rèn)真思考編碼,這樣會成長的更加快速,尤其是剛剛開始工作的程序員 有注釋不是你可以寫垃圾代碼的借口 開發(fā)之前,先進(jìn)行重構(gòu),以讓老代碼更好的支持你未來的編碼 傻瓜都能寫出計算機(jī)可以理解的代碼。唯有能寫出人類容易理解的代碼的,才是優(yōu)秀的程序員。
...
最后送大家一句話:人自省以明理,代碼自省以強(qiáng)健。
一周年了,我與前端有場約會
關(guān)于未來,無需多言。關(guān)于現(xiàn)在,元?dú)鉂M滿
這是我的紀(jì)念文??,一般我都會在這里展望這展望那??,但是其實(shí)關(guān)于未來的事情,暫時就交給未來,我只是知道現(xiàn)在的我還會元?dú)鉂M滿??。
我可能前端的基礎(chǔ)還不扎實(shí),計算機(jī)基礎(chǔ)也還是停留在表面,但是我會繼續(xù)在這里和大家分享,和大家一起學(xué)習(xí),在這里記錄我的成長,我的故事。
寒草小兄弟,工作一周年快樂鴨??
繼續(xù)元?dú)鉂M滿哦
聽著歌,望著天,騎向火紅的云

寫這篇文章的時候是 2021-07-22 ,下過一場雨,北京的夕陽格外好看,我騎著車,望著天空,聽著歌。
愿大家的未來都紅彤彤的~
原文地址:
?https://juejin.cn/post/6987910809657540644
?
點(diǎn)擊↓關(guān)注「前端人」加星標(biāo),一起學(xué)前端
