前言html
很久沒來博客園了,上次來博客園仍是寫這篇帖子:前端
那仍是兩年前,當時工做經驗三年,處於人生迷茫期,人生有過屢次抉擇,到現在,工做五年,距離當時已然兩載。node
現在再度翻開以前博客,體味到當時那懵懂、衝動、浮躁和迷茫的本身,內心不禁有感而發。react
兩年前最後的詢問是,路在何方?程序員
這件事,在兩年後的今天,或許我能稍微解答。angularjs
先來講說最近這兩年近況。web
現現在是程序員,前端、移動端工程師,技術棧IONIC二、React、React Native。
對Node感興趣,私下裏面自學一點兒nodejs。面試
當時我處於懵懂的狀態,從發表文章的時候17年初,到17年3月份,我當時的狀態並未有多大的提高。
仍是懵懂和迷茫居多,當時寫完文章或許要下定決心搞點什麼,但卻在兩三個月間一直拖拖拉拉,並無太大的改觀。
因此,到了17年3月中旬的時候,我忽然就意識到,我不能一直都以這種狀態度日,身爲技術人,最關心的應該是提高。無論是經濟上的提高仍是技術上的提高,都須要如此。後端
紛亂的技術已經在16年過了一個遍,我當時公司的環境也並很差,周圍的人都很浮躁,由於老闆就很浮躁,最後移動端技術也束之高閣,我卻忽然鬆了一口氣。
搞技術雖然要蜻蜓點水,但卻有時候也須要直見本質,當時公司的環境已經阻礙了個人人生髮展,再待下去心態會出問題,信心也可能會受到影響。
當時公司有人工做5年以上,在一個水平很通常的公司工做如此長的時間,他已經很怕接觸外面的公司了,也不敢尋找新的工做機會,這件事讓我感觸很深,我聯想到當時的迷茫狀態,感受在這樣的公司繼續下去也可能最終渾渾噩噩,遂決定離職。前端工程師
提出離職到辦理完離職手續,已是5月份,在離職期間,我肯定了下家,也就是我如今呆的公司。
當時面試的時候和公司技術官聊的問題涉及的技術問題並不太多,更多的是從我自身出發,我陳述了我想要的東西:
一、技術能力的提高=====前端技術棧
二、技術在公司不邊緣化=====不是無關緊要
三、最好是公司核心產品=====產品受公司重視
技術官確保以上條件都知足,而且熱情地邀請我來公司。我幾乎是沒作過多思考,當天就應下這份工做,等到離職手續辦完,第二個週一,我就來公司上班。
而後我才明白,爲何公司對我說的技術要求都知足。由於有下面兩點。
一、公司規劃的核心產品要徹底重作,有初版,但要廢棄,新技術開始第二版。
二、當前公司移動端作此技術的只有我一個。我將會從產品的從無到有,全流程開發參與。
這份工做是一個坑仍是一個提高的機會呢?我初次知道的時候,是懵逼的,一時間翻轉不過來思想和邏輯。
由於曾經一直做爲小弟,在某技術帶頭人的領導和指導下去研究去開發,或者是在成熟產品基礎上寫代碼。徹底從零開始負責一個項目,對我來講是個極大的挑戰。
怎麼忽然間就要從小弟晉升到大佬?
因此,當時的決定就是,我要去找個新的工做,或者逼本身一把,將公司的產品接起來?
個人決定是接起來!
第一,我已經工做三年,雖然研究過angularjs,而且從零開始作過移動端項目,可是卻也離不開領導的指點和指導,因此並不算真正的把控到產品的每一個角落。不過已經有了一些技術的積累。此次從零開始,徹底是對本身更高層次的考驗。
第二,移動端技術突飛猛進,新的技術對我有着極大的吸引,那就是在IONIC2和React上進行選型。
當時並未想要利用RN來作,由於還有一種想要基於全平臺均可用的想法,因此就是用Angular2或者React作,若是要打包成不一樣平臺,則須要更改少量代碼即可。
公司當時的前端團隊(web)端已經着手開始利用react進行網頁開發,因而從公司技術棧的統一性考慮,我開始研究用react來寫移動端項目。
項目的web端初期進行的異常順利,web端後臺管理系統在任務管理的幫助下你們都完成的很快,可是移動端只有我在慢慢的從入門到開發,兩個月的時間,只做出了很粗糙的部分功能頁面。
web端5人團隊實際上是從地方分公司來京支持,兩個月時間完成後端管理系統的開發以後,便離開了京城。
因而公司北京前端團隊再度剩下我一個,因爲web端其實來支持作的只是後臺管理,那麼用戶端的功能其實一點兒也沒作,而我又是作的用戶端的移動App,因此他們的兩個月,也只是讓我對業務融會貫通而已。
不過所幸,業務的清晰明瞭,讓我不至於對產品作不下去,仍是有許多的新的研究和實現要在接下來的研發工做中進行。
項目突然間着急了。
做爲創業公司,雖然公司有分公司,可是主分公司人加起來也是不到50人,公司也來京不久,項目要在10月份上線。
時間緊,任務突然就重了,我初接觸react而且不是用RN來寫移動端,中間每一個項目的功能可能都要去調研一下各類組件的優劣,甚至有的功能組件實現不了,還須要本身在js端寫組件自行實現。
面對各式各樣的需求本身從新開發新組件也大大的拖慢了開發節奏,按照我一我的這樣的節奏來,在10月鐵定是上不了線的。
因而,執着於追尋前端技術統一性的建議獲得了商討,雖說技術選型統一,之後再前端方面的工做能夠給予很好的支持,人人可改Web或者移動端項目,但如今顯然短時間內很難作到。
因此,爲了快速的將產品作出,商討以後,還利用我已經具有的IONIC知識進行產品的技術變動。
IONIC1正是我給上個公司作App用的技術,由於從零開始過成熟些(賣得出去)的產品,因此對於技術變動也沒太大的抵觸,而且IONIC提供了各式各樣的組件,能夠簡化我用react開發拼命尋找各類各樣組件的流程(當時react移動端框架是用的還不成熟的antdesign-mobile,如今看依舊是有些不成熟,螞蟻技術人彷佛只是爲了開發一個框架而開發,更多地關注仍是在antdesignweb版)
若是公司的技術是用的IONIC1,那麼我來到公司緊鑼密鼓的用已經熟練掌握的技術作產品,其實成長性仍是不夠的,那麼就遇到了一個問題,用IONIC1仍是IONIC2。
也就是說,核心用Angularjs仍是用Angular2.
公司很快意識到我一個移動端研發工程師的捉襟見肘之難,因而從分公司請來另外一位hybrid研發工程師,想要在8-10這短短的兩個多月的時間將項目做出。
新來的工程師初步接觸hybrid開發的時候,便已經遇上了Angular2的打好年頭,因此他的技術方向確定是IONIC2和Angular2。
因而我以爲技術提高的時候來了,遂和領導商定,要用IONIC2,這樣還能夠對Angular2作一番研究。
其實IONIC項目已經儘可能避免你去知道Angular,不過加上以前對angularjs的瞭解和對Angular2文檔的瀏覽,讓我以爲從IONIC1到IONIC2並非一個錯誤的決定。
而且我發現以前研究兩個月的react其實和Angular2大同小異,更別說聽小道消息Angular2正是Google看到了React的實現重寫了Angular1,因此二者都是ES6語法,從js端來講,除了jsx以外,幾乎是一套東西。
如此我用2代技術開發也能很快進入到角色,更別說新來的幫手是一名IONIC2的研發工程師。
我和幫手在一週的互相討論和研究中,我將項目中所涉及到的業務點和多是技術難點的地方和他作了深刻的探討。而且一週時間,他也將IONIC2技術大致的給我過了一遍,萬事俱備,只欠開搞!
開搞!
項目異常的順利,順利到讓人有些不可思議,IONIC2在開發效率上要比IONIC1有了一個質的提高,而且在性能上要較上一代IONIC1有了巨大的提高,雖然還比不上純RN項目,可是在手機端和Pad端逐漸配置走高的時代,這些都不是問題。
這個項目從零到有,從技術選型到技術變動,中間我都經歷了一小段時間的陣痛期,可是陣痛期過去,即是坦途。
因爲業務吃透,技術肯定,雙方都十分熟悉,兩個月的時間,項目也終因而成功上線,而且獲得了不錯的反饋。公司和項目組都是鬆了一口氣,別的不說,我本身也感受總體獲得了提高,整我的感受不同了。
支持的同事離開公司,項目後期的工做我來維護和開發,雖然再度移動端只剩下一人的狀況下,但作維護來講也是遊刃有餘。更別說,項目還只是涉及到iPad端的實現,單項目維護對我來講不是問題,畢竟在上個公司就負責而且維護過一個手機端項目。
起初,對於沒有利用React來作項目或者用RN來作項目還會感受有些遺憾,畢竟React概念大火特火,前端工程師不搞這個,貌似都很差意思說本身是前端。
不過等到項目完成,加上兩個月對於React的瞭解和做出一版粗糙產品涉及到的痛苦學習和實現流程,讓我並無感受到太多失落。
而且我也明白了一個私人認爲技術人看待問題的一個該有的態度:
技術並不重要,重要的是用技術去獲得最優的實現。
在當時狀況下,毫無疑問,做出一個合格線以上的產品纔是第一需求。
其實前端技術說到底仍是js,無論是React、Angular、TypeScript仍是CoffeeScript亦或者VUE,其實都是js。
在我理解下,爲何會有這些新興的感受和技術,就是由於前端的不肯定性和開放性,以及大公司的競爭性。
毫無疑問,當Angularjs剛出道的時候,Facebook不可能沒紅過眼,總不能總讓Google搶佔技術領域,本身也要發聲纔是,因而推出了react。
有了ionic,因而FB又推出了RN,沒辦法,就是剛。
從技術上我給予更優秀的實現來達到籠絡技術人的目的。
任何一種新技術的誕生和發展,都是由於有的人以爲現今的某種技術不酷,或者不欣賞,想要本身搞事情搞出來的。
前端更是如此。
因此,對於前端工程師來說,最本質要掌握的仍是老三樣的發展,HTML、CSS、JS。其餘的前端技術,其實都是在js的基礎上老瓶裝新舊而已,掌握了最根本的東西,無論技術如何變,始終都不會失去核心競爭力。
從我職業生涯到這個項目完畢,我幾乎是從桌面前端技術到移動端技術都接觸了一遍。
WinForm、WPF、jsp、React、Angular,私下裏對比React和Angular的時候我還研究了一下Vue,還真有吾等宅男閱片一千便啥都同樣的感受。
從離職到新公司的發展,是在我期待以內,更別說接下來的一年,也就是從去年十月到現在十月,公司除了維護項目以外,也有野心在手機端佔領業務領域,我相繼又是參與到了Web端業務前端的React項目和手機端RN爲主導的手機端項目的開發之中。
一年時間,已然是一個前端老鳥,雖然美感並很差,可是根據原型和產品設計作出來的東西也並不太差,React和RN也概括成爲了我技術棧的一部分,我私下裏也在看一些Node相關的知識,爲公司的項目寫過幾個nodejs的小工具,前端技術算是開花結果。
前端技術,沒有優劣,無論是JQuery時代仍是現在的React時代,其實對於當時的技術發展來講,都是有推進做用,都有優秀的東西在其中。就算現現在JQuery看起來並不流行,可是咱們在生活中仍是時經常使用到。
這些框架的設計給予了前端一種新的活力,你們更欣賞的仍是突飛猛進的新型設計和實現所表明的思想變動,只有在前端思潮變動中,抓住前端變動的本質,而且保持對前端的熱情和持續學習的能力,那麼,你永遠都不會過期。
時至現在,再回到開頭的話題。
兩年前路在何方,到現在也不用多說,道路天然已經肯定,沒有迴避作技術的現實,沒有作程序員死路一條的悲觀觀念,要有的,只是對自個人提高的一種追求。
路在何方?提高本身,豐富人生,即是一條永遠適用的康莊大道。
那麼這兩年我明白了什麼?
新公司一年多,感觸頗深,可是卻沒有了兩年前的浮躁和不沉穩,也懂得活在當下,學在當下,而且計劃在當下的重要,迷茫和彷徨或許是必經的職場之路的一個階段,可是迷茫和彷徨以後,是爲了讓咱們變得更好。
若是你變得更差了?或許是迷茫以後的選擇並不正確,或許你依舊停留在不思進取的氛圍中,請逃避這樣的本身,積極的面對新的改變,或許才能真正的找到人生的真諦。
以上一家之言,是對兩年前那篇文章的解讀,若是能幫到您,感激涕零,若是有什麼有失偏駁和欠妥的地方,還請指出,探討交流您的見解。總之,放棄傲慢和偏見、摒棄浮躁和恍惚、堅決信念和追求,奮鬥吧!