前端遇到瓶頸了怎麼辦?
做前端一年多,現在感覺不知道該學什麼了。
簡單說一下我的項目經驗。之前大部分項目都是以微信公眾號的網頁為主,主要是用React來做單頁面應用。最近被發落到去寫小程序了。Raect這方面我不知道該怎麼深入來學,而小程序的開發技術跟目前前端的主流趨勢比實在太落後了,做完小程序後完全感覺不到實力的提升。因為最近一個月處於項目空閑期,基本沒任務做,於是自己想了一下該去學什麼。
- 手機app開發。做移動web時就感覺到了網頁的局限。手機app的功能很多都難以實現,一個掃二維碼的功能都很難做的跟手機app一樣好。還有那些下拉刷新之類的動畫也是很不流暢。然而做手機app又不知道該選擇安卓還是ios,RN這玩意到底多少公司用也是個問題。
- 後端開發。一直以來都有折騰node,因為開發React和小程序需要用到webpack和gulp。node的有名框架都有簡單嘗試,還有也寫過一些爬蟲,但個人覺得用node寫後端感覺不到爽快。有實際的後端開發體驗,公司後端用的是rails,項目中我也有寫過幾個API介面,雖然rails寫起來挺不錯的,但ruby這語言在外面會有多少公司用呢?其他語言的話,php、python、java都嘗試過一下,但不知道學哪門語言更好。
感覺完全不知道該怎麼學下去了。
瀉藥
換點別的語言學學
通常學完回來就不是瓶頸了
你先要想清楚什麼才算進步。換句話說,為什麼老闆更重視某些人?為什麼有人能帶領千軍萬馬而你只能被帶領或者帶領一兩個?弄明白這一點,比學什麼都重要。
在讀渣本大三強答一下。
看了下題主的描述,覺得題主現在的技術水平和我有點相似。上一年我也是學了vue和react全家桶,分別用這兩個框架做過兩個項目(有微信開發也有spa應用)。最近也是剛好沒有項目做了,有段空閑期又不能去實習,所以也靜下心來思考了下接下來的學習計劃。於是整理出三點思路,供題主參考也希望大佬們可以點撥下我哈哈。1. 做前端的不能一點都不懂後端的東東,所以選一門後端語言和資料庫來寫一下api是很有必要的,我個人上還沒這方面的經驗,所以需要加強。感覺題主在這方面就比我好很多了。2. js基礎內容的深入。前輩們都會一直強調基礎基礎基礎,依據我個人理解,前端的基礎的主要內容就是js這門語言的基礎。因為我們寫代碼時就是用js,所以至少這門語言的所有知識點都得明白吧?除了被說爛的閉包繼承什麼的,還有非同步線程,es6/7語法等等。目前我是通過看js高程和js權威指南,再搭配博客來學習。
3. 工程化方面的積累。一開始做項目時什麼都不考慮,腳手架上引入框架全家桶就直接開始擼業務代碼。寫了一兩個項目後會開始注重前端的工程化知識。我所理解的前端工程化就是如何把整個項目當做一個工程來處理,並自動化一些重複操作(全局數據的處理,模塊劃分,組件分離,代碼分割)。現在大家都知道寫項目用webpack+全家桶,但我們要去思考引入vuerouter是為了什麼,vuex處理數據又是一種什麼思想,和redux有什麼不同?最後還有一點我沒加到上面的計劃中是因為覺得現在個人能力還不足。這點就是理解你所用的框架源碼。無論前端三大框架你用的是哪個,不能只停留在熟練調用api的程度,要知道這些api背後做了什麼,這個過程不一定要自己去看源碼,可以先看別人寫的一些源碼精讀文章。然後你會發現源碼上用了不同的設計模式,然後你又要找幾本設計模式的書籍去研究下了。
我覺得這一套下來夠我學一年半載了,學完後可能對前端又有新的認識呢?以上只是記錄我學習中的一些想法,寫出來和題主分享下吧。當然更希望大牛們能指出我的思路上的不足哈哈。謝邀。
感覺不知道學什麼了?不知道學什麼就別亂七八糟什麼都學,把自己以前學過的深入再操練一遍。
不要以為學得好就等同於學得廣,千招會不如一招精,我敢打包票,你要是一樣東西學得深就絕不會有不知道該學什麼的感覺。我建議學英語。
我自己也感覺有進步緩慢的問題,於是我開始留心觀察自己和身邊的前輩有何區別。
當我遇到HTTP的GET/POST方法選擇問題後,我是去查掘金(某個中文社區),而我選擇完成後,push代碼,前輩review的時候,他查的卻是是RFC文件。
我一下就感覺到了英文的重要性。
正是因為我英語水平不行,遇到問題只能去看中文的MDN、去中文的社區提問(sf.gg)、去查其他人博客中的使用心得。查閱的都是二手資料,而那些厲害的大牛遇到問題卻可以直接去看ECMA規範、W3C規範、第一手的MDN。
雖然我還沒有做到,但是我相信:
如果我有和中文一樣流利的英文水平,如果我看的是英文的MDN、查的是規範文件原文、用項目直接看項目README.md/doc,如果我遇到問題直接去查閱Github的Issue、去stackoverflow提問
如果是這樣,我相信我的水平將會比現在好的多得多
謝邀,說說我的建議吧。
前段時間我準備Live「如何自學Java:入門與編程技能訓練」時,為Java自學者規划了一條學習路線圖,我把它貼在下面:
現在是移動互聯時代,需求量最大的是掌握移動互聯應用開發技術的程序員。按照題主的自述,現在只是掌握了前端這塊,並且走的是React路線,那我推薦的是先學React Native,將自己的技術領域擴展到手機開發領域,然後再擴展到Web後端,Web後端技術有N種,題主說的Node.js,還有Java那塊的Spring等,選一種學就行,很多都是相通的。
學習的關鍵是掌握的各項技術要能相互配合,而不是各自隔絕的孤立的技術孤島,這個時代的移動互聯應用開發工程師,應該具備靈活應用各種技術和工具,開發與設計一個完整的移動互聯應用的能力。
等打通了Web前端後端,成長為一名「全棧Web工程師」,基本上工作機會就多很多了。
有遠見的人,吃著碗里的,看著鍋里的,下一波技術浪潮是智能應用開發,高潮到來預計還需要好幾年,現在提早布局準備,到時正好可以趕上。
以上建議,僅供參考。
實習第四天
以為node後端很好用
後來發現java後端有一些小功能node沒有比如漢字轉拼音以為vue組件是一個功能一個大組件
後來發現做的都是可復用性的模塊
還用到了基本沒碰過的directive以為前端只要請求後端數據就行了
後來發現做一個聊天應用用到許多ws知識以為前端是看psd來寫頁面的
後來發現有專門的html設計稿以為任務都是在線聊天討論分配
後來發現有一套自己的工作進度分配系統以為git只用到了git clone, git push
後來發現git reset, git force...用的也挺多以為界面都是手擼
後來發現什麼vux, element-ui...以為移動端只用rem
後來發現有一套移動端適配方案以為微信插入視頻很簡單
後來發現x5內核有個大bug以為我是前端工程師
後來發現自己什麼也不是這是目前實習四天學到的東西你還有不知道學啥的時候。。。我們一般人都是咋又冒出個新技術。
rails建議繼續學下去,然後去node社區造輪子
學的廣有卵用,除了吹牛逼真沒啥實際用處,當然,自己感興趣的除外,你要能把一樣東西學精,然後能反推業務,對公司創造價值,那你職場上才能666,學那麼多樣樣都是demo水平沒什麼用
來吧,跟我一起擼源碼,jquery,vue已經通關,在搞webpack。瓶頸?不存在的,只有鬥志和絕望。
重複做同樣的事情,遇到瓶頸是很正常的。
要解決問題,重點是你知道為什麼自己要學習,而不是為了學習而學習。
這裡就說從 React 出發的學習路線。你可以掌握新的 ECMAScript 規範,甚至學習更加底層的東西。
React -&> ES6 -&> ES7 -&> ES*
React -&> JavaScript -&> V8
React -&> Type (TypeScript, flow-type)
React -&> gulp, grunt, node-script
另外,你也可以學習一下 webpack, babel 這些前端比較常見的東西。
其實還有一種方法就是學習 Node.js,然後你就會發現自己對 linux 的認知不夠深入,然後就會學習各種各樣的 linux 特性和細節。
出去面試一下,把工資開高些,你就會發現自己差在哪裡了,親身經歷,現在不敢說自己有瓶頸了
1.把基礎打紮實很重要。就比如js這個強大的語言,掌握好原理之後就能舉一反三,會讓你今後的前端學習中省去很多不必要的精力。
2.如果題主想往全棧架構師方向發展,建議梳理清學習路徑,有計劃的去學習。個人推薦Web全棧架構師,對標百度T6-T7 - 網易雲課堂,內容全面,有深度也有難度,適合至少一年以上的前端開發人員,系統的提高研發實力,大致達到一線互聯網企業中高級工程師的水平。題主可以借鑒學習一下。
這不是瓶頸,只是階段性的迷茫,試著把對自己的要求提高一些,實力的提升不是學到了哪些新技術,而是解決了哪些新問題。
你確定你做好了小程序么?沒有什麼是不能進步的,只是你太浮躁了,可能基礎都不夠
深度打不下去,不要緊,橫向走一走,看問題的角度拓寬了,極限很容易就破了。
知識的深度和廣度是互相影響的。
以蓋樓做比喻,一平米大小的地基,是絕對蓋不起幾十層高樓的。同理,把精力都用在平鋪巨大的地基上,蓋樓的速度也會大大下降。我想說明的是,當你對一個知識感到難以突破時,往往意味著你的地基需要擴建了,眼界需要拓寬了。精研各路技術,然後你才知道每個技術的優缺點和適用場景,你才剛開始進入行業,完全沒必要把自己限制在前端里。因為其他的技術你都沒見識過,你怎麼敢說對其他的技術都不感興趣呢?難不成我們這麼多年上學,都只學習一門課么?不學語文,數學能學好么?不學英語,計算機能學好么?不廣泛涉獵,你怎麼知道自己興趣在哪裡呢?怎麼知道自己對什麼不感興趣,什麼快淘汰了,什麼有用什麼沒用呢?
君不見,業界的大牛架構師總監數據科學家cto們,都是多超多精多強,而且比你用功。試想一個只會前端的程序員,就算他前端做得再精,在職業上的想像力也很有限,你能想像公司的cto或者總監只會前端么?或者你把自己的職業規劃限定在熟練工上。
我還喜歡用武俠做比喻,須知江湖最強的九陰真經,是包羅拳腳刀槍萬象的秘籍。另一方面,哪門哪派的掌門人不是各路武術都精通的?
所以問題在你對自己學習能力的評價上,如果你自認肯用功,頭腦聰明,前途無量,那何必只學一門功夫呢?
所以按掌門人的要求來要求你自己吧,這樣才能開宗立派,遇各路強敵而不怵,江湖上自然就會有你的名號。不知道學什麼了,就跟我來學寫框架。年輕人切記浮躁(雖然我也是年輕人...
Luy一個類React框架
覺得題主有點浮躁哈 ,先靜下心來 ,確定好方向。我覺得你現在正在做著前端 那就暫時好好的去專研Js哈。學習遇到瓶頸反正我覺得不存在的,你經常用React,那你清楚React的原理了嗎,能自己模仿出一個小型的React了嗎,知道常用的框架里的工具是怎麼實現的嗎,常用的演算法設計模式掌握的如何。反正我自己覺得我是學不過來了,哈哈。
在此給樓主一點建議,不要在乎學啥,要弄清楚你想學啥,先給自己一個清楚的定位,先靜一靜緩一緩,放慢下自己的腳步,思考清楚了下一步要往哪裡走再開始,不然也只是盲目的,沒有效果的
看到在知乎上對工作有所迷茫的程序員,還是想來分享下我們自己的技術,但本著知乎社區知識共享的原則,只簡單介紹下APICloud平台,不做主觀推薦,至於題主說的選擇,跟自身工作環境有關,也與個人擅長領域有關,若問前程,很多人再走五年的路也未必能告訴自己什麼才是正確的!
APICloud是通過web技術,一站式開發iOS、Android原生App的平台,從平台特點角度說——
1. 一般APP開發至少需要建立Android、iOS兩個開發團隊,開發時間相對較長,團隊成本也會相應增加,APICloud採用混合APP開發,用HTML5技術開發同時生成Android、iOS 原生應用,相對節省時間與人力成本。
2. 開發出的APP與原生APP從體驗上並無太大區別。一方面APICloud推出的Deep Engine使用半翻譯式原理,運行中將Web翻譯成Native API,通過混合渲染引擎提供更好的性能體驗。另一方面APICloud平台聚合了很多用Android、iOS原生開發的功能模塊API,開發APP時直接調用這些原生API便可滿足相應的功能需求。
3.原生APP也可以使用APICloud,APICloud在2016年推出了SuperWebView功能,就算已經有原生APP,在APICloud平台,通過雲端配置,一鍵生成跨平台專屬SDK,導入到原生項目中,就可以輕鬆調用APICloud上聚合的API了。基於SuperWebView開發的功能支持動態更新,不用再經過AppStore的審核,用戶也不用重新下載便更新到新版本,將版本迭代周期縮短到,提高原生團隊維護APP的效率。
推薦閱讀:
※參加中國前端開發者大會2016是怎樣一種體驗?
※前端開發和網頁製作是同一個職位嗎?
※為什麼前端工程師都比較討厭微軟?
※新手的對於前端組件化開發的一些疑問?