我從去年10月自學到今年開年春節,然後進入前端開發領域2個月的菜鳥。現在在工作中使用react,目前我遇到一個問題,就是:

我發現我現在能夠寫出來項目需求的業務代碼都是邏輯不強的代碼,經常會出一些莫名其妙的bug,我知道這是我代碼能力的問題,所以想在知乎求助,希望有人能給我指點,提升自己的代碼能力。


我大概回憶一下自己當初學前端的經歷,看書,當初還在大一的時候,參加了學校社團,需要開發web頁面,自此第一次接觸真正的前端,當時對知識的饑渴程度,就跟遇到了真愛一樣,天天泡圖書館借各種書來看,到大三,圖書館裡跟前端相關的書籍幾乎都被我看了一遍,而且自己還買了上萬塊錢的書,其實,就是一句話,系統化學習,不要相信什麼3個月學成拿上萬塊錢工資的培訓機構,自己老老實實從基礎理論開始學,然後github上研究大神源碼,像vue的源碼,jquery的源碼,當年本人研究了不下10遍……


第一,增強知識儲備。第二,鍛煉解決問題的能力。

1 增強基礎知識,然後拓展知識的廣度:

提到基礎知識,很多人認為js只是寫寫特效,ES6隻有let和箭頭函數,組件化就是import,其實這只是基礎知識中的基礎,這裡所說的基礎知識,是掌握高級技術必備的鋪墊,如果你還沒有搞明白基礎的js面向對象,ES6除了箭頭函數和let之外什麼也不了解,那還不算「基礎夯實」。

當你感覺自己基礎確實已經沒問題之後,你可以拓展知識的廣度,去學習演算法、操作系統、數據結構、網路原理,這些都會讓你對前端有更層次的了解,知道自己下一步需要什麼知識,而不是感覺「前端不就那麼點東西么」。

2 如何鍛煉解決問題的能力:

所以想要真正鍛煉自己解決問題的能力,就要從模仿開始。

如何模仿呢?

前期模仿一些簡單的項目,針對性練習你重點學習的部分,比如你正在學網易新聞的新聞列表,就不用關心它的數據交互或者用戶登錄是怎麼實現的。

中後期模仿一些通用的項目:博客、商城,你手機上的APP都可以是模仿的對象。

模仿只是開始,更重要的,是在實戰中積累經驗,多思考、多復盤。

你會發現自己的水平,在不知不覺中,穩中有升!加油!


出bug很正常,迅速發現解決就是了。

bug寫多了自然而然就有經驗了。

效率比較好的方法讓大牛給你codeReview,多問多記。


有些東西不是能自己悟出來的,因為這些代碼可能是經歷了一些你不知道的坑所提煉或總結的。所以需要看看別人的代碼。


你能寫出來的都是邏輯不強的代碼,這說明你的邏輯思維能力的還有待提高,

那麼這個問題呢,我建議你怎樣換成怎樣提高自己的邏輯思維能力,也就是在實際工作當中呢,你要把需求分析清楚。

把需求搞清楚就意味著你已經把一個大的需求切分成了很多小的需求,然後根據這些小的需求,它們之間的相互的關係,去設計你的代碼的結構,

我看其他的人有回答說讓你看個框架的源碼,這個我個人是持保留意見的哈,也就是說我不太贊同這個,一個工作經驗在三年以內的人啊,還是先積累一定的代碼量比較好.

看框架的源碼呢,最好是帶著實際的需求去看,就比如說你現在已經達到了一個瓶頸,你已經有了一定的代碼量,然後呢,你想讓這個代碼的組織的結構上,更上一層樓,這個時候呢,你去看一些前端框架的源碼會比較好.

更多內容、學習方法,前端技術,請關注公眾號:【web前端教室】

回復:資料,得到一整套【JavaScript核心與實例】視頻教程

回復:js,拉你入前端學習群


我不太清楚你說的編碼能力是指的哪裡?如果是代碼的規範可讀性,健壯性還有完美的代碼結構,沒問題,可以用多看優秀代碼,多思考,多做解決。

同時代碼的缺陷可以是一方面是你代碼編寫不規範等技術層面的問題。

還有一方面呢就是你對你所在部門業務的了解,如果尼業務了解的不是很深,就是你的代碼寫得再漂亮還是bug一坨坨。

所以我的建議提升技術層面的同時還要增強對你業務的理解,畢竟技術還是服務於業務的。這些都需要你花時間去多想,多做,多看,多問,多思考去解決的


遇到bug是好事,別逃避bug,多解決多思考,提高解決問題的能力


邏輯有問題,應該還是對產品的需求沒有理清楚吧,可以在進行功能開發前先把產品需求進行邏輯梳理、功能模塊拆分,理解清楚後再構思自己的代碼具體如何實現。不要一拿到產品需求就立馬動手進行實際開發,不然後面可能要不斷返工......


  1. 閱讀
  2. 反思
  3. 實踐

關於閱讀

閱讀是能夠系統的了解相關知識的,接觸前端不久的時候可以先把前端相關的書拿來瀏覽一下,當然這個時候其實記不住多少,但是可能會覺得發現了一些之前沒有注意到的寶藏。根據以往的開發經驗,你會發現書里某一部分是正好回答到你心裡的,這一部分就是你曾經遇到的問題的解決方案,知道還不行,下一次開發遇到類似的問題的時候用書里看到的方法去解決一遍,如果確實是個好方法,那以後你就會一次次的用上了,這樣往複你就會發現代碼能力在提高了。

關於反思

每一次項目結束的時候,就要及時的去反思一下並記錄,這次項目中遇到了什麼問題?可能因為項目時間有限,直接使用暴力方法解決了,那就要記錄一下,哪些問題解決的不夠優雅?或者有些問題是通過請教別人解決的,那就記錄一下,是因為那部分知識不夠導致沒有找到解決方法?總之就是要根據項目中遇到的問題,去反思一下有哪些可以做的更好的地方,然後爭取下一次項目有所改進,某一天回頭看自己曾經的代碼,發現曾經自己寫的不好的話,那說明你在成長了呢

關於實踐

寫代碼的能力畢竟不是讀再多的書就能提高的,看再多,反思再多,如果不去實踐,那其實你會發現,怎麼寫還是那副老樣子,所以學到新的東西就要儘力再下一次項目用起來,花點時間去玩一下某個新的知識,可能會導致項目實現起來沒有那麼順利,但是你會在項目中成長,這樣日積月累你就能和其它人拉開差距。


其實代碼這東西,花時間下去總是會有所收穫的,當然也沒有什麼捷徑,找到一條適合自己的學習路線,不斷的去實踐,就會提高了。迷茫到時候多去翻翻書,把書里好的東西搬到項目中實踐一遍,如果項目結束了,就對著項目中遇到的問題去尋找一下好的解決方案,爭取下一次用上一些,這樣反覆一定能夠成長的。


鞏固基礎知識,然後在項目開發中不斷積累經驗。沒有太多捷徑。


推薦閱讀:
相关文章