「南寧IT圈」發起者零總前幾天跟我說,最近陸續會有一些線下交流活動,問我是否有什麼東西可分享一下的。剛開始我想分享一些具體的技術方案,但由於雖然參與過的項目比較多,卻沒有一直跟到如今的項目,所以有些東西時間久了感受拿出去講意義不大,而且這些相似方案網上也隨處可見。還有一點,我本身熟悉的技術,有時候總想固然地覺得別人也差很少都懂了,貌似沒什麼黑科技,所以沒什麼可講。前端
幾天過去了,我要分享的主題還沒定下來,不過跟零總的此次交流,卻是觸發了我回顧回顧本身這些年職業經歷的興趣,我把這些經歷、所思所想歸納爲一個技術人成長過程當中的得與失。後端
我想每一個人在成長過程當中,都免不了在得失中搖晃,對我來講,未來如何更好地去平衡得失,是須要思考的問題,而對新入行的年輕人來講,能從我這些總結中得到一點點啓發,那我也會頗感欣慰。這,也是我對技術人成長中得失總結的意義所在。架構
做爲技術人,咱們首先要考慮的是技術上的成長,而關於這個話題,通常又有如下三種說法,即深度優先,廣度優先,或者兼而有之。框架
深度優先也就是縱向發展,即將大部分精力放在某個技術方向上,而後成爲這個方向上的專家。好比有些人,畢業後就一直作桌面軟件開發,這樣十年後就成爲桌面軟件開發方面的專家,有些人一直使用Java系技術進行開發,長時間後也能夠成爲Java開發方向上的專家。這些人在單個方向上有很是豐富的經驗,能夠快速解決這些方向上的各類技術問題,或者給出技術方案。目前來看,大廠比較青睞這類技術人才,他們在本身的方向上都能獨擋一面。運維
廣度優先也叫橫向發展,通常來講就是接觸各類各樣的技術,使用各類各樣的框架,既參與前端開發,又參與後端開發,甚至參與運維或測試。這類技術人涉略面廣,什麼都懂一點,雜而不精。不少創業公司都須要這樣的技術人員,在公司起步時,這類技術人員能夠迅速建構公司的技術體系,比較清楚公司須要哪些技術人才組合才能打造出一個完整的產品,而本身工做時也有些面面俱到的意思。而後等公司發展上了規模,系統面臨更大的挑戰後,就須要招聘前面提到的各個領域的技術專家來負責大系統裏面的各個子系統。學習
兼而有之的就是技術大牛了,既符合前面對技術專家的要求,也符合雜家的要求,技術方面既有深度又有廣度。畢竟人的精力是有限的,要既有深度又有廣度,有時候比較難以達成,這種可能須要環境的成全並加上我的的努力和天賦。固然也有人說,就目前不少人的努力程序,要在職場混得好還根本不須要拼天賦,努力就夠了,哈哈。測試
我曾經看到過一些技術人員,花了不少時間去記憶一些非本質原理的東西,而這些東西,使用的時候查查文檔就能找到了。固然你能背下來是更好的,不用查文檔了,可是人的腦容量應該是有限的,咱們應該花精力去理解並記憶那些屬於本質原理的內容。後端開發
基於這些本質原理的具體實現可能有不少種,若是咱們理解了本質原理,之後再碰到各類具體實現時都能較快地理解了。不然,具體實現變了,你又要去記住它,而具體實現多種多樣,你怎麼能記得完。所以,咱們應該抓住本質原理,瞭解一兩個具體實現就行了,這樣也能達到以不變應萬變的效果,不變的是本質原理,變化的是具體實現。開發
我本身在多年的學習中,沒有注意學以至用,這也是我一個多麼痛的領悟。我曾經學習各類各樣的理論知識,而後以爲本身高人一等,但這些東西在個人工做中基本用不上,而隨着時間的流逝,這些理論知識也慢慢從我記憶中消失,當我再遇到它們的時候,只有似曾相識的感受,卻已經沒法理解其原理或思想。文檔
而另一些人,由於業務場景的需求,深挖某一方面的技術,從應用程一直到系統層甚至到硬件層。這種學習方式就是按需學習,也能夠認爲是根據使用場景進行學習,任何技術都是爲了解決某些使用場景下的問題而出現的。由於有了實際的使用場景,這種學習的效果就會好得多,記憶也會更深入,所以是我目前比較提倡的一種學習方式。
固然咱們在學習的過程當中,也會進行適當的延伸。好比你在學習一種新的技術時,這種技術又跟其它技術有關聯,甚至是從其它技術衍生而來的,這種時候你可能又得回頭去先學習一些前提知識,而後再學習眼前要掌握的技術。但有時候咱們也會發現,若是一味地延伸,咱們何時都回不到當下要學習的這種技術上來,這個時候,就要講究適當延伸的問題了。也就是說,咱們回頭去學習那些前提知識的時候,學到不太影響咱們理解當前要掌握的技術就行了,而不是一直延伸下去,這樣猴年馬月都拉不回來。
當你以爲理論知識太抽象難以理解時,可能須要動手去實踐以加深理解,而當你以爲實踐沒有頭緒時,多是須要補補理論知識了。所以,理論與實踐老是相輔相成的。沒有理論的實踐就像無本之木,沒有實踐的理論就像空中樓閣。
以我自身的經從來說,我曾經花不少時間去學習一些本身暫時用不到的技術框架,網上的各類文章都看,並且感受文章一篇寫得比一篇好,貌似本身收穫很大。然而由於沒有實踐,我對不少概念只知其一;不知其二,直到咱們項目親自須要使用的時候,我才親自用那種架構方式去搭建系統。當我搭建完系統後,我才發現,我根本不須要花那麼多時間去看別人的文章,若是我沒有親自去搭建,可能我還會再花不少時間去看相似的文章,卻可能永遠達不到深入理解的程度。
所以,技術是實踐出真知的,有時候真的是:幹就完了,不然,你會有相似這種困惑 – 爲嘛聽過無數的道理,依然過很差這一輩子?
提及跳槽,咱們幾乎都不陌生,而技術人員流動性相比其它工種的人士更強。網上不少人都談論過這個話題,在這裏我仍是不能免俗地要拋出本身的看法。
我認爲,職場初期,適當花心是能夠的。由於這個階段的咱們,每每不太清楚本身到底想作什麼,適合作什麼。這樣的話,就須要更多的嘗試,嘗試不一樣的崗位,若是能有幸找到本身感興趣的崗位,那麼基本就是值得本身從此多年精力投入的方向了,你要知道,職場上太多人,只是爲了謀生而從事一份工做,根本作不到樂在其中。
當你找到本身的方向後,建議沉澱下來,從技術、行業業務角度去構建本身的核心競爭力。這種狀況下,若是其餘方面問題不大,不建議頻繁跳槽,最好在一個公司多呆幾年,學到如何開發產品、如何運維繫統、若是運營產品等知識。而不少技術人,可能只看到產品的功能,以爲這種功能技術上不過爾爾,感受呆下去限制了本身技術的發展,因而就頻頻跳槽。這樣的技術人,到最後就變成了只知道不少軟件產品各個功能實現原理,卻徹底不懂得如何去運維去改進產品,更不用說運營了,然後面這些東西,卻可能在一個技術人的核心競爭力中佔據更大的比重。
不少年前,有個在代碼界略有名氣的人在網上說,剛開始他以爲是數學限制了本身的發展,後來以爲是英語限制了本身的發展,再後來發現,其實那些都不是事,真正限制本身發展的,是本身的視野。
我也是比較贊同這個觀點的,你能想象一個天天只默默耕種本身那一畝三分地的人,可以去開疆擴土搞大事情嗎?所以做爲技術人,想要不斷地成長,一樣須要多關注技術發展趨勢,大的方面不說,起碼對本身所使用技術棧過去發展歷程和將來可能的發展方向有一點點了解,大概瞭解技術的演變史,這樣對本身的技術選擇可能會有些幫助。
還有一個開闊視野的方法是,多關注一下業界技術大拿。有很多技術大拿都有技術博客,你能夠常常去看他們的技術文章,而後從他們博客連接,你能夠了解到更多的技術牛人,向他們多學習。爲何這樣能瞭解更多技術牛人呢?你想一想,一個技術大拿,他博客連接或者微博關注的技術人,通常來講水平都是和他接近甚至比他更厲害的,而不會去關注菜鳥。你要理解大拿的這種心情,這種作事方式。所以,你瞭解了一個大拿後,都有一些辦法順藤摸瓜去了解更多的技術大拿,看看他們都在作些什麼,學習他們的技術分享,長此以往,你就慢慢地變成小拿,若是有足夠的毅力去努力,假以時日,你也許會成爲了別人眼中的大拿。
以上是我摸爬滾打這麼多年來的心瀝總結,坦率地說,其中某些方面,我本身作得也不夠好,對我來講,是多麼痛的領悟。這些經驗總結也好,得失總結也罷,不必定對每一個人都有幫助,但也許你能夠借鑑一下,若是對你真有那麼一點點啓發,那將是個人榮幸。
來自:技術人成長中的得與失