致剛入職場的你 - 程式設計師的成長筆記
前言
我們經常在網上會看到這樣的文章,你的同齡人正在如何。這是典型的販賣焦慮的文章。的確,現階段,剛畢業幾年的年輕人,面臨車,房子等,有時候壓力挺大的。但你過度焦慮的話,每天生活在恐慌當中,你會發現你生活過得一團糟。對比一下,很多國家的底層平民,典型如印度,一點不焦慮,樂天知命,反正永遠上升不了,得過且過。所以,適度的焦慮也許是成長的代價,我們要把握好一個度。
有時候,我也經常在想,到了30 多歲,我自己會是怎樣的?是繼續奮鬥在一線寫程式碼,還是做技術架構,或者轉行,創業等等。說句實話,我現在也是一臉懵逼,未來是怎樣的,我也不確定。但有一點可以確定的,我一直在追求更完美的自己,提高自己的核心競爭力。
今天,站在我的角度,一起來聊聊職場技術人的成長曆程。在我看來,以下幾個方面尤為重要。
- 自學能力
- 覆盤總結能力
- 技術素養
自學能力
剛開始實習的時候,以為工作了,技術就可以突飛猛進,因為想著有人帶了。等到工作了,才發現還是 too young,too simple。
在工作中,遇到不懂得,90% 的問題需要你自己解決的。相信工作中的人都深有體會,第一:同事也有自己的任務需要完成,不可能你一碰到問題,就想著會有人幫你解決。第二:工作中,每個人都會有自己的分工,有時候遇到的問題,往往是特定場景的問題,如果之前沒有遇到過,一時之間也很難幫你解決。頂多提供一種思路。
因此,自學能力真的很重要。具體來說,表現在以下幾點。
第一:善用搜尋引擎
說句實話,技術遇到的問題,只要不是最新的,80% 的問題都可以通過搜尋引擎找到相應的解決方案。記得,我剛入職場的時候,有一段時間,遇到問題的時候,第一時間總會問身邊的同事有沒有遇到這樣的問題。等他們比較空閒的時候,一般會跟你講解,忙的時候,也是叫你去百度或者 google 搜一下。
當然,搜尋的話也有一些技巧。這裡就不展開說了,建議大家多用 Google,Github,StackFlow。
第二:學會舉一反三
平時工作中遇到的難題,不要僅僅停留在表面,要通過現象去分析背後的原因。比如說,開發的時候遇到滑動衝突,通過搜尋引擎在網上找到相應的解決方案了。這是第一步,但還不夠,我們不僅要知道解決方案,更重要的是要了解為什麼要這樣解決?有沒有更好的解決方案。
如果我們僅僅停留在抄的層面上,bug 稍微變化一下,下次你還是解決不了。因為工作中遇到的 bug 總是千奇百怪的,但十之八九,掌握了原理,解決思路都是差不多的。
第三: 形成自己一套解決問題的思路
解決問題的思路,這個跟工作經驗有一定的關聯。資深的工程師,遇到問題的時候,對比普通的工程師,往往能較快定位到問題根源。這跟個人的積累和經驗有空,一時之間很難找到適當的例子說明。也許這就是隻可意會,不可言傳吧。
那我們平時開發中遇到的 bug,你的解決思路一般是怎樣的?
這種一般分幾種型別的 bug。第一: crash 的話一般比較容易解決,一般從堆疊可以看出資訊,再結合程式碼或者搜尋引擎可以定位到問題。
第二種:邏輯錯誤的 bug。這種型別的 bug,我們要先定位到大概的程式碼,再結合 log,看是哪裡出錯了。但有時候,使用者反饋回來的 bug,往往不是不是必現的,是偶現的。這時候,就需要一步步分析了。
覆盤總結能力
總結對於每一個人來說都非常重要,這點是毋庸置疑的。
相信大家也經常遇到這樣的場景。
- 這種型別的 bug 我以前遇到過,但一時半會不知道怎麼解決了。
- 我以前明明是這樣寫的,沒問題啊。
- 這種功能我以前做過,找了半天,找不到以前的程式碼了。
剛開始實習的時候,這種情況我經常發生。仔細想來,一般有以下原因。
第一:人的記憶性是有限的,不可能記住所有的東西
第二:沒有及時總結
還記得這句俗話嗎?好記性不如爛筆頭。平時我們看文章,或者跟別人探討,覺得某些觀點挺正確的。但事後就是想不起來,這是為什麼呢?這是因為我們只停留在表層,沒有真正轉化為自己內在的東西。你記性好,當時記住了。但你能保證十天,一個月,一年之後,你還記得住嗎?
做筆記的難得之處,是你的思考過程。當你著手記筆記的時候,你的大腦在思考,我要怎樣用簡短通俗的語言記錄下來。這在無形之中加深了你的印象。一段時間後,即使你忘記了,但當你回看以前的筆記的時候,我們往往會吸收地很快。
當然,我也不贊同一味地死記硬背。生活中的瑣事那麼多,不可能事事都記錄下來。挑選那些你覺得重要的,有感觸的即可。
那可能有部分問就會問了,什麼是重要的?這裡我發表以下我的看法。
- 開發中需要經常用到的。這些你肯定需要記住,不可能說每一次你需要用到,再去搜尋,這樣效率多低。
- 第二,一些疑難雜症。針對某些特定場景的 bug 或者需要注意的。
人的一生也是一樣,是一連串的故事組成的。我們的一生,究其到底,不過是所有經歷事情的總和。我們的昨天和今天,決定了我們的明天。就像種瓜得瓜種豆得豆一樣。
我們有時候就是有這樣的一種錯誤,覺得今的事情不用總結,以後需要用到的時候,以前所有的認知會自然而然得回來。這是,這只是我們找的一個藉口,為自己的懶惰的一個藉口。其實我們心裡明白,今天的總結會對明天有著莫大的幫助,但是懶惰總能戰勝我們的理性。
技術素養
前面這兩步做好了,在所在的技術領域專心工作幾年,不敢說你成為一名技術大神,但至少成為一名高階,資深工程師。
什麼是技術素養呢?
在我看來,包括以下幾個方面。
第一方面:技術深度和技術廣度。
作為一名技術人,技術還是最重要的。它是我們的專業技能,也是我們謀生的重要技術。
技術深度,簡單來說就是你在技術領域的鑽研程度。假設有 A,B,C,D 四個領域,我們在 A 領域有很深的鑽研和造詣,碰到 A 領域的疑難雜症,我們基本能很快地解決,這就是技術深度。而你如果 A,B,C,D 四個領域都有一定的瞭解,這就是技術廣度。
那怎樣平衡好這兩者之間的關係呢?
個人的看法是如果你想往技術發展,先鑽研某個領域,爭取有較高的造詣,之後再橫向發展,瞭解其他的領域,做到有一技之長,這將形成你獨特的優勢。
因為你在 A 領域有較深的造詣之後,你將有一定的不可代替性,這就是價值。而且,現在大公司分工明確,很多時候需要的是專才,而不是什麼方面都懂一點的人。當然,我不是不建議大家全面發展,只是說,先鑽研某個領域,再想其他領域擴充。
第二方面:大局觀
大局觀,簡單來說,就是看待事物的視野和角度。具體到技術人來說,主要是技術棧,技術方向的選擇,以及業務方向的洞察。
一個技術團隊的領導,往往需要有較好的大局觀。
主要表現對於各技術棧的選擇和比較、架構設計模式的考慮、設計策略等。一個良好的架構,往往能夠以最小的代價應對變化無窮的需求。同時,注意:架構的選擇,需要結合業務場景,脫離業務場景來談架構都是耍流氓。
業務能力的洞察,主要是指結合業務和技術,能夠做出合適的判斷,要清楚當下那些任務優先順序別比較高,做什麼事情收益最高。技術與業務是分不開的,在很多情況下,技術是服務於產品的。任憑你技術做牛,效果做得再酷炫,效能做得再好,產品沒人用,那就沒什麼卵用。因為在這裡,你的技術產生不了任何價值,而公司說到底,就是一個盈利機構,你覺得可能一直燒錢下去嗎?
當然,對於產品天馬行空,異想天開的想法,我們也要懂得合理拒絕,不能由產品牽著鼻子走。
舉一個例子,去年 去年“網傳中國平安產品經理與開發因「根據手機殼顏色改變app主題」需求打架一事”,這反映了一個公認的事實,程式設計師或多或少與產品經理存在著某些矛盾。最好的解決方案是,技術人懂點產品思維,產品懂點技術,考慮問題多從對方的角度出發。
總結
說到底,就是要培養自己的核心競爭力,形成自己獨特的優勢。而如何確立自己的競爭力,就需要我們逐步培養,技術深度,技術廣度,業務洞察能力等。做好每一項,都不是一件 easy 的事情。尤其是技術深度,業務洞察能力。後面有時間,再單獨寫文章與大家探討技術深度的問題,因為我現在也不是有特別深的理解,哈哈。
記住,職場中,做好自己本職工作的同時,請記住要培養自己的核心競爭力。公司只是你工作的一個平臺,不是你的全部。你離開了這家公司,你還能瀟灑地生活嗎?
以上僅屬個人意見,某些地方有些紙上談兵,不喜輕噴。
掃一掃,歡迎關注我的公眾號。如果你有好的文章,也歡迎你的投稿。
相關文章
- 獻給剛入職場的草根java程式設計師Java程式設計師
- 成長之路--論程式設計師的職業素養程式設計師
- 剛入職場初次面試程式設計師崗,這些情況的公司可別去!面試程式設計師
- 【職場筆記】遊戲工程師如何自我驅動成長?筆記遊戲工程師
- 程式設計師如何成長?你現在的職位和薪水真的配得上你的工作年限嗎?程式設計師
- Java程式設計師的成長之路Java程式設計師
- 程式設計師的自我成長之路程式設計師
- 一枚程式設計師的日常成長日記程式設計師
- 開源浪潮下程式設計師的職業規劃和成長程式設計師
- 碼工成長手冊:剛畢業的程式設計師如何快速提升自己?程式設計師
- [譯] 如果你不想走管理路線,程式設計師職涯要如何成長?程式設計師
- 阿里程式設計師整理的“Redis成長筆記”沒學完我就跪了,已入魔阿里程式設計師Redis筆記
- 《程式碼整潔之道——程式設計師的職業素養》讀書筆記(一)程式設計師筆記
- 程式設計師的成長秘籍:個人程式設計能力的修煉之路程式設計師
- 程式設計師如何擺脫IT職場的內卷困局?程式設計師
- 阿里畢玄:程式設計師的成長路線阿里程式設計師
- Java程式設計師成長路徑Java程式設計師
- Python入門筆記(程式碼中成長)Python筆記
- 程式設計師筆記|3個問題帶你入門資料建模程式設計師筆記
- Alibaba內部Java技術成長筆記,業界良心,程式設計師最愛Java筆記程式設計師
- Git 筆記 - 程式設計師都要掌握的 GitGit筆記程式設計師
- 阿里畢玄:程式設計師應如何選擇職業成長路線?阿里程式設計師
- 程式設計師未來會成為非常內卷的職業?程式設計師
- 程式設計師成長祕籍:個人程式設計能力的修煉之路程式設計師
- 如何確定自己是否適合做程式設計師?程式設計師的成長需要什麼?程式設計師
- 程式設計師的職業規劃!程式設計師
- 我打算寫一個《程式設計師的成長課》程式設計師
- 程式設計師到創業,成長之路的技能分享程式設計師創業
- ui設計師要養成哪些職場習慣呢?UI
- IT職場:程式設計師如何增加收入?程式設計師
- 《程式設計師的自我修養》-讀書筆記程式設計師筆記
- 最適合程式設計師的筆記軟體程式設計師筆記
- 三年開發程式設計師的職場經驗談程式設計師
- 程式設計師的職業素養(一)程式設計師
- 美工和程式設計師的職業病程式設計師
- 程式設計師職場之路,如何提升技術能力?程式設計師
- 羨慕程式設計師的高薪?你會讓你的孩子當程式設計師嗎?程式設計師高薪
- 成為最好的程式設計師的迷茫程式設計師