想成為前端工程師,那麼在大學期間應該如何規劃?
對前端工程師這個職業非常的狂熱,自己的專業偏向視頻製作和動畫製作這方面,但是我想走出自己的路,所以想求助下如何規劃這三年。在大一的一年裡,已經在html+css+js,這條路上走了起來,但總覺得自己什麼都不會。求幫助。
為了能讓大家第一眼閱讀到最新內容,更新就寫到上面了。
背景介紹:一個注重美學的WEB工程師,可能擅長php+js
這篇文章寫於12年年初,到現在有三年多了,截至到現在贊同數549,被收藏 1290 次,不算多。前端近幾年發展太快,原回答已經不是很符合意境了,所以我還是繼續補充了。
目錄
- 舊文(2014年前)
- 大學規劃:培養習慣和拓寬視野(2015年11月1日)
- 前端的兩個流派:
- 切圖流(2015年10月31日)
- 技術流(2016年1月18日 - 1月22日)
舊文
前端是近幾年發展起來的職業,很多新人對前端的認識比較模糊,因此開篇我有必要介紹一番,大眾眼中的前端分為多個方面:前端偏美工是視覺設計,前端偏用戶是用戶體驗,前端偏目標導向是交互設計,前端偏技術才是大家口中的前端工程師。
有的前端需要熟悉 PS,AI 等設計師作圖工具,有的人需要熟悉HTML+CSS,比較難的就是JavaScript了。很多人上來就直接建議這個建議那個,在此之前不妨先了解一下大前端的一些細節。
我們經常在一些社區評論留言,留言的過程:
1. 打開留言頁面
2. 輸入留言內容
3. 點擊提交按鈕
4. 留言顯示在留言列表上
我這裡不解釋這個過程的實現原理,我們先來簡單的梳理前端工程師、視覺設計師、用戶研究工程師、交互設計師的理職位區別或者說他們思考的角度:
前端工程師:
留言框代碼怎麼寫?留言框的顯示、一些JS動態效果的顯示(可能涉及非同步請求)。
視覺設計師:
什麼樣的留言框最漂亮?用什麼色彩還是需要做一些紋理?
用戶研究工程師:
用戶怎麼留言最舒服?很多人可能會和用戶體驗師混淆在一起,其實這兩種人有著本質的區別,用戶研究更側重的是方法論,注重問卷調查訪談等等行為來了解用戶的潛在行為習慣,而用戶體驗是一種行為,更側重的是體驗之後的實際感受。
交互設計師:
場景布局,留言過程中的反饋?輸入錯誤後的提示,留言成功後的反饋等等。交互設計可以理解為人機對話,交互設計側重和用戶交流之後,引導用戶有效操作,比如滑鼠放在超鏈接上字體變顏色,有title提示,用戶點擊超鏈接,我們就可以稱這次交互是成功的,因此交互設計的重點在於目標嚮導。
這些分工十分細微,如果留言本是一個項目的話,需要從幾個不同的角度來分析留言框,一個大型的項目比如社交網站、門戶網站、行業網站這些職位都必須明確分工才能把整個項目做好,但是實際上即使條理清晰在項目開展過程中還會出現諸多意想不到的問題。
現在你還認為你理解意義上的前端是前端嗎?我以前以為前端是美工,但是後來我發現很多前端博客都在研究各種js框架,相比較而言我更喜歡視覺設計,但是我依舊也是一個前端,因為前端多姿多彩。
2015年11月1日續寫....
我極其不贊同那些發一大篇大而全知識結構圖,那種回答然並卵,對於普遍大學生來說,太技術的東西他們根本看不懂,在我看來大學生更重要的是培養習慣和拓寬視野。
題主提到的是大學時期的規劃,那就說說大學可以乾的一些事情。內容不局限在某個特定職位,你可能做不到全部,這些能力也不可能一蹴而就,但只要堅持做到幾點,對以後職業生涯是受益匪淺。
先學會科學上網再說
之前培訓新人給他們分享過很多文章鏈接他們都訪問不了,溝通大受局限,因此我把科學上網擺在第一位,之後分享的鏈接有部分人可能無法訪問,需自學科學上網,這裡就不多說了。
學好英語
除了團隊內部溝通用中文外,大量時間都是在和英文打交道。從事技術不會英語等同於文盲,尤其在技術進階階段英語的重要性毋庸置疑。三點:
1. 讀懂英文技術文檔(文檔的重要性和時效性超過書籍)。
2. 可以用英文進行交流(社交網路 IM等聊天工具)。
3. 讀懂代碼(除英文外,還需要懂編程語言)。
從書本里解脫出來
書非借而不讀也,個人比較建議大學生多去圖書館看書,但不必沉溺,目前市面上的現有的大部分技術書籍質量不高,相比較技術書籍,我更願意新人學會看文檔,甚至到達一定水準,直接看代碼就知道該怎麼用一些技術了。
說一些日常發現的比較多的問題,我發現即使很多文檔寫的條理清晰、Demo齊全,新人讀起來還是非常吃力。一方面某些技術的涵蓋的範圍很廣,新人知識結構比較片面,很難理解一些概念;另一方面新人大多是看書和課後習題出來的,文檔讀的太少了,不能理解文檔的意圖。
分享兩個我至今還一直在參考的文檔網站:
入門級:w3school 在線教程、w3schools.com 的頁面
參考書:Web 技術文檔
Demo平台,你可以在這裡運行你的Demo。
CodePen - Front End Developer Playground Code Editor in the Browser
Create a new fiddle
你要了解的兩個窗口:瀏覽器和編輯器
1. 瀏覽器
Safari Webkit
Chrome Blink(Webkit分支)
Opera Webkit(Opera已死,早先的Presto就不拿來說了)
Firefox Gecko
IE Trident 注 微軟已經放棄 IE 11 以下版本更新了
Edge EdgeHTML (Trident 分支)
2. 編輯器
Sublime Text 首推
vim/emacs 太極端了
IDE 太笨重了
瀏覽器 編輯器 會是你以後最重要的兩個夥伴了,學會和她們相處,對工作效率的提升不是一丁半點。怎麼相處?那是你的事兒了。
加入校內Web團隊,找兼職工作或者去有意的公司實習。
不同團隊,不同項目所用到的技術棧都不一樣,你可以從校園內部開始,逐漸把目光放的更長遠,你可以關注一些意向公司的動態,了解他們的需求,可以關注他們的微博,你可以用寒暑假的時間去不同公司感受前端在不同公司的不同之處,對於拓寬視野非常有幫助。
關注開源項目、技術社區和技術博客。
日常根本沒有太多時間關注太多東西,以下只推薦幾個我平時經常關注的平台:
GitHub · Where software is built
Github可以是搜索引擎、可以是社交平台、可以是項目託管平台。你可以近距離的看到世界級的精英都怎麼寫代碼的。我平時大量時間都泡在Github上看代碼了,我的編程水平也不高,但是我知道怎麼去欣賞一個項目,這是一種享受,跟看了一本小說一樣。
多說幾句:我很少看技術書籍,我學編程不是從語法開始的,我喜歡直接看整體項目,然後自我感悟。再帶著問題去Google解決自己的疑問。
Stack Overflow
除了Github外,Stack Overflow也幫我解決了諸多平時項目中遇到的坑。
CSS-Tricks
不得不說CSS Tricks上有很多高質量的文章,但對我自己來說,我更多的是來湊個熱鬧,看看文章,看看評論,學習下英文不亦樂乎。
SegmentFault
除了看每周精選外,我很少在SegmentFault上搜東西。但是作為從Typecho關注過來的人,還是特別希望SegmentFault能有好發展。
阮一峰的網路日誌
ruanyf (Ruan YiFeng) · GitHub
國內技術博客第一人,無他。避免歧義還是說明下,其實他的博客並非都是技術文,而且很多關於技術的文章更多的科普和人文,但是一個人能長期用心堅持十幾年寫博客非常不易。
同樣的比如 酷殼 – CoolShell.cn 陳浩的文章相對就更技術型,內容生澀難懂,對於小白人群就望塵莫及了。
參與開源項目的維護與開發
到達這個層次的大學生較少,這個階段你會學會git的精髓,這方面就不多說了。
--------------------------------------------------------------------
2015年10月31日續寫......
這個話題實在太大,我嘗試分幾點把這個大話題講的稍微明白一些。
大學的職業規劃,最終也是為了進入職場,從業務角度前端根據人的特點可以分為兩個流派:切圖流、技術流。
一般來說懂平面設計的人做前端切圖會更細膩一些,懂設計的前端也只在切圖時候會體現出一些優勢,設計公司會更偏好切圖流派,對於重視技術流的前端公司,懂不懂設計對他們來說不是重點,甚至切圖佔有的比重都很小。技術流派甚至不會切圖,他們的大把時間都消耗在專研技術里了,什麼技術,這些之後再說。
一、切圖流
切圖需要熟悉PS和AI的切圖技能,簡單說就是把設計稿的web元素導出為jpg/png/svg等等,結合這些元素把設計稿轉化成web頁面。切圖是個非常需要耐心的工作,需要把設計稿精確的轉化成頁面,需要解決瀏覽器的各種兼容性問題、響應問題。如果你只是在國內某些大包大攬的建站公司做切圖,那是災難,而且會養成很多陋習。如果有幸和國外的優秀的設計團隊合作,會是一種享受。但是設計師們對頁面細節要求非常苛刻,如果你只懂得HTML+CSS技能根本不足以支撐你完成一份高質量的切圖。
國內大公司前端都比較技術流,沒有那麼多精緻的設計稿讓你切,國內建站公司的切圖又太垃圾,所以如果做切圖去一些面向國外的小團隊體驗一下吧。
切圖的基礎工作:PSD2HTML和AI2HTML,PSD2CMS,PSD2BACKEND。
PSD2HTML和AI2HTML:主要負責把設計稿精確的轉化成html頁面。
PSD2CMS:直接轉化為cms的主題,需要比較懂cms系統,比如WordPress,Drupal之類。
PSD2BACKEND:直接套到某個後端語言的框架里。這個難度級別比較高。
在一個專業的團隊里,切圖主要負責的工作就是PSD2HTML和AI2HTML,這一類人一般水平比較局限,需要掌握基本的html+css技能,如果懂js就更好了。
相比較 PSD2CMS PSD2BACKEND 一般都是偏fullstack的比較多,多見於全職soho。
切圖的另一項重點:動畫。
素材由設計師提供,一般這類設計師都比較時尚,有些設計團隊是從flash轉來的,對頁面效果特別有追求,跟這類設計師合作是個技術活。比如Google的動態Logo(並非指 gif 動畫),可以堪稱動畫的代表作(自成體系的動畫)。
頁面動畫效果一般來說
CSS3中比較簡單的transition和transform,難的有keyiframes的animation,最難的是CSS和JS結合(可以是jquery插件,也可以是angular這類插件)。涉及面太廣暫不深入討論了,感興趣的自行github,給大家發一個動畫庫,是基礎也是精髓。
Animate動畫集合看個夠
https://github.com/daneden/animate.css
切圖工作者的進階技能
HTML重構和頁面模塊化。
在此基礎上了解怎麼使用Sass/Stylus/Less等CSS預編譯器。
切圖能好這點技能已經相當牛逼了。
--------------------------------------------------------------------
2016年1月18日續寫,1月22日修改
二、技術流
包管理器:npm、bower、component、spm
前端構建工具:grunt、gulp
模塊載入器:requirejs、webpack、jspm(systemjs)
代碼規範:ES5/ES6、Commonjs、AMD
語法糖:Coffeescript、Typescript、Dart...
CSS預編譯器:Sass、Stylus、Less、PostCSS
DOM操作:JQuery、Zepto...
瀏覽器引擎:Webkit、Gecko、Trident...
前端框架:Backbone、Ember、Angular、Flux(React)、Vuejs
後端框架:Express、Meteor
模版引擎:handlebars、swig、nunjucks、ejs、jade...
WEBAPP: SPA、Isomorphic
協議:http、websocket...
各技術棧的發展歷程:
包管理器:npm、bower、component、spm(國產)
npm 剛出來的時候多用於 node 模塊管理,spm 和 bower 是前端模塊管理器,component 是TJ大神的作品,已淡出視線,不討論了。
如今
bower宣告終止開發,前端模塊管理全面移向npm。
spm 從 3.9 開始將不再管理組件的生命周期, 即不再有 spmjs.io. 所以相應的邏輯全部去除. 請使用 npm 來管理組件.
npm從此統一了前後端js模塊管理
各種語言對比
python有pip
ruby有gem
php有composer
javascript有npm、bower、component、spm但是在2016後javascript只有npm了,這是時代的進步。包管理器的出現,javascript才真正的開始像一門編程語言了
問題:
包管理器是啥?
javascript為什麼有這麼多包管理器?
前端構建工具:grunt和gulp
CLI:requirejs、webpack、jspm
目前前端的發展趨勢:
3年前的項目用 requirejs
2年前的項目用 grunt
1年前的項目用 gulp
現在的項目用 npm + webpack
requirejs 是前端技術發展的分水嶺,如今也已經退出歷史舞台了
grunt 一堆繁雜的 config,令人望而生嘆,官方已經停止維護了
gulp 沒那麼火了,不過作為流式構建工具,有它獨到的好處
jspm 從關注到現在一直在掉粉,star不升反降。原因就等那些有心人自己去探討吧。
推薦閱讀
Browserify vs Webpack
問題:
前端構建是啥?
為什麼需要前端構建工具?
代碼規範:ES5/ES6、Commonjs、AMD
語法糖:Coffeescript、Typescript、Dart...
和其他語言不一樣 javascript 受限於瀏覽器,官方標準滯後不前,導致出現各種語法標準,甚至出現了很多語法糖.......在 ES6 推出之前 Coffeescript 被很多人推崇,現在 ES6 被炒的火熱。
ECMAScript 的歷史感興趣可以拜讀這裡 http://es6.ruanyifeng.com/#docs/intro
Commonjs 作為官方雞肋的 ES5 標準無法滿足 nodejs 需求,提出的一種針對服務端的標準,在browserify 出來之後,commonjs 標準在瀏覽器端也普及起來。
AMD 是 requirejs 提出來的最初針對瀏覽器端的一種規範,如今已經不再提倡了。
Coffeescript、Typescript、Dart 這類語法糖更像是給後端程序員用的語法標準
Coffeescript -&> Python/Ruby
Typescript -&> C#
Dart -&> Java
ES5/ES6 -&> Javascript
如今ES6/7逐漸完善,Commonjs =&> ES6 標準正在變得主流
學習參考的網站:
ECMAScript 6 compatibility table
ECMAScript 6入門
airbnb/javascript · GitHub
問題:
CoffeeScript 當年為什麼流行?
為什麼javascript會出現這麼多標準和語法糖?
CSS預編譯器:Less、Sass、Stylus、PostCSS
SASS 2007年誕生,由ruby編寫,後來受Less影響,退出scss規範。
LESS 2009年誕生,由更接近CSS語法,因Bootstrap支持,被大家熟知。
Stylus 2010年誕生,來自 node 社區,可以很好的和JavaScript項目緊密聯繫起來。
PostCSS 2015年 由 Twitter 推出的一款css預處理工具。
PostCSS 的個人見解:和上面三種不一樣之處,它可以很靈活的操作和調度css,尤其在 isomorphic app 中,當然還有各種好玩之處,有待大家發覺。
推薦一篇寫的還不錯的文章:再談 CSS 預處理器
最後說一點 Less、Sass、Stylus、PostCSS 不是四選一,他們之間都可以共存於一個項目中。
問題:
為什麼使用預編譯器?好處在哪裡?
如何更好的使用預編譯器?
瀏覽器引擎
Safari Webkit
Chrome Blink(Webkit分支)
Opera Webkit(Opera已死,早先的Presto就不拿來說了)
Firefox Gecko
IE Trident 注微軟已經放棄 IE 11 以下版本更新了
Edge EdgeHTML
IE 9 尤其 IE 11版本之後很多css/js標準逐漸統一,大批量js插件停止維護更新了。可預想不久的將來,在瀏覽器標準越來越統一的未來,很多這幾年推崇的技術都將沒落。
DOM操作:JQuery、Zepto
Zepto 不需要考慮IE兼容性,代碼精鍊很多
JQuery 2.x 已經不支持 IE8 及以下 IE 瀏覽器
很多 JQuery 插件已經不再更新,過去一年大量 Github 搜索之後的總結
JQuery 在處理兼容性問題上下了很大功夫,但在瀏覽器標準逐漸統一之後,很多插件都沒有存在的必要了。尤其前端業務越來越複雜化的時代,JQuery 的適用範圍逐漸在減少。
在前端框架盛行的這幾年,JQuery 還能如此堅挺,但 JQuery 的適用範圍在縮小,在IE8還沒退出歷史舞台前,它還會有很大的作用。
前端框架:Backbone、Ember、Angular、Flux(React)、Vuejs
後端框架:Express、Meteor
框架概念被大家炒的火熱,但框架並不是萬能的,任何脫離實際項目的技術討論都是耍流氓,任何項目都非一門技術就可以搞定,甚至項目的發展取決於多方面因素,我就不多說了。
模版引擎:handlebars、swig、nunjucks、ejs、jade...
在前端提倡 ui 組件化之際,模版引擎進化為了ui組件的服務端渲染。React 之類的 UI 組件變得流行。以前的這些模版引擎....
一些說明
感慨萬千,前端近幾年的爆髮式增長,很多技術的迭代太快了,如果你是技術狂人,這是個非常值得折騰的年代,如果你不喜歡折騰,就靜靜的關注前端的發展吧,JavaScript 作為前端腳本語言正變得越來越有意思了,各方面的完善,更像一門編程語言了,尤其在 webapp 里扮演著越來越重要的角色。但不否認很多公司對 JavaScript 的重視程度並不一樣,應用場景也不一樣,甚至在傳統的大項目里,有些技術雖然不火了,但是並不代表技術就不需要了,尤其歷史遺留的項目還都使用著以上各種技術,大家不要盲目追隨,按需學習即可。
對於學生來說,不鼓勵太早就看HTMLCSS和JS這些,略懂即可,否則很容易變成井底之蛙。
說說我的經歷吧。
總得來說,這個階段,你要了解基本常識,不再只是用Windows玩遊戲、上網、聊天了。看看下面這些概念你能不能講清楚,講不清楚你就還處於低級階段:
- Windows記事本的默認編碼格式是什麼?
- IE的全稱是什麼,它和360瀏覽器有什麼不同?
- 半形空格和全形空格有什麼不同?
- 像素是什麼意思?常用的圖片格式有哪些?
- IE右鍵里的查看源文件你用過沒?
以上主要是Windows相關的,如果你常用Linux/Unix(Mac?真有錢!)就更好了。
第二階段,編程基本知識的學習。當是學院里開設了C語言,就自己花一個月自學了,學這門語言可以讓你對計算機的一些底層細節有所了解,比如內存分配。然後發現自己對編程語言還是有點悟性的,基本的知識點一看就懂。另外我的室友搞過信息學競賽,從他那裡了解了很多數據結構和演算法的知識。另外我對OOP感興趣,於是學習了C#(大概學了半年)並寫過一些桌面程序。
第三階段,網站。每天都在用網頁,我卻不知道網站是怎麼開發的,雖然我會用C#寫桌面程序。不過C#的宣傳詞里就說過,它可以讓編桌面程序和編網站是一樣一樣的。於是我跟這幾個師兄用C#.NET做網站。同時就對HTML和CSS就了進一步的了解和運用。另外自學了PS,網頁切圖常用這個。做一個網站的全部流程都涉及到了,如伺服器、資料庫、CGI、請求響應什麼的。
第四階段,專攻。找實習的期間,我專門找前端崗位,JS 知識被很多面試官鄙視了,於是發糞塗牆,搞了一個月的 JS,從圖書館裡借了很多書,天天去 Cnblogs 上看技術博客。做了很多小程序,最終找到一個公司做前端。
第五階段,進階。這個我是在實習過程中體會到了,我就處在這個階段,我發現之前看的JS書都是漏洞百出的,權威的只有那麼幾本,我推薦《JavaScript權威指南》,俗稱犀牛書。(我在實習之前從來沒有大量實用過jQuery,你喜歡jQuery的話可以看看《鋒利的jQuery》)。現在階段我主要是問人、看書、做!先轉變思路,像在職人員一樣思考。
假如你是一個實習生或新人,起步高點,真正出去的時候輕鬆點。
如何快速的帶領實習生或新人進入角色?
個人看法,僅供參考。
我在另一個問題下面做了如下的回答,希望有幫助!
==========================================
在大公司做前端幾年,突出的感受是覺得前端的細節實在是太多太豐富,總的來說,前端並不太需要工程師非常的smart但是很需要積累,解決方案更偏重細節更偏重語言特性的理解,更需要微觀的考慮問題,相對後端來說更需要有一些折衷和權衡(很多時候來源於IE的存在以及在國內份額的居高不下)。
前端的技術更新換代快,設備層出不窮,所以要求開發者能夠不斷與時俱進,多追一下新技術新設備的潮流。同時,開發者要能有眼光,敢於付出時間成本(當然永遠篤信Apple設備是主流也不失為一種選擇),學習再學習。
從學習的層面來說,我認為需要在以下方面逐漸提高個人能力:1. 掌握HTML基本標籤(div, span, table, form, input, a, style, table, tr, td, meta..)和屬性(id, class, name, value, float, , 事件屬性),對於大多數顯示屬性可以藉助w3cschool來速查,了解get和post的異同。掌握CSS中的重要屬性,如布局屬性margin, padding,位置屬性position,顯示屬性display——這些想必都是老生常談。了解HTML5帶來的特性如animation等。
2. 深入理解JavaScript的語言特性,如JS的類和對象,閉包,prototype等。因為腳本語言的模塊化較差,維護成本高,故良好的設計和統一的規範更顯重要性。
3. 面對瀏覽器兼容性,能夠有能力找到瀏覽器的共性和不同,擅長用健壯的解決方案解決兼容性問題,通過定量分析(如瀏覽器的使用份額)做出產品功能性、實現優雅性和項目進度的抉擇。
4. 理解並掌握至少一門JavaScript library,新手不妨直接選擇jQuery,簡單而主流,熟練掌握library的dom selection, event handling,用jQuery的AJAX介面實現前後端通信。有餘力的話,可以研習下引領潮流的Node.js。
5. 從頭到腳的完成一個獨立域名的網站或網頁,同樣支持pc和mobile(有自己的app當然更好),有條件的話,了解CDN的工作。
6. 深入理解client side latency的成因,能夠分析出造成網站性能問題的瓶頸,擅長用行業通用方案(減少http數量,壓縮下載文件的大小,lazy load,pre-cache)來解決延遲問題。能夠使用數據即量化考量機制來監控網站的性能。
7. 擅長藉助Google和社區解決實際問題,盡量不要一次次的刷網頁重試,在前端的世界裡,嚴謹同樣比猜測更重要。
8. 緊追形勢,培養對新設備,前端新型技術的熱情。當看到一個發展方向的市場價值時可以投入課餘時間,勇於做第一個吃螃蟹的人。
http://www.zhihu.com/question/19562698/answer/23403268
半年看完上面這些書,做個項目,注重前端性能方面上的優化,最好兼顧下移動端,同時做些小項目分別應用各種最新的html5技術。
能做到上述所說的話,拿到BAT的前端實習應該沒有太大問題。。1.掌握前端基礎技術
HTML CSS JavaScript 所謂掌握,我認為要了解到大部分東西在各瀏覽器差異、存在問題及解決方案
2.前端技術的理論知識
一個東西,不在於你會用就完了。
舉個最簡單的例子,css的清除浮動,很多人只知道copy這個代碼、那代碼可以搞定,但卻不分析原因,不知道在什麼情況下用什麼方式可以更好的解決。
3.了解前端的其他相關知識的了解。
其他js框架 http1.1協議 wpo mobile seo Flash/AS 等
4.工具的使用
開發工具 debug工具 偷懶用的工具等
5.了解後端語言
最少要到知道怎樣配合工作,不然就真的是頁面仔
先反駁樓上有位兄台說:他們一位做後台的做了一年還是只會後台。說說我的自身的體會,我也是一名寫後台的,大學學了兩年的後台。我的過程大致是這樣的,開始學習系統編程、然後網路socket編程。這兩年我不知學會了這些東西,為了學習系統編程我安裝了Linux,為了方便編譯程序我學了makefile,為了維護系統我學了shell、python、perl。在學習系統編程的同時我開始閱讀Linux內核書籍,了解其架構。剛開始學網路編程的時候,覺得socket就是聯網用的,後來深入了網路子系統才明白只是一個進程間機制。後來學會自己實現一個socket,閱讀完pfring之後學會了高速數據包捕獲。後來堅持讀nginx代碼,了解了網路伺服器設計。
所以人家做了一年後台肯定學寫了很多知識。我的看法是,不要拘泥學什麼前段技術,拿一個非常經典的前端代碼仔仔細細讀完。比如jquery。
歡迎牛人拍磚最主要的是動手練習和應用,最忌光看不練。等水平提高了要注重編程思想,演算法和數據結構的知識是必不可少的,可以看看jquery、mootools等框架源碼,如果看不懂,先從prototype框架看起,這個比較容易,最少得了解或是熟悉一門後台編程語言,像java或是php,有時間還得關注下前沿技術,如html5和移動互聯網方面的信息。
個人覺得前端是一個比較軟的領域——與寫後台不同,前端並不需要長期積累的技術知識和對工程理論的深入理解,在滿足基本的功能性能要求的前提下,前端開發主要的價值體現在開發者的設計能力上。
這意味著做前端會像任何」軟「的領域一樣,天賦、氣質、眼光、品味這些看起來無從評判也沒有高下可言的概念,會重要得多。對一個志在於此的大學生而言,可能你明天就會寫出來一個2048,也可能把未來十年都花在研究如何讓一個頁面兼容IE上面。不要怕不認識某個陌生的css用法,也不要糾結於某種js框架的具體用法,把研究這些技術的時間省出來多看看書,畫些畫,逛逛展覽,和學習編程不同,見多識廣永遠比啃掉幾本經典技術教材來得靠譜。
原因在於,相比於通常意義上的「程序員的領域」,首先前端無論對技術積累還是邏輯能力的要求都要弱得多。對html/css/js的學習都是背單詞式的。一個學習能力強的人,即使是文科生,做個漂亮、專業的頁面也未必需要多少功夫。的確存在需要強大代碼能力的框架——但那是少數,而且就算你能勝任,總會有更專業的程序員來碾壓你的。
其次,前端技術的碎片化十分嚴重。IE有IE的標準,webkit有webkit獨有的功能,chrome有chrome的特性,移動端有移動端的需求。有的支持websocket,有的只能用長連接。js框架同類的也太多。如果要深入學習與熟悉某一項,未嘗不可,但前端技術少有一招鮮吃遍天的。懂得再多,不見得用得上。況且根本不知道幾年後某些技術是會死掉還是更加普及。與其鑽研某一項前途未卜的技術,不如放開視野,實際操作時按需學習即可。
所以我認為作為大學生應該把主要精力放在大學活動上。要知道整天折騰具體細節技術是專科學校乾的事情。培養自己的藝術和技術修養可能是比規劃技術學習靠譜得多的事情。技多不壓身, 找項目做,才是硬道理
(看書看累了,你可能覺得明天看也可以,但項目沒做完,客戶是不會那麼痛快放過你的)建議把 HTML/CSS/JS 弄得越來越熟,接觸一些後台的東西,也就是除了界面之外,數據和流程相關的東西,做一兩個完整的項目。
再有,建議還是稍微學習一下演算法和數據結構的東西,提高自己的基礎編程水平,這個是萬能的。哈哈,我跟LZ反過來了,自身在學前端的知識,其實最想搞視頻製作和動畫製作,不過現在覺得前端也不錯……但還是很羨慕那些搞動畫的人
你不用去規劃什麼,興趣是最好的老師,多去折騰就行了,如果說有什麼建議就是嘗試去做一個完整的網站。其實我大三下才開始接觸html/css,之後半年倒騰過php、python(Django)、http://ASP.net(MVC3),現在由於畢業設計需要開始學習android開發。
好吧,我所學專業是工業設計,一個移動互聯網公司的小前端。
為什麼這麼早就把自己的目標領域限制得這麼狹窄?
1.學習鞏固基礎知識,基礎是最重要的。
2.要學會舉一反三,不能只知道他是怎麼用,要明白為什麼?
3.學習原生態JS,JS庫是方便你開發,原生態的JS才是王道。
4.多了解前沿的技術,前端是個很時髦的行業,所以自己必須時髦起來。
5.學好英語,愛看英文文檔。
html+css 最重要,如果想做web方向的話
推薦閱讀:
※到底怎樣才能戒擼?
※MBTI測試怎麼樣?作為一個INTJ性格的人,以後應該如何發展自己,挖掘自己的潛力呢?
※這樣的生活是不是過於壓抑,應該怎麼辦?
※如何避免心態爆炸?
※你知道哪些讓人捧腹的大學生活趣事?