一位程序媛妹妹的半年成長總結

點擊上方 "程序員小樂"關注, 星標或置頂一起成長

每天凌晨00點00分, 第一時間與你相約


每日英文

Sometimes there is no next time, no second chance, no time out. Sometimes it is now or never.

有時候,沒有下一次,沒有機會重來,沒有暫停繼續。有時候,錯過了現在,就永遠永遠的沒機會了。


每日掏心話

其實,痛是很難分享出去的,你複述一次你就傷一次,別人沒共鳴,你就更受傷。隱忍不說,只是做事,時間會讓痛過去。


一位程序媛妹妹的半年成長總結

程序員小樂(ID:study_tech)第 802 次推文 圖片來自百度


往日回顧:小米回應暴力裁員:已提前三個月通知不續簽合同,並且給了N+1補償


正文


本文來自“辣椒炒肉”的投稿,她是一個前端程序媛,畢業半年成長很大,她的經驗總結非常值得職場新人借鑑。


先自我介紹一下,我是前端程序媛妹妹,應屆生,2019 年 7 月份入職到 2020 年 1 月已經工作半年,這半年裡自己以肉眼可見的速度成長,寫寫這半年的經歷,回顧總結一下,希望我的經歷能給你帶來不一樣的“雞湯”。


入職的每個應屆生會分配一個導師,工作內容大致和導師方向一致。剛入職的一個月,主要就是熟悉公司的一些基礎建設、用什麼技術棧、跟導師一起開需求評審會、改改小 bug、調調樣式或增加小功能。


最開始的工作比較輕鬆,沒有具體工作的時候我就結合系統功能和代碼,梳理系統邏輯,繪製腦圖。這件事還是很有用的,對我後來快速定位 bug、迭代小功能起了關鍵性的作用。


第一次獨立做一個完整的需求


第一次做一個完整的需求是入職兩個月的時候,當時還是挺慌的,感覺自己還沒有摸清門路就要開始一個人做事了,而且還是一個倒排期的移動端需求,這無疑又為我添加了一份緊張感。


每天根據需求文檔瘋狂寫代碼,天天壓力大到夢裡都在寫代碼、解 bug,早上七點鐘自然醒,最擔心的事情就是功能實現不完。


就在這時導師很忙,完全只能靠自己,遇到什麼技術難題,都要自己來解,我迎來了前所未有的恐慌。


儘管後來功能上線了,但依然很虛,時刻都在擔心線上會不會有 bug。每天會不定時打開公司的APP幾次,實際操作一下自己上線的功能,驗一驗有沒有什麼bug ;同時關注產研群,看是否有 bug 反饋。


過了大概 2 周的時間,功能在線上很穩定,沒有任何 bug 反饋,這才放心下來。


由此我對自己的技術水平也有了新的認識,實際上並沒有自己想的那麼差。壓力最大、問題最多的時候也是成長最快的時候,做完整個需求以後,前後端怎麼配合、什麼時間節點該做什麼事,需求從評審到上線的鏈路也漸漸清晰了。


面對壓力


做這個需求的時候我感覺到了非常大的壓力,感覺每天自己就是一個高壓鍋。對壓力的思考,也正是這個需求給我帶來最大的成長。


壓力來源於什麼?壓力來源於自己認為自己的能力不足以 hold 住整個事。因為自己沒有做過,面對未知的恐懼人就會不自覺產生壓力。有什麼好辦法面對壓力嗎?


正視、面對、突破。


1. 首先不能給自己增加壓力的砝碼,切記不要思考是不是自己能力不行,我怎麼這麼菜。越是思考負面情緒因素,越讓自己頭腦不清晰,壓力越大自己越緊繃,這時候如果出現一點額外的差錯,就感覺天要塌了,越是壓力大越容易出差錯。


2. 有壓力的時候,也就是成長最快的時候。按部就班處理每天遇到的難題,不會什麼就學什麼,不要擔心它、也不要因此而焦慮,把該做好的事情做好,當做好之後壓力也就解除了,同時自己也成長了。


3. 做事情的時候要給自己信心,不斷地給自己加油打氣,抗一抗,努努力加把勁就過去了。當下次同樣難度的事情到來時,已經經歷過一次便不會緊張焦慮。想想看,能力是不是這樣增長起來的呢?


換業務方向


在工作差不多兩個月的時候,整個前端大組計劃根據業務方向劃分成 4 個小組,我現在的工作屬於 A 組,趁這個時期,我想要在劃分方向前調整到 B 組去。


為什麼要換到 B 組?


簡單說說 A 組。A 組的業務,由於因為歷史項目較難維護困難,作為新人的我很頭疼,我每新增一點功能都感到緊張,畢竟線上無小事。


再說說B組。1. B 組同學經常做 code review,基本上每週都會看到他們 code review 的會邀,作為新人我對 CR 這件事還是很嚮往的;B 組業務複雜、系統功能多,但是卻有一套規範,多人寫的代碼十分接近像一個人寫出來的。


2. B 組同學的能力成梯隊,有資深的老員工負責一個項目,帶著幾個同學一起做,看他們平時工作很 happy。


我有了初步的想法後,直接找到 B 組的 leader,先了解下 B 組有關的業務。聽聽這組的老大怎麼說。(下文 B 組 leader 直接簡稱老大)


讓我非常意外的是,約到了 B 組 leader 後,他在會議室非常認真地給我講了一個多小時,還寫了板書,把多個業務之間的關係講得明明白白;


不僅介紹了 B 組當前做的事,還介紹了未來的規劃,規劃包括了業務需要和技術驅動。


我和 B 組 leader 在此之前沒有任何交集,但是就衝這認真程度,我已經決定來 B 組了,我彷彿已經看到了未來的光明,哈哈。


我和 B 組的 leader 表達了我想來 B 組的意願,他表示歡迎。接下來就是和大組的 leader 溝通了,在此次溝通之前,我認為這是一件很難的事,因為我擔心:


如果 A 組人力不足不允許我去 B 組怎麼辦? B 組真的需要我嗎?大組 leader 會不會覺得我這剛工作兩個月的新同學,想法有點多啊?


認真地準備了自己的說辭,帶著諸多疑點,和大組 leader 溝通了一次。


沒有想到,結果如我所願!大組 leader 不僅同意了,而且還非常高興我能主動表達自己的想法。


主動反饋


事後總結了一下,主動反饋在職場中非常重要。主動可以改變你看似不能改變的事實,主動反饋也是站在別人的角度去考慮問題。


你的上級大概率不會了解每一個人,如果你能主動 push 消息給你的上級,和上級有一個良性的互動,那麼他越瞭解你、越瞭解你手上的工作,也就越能幫助你,一旦你出了什麼岔子或者有什麼疑惑,他能切中要害給你解答。


除了和你的上級反饋,也要與自己合作的產品、任何角色的開發、運營同學等及時反饋,有消息及時反饋給對方,在對方的心裡你更靠譜。


反饋什麼樣的問題呢?我大致分了幾類:


1. 可能延期上線的風險

2. 自己近期的工作進展和疑問

3. 對團隊建設的想法

4. 發生變化、會影響結果的消息。


獨擋一面的時刻


由於 B 組業務多,人力不足,剛來一個月,老大直接扔給我了一個 P0(項目優先級的排序方法:P0、P1……)的項目,我一個人負責。


我特別興奮,自從獨立做了一個完整需求以後,自己信心大增,發現自己是有能力獨自完成一個需求的,而且技術能力也沒有自認為的那麼差,有了上次的積累,我相信自己這次會做得更好。


這次是我第一次獨自負責一個項目,檢驗自己能力和展示自己能力的時刻到了。


從零開始一個項目,遇到的挑戰還是很多的。平時只是在原有項目上迭代功能,現在從建倉庫、申請域名、搭建測試環境、申請上線機器等一系列事情開始,寫代碼只是其中一個環節了。


每天趕著做趕著做,還是遇到了一個大風險,距離上線還有兩天,有一個關鍵的功能沒有實現。


這時候我已經完全沒有了辦法,心裡甚至有點崩潰,歸因於自己能力不足導致沒有開發完成,只能去問老大現在該怎麼辦。


老大和產品溝通,結論是沒做的功能後續再迭代,問題解決了。


這件事讓我非常震驚!


因為在我的心裡認為已經走投無路,這該怎麼處理呢?老大和產品的溝通過程我是全程在的,我發現老大是知道這個風險的,時間緊很可能完不成,每天站會的時候產品也在,他提前和業務方溝通過,在約定的時間點不一定會完成全部功能,業務方也給出了最小可用版本的要求。


原來業務方的要求並不是一成不變的,他們在開發前期也是瞭解到時間緊的,在擺明了客觀條件下出現問題,他們也會給出一些讓步,並不是咬得死死的要上線全部功能。


在這次需求完成後,有了很多新的認識,大致分為以下幾個方面。


態度


永遠採取對解決問題最有利的態度。


開發過程中可能會出現預料不到的狀況,當問題出現的時候,首先要擺正的就是自己的態度,不甩鍋、不帶情緒,採取對解決問題最有利的態度,缺少什麼資源、產品有什麼問題、接口哪裡不合理就及時和對方溝通解決,以最短時間解決出現的問題。


對需求的思考


在做本次需求之前,很少思考為什麼做這個需求。這個產品設計的合理嗎?在需求評審的時候大腦也不夠活躍,很少提出問題,通常是拿過來設計稿直接做,做完了上線。


但是這一次情況完全不同,我不假思索去做這個需求,結果就給自己留下了坑,在做的過程中才發現有問題,在開發中去改的成本遠大於開發前想好。


這一次非常深刻提醒了我,開發前要主動思考需求,甚至說在某些時候細節的考慮要做得比產品還充分,做之前和產品充分交流,隨時提出問題,解決問題,開發前是萬萬不能少了思考的,要培養自己產品思維。


對於需求的思考和幾位前輩交流過,結合前輩給出的建議我給自己提出了開發前 5 問。


每次在拿到需求的時候我會問自己以下幾個問題,思考並嘗試回答,如果回答不清楚就問產品或者其他前輩。


1.首先了解為什麼要做這個需求,它的背景是什麼,能帶來多大的價值?


2.這個功能在當前的系統是否已經實現了?如果實現了,是否可以複用,如果不能複用,差別在哪裡?


3.這個功能除了滿足當前的需求,還可以舉一反三用到別處嗎,是否可以抽出公用業務組件?


4.這個需求是一次性的需求還是長期的,後期會怎麼發展?


5.技術上實現的成本高不高,如果高的話,是不是可以選最痛的、優先級最高的做,然後小步迭代?


提前暴露風險


有問題、不能如期上線要提前報給上級。


提前是一個什麼樣的時機呢?暴露風險最好的時機是每天站會,如果沒有站會,就及時和上級說明情況,讓他提前知曉,而不是上線前才讓他知道。提前暴露風險就是在為自己爭取時間,暴露風險後可能的解決方案是延期上線、或者上線一部分功能。最初我很怕暴露風險,怕上級認為我能力不行,其實這都是以自己的角度思考問題,風險的成因是多方面的,自己的能力只是其中一個。


瞭解業務


曾經很不理解老劉在公眾號提出的瞭解業務,也不明白自己的上級、部門 boss 經常提醒大家去了解業務,現在我有一點點感受了。


瞭解業務所涉及的名詞、流程、相關的功能、各業務之間的關係,可以使自己在開發過程中更加遊刃有餘,預測可能出現的問題,產品遺漏的邏輯分支,爭取做一個信息量最全的人。


在業務上常問自己,這是什麼?這個業務的背景是什麼?有什麼價值?嘗試落實到紙面上,如果寫不清楚就繼續瞭解、去問,直到寫明白。


這是目前我認為了解業務比較好的一個方式,問了解它的人,他也樂於給你講清楚相關信息。


寫在最後


我發現,對於剛工作的小白來說,在工作中學習是最快的方式。每做一個需求,都會碰到一些技術難題,邊學習邊解決問題,能力嗖嗖嗖地就上來了,技術成長的速度遠遠超過自己週末默默啃源碼、看書本。


這半年是收穫頗豐的半年,自己成長了很多,由衷感謝這半年來幫助過我、給我解答諸多疑問的前輩。


2020 會面對更多的挑戰,加油~


一位程序媛妹妹的半年成長總結

歡迎在留言區留下你的觀點,一起討論提高。如果今天的文章讓你有新的啟發,學習能力的提升上有新的認識,歡迎轉發分享給更多人。


猜你還想看


阿里、騰訊、百度、華為、京東最新面試題彙集

必須要掌握的 InterruptedException 異常處理

Github 3.4k星,200餘行代碼,讓你實時從視頻中隱身

一次SQL查詢優化原理分析(900W+數據,從17s到300ms)

關注訂閱號「程序員小樂」,收看更多精彩內容
嘿,你在看嗎?


分享到:


相關文章: