做者:學而思網校 陳雷前端
你們好,我是陳雷,網校事業部互聯網研發系統的負責人。今天分享的主題是「研發工程師該如何成長」。數據庫
不少年輕的研發夥伴都有關於「研發工程師該如何成長」的困惑,你們廣泛對如何成長爲技術專家、如何在繁忙的工做中持續學習充滿了困惑,這實際上是每一位研發夥伴成長過程當中的必經之路。我來網校小一年了,這一年裏一直致力於「打造學習型組織」,通過一年的摸索和嘗試,有了一點點的成績和心得,在新一年的開始,我想對2019年作一個總結,也跟你們分享一下個人心得。segmentfault
初到網校,我跟很多夥伴作過1對1的溝通,夥伴們廣泛對本身的成長充滿焦慮:工做太忙,甚至天天都在加班,沒有時間學習;需求太瑣碎,作了不少工做可是並無感到本身有什麼成長;但願有牛人帶一下,可是貌似缺乏這種導師;整個團隊的技術氛圍不是太強,沒有什麼提高的方法。後端
全部的這些都是對成長的焦慮。設計模式
其實這種適度的焦慮是很是好的事情,這是咱們對成長的渴望,只是這種渴望在心裏中映射成了焦慮;適度的焦慮對一我的的成長是有很好促進做用的,這種焦慮驅使咱們定位一個問題到深夜,這種焦慮驅使咱們攻克一個個技術難點,這種焦慮驅使咱們把一個個需求作到極致。相反,有些夥伴失去了這種焦慮,甚至部分夥伴變成了抱怨,若是沒有這種焦慮,那麼可能已經陷入了「溫馨區」,這種溫馨會讓咱們失去成長的動力,錯失不少好機會;若是焦慮變成了抱怨,那更是很是危險的,抱怨的人很難去主動解決問題,不少時候你們坐在一塊兒,歡樂地調侃和吐槽半天,但並不解決問題。緩存
那麼,如何將適度的焦慮和渴望轉化爲成長的助力呢?架構
我總結方法爲:自我管理-結伴學習-學以至用-總結反思。性能
首先最重要的一點是自我管理,不少促進成長和學習的事情都是反人性的,如何控制和管理本性上的「懶惰」,核心思路就是自我管理(自律)。我很是喜歡Keep App的Slogan:「自律給我自由」。 丘吉爾在25歲的時候說:「我渴望自由」;過了25年之後,他說「自律很重要」;又過了25年,他75歲的時候說「自律就是自由」。學習
用在咱們研發夥伴身上又未嘗不是呢?不少時候,咱們看到一些牛人的成長很勵志,因而下決心要去堅持天天晚上閱讀技術書籍,可是堅持了3天,意志開始降低,「要不看會兒抖音再看書吧?」,「今天先休息一下,打一局遊戲,明天必定繼續看書」……;這是不能自律的表現,不少時候咱們管理很差本身,被惰性主導本身的思想。我也是同樣的,不少時候都「犯懶」,那麼我是怎麼管理本身的呢? 我本身有個excel作記錄,見圖-1:網站
圖-1 讀書記錄
新年伊始,你們總會立一些Flag,我通常會設定大大小小50個目標,包括工做、學習、健身和家庭等方面,以圖-1中讀書記錄爲例,會精讀或者粗讀工做中須要的書,並伴有儀式感,每讀完一本書,就會拍照錄入到excel中,這樣會促使本身堅持下去。隨着時間的推移,會發現這件事會給本身帶來不少收穫,遇到一些問題思考時,貌似在哪本書裏見過相似的場景,便可翻出來看一下,結合實際去解決。除了讀書之外,自我管理還包含運動的管理,見圖-2:
圖-2 運動/健康管理
圖-2是我最近一段時間跑步的記錄和體重的管理,做爲一個研發人員,從大學時期就養成了熬夜的習慣,隨着年紀的增加,頭髮日漸稀少,健康問題也愈來愈嚴重,脂肪肝,高血脂;另外形象也愈來愈差,大肚腩,弓背探頭;有一次一個夥伴跟我開玩笑說:「快點減肥吧,否則都影響網校研發形象啦」,因而我開始了減肥健身之旅,天天堅持「stay hungry」,保證每頓飯只吃6-7分飽,基本不吃碳水,天天不管多晚到家都堅持走/跑40分鐘,微微出汗,堅持了兩個多月,肚子就小了不少,(PS:帶一下貨,這個走步機是在拼多多上買的,只要500元,噪聲也不大)。另外在拼多多上買了駝背矯正器,天天堅持穿上,爭取把駝背探頭的毛病改掉。
自律很難,可是真的是「自律更自由」。
第二點就是結伴學習,設定目標後,一我的去堅持本身的目標真的很難堅持到底。早在3年前,我和團隊就採用結伴學習的方式去研讀內外部代碼,一塊兒探討和豐富技術知識。來到網校之後,在網校也發起了「早讀會」,讓我自豪的是,從2019年3月7日起,咱們一直堅持到如今,天天9點-10點半,中間除了重要會議或者搬家暫停幾回外,沒有間斷過,而且咱們使用講座的技術錄了視頻,見圖-3:
圖-3 後端早讀會
圖-3是後端研發夥伴在這10個月中的學習,你們一塊兒學習了PHP的底層源碼,Redis的源碼,Nginx的源碼,Twemproxy的源碼,Swoole的源碼,以及分享和探討了網校商城的架構設計,CRM系統的設計,活動編排系統等等業務的設計和代碼。你們一塊兒學習和探討,還有部分夥伴會作你們的講師,這些夥伴不斷地精進本身的技術、表達能力和思惟能力。思否上連接以下:https://segmentfault.com/a/11...
前端夥伴們的夢想是「把好將來的前端(FE)團隊建設成爲行業內極具影響力的前端團隊」,從2019年5月8日開始,天天都交流和探討前端的技術。你們都知道,前端技術的特色是變化特別快,一段時間不學習就容易跟不上,沒法精進和更新本身的技術。因此前端的夥伴們很是積極,創建了知識分享搶佔機制,每週五會拋出下週5天的分享名額,你們踊躍去搶,這樣幾乎全部的夥伴均可以成爲分享講師,展示本身,提高本身的演講能力,精進對技術理論的理解。圖-4是前端夥伴的早讀記錄,早讀會時間是9:30到10:30:
圖-4 前端早讀會
最近一個月,在集團技術委員會的指導下,咱們創建了集團的PHP羣、Java羣、Go羣和大前端羣,爲了更多的夥伴一塊兒學習和探討,咱們開始了釘釘直播,方便一些夥伴早晨通勤時可以一塊兒學習,見圖-5:
圖-5 PHP/GO/前端釘釘直播
另外,咱們對於比較好的課程作了升級,在網校開辦了知更鳥課程,課程內容落地到了思學堂上(內部學習網站),見圖-6:
圖-6 知更鳥課程
以及在集團開辦了PHP精英課程,課程內容落地到了TTC上。PHP精英課程2019年舉行了8期,分別講授了設計模式、Swoole應用、高性能服務設計、PHP7底層實現以及MySQL應用,見圖-7,學員對課程反饋良好。
圖-7 PHP精英訓練營
結伴學習的好處是,當一我的被「懶惰」控制時,會有一塊兒前行的夥伴一塊兒監督和拉拽。正如「一羣人走的更遠」這句話,結伴學習能讓咱們甩掉惰性,堅持學習技術理論。
紙上得來終覺淺,絕知此事要躬行。在學習了豐富的技術理論以後,如何把理論知識用到工做中呢?這就須要 「學以至用」。而技術成長最重要的就是「學以至用」。
不少夥伴抱怨需求太多,工做太忙,壓根沒有時間學習,其實工做和學習自己,是密不可分的,工做原本就是學習的一部分,是學習的實戰,是學習的反饋,學習若是脫離工做的實戰,是沒有任何價值的。
常常有夥伴問我一些問題,好比「學習PHP/Redis底層源碼,我是否是要先把C語言和Linux的基本知識所有學一遍」,其實這是個誤區,若是花費大量的時間去學習和準備,可能在學習這些基礎的時候就放棄了,或者當你用到的時候也忘得差很少了。最好的辦法是用到什麼知識難點時再去補充學習,這樣會更高效,更有針對性。
再好比,還有夥伴問我「學習PHP/Redis底層源碼,對平時工做有什麼幫助呢」,舉幾個例子:
咱們生產環境天天凌晨2點50,全部機器同時報警CPU負載太高,追查下去發現這一時刻全部FPM進程重啓致使的,這就涉及到咱們學習過的FPM進程管理模型,能夠思考下還有什麼方案可以避免FPM同時重啓呢?
咱們都知道502/504等狀態碼含義,曾經生產環境網關偶爾的會出現502報警,這種偶然現象該如何定位排查呢?這離不開咱們對TCP協議,HTTP協議等的理解以及抓包實踐過程。另外看到夥伴週報提到,週末雙活演練過程當中,發現存在偶爾超時現象,最終定位一樣是因爲TCP配置不合理形成的。
Redis是咱們工做中不可缺乏的緩存數據庫,相信學習Redis源碼後,對應Redis命令的使用會更加駕輕就熟,同時避免一些不合理使用;下半年咱們將Redis的使用從單實例模式升級成集羣模式,這時候結合學習過的Redis源碼與Twemproxy源碼,能夠更好的理解咱們這麼作的意義。
技術研發工做是一門實踐科學,從書本上獲得的理論和知識,若是沒有在實戰中應用和檢驗,基本上是沒有價值的。完全搞明白本身工做的技術和所在的業務領域,是最務實高效的作法,工做和學習割裂,會致使工做和學習都作很差。
另外還有一個很是重要的點,不一樣的領域之間實際上是舉一反三的,當你對一個領域可以熟練掌握,以致精通,而且能總結出方法論後,很容易就能上手別的領域,花3-5年時間完全研究透一個領域,對於剛工做的夥伴來講,是很是很是重要的,甚至是必須的,因此夥伴們須要沉下心來,厚積薄發,在一個領域打透,以後再去拓展本身的知識面,作到「觸類旁通」。
學以至用纔是真的學會,才能真的成長。
最後要培養總結反思的習慣。
有一個理論,叫「刻意訓練10000個小時,就能夠成爲某個領域的專家」,所謂的刻意訓練,其中有個很是重要的方法論是「總結和反思」,這個跟咱們好將來文化非常匹配。
在增研前端晨讀會中,發現一個頗有意思的現象:前端夥伴們每週五會拋出下週5天的分享名額,須要夥伴們去搶佔分享機會。爲何會出現這種狀況呢?由於他們明白,分享離不開總結與反思,分享是一個技術成長,以及鍛鍊思惟能力和表達能力的好機會。
寫文章一樣是一個很是好的總結與反思過程,同時也是一個提高本身知名度的過程。今年上半年咱們的「學而思網校技術公衆號」誕生了,每週都會有夥伴積極投稿,發表本身優秀的文章。下半年TTC社區發佈,至今看到了很是多的高質量文章。
學習不該該只是被動的接受書本上的,接受別人的知識。在學習過程當中,凡事要多問幾個爲何,須要明白的是任何方案、任何決策都有其背後的邏輯存在;好比在Redis切Twemproxy時,思考下單實例切集羣的意義在哪?多種集羣方案Redis/Codis/Twemproxy各自的特色都是什麼?
在工做中反反覆覆去實戰,檢驗本身學習的理論知識,不斷精進和提高本身對理論的理解,創建本身的經驗庫和方法論,這個過程當中訓練出來的思考能力、總結能力和反思能力是最寶貴的,也是自身價值提高最重要的部分。
新年伊始,夥伴們能夠給本身樹立一些目標,而後加以行動,對本身要「狠」,要自律,跟一羣志同道合的夥伴一塊兒,朝着目標去學習,去實戰,在工做中落地,在過程當中不斷總結和反思。
新的一年,但願跟好將來研發的夥伴們一塊兒:
奮鬥更快樂,自律更自由!
一羣有夢想的人走得更遠,活得更充實。
學以至用,刻意訓練本身10000小時。
不斷地總結和反思,一塊兒成長!一塊兒用科技推進教育進步!
好將來技術委員會開發子通道主席 陳雷2020年1月7日