寫在最前:
優秀的Web前端開發工程師要在知識體系上既要有廣度和深度!應該具備快速學習能力。
前端開發工程師不僅要掌握基本的Web前端開發技術,網站性能優化、SEO和服務器端的基礎知識,而且要學會運用各種工具進行輔助開發以及理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等。
前端工程師至少都要滿足四類客戶的需求:
1、產品經理。
這些是負責策划應用程序的一群人。他們會想出很多新鮮的、奇怪的、甚至是不可能實現的應用。一般來說,產品經理都追求豐富的功能。
2、UI設計師。
這些人負責應用程序的視覺設計和交互模擬。他們關心的是用戶對什么敏感、交互的一貫性以及整體的好用性。一般來說,UI設計師侯傾向於流暢靚麗、但並不容易實現的用戶界面,而且他們經常不滿前端工程師造成 。1px 的誤差。
3、項目經理。
這些人負責實際地運行和維護應用程序。項目管理的主要關注點,無外乎正常運行時間、應用程序始終正常可用的時間、性能和截止日期。項目經理追求的目標往往是盡量保持事情的簡單化,以及不在升級更新時引入新問題。
4、最終用戶。
指的是應用程序的主要消費者。盡管前端工程師不會經常與最終用戶打交道,但他們的反饋意見至關重要。最終用戶要求最多的就是對個人有用的功能,以及競爭性產品所具備的功能。
好了,列舉了這么多…… 你真的還想學前端么?不后悔吧? 如果真的做好了准備的話,哈哈,那我們就一起享受學習前端的樂趣吧!
零基礎開始學web前端要學哪些內容?到底該怎么學?
新手學習前端的話,一定要想想為什么要學習它,是出於一種什么心態,然后定位好自己,多向大牛請教,多教一些沒有自己水平高的人,那樣往往能讓自己成長的快,切勿急躁。在這里一定要對自己做分析,然后找出一種適合的學習方法。
Web前端的學習誤區:
網頁制作是計算機專業同學在大學期間都會接觸到的一門課程,而學習網頁制作所用的第一個集成開發環境(IDE)想必大多是Dreamweaver,這種所見即所得的“吊炸天”IDE為我們制作網頁帶來了極大的方便。
入門快、見效快讓我們在不知不覺中已經深深愛上了網頁制作。此時,很多人會陷入一個誤區,那就是既然借助這么帥的IDE,通過鼠標點擊菜單就可以快速方便地制作網頁。
那么我們為什么還要去學習HTML、CSS、JavaScrpt、jQuery等這些苦逼的代碼呢?這不是舍簡求繁嗎?但是隨着學習的深入,就會發現我們步入了一種窘境——過分的依賴IDE導致我們不清楚其實現的本質,知其然但不知其所以然。
因此在頁面效果出現問題時,我們便手足無措,更不用提如何進行頁面優化以及完成一些更高級的應用了。其原因是顯而易見的——聰明的IDE成全了我們的惰性,使我們忽略了華麗的網頁背后最本質的內容——code。
正確的方向勝過無謂的努力:
有兩只螞蟻想翻越一段牆,尋找牆那頭的食物。一只螞蟻來到牆腳就毫不猶豫地向上爬去,可是每當它爬到大半時,就會由於勞累、疲倦而跌落下來。雖然它不氣餒,一次次跌下來,又迅速地調整一下自己,重新開始向上爬去。
另一只螞蟻觀察了一下,決定繞過牆去。很快,這只螞蟻繞過牆來到食物前,開始享受起來;而另一只螞蟻還在不停地跌落下去又重新開始。
很多時候,成功除了勇氣、堅持不懈外,更需要方向。也許有了一個好的方向,成功來得比想象的更快。如果在錯誤的路上奔跑,再怎么努力也是白搭。學習Web前端也是如此,首先應該選擇一個正確的學習路線。
在這里將Web前端的學習分為以下幾個階段,具體的學習路線圖如圖所示:
(web前端學習交流群:328058344 禁止閑聊,非喜勿進!)
>>>>第一階段–HTML的學習
超文本標記語言(HyperText Mark-up Language 簡稱HTML)是一個網頁的骨架,無論是靜態網頁還是動態網頁,最終返回到瀏覽器端的都是HTML代碼,瀏覽器將HTML代碼解釋渲染后呈現給用戶。因此,我們必須掌握HTML的基本結構和常用標記及屬性。
HTML 的學習是一個記憶和理解的過程,在學習過程中可以借助Dreamweaver的“拆分”視圖輔助學習。在“設計”視圖中看效果,在“代碼”視圖中學本質, 將各種視圖的優勢發揮到極致,這種對照學習的方法彌補了單純識記HTML標簽和屬性的枯燥乏味,想必對各位初學的小盆友們來說必定是極好的!
在學習了HTML之后,我們只是掌握了各種“原材料”的制作方法,要想蓋一幢樓房就還需要把這些“原材料”按照我們設計的方案組合布局在一起並進行一些樣式的美化。
>>>>第二階段–css的學習
CSS是英文Cascading Style Sheets的縮寫,叫做層疊樣式表,是能夠真正做到網頁表現與內容分離的一種樣式設計語言。相對於傳統HTML的表現而言其樣式是可以復用的,這樣就極大地提高了我們開發的速度,降低了維護的成本。
同時CSS中的盒子模型、相對布局、絕對布局等能夠實現對網頁中各對象的位置排版進行像素級的精確控制。通過此階段的學習,我們就可以順利完成“一幢樓房”的建設。
“樓房”建設完成之后,我們可以交給用戶使用,但是如果想讓用戶獲得更佳的體驗,我們還可以對“樓房”進行更深一步的“裝修”,讓它看起來更“豪華”一些。
>>>>第三階段–javascript的學習
JavaScript是一種在客戶端廣泛使用的腳步語言,在JavaScript當中為我們提供了一些內置函數、對象和DOM操作,借助這些內容我們可以來實現一些客戶端的特效、驗證、交互等,使我們的頁面看起來不那么呆板,屌絲瞬間逆襲高富帥!有么有?
此時,也許你還沉浸在JavaScript給你帶來的驚喜之中,但你的項目經理卻突然對你大吼道
“這個效果在××瀏覽器下不兼容,重新搞……”
“不兼容?”瞬間石化了有木有?
“我去,坑爹啊!那可是花了我一個晚上寫了幾百行代碼搞定的啊,吐血了都!”
JavaScript的兼容性和復雜性有時候的確讓我們頭疼,還好有“大神”幫我們做了封裝。
>>>>第四階段–jquery的學習
jQuery 是一個免費、開源的輕量級的JavaScript庫,並且兼容各種瀏覽器(jQuery2.0及后續版本放棄了對IE6/7/8瀏覽器的支持),同時現在有很多基於jQuery的插件可供選擇,這樣在我們實現一些豐富的動態效果時更方便快捷,大大節省了我們開發的時間,提高了開發速度,這也充分體現了其 write less,do more的核心宗旨。這個Feel倍兒爽!有么有?
>>>>第五階段–bootstrap的學習
“豪華大樓”至此拔地而起,但是每天這樣日復一日,年復一年的蓋樓,好繁瑣!能不能將大樓里面每一個單獨部件模塊化,當需要蓋樓時就像堆積木一樣組合在一起,這樣豈不是爽歪歪?可以實現嗎?答案是肯定的。**這種思想在Web前端開發中也是適合的,於是乎就出現了各種前端框架,在這里推薦給大家的是Bootstrap。**Bootstrap是Twitter推出的一個開源的用於前端開發的工具包,是一個CSS/HTML框架,並且支持響應式布局。一經推出后頗受歡迎,一直是GitHub上的熱門開源項目。在項目開發過程中,我們可以借助Bootstrap提供的CSS樣式、組件、JavaScript插件等快速的完成頁面布局和樣式設置,然后再有針對性的微調樣式,這樣基於框架進行開發大大縮短了開發周期。站在巨人的肩膀上就是爽!
學習Web前端中的一些建議和方法:
在CSS布局時需要注意的一個問題是很多同學缺乏對頁面布局進行整體分析,不能夠從宏觀上對頁面中盒子間的嵌套關系進行把握,就急於動手去做,導致頁面中各元素間的關系很混亂,容易出現盒子在浮動時錯位等情況。建議大家在布局時采用“自頂向下,逐步細化”的思想,先用幾個盒子將頁面從整體上划分,然后逐步在盒子中繼續嵌套盒子。
“君子生非異也,善假於物也”,在學習的過程中還要多瀏覽一些優秀的網站,善於分析借鑒其設計思路和布局方法,見多方能識廣,進而才可以融會貫通,取他人之長為我所用。
每個人的成長與基礎不一樣,結合自己的實際情況,在執行。還是重復一下,前端的核心是js,css不難,但需要來積累。對前端我是這么看的:
css就像一瓶酒,得品。
html,css總共就那些標簽跟選擇器屬性什么的,但是要寫一個有擴展性,健壯性或維護性的頁面不容易。現在寫頁面基本條件反射,不是如何快速的完成,而是思考如果有界面需求修改,怎么在修改代碼最少的情況下快速完成需求任務。這是對前端耐力,體力,智力的三重考驗。
js就像一把劍,得磨。
js剛開始只是為了較驗,隨便技術社會的發展,承擔的角色越來越重,剛開始玩玩jQuery感覺已經會js了,其實只是冰山一角。隨着對js的了解越來越多,他即變態又可愛,即好玩又難控,即有很多兼容問題,但解決兼容是我們基本生存之道。從ajax到jsmvc一路走一路看,高載潮一浪高過一浪。
人生就是一場夢,得作。
技術只是生活的一部分,曾經雄心斗志,如今低頭寫碼。改變能改變的,接受不能改變的。人生有限,兄爭朝夕啊。人生學習的態度是:不急不躁,不快不慢。持之以恆,相信自己。不求能改變世界,但求能改變自己的生活。不求健步如飛,但求一步一腳印。感謝磨難,他使我們內心更為堅強。感謝挫折,他使我們不斷的成長,感謝bug,他使我們的思維更加深邃。感謝前端,他使我們更加的相信,撐起一片天空需要十八般武藝。
最后,前端工程師的價值體現在哪里? 一起來看下互聯網大牛對前端工程師是如何評價的:
張克軍 豆瓣前端工程師:
個人認為前端工程師正慢慢演變為產品工程師。WAP App,響應性 UI 等以 HTML5 技術為基礎的開發將成為前端工程師的主要工作內容,解決產品跨平台跨設備的實現問題。Javascript,HTML,CSS 這些前端工程師熟悉的,多年使用的語言,作為開放標准將被各種平台所支持。
產品形態和數據的分離是形勢所趨。移動時代對產品形態多元化的要求雖然可以靠不同技術分別實現,但要付出巨大的成本。這也是 HTML5 這個 04 年就提出來的標准,直到前兩年才火爆的原因。
現階段的價值也很大。Web 產品交互越來越復雜,用戶使用體驗和網站前端性能優化,這些都需要專業的前端工程師來解決。另外,在項目中還要彌補設計師在交互設計上的不足,前端工程師在開發過程中起着重要的承上啟下的作用。
一兩個前端工程師就可以讓整個開發並行起來,讓設計到實現的轉換更順利。明智的公司應該貯備前端工程師資源。
我不認為前端工程師和產品經理有什么關系。好的前端工程師一定會成為好的交互設計師。前端工程師對信息架構的理解應不亞於專業的交互設計師。
張經緯 前端工程師:
一、前端工程師所需要掌握的基本技能:
Ø HTML CSS
Ø JavaScript
Ø PHP/ASP/或者其他廣泛應用在 Web 領域的編程語言
Ø 美術、視覺
二、前端工程師面向於:
Ø 用戶
Ø 瀏覽器
Ø 數據接口
三、那么前端工程師的價值體現在哪兒呢?
Ø 為簡化用戶使用提供技術支持(交互部分)
Ø 為多個瀏覽器兼容性提供支持
Ø 為提高用戶瀏覽速度(瀏覽器性能)提供支持
Ø 為跨平台或者其他基於 webkit 或其他渲染引擎的應用提供支持
Ø 為展示數據提供支持(數據接口)
元彥雲端工程師:
關於前端攻城師的價值體現,我覺得主要取決於下面幾個方面:
1. 與用戶最近,最願意揣測用戶,是工程師中最了解用戶的
2. 前端充滿創新
3. 前端技能 JavaScript、HTML、CSS….入門易,深入難
4. 前后端交互方式多樣,適用場景不同,Ajax(Post、Get)、Comet(輪訓、長輪訓、永久幀、XHR 流)、WebSocket
5. 隨之瀏覽器的發展,很多技術方案開始偏向於前端
6. 前端不僅僅是 Desktop,而有 Mobile、Pad、TV……
李春平百度研發工程師:
應該來講有三條路,一個是向前走,一個是向后走,另外一個是一直做前端,深入下去。
向前即是前面所說的往用戶體驗與交互設計甚至產品設計師上走,這是最能體現前端價值的了,即用戶體驗,大多人會往這方面走;
向后走就是做 Web 開發,往數據庫和后台開發方面走,不再區分前后端,大家深入產品的研發實現,這條路就是與軟件工程師融合的路,這是的價值就體現在對於業務功能的實現上;
最后還有的是一直深入做前端開發,比如前端各類庫與框架的架構設計,W3C 各種標准深入研究,對於 JavaScript 語言本身的研究,對瀏覽器的原理分析,對於網絡傳輸協議的原理分析等等,這條路要深入下去很不容易,因為涉及很多原理與根本性的東西,所以走的人也不是很多。
當然了,還有一些徹底離開了前端甚至軟件開發,轉行專門做產品或者做業務運營。可能會因為有不錯的技術背景有一定的優勢呢。
胡金埔前端開發者:
我覺得前端工程師需要分兩個方向來看各自的價值:
第一個方向:讓用戶更便捷的獲取信息。這是大部門公司前端工程師應該努力做好的事情。拿到 psd,產出線上的代碼,這個過程中的每個細節都值得你去用認真的態度做好。表單的各種交互,頁面不同元素(區域)間的信息交互,這都未必是普通 ID 可以給你指導好的,你需要依賴自己的技術能力和自己對用戶需求的感知去完成。
這個方向的價值就體現為:信息獲取是否更加便捷?從而你的用戶量是否上漲了?在線預訂是否提高了?
第二個方向:讓前端更加專業。這是一些研究院的大牛每天做的事情。閱讀規范,比較不同版本的區別,並思考引入新特性的意義(技術或商業)。關注 行業的最新發展,找出一些創新點,如果可以的話,站在巨人的肩膀上,不盲目的造輪子。最后,不管是自己的創新還是自己的整理好的當前解決某個問題的最佳方 案,都會給整個行業以及自己的公司的其他前端同學的工作帶來更多的支持。
這個方向的價值更加的技術化,可能短時間無法直接量化,但一段時間后,會從提高的個人生產率,頁面交互的新模型等方面得到體現,甚至會導致新的產品。
元亮 前端工程師:
產品工程師-Web 產品 APP 化使得前端需要了解產品的設計和交互實現細節,從而使前端代碼結構合理可擴展!
跨平台設備實現-並不單單是各瀏覽器的跨平台兼容了。現在的物理設備多樣,只要和用戶產生直接互動的實現工作都可以稱為前端!
完美優雅實現交互和設計細節-用最精簡的代碼和最小的代價還原交互和設計的細節,可用性和可訪問性的提升!
用戶體驗和新技術的結合-HTNL5的發展使得 Web 和移動應用有更優和更佳合理的實現方式,網站前端性能優化-節省用戶成本,節省公司成本,可擴展的標准接口-語義化的頁面使得網站無論從 seo 角度和機器可讀行得到更大得提升,標准化可擴展的數據接口使得和后台的聯系更佳無縫!同時也會大大提升開發效率。
網站形象的業內 PR-以最直觀可見的方式展示公司網站和公司形象!
前端的需求
需要理解產品的邏輯和形成的過程- 希望參與開發產品頁面的相關人員參與到產品討論的階段,了解產品的需求。以及了解產品的未來的隱性需求!列席即可!
需要了解交互細節-希望參與開發產品頁面的相關人員參與到交互討論當中,理解交互和設計細節! 使頁面結構合理和具有可擴展性!列席即可!如果合理化建議可以提出!
需要了解數據接口-理解產品相關模塊所需要的數據與相關技術人員溝通形成文檔。
需要技術的積累和新技術的學習-希望有團隊內的交流活動,頭腦風暴!學習了解最新的行業技術,參加業界的交流!
結束語
前端就是后台實現和視覺表現的橋梁,是貫穿在整個產品開發過程的紐帶,起到承上啟下的作用,一個好的前端工程師他能夠很好理解產品經理對用戶體驗的要求,也能夠很好地理解后台工程師對數據邏輯,或者程序邏輯進行分離的要求,並將這些要求轉化成前台的開發工作。前端就是網站的門面,它的價值遠大於 其他的客戶端開發。