前端做項目如何積累經驗?

畢業快1年,做了4個項目吧,感覺也算是小型項目。

1年下來了做整理的時候,感覺自己沒什麼東西可以拿得出手

好像沒積累到經驗似得。

怎麼解決這種情況?

/* ------------------------------------------------------------------------------------------------------------------ */

/* 2015.05.21 更 */

/* ------------------------------------------------------------------------------------------------------------------ */

首先感謝各位大大的回答 :-)

在公司沒什麼任務的時候過於空閑,是要怎麼安排這段時間?

目前我已經感覺到太過安逸了,好浪費時間,有人說自己造輪子,但要造什麼?

感覺又到了迷茫期...


有主動和被動兩個方面積累經驗, 歸根結底都是基於思考。

  • 被動: 由項目需求、特點決定,如視覺交互或前後端技術架構的特殊性導致你要去思考解決方案,進而積累經驗,這個機會是可遇不可求的。
  • 主動:學習現在熱門的技術,ES6(babel) 、Commonjs(browserify)、React、同構Webapp開發等等. 確定它們的潛在風險和適用場景後 應用到你的產品開發中。 這個機會是人人都可爭取的。

經常會遇到工程師抱怨需求簡單,沒有新意, 跳槽都沒東西說, 年年升級答辯都是一團漿糊,這些都是客觀因素。

我相信後台管理系統是無論什麼產品都會涉及到的,交互UI的靈活性也可控。 在這裡把玩新技術,其實沒有任何成本可言。

現實中,10年工作經驗,1年項目經驗的人大有人在, 這其實和人的個人危機感很有關係, 就個人而言:

我在每一個階段都會反思, 我是否比上一個半年要進步了。如果沒有,會渾身不舒服


1. 大項目也是由小模塊組織的,小模塊即是小項目。項目不好記錄的原因:業務性太強,過多的強調的是產品能力,而不是開發能力。由於初入行 的對整個項目缺少全局觀,不能從整體上對項目有一個總結。這時候只能僅限於技術的角度進行總結。另外項目難的是抽象問題具象化,自然世界的問題抽象為代碼邏輯化,這需要一個時間的積累。不要著急,慢慢來。

2. 平常細節的東西要記錄,到年底的時候才會有幹活,記錄的方式有多種:

  • 平常的小東西用qq日曆,以事件細化。比如:早上解決了某個bug,是瀏覽器造成的。
  • 專業性太強的,用博客整理。比如:花了兩天時間解決了某流程中的邏輯問題,中間涉及了幾次掉坑,然後經過多方調試或努力終於解決。記錄的目的是為了總結,同時分享,分享的目的是塑造個人品牌,方便結識朋友,或hr找你。

  • 隱私性太強的,用筆記軟體,比如有道,為知,大象。比如:生活中的小事,工作有關的,無關的。準備買的書,買好的電腦等等的。

  • 擴散性強的,用微博,比如我用了chrome調試主題美化,我想讓大家知道,在此刻我擁有了這份小小的體驗。

3. 沒有積累的東西,最本質的原因是沒有做多少東西。有主觀原因,也有客觀原因。無論怎樣,以後有空閑的日子,要主動要活。領導要活嗎?那些東西需要我現在做的。沒活的時候也別閑著,看公司先有的源碼,看開源各種現有的源碼。看源碼也能成名,這並不是沒有可能。

另外很多人工作2年,能力很強,有的人工作5年,還不如2年的,根本的原因是:5年內沒多少項目,本身又比較安逸,做的事少,基本解決的問題少,那成長的機會就少。

年輕人不能怕做事,不怕做錯事,要大膽的有所承擔,有所總結,有所進步。

4. 業餘時間完全可以自己造個輪子。gmail是利用公司20%的時間造出來,國內沒有這麼好的氛圍,但業餘時間只有有空,可以完全自己把握。

無論怎麼樣,認真的學習,開心的生活,充實的做好每一天。

其它工作方法思路啥的,不一一細表,有空加群吧:389875212。禁止閑聊,非喜勿進。


寫博客,把工作中遇到的問題和解決方法都放到博客里。


我剛畢業的時候,跟著老大做了幾個項目,從0開始做前端,1年後回頭看剛開始寫的代碼,會發現很醜,這就是進步。我學會了jquery的鏈式調用,我明白了event delegation的原理,我知道了extend是一個很好的用來解決默認參數與傳參的覆蓋方法,我知道了JSONP是什麼鬼,這些都是慢慢才知道的,並且很基礎的知識。前端內容多且雜,記錄下來也許是一個很好的總結過程,因為我懶所以沒試過。你可以試試。

不要說拿得出手拿不出手的問題,跟自己比,你比當初進步了沒有?只要你一直再進步,就不需要擔心競爭力的問題。


關於經驗

1.編程語言和工具使用的經驗

編程語言是需要不斷熟練使用熟能生巧的,尤其CSS想要提升是十分依賴經驗積累的,想要做的好,不斷的做實現、不斷的舉一反三是必不可少的。JS作為一門編程語言,邏輯、思路、演算法都可以是和其他語言相通的,但是依然有很多知識是需要積累的,比如DOM api。經驗是從不知道到知道的過程,也是從能實現到能優化的過程,也是能識別什麼是好實現方法的過程。

不要以為使用了3個月jQuery就能稱為熟練使用jQuery,jQuery 的api掌握了百分之多少,可以自己去數一數,不背下來80%api別吹自己熟練掌握。jQuery是個學習成本很低的工具,我們在工作中會遇到無數個工具,如果每一個你都能做到熟練掌握,這就是你的經驗。為啥要做到熟練掌握,後面再講。

2.項目實現及架構的經驗

語言和工具能熟練,不代表項目就一定能做好,但是以能熟練語言和工具的態度和智力,我覺得做好項目的實現和架構,問題也是不大的。做項目除了很多業務邏輯是在「搬磚」,還要解決很多問題,比如UE給了個奇葩的設計,我能不能優雅的實現出來;比如遇到性能問題,我該怎麼辦;工具有很多種,我該選哪個?我的代碼規範怎麼樣?我的搬磚速度怎麼樣?我查google的能力怎麼樣?我看文檔的能力怎麼樣?這些都是在實際項目中磨練出來的

3.從想法提出到產品上線各個環節和流程的經驗

在學校做課程設計只要程序能運行就行了。在公司做項目可遠不是那麼簡單,每個公司不一樣可能上線之前各種環節都不一樣,隨便舉幾個例子,用什麼vcs系統,版本號怎麼設計,分支開發還是主幹開發,要不要PM寫MRD,要不要UE在設計圖上標註尺寸,要不要接入CDN,需要幾百台機器怎麼部署,bug收集到哪裡、要不要在系統上流轉...全面熟悉整個流程對個人發展是很有必要的

4.團隊合作和管理的經驗

項目里各種角色UE、PM、前端、後端、運維、QA,可能在一個部門,可能不在一個部門不是一個老大,一個項目可能10個前端一起做,怎麼跟每個人合作,怎麼讓每個人能良好合作,都是經驗啊..

關於積累

1.熟練使用

之前說了不要以為使用了3個月jQuery就能稱為熟練使用jQuery,拿我自己為例吧,我還在專心做工程師的時候,用過很長一段時間Extjs,這玩意比jQuery學習成本高10倍都不誇張。我不敢說他的文檔幾千個api上百個類的文檔我全看過,我也敢說至少60%的api我都能叫上名字,我寫了和翻譯了很多官方文檔,我組建的extjs群里有1000個水平各異的extjs開發者。

2.學習模仿

熟練了一些業界一流的工具之後,在自己做項目時就可以借鑒他們的優秀設計,優秀實現方法,想都不用想,肯定比自己YY出來的方法好。遇到問題的時候也可以參照。

3.自主創造

項目做多了肯定會涉及到開發一些為項目、公司服務的工具。前面的積累一定要做到位,不然不要輕易嘗試自主創造,不然弄出來的東西一定不倫不類、非常不專業。好比學寫文章,為啥一定要讀和背誦很多前人寫的大師級的作品,就是為了找大師級作品的感覺。我們自己造的輪子,總要讓人看了是個專業的輪子,才拿得出手是不?

關於如何

1.善於發現

2.多做總結


今年剛畢業的,是做後端開發的,也遇到了這樣問題,天天在公司自己學習看書,三十天自己打發二十天的時間,書看了不少。但是沒有實踐的地方,然後過一段時間 就忘記了,請問下題主怎麼解決的。


推薦閱讀:

Web 前端適合女生做嗎?職業發展為女程序員,女ui設計師或女管理者,道路該如何選擇?
對於前端工程師,測試 ajax 介面有什麼好方法?
女,明年就24了,想轉行前端開發還可能么?真心求建議
「font-family: tahoma, arial, 宋體, sans-serif」是什麼意思?
後端程序員該如何學習前端?

TAG:前端開發 | 前端工程師 |