前言
咱們常常在網上會看到這樣的文章,你的同齡人正在如何。這是典型的販賣焦慮的文章。的確,現階段,剛畢業幾年的年輕人,面臨車,房子等的壓力有時候壓力挺大的。但你過分焦慮的話,天天生活在恐慌當中,你會發現你生活過得一團糟。對比一下,不少國家的底層平民,典型如印度,一點不焦慮,樂天知命,反正永遠上升不了,得過且過。因此,適度的焦慮也許是成長的代價,咱們要把握好一個度。程序員
有時候,我也常常在想,到了30 多歲,我本身會是怎樣的?是繼續奮鬥在一線寫代碼,仍是作技術架構,或者轉行,創業等等。說話實話,我如今也是一臉懵逼,將來是怎樣的,我也不肯定。但有一點能夠肯定的,我一直在追求更完美的本身,提升本身的核心競爭力。web
今天,站在個人角度,一塊兒來聊聊職場技術人的成長曆程。在我看來,如下幾個方面尤其重要。設計模式
自學能力微信
覆盤總結能力架構
技術素養app
自學能力
剛開始實習的時候,覺得工做了,技術就能夠日新月異,由於想着有人帶了。等到工做了,才發現仍是 too young,too simple。
性能
在工做中,遇到不懂得,90% 的問題須要你本身解決的。相信工做中的人都深有體會,第一:同事也有本身的任務須要完成,不可能你一碰到問題,就想着會有人幫你解決。第二:工做中,每一個人都會有本身的分工,有時候遇到的問題,每每是特定場景的問題,若是以前沒有遇到過,一時之間也很難幫你解決。頂多提供一種思路。搜索引擎
所以,自學能力真的很重要。具體來講,表如今如下幾點。google
第一:善用搜索引擎spa
說句實話,技術遇到的問題,只要不是最新的,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 的事情。尤爲是技術深度,業務洞察能力。後面有時間,再單獨寫文章與你們探討技術深度的問題,由於我如今也不是有特別深的理解,哈哈。
記住,職場中,作好本身本職工做的同時,請記住要培養本身的核心競爭力。公司只是你工做的一個平臺,不是你的所有。你離開了這家公司,你還能瀟灑地生活嗎?
以上僅屬我的意見,某些地方有些紙上談兵,不喜輕噴。
推薦閱讀
掃一掃,歡迎關注個人公衆號。若是你有好的文章,也歡迎你的投稿。
本文分享自微信公衆號 - 徐公碼字(stormjun94)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。