毕业三年,我从鉴黄师转行到阿里做前端
文章目錄
- 前言
- 鑒黃路漫漫
- 畢業季迷惘
- 轉行不易
- 有點飄了
- 面試復盤一
- 重新審視
- 面試準備
- 簡歷
- 自我介紹
- 非技術能力
- 你有什么問題想問我嗎?
- 面試復盤二
- 筆試
- 初試
- 復試
- 終面
- HR
- 最后一啰嗦
前言
??最近兩個月比較忙,沒有寫文章,感覺尿尿都有點兒分叉了。
??本篇文章記錄一下自己畢業后的轉型過程和一些親測面試題,如果你也想轉行,不妨可以看看,我們有沒有共同點。
鑒黃路漫漫
??畢業后,我的第一份工作是視頻審核,也就是大家常說的鑒黃師,每天的工作就是看視頻,看各位up主上傳的視頻。
??乍一聽好像很爽哈,上班看視頻,這是多少摸魚人的夢想。真實情況呢是一個5分鐘左右的視頻,要在10秒內看完,而且要判斷,這個視頻有沒有侵權某些電影電視劇,有沒有什么不當言論,有沒有什么血腥暴力畫面,當然了,還得看看有沒有黃色信息。
??一個標準的審核人員,一個小時的審核量需要達到300條以上,大家有興趣可以自己在家試試,一邊拖拽一邊看視頻,看三百條。
??工作呢是輪休制的,白班8個小時,到點就可以下班,兩個月會輪到一次夜班,晚上7點到第二天8點,休息一天后繼續上夜班,連續一個星期。
??工作大致就是這么樣個情況,夜班比較熬人,會導致生活不規律,起了好多痘痘(后來花了很久才養好,所以廣大青少年同學們,千萬不要熬夜)。
??補充一點,大家應該比較感興趣工作的時候會不會遇到羞羞的視頻,我做了十個月,就碰見過一次,還是同事審到了發給我的。不過在被攔截的庫里,記錄著全部因為黃色被下的視頻,可以在夜班的時候偷偷看。
畢業季迷惘
??講一講當時是為什么選擇這份工作的吧,我上的是個二本計算機專業,大學期間平平無奇的度過,到畢業了,其實不知道自己要做什么,會做什么,能做什么。
??家里面希望我能回去,回去之后工作給安排好了(我父親的單位),房子給買好了(上大學前準備的),到時候再配輛車,直接躺平。
??但是當時總有種感覺,如果回去了,那這上的四年學就白費了,專業知識完全沒用到,好心疼這些年交的學費。。。
??況且當時談了個女朋友,這一回家肯定就黃了,天各一方了呀。所以決定不回家,要留下來闖蕩。前有國人稱霸華爾街,那我就來個稱霸賓水西道391號左拐胡同里第二間。
??決定好去留問題,那就開始投簡歷,首先做了個自己覺得還不錯的頁面,然后到公司去面試,結果人家問框架,不懂,問H5,CSS3,不懂,終于問了個我見過的問題, CSS 中 position 的 relative 和 absolute 有什么不同?我連比劃帶跳舞解釋了半天,結果面試官對我說,他們最重要的區別是是否脫離文檔流。
??基礎知識不牢,行業新技術又不會,面試面了個稀碎。眼看就要到被學校轟出去的日子了,趕緊先找個能養活自己的工作吧,還要啥自行車。
??然后也是經人介紹吧,來到這家做鑒黃師,面試過程還是比較順利的,會問對審核工作怎么看,我當時回答的很中二,說這個崗位是維護國家安全的一部分,把控著安全紅線,有凈化網絡環境的任務,是一份需要極強責任心的職業,要清楚明白什么事情能做,什么不能做。
??另外關于血腥暴力,還有夜班的問題,一定要說能接受,還有就是會考察一下穩定性,可以說自己就在公司附近租房,通勤比較方便,希望可以長久的在這里工作學習之類的。
??面試通過后會先培訓,告訴你涉及到哪些問題的時候必須慎重,外國的某些組織一定要全面封殺等等之類的。審核的時候千萬不能把這些東西放過去,是很嚴重的事情。
??還有在一些特殊的日子里,某些組織格外活躍,要仔細一點。其他的就沒什么了。
轉行不易
??我剛做鑒黃師的時候,其實也挺迷茫的,自己要不要轉行,之前面試都沒人要,過一段時間后也不是應屆生了,又沒有相關開發經驗,豈不是更沒人要了。
??我問了自己一個問題,難道以后一輩子都要審核視頻嗎?
??下定決心,再難也要轉行,當初是為了不丟專業才留下來的,沒道理現在松懈下去。
??于是我開始各種學習,剛畢業也沒什么錢,就找免費的視頻看,然后在淘寶花了二十幾塊錢,買了前端學習資料,猛學,現在想想,這可能是我在學習上花的最值的一筆錢了,投入產出比極高。
??說一下我是如何安排時間的,白天上班正常工作,下午五點半下班,由于住的比較近,走路回家5分鐘,晚飯自己做,連吃飯帶收拾到7點開始學習。
??由于我的基礎比較差,看視頻的接受程度能高一點,所以跟著視頻,邊看邊做到12點。洗漱休息。初次接觸某個技術棧,也建議選擇個視頻來看看,不用非得學的多好,主要是讓自己對這個東西有個概念。
??我的觀點,任何技術棧,沒有學會了,只有會學了。
??怎么判斷自己是不是會學了,我的做法是,當我熟悉某個框架,在看到一些沒見過的編碼方式時,我不會害怕,不會有畏難的心里,而是根據特性,能準確的搜索到我需要的答案的時候,那么就達到了。
??不上班休息的時候,也放松一下,上午半天,下午半天,安排不同的技術棧,晚上就刷刷手機,早點休息。
??這樣持續了半年,我開始再一次的投簡歷,準備好跳槽了。最開始投了幾家,也都石沉大海了,不過突然有一天,有家公司主動找到我,說在網上看到我的簡歷,問要不要試試。
??下雨天打孩子,閑著也是閑著,就試試唄。經過筆試,初試,復試,HR,最終面。順利上岸。
??估計是當時運氣比較好,這家公司在我工作的城市剛成立分公司,急需大量人員,所以初試復試,基本沒問什么技術問題,最終面有個問題比較有意思,問你覺得自己的優點和缺點分別是什么。
??我的回答,優點是我很自律,每天下班后還會學習5個小時,而且一直堅持。缺點是我畢業快一年了,沒有做前端工作,比別人少一年的工作經驗,這些時間是我永遠也補不回來的,所以我每天都不敢松懈,一定要比別人更努力。
??大家注意哈,敲黑板,面試官在問你缺點的時候,不是想知道你放屁打嗝摳腳這些臭毛病,而你有什么缺點也不能真的說出來,你說的每一個字都是在為你爭取這個崗位而服務的。
??上面回答,“時間補不回來”,確實是我相比于別人的缺點,重點是我清楚的認識到了這個問題,進而轉化成不斷鞭策我的動力,那這個缺點就會轉瞬變成優點。
??還有就是期望薪資的問題了,我是剛轉型,沒報什么期望,說能給我 3k 我就來。
??最后定了 8k。做鑒黃師的時候是不到 5k,對我來說已經是很大的提升了。
??所以各位,轉行的另一個動力,鞭策自己也有一部分是錢的原因,能多掙一點還是很開心的。
有點飄了
??新公司學到的都是新東西,對于極度渴望技術的我來說,如魚得水,工作前半年時間,瘋狂的汲取各種技巧,觀察公司大佬們的代碼,琢磨其中的寓意,雖然沒有工作經驗,但是抗壓那段時間,把我的基礎壓的非常瓷實,任何上層邏輯,都是從底層沿伸出來的,如果你打的扎實,那么可以很容易理解這么做的原因,從而也很容易學習。
??這好像就是學霸們學什么都那么輕松的原因吧,因為知識的形成和他們的認知是完全符合的,自然而然就會合并到一起。
??入職滿一年了的時候,開始飄了,我對日常工作已經信手拈來了,潛意識都有點覺得已經是大佬了。膨脹的不行,然后我去面了阿里。
??慘不忍睹,仿佛回到了畢業時那種一問三不知的狀態。
??先問我 npm 的原理。(我會用但是不知道。。。)
??然后問webpack性能優化。(這東西配好了就不怎么動了,也不是很了解)
??React hook實現原理。(hook是什么?我是誰?我在哪?我想回家😭)
??最近在看什么書。(我最近沒在看書。。也不能愣說有。。)
??平時喜歡用什么方式學習。(看視頻多一點)
??我所認知的瘋狂吸入,只是在熟悉公司編碼模式下的日常工作而已,脫離了公司項目,我啥也不是。
面試復盤一
??復盤一下當時的一些問題。
??- 關于 npm 和 webpack 面試官想考察的是是否對平時工作的使用的工具有所了解,是否知道這些工具為什么會出現,自己能不能做一些這樣的工具,提高開發效率,工具的實現模式,能不能借鑒。
??- 關于 hook ,由于當時是2020年3月份,hook 剛出來半年左右,是比較火的概念,面試官想考察的是事實否關注行業新技術,了解程度如何,如果讓你實現,你會怎么做。不過在現在看來,問 hook 只是為了了解你對于 react 的掌握程度。
??- 關于最近在看什么書,可能是前面問一個不會問一個不會,又不好意思直接問你會啥?這樣比較委婉吧,希望我介紹下自己熟悉的技術棧,熟悉到什么程度。
??- 關于喜歡用什么方式學習,這個則是看你有沒有持續學習的習慣,以及知識學習的速度,我建議,要分層次回答,比如我在遇到一個完全沒有接觸過的技術棧時,會先找幾個入門視頻看,對整體的概念有個了結,熟悉用法,特性,能做什么,在那些地方優化比較好。
??對于我比較熟悉的技術棧,為了吃透深入理解實現原理,我會找幾本書,從不同角度查看一下前輩們是怎么深入的。
??另外對于新技術的出現,我會關注一些公眾號,當有一些社區火熱技術棧出新的大版本時,去官網查看一下特性說明,順便把源碼拉下來,自己跑一跑。
??最后經過對某項技術的學習后,我會寫一篇技術博客,把學到的內容,講述并記錄出來,與社區的小伙伴碰撞一些火花。
??這樣一套學習過程,沒有幾個面試官會不滿意的。
??所以各位,如果你不知道怎么學習,可以借鑒一下我的方法,尤其是寫博客,很有用,因為在面試的時候,可以把博客放上去,很能體現產出。
重新審視
??面試最后面試官問了我一個問題,你打算一輩子當個渲染數據的呀?
??這句話讓我重新落地了,之前是太飄了,學的東西只是會用,但是不知道為什么這樣做。
??瘋狂吸入之后必須的過程就是沉淀了,這個過程其實是比較熬人的,你需要去思考,為什么要這樣做,解決什么問題,帶來什么問題,是不是符合預期效果,如果時間拉長,這樣做有沒有隱患。
??這些問題網上搜不到答案,只能多溝通,多交流,多實踐,最好能有血的教訓。比如我之前發現個內存泄漏問題,排查了好幾期,問題單回歸了兩次,都沒通過。
??好處就是那次經歷讓我接觸到了 React 源碼,開啟了另一次的瘋狂吸入。
??同時我開始寫博客,記錄下學習內容,然后根據學習情況,總結出提升的部分,我沉淀下來的東西。
??工作學習,不耽誤,工作也可以成為學習的一部分,第一次面試失利后,我開啟了瘋狂寫博客的模式。
??工作中遇到的坑,把解決方法和過程記錄下來。
??看一本書,把書中與我有共鳴的知識點記錄下來。
??另外就是多看面試題,自己嘗試解答一下,然后再搜其他人的解答,綜合整理,記錄下來。
??某個新技術發布的新特性,記錄下來。
??只要是能記錄的,都記下來,把博客當作自己的筆記本,遇到同樣的問題時候還能快速查看。
??這樣我又準備了一年時間,決定再戰阿里。
面試準備
簡歷
??面試前要做一些必要的準備,第一是簡歷,這里面項目經驗是重中之重。
??面試官會先從你的項目經驗里篩選他想要的信息。所以怎么寫簡歷,很重要,非常重要。
??最普通的寫法:
??某某項目
??所使用到的技術:React,Hooks,redux,TypeScript
??項目介紹:該項目是針對XX的管理系統,實現對XX增加,刪除,修改,查看功能。
??上面這種寫法,多少人中過,舉個抓🙋?♂?,篩選肯定不會給過。
??一份簡歷最重要的是推銷自己,上面這個項目跟你完全沒關系,放任何一個人都可以,那就完全沒吧自己推銷出去。
??第二種稍微好一點的:
??某某項目
??所使用到的技術:React,Hooks,redux,TypeScript
??項目介紹:該項目是針對XX的管理系統,實現對XX增加,刪除,修改,查看功能。負責我負責的內容根據UI提供的設計圖,完成頁面布局,實現和后端的數據交互,接收到數據后完成頁面渲染。
??這個提了自己完成的工作了。但只能過一面,二面就會卡下來。
??問題在于大家不能把自己當成一名前端開發,甚至不能把自己當成開發。
??我們捋一捋,公司招聘,是為了賺錢,那只有做出能賺錢的項目后,招的人才有意義對不對,你如果想讓面試官中意,那就得告訴他,招我能給你賺錢,怎么證明呢?
??這個時候,就需要簡歷體現了,可以寫在項目中,推動前后端參數定義,協調聯調方案,使項目提前上線。
??高級一點還可以寫開發某工具,解決路由配置問題,提升前端開發效率。
??更高級一點可以寫,結合某開源項目,搭建一套快速渲染引擎,提升渲染速度30%。
??給大家個模版:
??在某某項目中的工作
??1.負責前端頁面的技術選型,功能預調研,根據基礎功能劃分開發模塊,搭建 redux 數據傳輸框架,動態配置 react-router 路由入口。
??2.結合微前端思想,提出模塊間微架構模式,封裝微架構API,結合設計模式改善模塊間耦合性,提高開發效率。
??3.針對項目特性配置 webpack ,優化開發和生產環境的打包性能。
??4.處理 node_modules 賴庫兼容問題,熟悉 react17,antd4,webpack5 新特性。
??終極思想是要告訴面試官,項目阻塞,我能推動,項目開發,我能提效,項目完成,我能總結復盤。
自我介紹
??面試的過程也是查看你溝通能力的過程,這一點可以先多面幾家小公司,多面一些,一方面積累面試題,一方面緩解自己的緊張,如果問題你都會,但是因為緊張忘了,也是很遺憾的事。
??做到這一點,就必須要求對每一次面試做復盤,尤其是自我介紹,把自己的自我介紹控制在 3-5 分鐘左右,寫一個稿子,面完一次修改一次。
??首先介紹自己的姓名,畢業學校,所學專業,工作年限。
??這里一定要簡單明了。
??然后介紹一下自己的工作內容,分不同的方面,比如項目初期,會進行方案評審,技術選型;中期開發會搭建開發框架,配置路由入口;后期會針對項目特性,修改打包配置,提升項目性能。
??如果有亮點也可以在這里引申一下,比如有專利的話,可以說在工作中發現某一問題,針對這個問題寫了個解決算法,申請了專利。
??這里給大家個模版:
?? 面試官您好,我叫 xxx 畢業于 xxx 大學,現在有 x 年的開發經驗。
?? 我的主要工作內容是作為項目負責人,負責項目的開發與跟進。
?? 當有新的項目時,我首先會與產品確認具體功能,梳理出現有基礎庫不支持的特性,針對這些新功能,完成技術選型,并評估出開發周期。
?? 開發前,會與后端同事提前確定好數據結構,并確定好聯調時間與接口優先級。
?? 開發前期,我會搭建此次調試環境,配置前端路由,搭建狀態管理框架,用到的技術棧是React-router,Redux。
?? 中期過程中我會定時打包項目,保證服務端與本地效果一致,用到的技術棧是Webpack,并根據項目特性,進行打包性能優化。
?? 項目后期,我會書寫測試用例,重新搭建上線環境,部署服務端配套的相關服務器。
?? 整個項目期間,我也會對開發過程中遇到的問題進行思考與總結,比如我的簡歷中有一個 xx 項目,上線后反饋了一個問題,當時的解決方法是修改配置,進行規避。我思考后從 xx 方向進行了設計。解決了問題,并升級了該模塊的一鍵配置功能,優化組件使用。
?? 具體的解決方案我總結到了博客中,可以在博客中搜 xx 。
?? 這些就是我的主要工作內容。
??自我介紹期的過程,是為數不多的我們能占主導的時段,可以引導面試官往自己熟悉的領域靠攏,這很重要哈。
??自我介紹結束后,面試官會根據你的簡歷,和你的介紹,提一些問題,技術問題就做對應回答就行,不清楚的可以說沒了解過,硬湊答案第一肯定湊不齊,第二給面試官的體驗也不好。
非技術能力
??另外技術問題問的差不多了之后,面試官會問一些技術性不強的問題,這是在考察你的溝通能力,應變能力與抗壓能力,下面有一些比較常見的問法,可以做一些針對性的總結。
?? 當問你,如果有一個需求,前端后端都能做的時候,交給誰做?
??對應回答:需要從投入產出比方向來進行評估,對于項目來說,誰做更符合項目需要,方便后續功能升級,或是如果存在需求變更,哪部分做代價更小。
??另一方面,排期問題,要結合考慮前后端人力問題,若一方存在人力不足,那另一方可以承接部分功能,保證項目及時交付。
??(這一點可說可不說)某個需求幫了兄弟組的同事時,可以及時知會領導,在其他部分爭取一些小組利益。
?? 當問,如果測試同事說頁面卡頓時,希望優化,怎么辦?
??回答這個問題,最忌諱說,我看一下代碼里面有沒有什么可以優化的地方。這個問題的目的是檢查你能否有效推動阻塞。
??我們先要明白一點,測試只負責測試程序,他們的大部分操作都是基于界面的,所以遇到問題基本都是找前端同學,這就需要我們摘掉自己前端的標簽,我們需要做的是讓問題浮出來。
??回答模版,我會找到測試同學,記錄一下具體的復現過程,首先排查是否是網絡問題,觀察一下各個接口返回時間是否正常。
??結合開發者工具的 Memory 和 Performance 面板,查看整個頁面渲染過程的時間消耗。
??還可以查看下是否是測試設備的原因,其他環境是否存在相同問題。
??這個時候如果擴展到一些相關的實現的具體方案,可以準備一兩個,提一下,不用細說。
你有什么問題想問我嗎?
??如果面試官問到這個問題,一定不能說沒有,這個問題會反映出你是否有強烈意愿加入這家公司?
??同時如果回答的好,還能彌補一些前面技術問題的缺失。
??你可以問,公司的技術棧,主要負責的業務,你入職的話需要開發的模塊(這些問題可以反映出,你很希望了解公司,了解工作內容)
??另外可以問面試官會通過哪些方法學習,可以這么說:“我平常學習,都是 xxx(詳情請看上面“面試復盤”) ,我想請問一下您平時是怎么學習的,想借鑒一些高效方法?!?#xff08;這個問題可以暗示你是一個喜歡學習的boy)
??第三個問題,可以問從面試官的角度來看,自己對于要面試的崗位,還有那些不足需要提高。
??基本上三個問題就可以了,多了也會顯得啰嗦,這樣一套下來面試過程可以說是很充實了。
面試復盤二
??入職阿里前,我面了很多大廠,就他們都喜歡問的一些問題,做個總結。
筆試
??筆試題里面出現頻率比較高的如下:
?? 手寫一個Promise,這個問題考察的是發布訂閱模式 。
?? 深拷貝,樹的渲染,這些問題是考察遞歸用法 。
?? 手寫 useState, useEffect,這是考察對 hook 原理的理解 。
??有些大廠會考算法題,面之前可以在力扣刷一些簡單難度的題,前端崗不會考的太難,刷一百道就穩過了。
初試
??初試喜歡問的問題:
?? Hook 的實現原理 ,可以從 react16 升級了框架,從同步執行變成了可中斷的異步執行說起。
?? 瀏覽器在輸入 url 后,發生了什么 ,可以查看這篇博客
- 輸入 URL 之后,瀏覽器背著我們都做了什么事?
?? Webpack的性能優化都有哪些方面?
- WebPack打包性能優化
?? 前端性能如何優化?
- 前端性能優化
復試
??復式的問題大部分都是跟項目相關。
?? 你熟悉的設計模式都有哪些?在你的項目中有什么運用?
??舉個例子,比如裝飾器模式,你在某個需求里,由于修改部分比較復雜,你使用了裝飾器,在不改變其內部邏輯的情況下,增加了需求。
??平時在開發中,自己也會給一些函數封裝 before/after 讓函數執行前后先執行 before/after 。
?? 你做過哪些工作可以提升開發效率?
??這是在考察你,是不是只是寫業務,有沒有脫離業務的思考。
??可以回答自己結合某個開源項目。封裝了什么工具,提升了哪些性能,解決項目中的哪些痛點。
??復試一般很喜歡給你一個場景,讓你去解決一個功能,具體實現可以不談,但是要把這個場景分析的全面一點。
??比如首頁加載慢的問題,千萬記住,別把自己當前端,要把自己當成這個問題的解決者。
終面
??能到這一面,說明你的技術水平是沒有問題的,這一面問的比較多的是你的產出。
?? 做過哪些能提效的事情?技術落地怎么提現?怎么證明你的技術運用到位?
??這里需要你結合自己的項目,要通過項目體現出技術,最好能能貢獻一些開源代碼,對這一輪面試很有幫助。
??還可能會問, 至今為止遇到過最大的挑戰是什么?
??一定要分階段回答,這個困難怎么出現,如何解決的,解決后如何復盤,可不可以開發某個工具避免再次出現。
??另外終面很肯能會壓力面試,比如問你, 你看的這些源碼,在業務中能用到嗎?
??一般業務都會不涉及修改源碼的,這個代價太大,所以回答不會用到,但是不能只回答不能,還要加上,雖然開發中運用不到,但是學習源碼的過程不是簡單的學習原理,而是要明白道理,這些大佬在解決問題時的思路,能不能運用到自己的業務中。
??這些才是學習過后,能叫做沉淀的東西。
HR
??到達這一階段,別說一些白癡話,基本沒什么問題了,但是對于一些硬傷的問題,比如跳槽過多,一定要合理解釋。
??另外這里 HR 可能會側面問一些隱形問題,比如你現在的 工作加班情況 怎么樣,建議往多說一點,這個時候 HR 會說,那也是挺辛苦的,這個時候如果你是順著接,是挺辛苦的之類的,那么印象可能會不好。
??你需要回答,項目需要,產品對外答復好交付時間了,就要如期完成,一能提高公司形象,二總結經驗,更精細化以后的評估。
??雖然有點不情愿吧,但是注意,各位最后的目的是入職成功,你說的每一個字都是為了幫你入職用的。
??當然了,如果你的技術牛批,那上面全是廢話。
最后一啰嗦
??從鑒黃師到阿里前端,現在看好像跨度挺大的,會不會吃很多苦?
??我個人覺得,那屬于認真生活,能感受到自己在成長,未來可期的感覺不叫苦。
總結
以上是生活随笔為你收集整理的毕业三年,我从鉴黄师转行到阿里做前端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫笔记——解析json数据
- 下一篇: 动态网站