'程序員加班嚴重時要如何自我提升?'

"

作者:小生方勤

"

作者:小生方勤

程序員加班嚴重時要如何自我提升?

前言

看《小歡喜》看到 45 歲的方圓被辭退的那個場景我有點難過。當然我不是因為他而難過,我是想到我 45 歲的時候會不會也被辭退?這種情緒持續了幾天也無法揮散。(我似乎知道為什麼有些 40 多歲的老員工突然離職了)

正文

現在很多公司加班都很嚴重,這種情況導致很多人將學習放到了一邊。

有些人在這種情況越陷越深,導致自己知識架構和市場已經脫節。然後在出去找工作已經沒有了議價能力,惡性循環,再然後到 40 歲的時候公司已經看不到你這顆滿是鏽跡的螺絲釘之價值所在,索性對你動了手。

工作繁忙只是充實的一個假象,所謂充實應該是每一天都有進步;忙到沒法學習是對自己(未來的家庭)的極大不負責。

忙到沒法學習可能是一個假命題

我們還是先來看一個場景:

早上 7:46 小方終於擠上了地鐵,並找到了一個好的角落靠著;地鐵開動了,他也開始看視頻或者是鬥地主。48 分鐘過後,他到站了,出地鐵口順便買了一份 10 元的熱乾麵。

在 8:57 的時候趕到了工位上,他打開了一些常摸魚的網站,邊逛變邊吃著有點讓他心疼的早餐。吃完早餐後,看了下釘釘群的消息,發現沒有什麼需要馬上處理的。又開始水群了,轉眼就到了中午。

13:32 的時候,小方不情願的從桌子上爬了起來開始處理需求了,算是開始工作了;開始寫 bug 解 bug,再帶著開了兩個會議;一轉眼晚飯都沒吃就 21:26 了,到了下班的時間。

23:04 小方終於洗好澡了,他覺得辛苦了一天;需要放鬆一下……

我覺得這樣的程序員並不是個例,要從時間的佔用來說,確實很忙;可是換個角度看,很多都是即時的快感。其實還是有很多時間可以拿來學習的。

我們現在回到最初的問題 —— 加班太嚴重,如何平衡工作和學習?

首先我們必須清楚學習的目的到底是什麼?

  • 短期的升值加薪
  • 抵禦年齡的增長所帶來的競爭力下降

說到底學習是為了提升自己,而這是一個很漫長的過程。我們需要在學習的過程中找到使自己快樂的因素,我們才有可能堅持下去。

然後我們要弄清楚加班嚴重是自己的拖拉造成的還是公司有修福報的文化。

如果是自己的問題,那還沒有到平衡工作和學習地步,需要從自身找問題;所以側重點在後者。

1. 項目本身是否對你具有挑戰

如果導致我們一直加班的項目是具有挑戰的,那麼項目本身就是一個很好地學習提高的途徑。我們不用一味的想著該如何學習,更不要在工作的時候摸魚來學習,這才是捨近求遠的糊塗。

都說實踐才是檢驗真理的唯一標準,既然有這麼好的實踐機會,為什麼要白白浪費掉呢?

如果沒有挑戰,就是需要做無數重複的工作;那麼我們是否可以寫一個插件讓自己從這個重複工作中解放出來。讓自己可以做一些更有挑戰的事用來提高自己。

如果真的沒有任何挑戰又沒有時間學習,我們就需要適時的重新思考一下自己的職業規劃。

我的第一份工作就是外派到銀行做外包,真的沒有任何技術含量;而且國企的甲方真的是大爺,做了一年完全沒有任何成就感。外派的時候,只要有時間我就為自己跳槽做準備。

年輕人確實有時間,但這些時間最好用來提升自己。

學習和錢都是重要的,有些公司打著有好的學習環境而開很低的工資,最後很可能學不到知識也沒有賺到錢。

2. 你是否利用好了週末和下班的時間

這裡說的利用好,不是說你一定需要週末一直學習,而是說週末你需要有計劃的學習。好些人一到週末就是:

一覺睡到十二點

醒了先來把吃雞

三點吃個早晚飯

看個電影電視劇

睡前一看三點鐘

這種狀態其實就是不渴望學習新技能,或者說不想付出就想習得新技能。這是不可能的,有危機感就需要具備保持持續學習新知識的能力,要不然這種危機感也是徒勞。

平日裡可以每天擠一些出來學習,鞏固基礎也好,學習框架也好、學習口語也好。只要是有計劃的學習,都是有好處的。

週末的時間是很寶貴的,這也是少有的屬於自己的大段可控時間。這種時間是最適合學習的。具體來說:3個小時我們能好好的梳理‘閉包’或者‘原型鏈’這樣基礎知識點;我們知道這樣的基礎知識點其實沒有很多。堅持兩三個月下來我們必定可以有一個全新的認識。

兩三個月的週末時間,就能讓我們重新認識基礎,這筆買賣很是划算。

關於時間管理這塊我自己也沒有太多的經驗,我自己的做法很簡單:

  1. 擬定好自己的學習計劃,按時覆盤
  2. 學習的時候儘量避免手機的干擾

3. 你遇到問題會如何處理

當你遇到一個問題,你最先想到的是怎麼解決呢(這不是選擇題)?

  • 馬上把問題拋到群裡面問群友?
  • 問旁邊的同事?
  • 打開搜索引擎查找答案?
  • 先處理 bug,然後有時間在好好研究,避免在犯。

可能有些人是第一種,可是這種方式很容易讓人忘了最開始想幹嘛。很容易就在群裡面吹水,所以建議不要用這種方式。至於問同事的話,需要先掂量一下。如果是業務上的問題,可以質詢一下;如果就是代碼本身的問題,同事也是有需求任務在身的,這樣可能反而不好。

我一般是會先找找其他人的處理方案,其實你遇到的問題,之前肯定是有人也遇到過得。你打開使用 Google(百度)可能幾分鐘就能找到問題所在。這種效率一般是最高的。

當然最好是可以自己記錄下來,以免忘記。有時間的時候可以研究問什麼這樣寫會有 bug。

你可以這樣記錄一些有意義的 bug:

【日期】:*********

【問題】:*********

【原因】:*********

【如何發現】:*********

【如何修復】:*********

【總結】:*********

這就像我們高考的錯題本一樣有用。

關於前端的學習路線和方法我會在下一篇文章中詳細說明。這裡就不展開了。

4. 十年後你的競爭力在哪裡

這一點就不展開了,我覺得憂患意識是一個很好地品質,有憂患意識並付出行動同樣也是。

對於如何確定自己是否還有競爭力,最直接的辦法應該就是時常出去面試一下。看看市場需要,也檢測自己。

5. 有效地評估開發時間

於江水大佬寫的挺好的,我就直接搬運了。

如何能評估比較準的工期呢?一個很簡單的公式送給大家:

需求非常明確而且經常這樣做:自己評估時間 * 1.5 需求不夠清晰,有可能變,但是代碼和技術方案熟悉:自己評估的時間 * 2 需求不夠清晰,代碼和技術方案也是新的,需要探索:自己評估的時間 * 2.5 or 3

自己評估的時間一般會留點 buffer,自我感覺應該沒問題,實際上開發過程可能會有各種會議、需求和技術方案變更或者突發事件。所以多留一點 buffer 會更好,因為這個時間點可能是下游運營活動上線時間點,評估後業務方覺得太長可以砍需求拆成兩期或者調整上線預期,但一旦設置了時間點,不應該跳票。如果你比預期早完成上線,皆大歡喜,如果你一次次的告知業務方還需要延期一兩天,效果正好相反。

結尾

想要提升自己的能力,我們必須付出很多時間。對應的娛樂的時候就需要減少。這個道理大家都是清楚的,但是能做到的卻不多。

最後提幾個建議:

  1. 注重長期的可能性,而不是短期的快感
  2. 無論如何一定要做好持續學習的計劃
  3. 技術之外的能力也很重要,比如表達能力、思考方式
  4. 系統的學習基礎知識很重要,不要急於求新

其實說到底就是需要有持續學習的能力和渴望,如果加班已經嚴重影響到學習,那麼這些人肯定會適時的考慮自己的職業規劃。

"

相關推薦

推薦中...