大家好,我是若川。名校畢業的被刪大佬也經歷了社會的毒打,但她沒有放棄。面試、學習源碼系列、年度總結、JS基礎系列
王貝珊,騰訊高級工程師,騰訊 AlloyTeam 成員,現騰訊文檔網絡層技術負責人。畢業于中山大學。工作 6 年,業務領域包括人臉識別追蹤、電競直播、支付繳費、在線協同應用等,在小程序、前端框架、方案設計和項目實踐等方面有著豐富的經驗。熱愛前端技術,在 GitHub 寫作個人技術博客已有 5 年,記載了前端相關的技術學習筆記和總結,并著有開源書《深入理解Vue.js實戰》、電子書《前端的進擊》、紙質書《小程序開發原理與實戰》。喜歡貓貓,熱愛寫文章、分享和開源。
PART
01
離職華為,自學前端
我是非科班的程序員。大學學的是光信息,畢業后進了華為,崗位是數通工程師,做的是交換機、路由器、防火墻等技術支持方面的工作。不管是培訓還是實踐,工作成績都非常不錯。但是在工作半年之后,我卻發現自身對做的事情實在提不起興趣,于是就辭職了。
后來開始考慮自己真正喜歡什么,想起大學時跟過一位 Web 物理引擎開發教授做研究,他給我看了研究室做的汽車透視結構,當時覺得特別酷。后來便開始自學前端,然后從一家小公司加入了前端開發的行業。
自學前端,并不是一件容易的事。既要進行前端知識的學習,又要進行代碼的編寫。而最難的部分則是如何將從書本上、網上學到的一些前端知識,在項目開發過程中理解和使用。因為許多知識在初步學習之后,只能停留在 Hello World 階段,要深入理解和掌握某個技術,就需要在業務和實際項目中結合使用。這就需要多思考,不斷地探索和嘗試,慢慢地掌握要怎么將理論和實踐進行結合。
PART
02
最艱苦的日子,也從未停止學習
從華為出來后,我加入了一個外包小公司做前端。那是一段比較艱苦的日子,但那段時間,每天都能學到特別多的知識,后臺的幾位大哥也給了我很多的指導,例如要掌握哪些工具、可以去哪些網站學。即使是下班后,也依然躲在上鋪開著臺燈,一直學到半夜。
小公司的問題很多,沒有社保,沒有福利,也不提供住宿和三餐,老板是暴發戶類型的。因為工資實在少得可憐,轉正的時候我提出需要漲點工資,然后被老板一頓“不知好歹、不懂感恩”批斗,最后不了了之。我知道這樣下去也不是辦法,于是請教了后臺幾位大哥,他們也支持我出去看看。
我找好了一個工資稍微好些的工作,然后跟老板提離職。剛開始老板溫和地勸說,后來發現我很堅決,他立馬翻臉了,一邊罵我狼心狗肺,一邊威脅我說:“深圳就這么大,你以為你可以去哪?”
說實話,那時候的我工作經驗也不多,真的有被嚇到。我跟下個公司的負責人說起這件事,他安慰我說不用管,都是嚇唬小朋友的,對方還拍著胸脯說有事他來解決。在猶豫一段時間后,我還是離開了。
新的公司是一個實體到互聯網轉型中的公司,可是剛去不久,身體卻熬不住了,開始不間斷地肚子疼、發燒、發冷。由于是剛換的工作,而且需要趕項目進度,也不好請假,就那樣熬了兩三周。直到有一天,連走路都成為了困擾,我才打車去醫院檢查。因為疼得厲害,我躺在醫院過道邊上的一個床上,吐得腦袋都不大清醒,來來往往的人都看著我,臉上各種疑惑、猶豫、欲言又止的表情,沒有一個人問問我。然后,我收到了入院通知。
至今我還清楚地記得那天,我跟公司的負責人說了這事,需要請幾天假。對方在回了我一句“女生就是矯情”之后,不到十分鐘,我就被移除出所有相關的微信群,然后被辭退了,甚至這幾周工作的工資一丁點都沒有給我。
后面的一兩個月,基本上都是各種打針吃藥。燒終于退下來之后,醫生給我安排了手術。那段時間身上全是針口,到后面護士都找不到可以扎針的地方了。手術后因為并發癥,住了好幾天的 ICU,我也深刻地記得當時為了降溫,醫生在我身邊放滿了冰塊,我跟醫生說好冷,醫生讓我忍忍。
后來出院回家,體重竟然回到了初中的時候,瘦到睡覺的時候都會被自己的骨頭磕著,然后開始了長達半年的恢復。
期間買了特別多的技術書,在家除了休息、低強度的鍛煉,狀態好點的時候就看書、寫代碼。身體恢復之后,我又回來了深圳。
PART
03
?工作常常不如意
要努力堅持自己的原則
工作常常不如意,但也請不要放棄。職場里競爭激烈,以前只出現在小說里、電視上的事情,都可能會出現在你身邊,甚至發生在你身上。很多時候,可能并沒有對錯之分,大多數人都是為了混口飯吃。因此,你要有這樣的心理準備,在碰到一些奇奇怪怪的事情的時候,不要陷入自我懷疑,不要丟失前進的勇氣。即使再難,也不要輕言放棄。
要努力提升自己的能力,才可以選擇自己喜歡的工作。我遇到過一些合不來的領導,包括事情做完不讓早下班的、下班后依然 24 小時不間斷打擾的、不允許提出自己的想法的,等等。曾經非常地迷茫。在這種情況下,只能不斷地提升自己,讓自己有足夠的競爭力,才可以有更多選擇的機會。工作是雙向選擇的過程,我們不用覺得自己是弱勢的一方,也不必覺得委屈求全。
養成良好的工作習慣。首先,工作中的沉淀和思考是非常重要的。一定不要滿足于僅僅把問題解決了,要更多地進行思考,嘗試去把事情做得更好。同時,還需要把一些經驗和想法沉淀下來,這些內容很多時候可以幫助到其他人以及未來的自己。其次,要做好時間管理。
這里分享我自己的幾個小技巧:
1.合理分配時間,比如將連續的時間段給到需要專注的任務(比如寫代碼),零碎的時間則可以處理一些對連續性要求不高的任務(比如測試、復盤、思考等)。
2.把業余時間利用起來,培養一些習慣愛好,或是做一些小的學習任務。
3.合理使用 Todo List,可以用優先級對需要做的事情進行備忘,每隔一段時間進行整理和調整。
4.優化自己的工作方式,比如解決重復性的工作、避免問題的再次出現,等等。
身體健康比任何事情都重要。如今的互聯網行業里,加班熬夜甚至通宵的現象特別嚴重。很多人沒日沒夜地通宵熬夜、吃飯不定時、基本不運動。因為內卷太嚴重了,大家沒有更多的精力去考慮健康這件事。有句老話叫“不見棺材不落淚”,互聯網職場中猝死的案例頻繁發生,有些甚至就在身邊。或許我們會被觸動一段時間,也注意飲食和運動了幾次,最終還是恢復原本的生活節奏。很多人都心存僥幸地認為這些事情發生在自己身上的概率太低,因此也不怎么重視。真心希望大家在身體還可以的時候,好好保重。畢竟我們的身體是 1,所有的財富、榮耀、名聲都是后面的 0,只有 1 在的時候,這些 0 才會有意義。有意思的是,對于程序員來說,1 和 0 可以組成任意的內容、代表著整個世界。但如果說生命是 1,而其他事物是 0 的話,很多時候我們在做選擇的時候總會忽視了已有的 1。自從經歷了那次住院手術,生命和健康真正成為了我最重視的一道線。努力可以,奮斗也可以,但長期的加班熬夜通宵、無節制地消耗身體這樣的行為則超越了我的底線。血的教訓讓我狠狠地體會了一把,什么事情對于我來說才是最重要的。
PART
04
大公司還是小公司,應該如何抉擇?
在互聯網行業,大公司和小公司其實有著各自的優勢和弊端。
在小公司里,很多時候由于項目規模的限制,我們容易在一些技術深度方面到達瓶頸。但小公司也同樣可以學到很多,相比于深度,傾向于技術廣度,比如全棧開發等。除此之外,小公司有更多的機會管理團隊,也有更多從零開始參與和設計項目的機會。
在大公司里,我們可以接觸到更多有技術深度的業務場景,也可以向很多牛人學習。不過,大公司里大家分工明確,很多時候開發僅僅能接觸到自己負責的那部分功能,整體提升比較局限。除此之外,大公司里團隊很多,每個團隊的風格、氛圍、工作內容都不一樣,未必都能獲得自己想要的東西。
所以,在加入一個團隊前,我們要盡可能多地去了解它,思考團隊節奏、技術氛圍、工作方式和內容等等,是否和自己的預期一樣,是否真正適合自己。
對于我自己而言,在做職業規劃和重大抉擇的時候,一般會考慮下面三個因素:
工作中是否有足夠的技術挑戰,可以讓我學習到更多的東西。
團隊氛圍是否開放,可以接受大家發表和探討不同的建議和想法。
此外,還會考慮工作強度,是否會經常加班甚至通宵(畢竟現在的環境下,健康地活著才是勝利)。
PART
05
?寫作的樂趣
我很愛寫文字,也很愛將自己的想法記錄下來,這對我來說是一件很有趣的事情。而當我寫得多了,慢慢地,我發現它給我帶來了很多的好處,比如,提升了工作效率,彌補了記性差的短板,思考過程給我帶來了很多收獲,等等。
我從 2016 年開始寫作技術博客,到現在已經 5 年多了。后來我開源了《深入理解Vue.js實戰》這本書,寫作了一本《前端的進擊》,并與另外兩位小伙伴一起寫作了《小程序開發原理與實戰》這本書。
對于程序員來說,開源的意義深遠,這也是我當初開源《深入理解Vue.js實戰》這本書的初衷;《前端的進擊》這本書則是將我的一些工作經驗和方法進行了分享,希望能幫助到一些職場上的小伙伴。而在《小程序開發原理與實戰》這本書中,我分享了很多小程序的原理和最佳實踐,提供了很多避坑指南,希望開發者可以在開發的時候避開這些問題,也能在遇到問題的時候快速地定位問題。
對我來說,寫作帶來的最大的收獲大概是自身的知識沉淀,以及我與其他人分享的時候收到他們的反饋,我也同樣能從其他人身上學到很多東西,這更加堅定了我堅持寫作的想法。
PART
06
給前端開發者的學習建議
如今前端領域的技術發展非常快,已經產生了各種分支,編寫一個前端應用很多時候要涉及:代碼編譯和打包工具、前端框架、前端路由、組件設計、組件通信、狀態管理等。從項目管理和工程化角度來說,還會涉及代碼規范、開發流程、持續集成和持續部署等,涉及從開發到提交、合并、部署、發布、灰度、監控等各個流程。
對于這些前端技術分支的相關知識點,很多時候我們通過學習可能只能停留在 HelloWorld 級別,要想更好地擴展自己的技術領域,實踐是理解和收獲知識最快捷的方式。一方面,我們可以圍繞工作中涉及的技術進行深度的加強,工作其實是很有效的學習過程。另一方面,對于工作中涉及不到的內容,我們可以找到感興趣的項目去進行研究,來拓展自己的廣度,也可以參與到開源項目中學習和實踐。
作為前端開發,我們要提升自己的能力,就需要思考項目中存在的問題,是否可以更好地進行優化,比如:如何在發布過程及時發現并解決問題、頁面的打開和加載速度是否可以優化、開發效率是否可以提升,等等。盡量多一些思考,多去借鑒一下業界比較成熟的解決方案。
至于小程序開發,它也是前端開發的一部分。在掌握了小程序開發這個工具或者說生態之后,剩余的和其他的前端開發工作其實沒有太大的差異。
我和另外兩個小伙伴寫的《小程序開發原理與實戰》這本書,包括了從快速入門、到原理分析和最佳實踐、再到上云較完整的內容,既適合初學者入門,也適合有一定經驗的開發者閱讀。開發者只要有前端開發的基礎知識(比如HTML、CSS、JavaScript等)儲備,便可以讀懂和上手。
對于小程序初學者來說,可以跟著第一部分入門的講解和實戰案例,配合小程序的官方文檔一起學習和實現;對于想搭建有后端和數據庫能力的小伙伴,可以跟著第三部分小程序云開發來學習;對于常常需要開發和維護小程序的同學,可以重點閱讀第二部分原理分析和最佳實踐部分。相信大家都會收獲滿滿!
最后,應圖靈小姐姐的要求,給大家推薦幾本非常不錯的前端圖書。
對于前端開發來說,紅寶書《JavaScript高級程序設計》是肯定少不了刷很多遍的,每次閱讀都能有新的收獲。
如果說紅寶書是教科書,那么《JavaScript忍者秘籍》這本書可能就是練習冊,它介紹了很多比較實用的 JavaScript 開發的最佳實踐。
《ES6標準入門》這本書也非常全面和詳細地介紹了 ECMAScript6 新引入的語法特性,對于 ES6 語法的使用有很大的幫助。
另外,我們在日常開發中還會涉及代碼的設計,推薦《JavaScript設計模式與開發實踐》,這本書介紹了基于 JavaScript 語言的常用設計模式,簡單易懂又非常實用。?????????
最近組建了一個江西人的前端交流群,如果你是江西人可以加我微信?ruochuan12?拉你進群。
一個愿景是幫助5年內前端人成長的公眾號
可加我個人微信?ruochuan12,長期交流學習
推薦閱讀
我在阿里招前端,該怎么幫你(可進面試群)
畢業年限不長的前端焦慮和突破方法
前端搶飯碗系列之Vue項目如何做單元測試
前端使用puppeteer 爬蟲生成《React.js 小書》PDF并合并
·················?若川簡介?·················
你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》多篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,活躍在知乎@若川,掘金@若川。致力于分享前端開發經驗,愿景:幫助5年內前端人走向前列。
點擊上方卡片關注我、加個星標
今日話題
略。歡迎分享、收藏、點贊、在看我的公眾號文章~