web前端如何才算入門?如何才算合格?如何才算大牛?
題主一名大二學生,始終不能對前端有清晰的理解。所以希望業內前輩多多指教,謝謝~
入門:能做東西出來了。合格:能做出優秀的東西來了。大牛:不光做東西還會吹牛逼的了。
入門就是問一堆大牛不知道怎麼回答問題。
合格就是看不懂大牛問的一堆問題。
大牛就是每天製造一堆自己頭痛的問題。這個問題我想化半小時回答一下
現在社會非常浮躁,我個人也參加了一些面試,問題都令人感到奇怪,比如問你js裡面的深層複製,js原理上沒有這個,都是不得已為之,不值得推薦。java需要這個,所以原生有clone,大家都不明白那些大神在創造js的時候不會不明白有clone這個事情,但為什麼他們不去做這個。
作為一個大二的學生,我想學好基礎知識才是重要的,至於前端現在流行的一些東西,我覺得還是可以放一下。
我現在lead一個整個生產線的技術團隊,從前端到所謂的後端到資料庫到現在一些的大數據話題,越來越感受到基礎知識的重要性和必需性
你所必須要知道的無論什麼前端工程,大的小的,都包括在一個基礎的馮諾依曼體系下。為此了解輸入輸出和計算是必須的
同時,你需要做的第一件事情時了解2個問題事項:
1,控制腳本2,渲染體系以上都逃不開一個重要的話題,就是計算,以上2點,你需要了解基本的javascript構成和html/css/dom構成
有個基本認識以後,你需要了解的並不是那些瑣碎的技巧,包括什麼AMD,CSS Hack
反而你需要了解這些腳本和渲染是如何工作的。推薦你了解下javascript v8引擎和webkit引擎工作方法。你需要了解的包括event體系,優勢是什麼劣勢是什麼,原型鏈,瀏覽器的渲染過程,比如為什麼修改一個div的寬度會比修改一個div的背景顏色代價要大非常多。
明白了以上一些話題,你的前端的認識已經超越了80%的工程師,而對可能一生的前端生涯產生影響。這非常重要,別的,其他的,小的技能可能3年要變100個,但以上這些可能10年也只會變1個。
為了說明以上問題,你可以看看v8這幾年的發展幾乎沒有太多,而你看看css樣式的新增,http協議的更新,還有無盡的設計模式,virtual dom概念,模塊化管理等等讓你應接不暇
但這時你細細想來,都是那些對基礎概念了解透徹的人丟給大凡前端碼農一個狗骨頭玩玩,大凡碼農表示非常開心,但那些了解原理的人,會覺得,就那麼回事情,用XXX的時候有點麻煩,所以做了個東西改變一下
之後,為了找一份工作,你可以了解下一些trick,抱歉,我對很多東西的理解,他們只能是trick,比如css hack,css對class的選擇次序,301/302是什麼。很多東西都是那些造這些東西的人一拍腦子的事情,其實沒太多道理
國內現在有很多好的前端,但環境仍然不是太好,祝你好運入門能寫靜態網頁,及格能寫通需求邏輯,熟練能利用各種框架實現功能,大神嘛,再造一個jquery給我們看看
很多搞前端的都一直在說我並沒有什麼前端知識,雖然我這兩天花了7個小時就把http://ASP.NET MVC的Razor template engine改成了支持JavaScript的純粹前端的Razor template engine。所以我想可能要比我厲害十倍才算合格?
https://github.com/vczh-libraries/gacjs
入門:
能比較熟練的使用HTML+CSS 寫出不考慮兼容性的頁面,然後還能用jquery來實現頁面的比較簡單的DOM操作,JS的基本的語法弄清楚了。合格:HTML+CSS濫熟於心了,各種瀏覽器,各平台的兼容性都能搞定。對於web的載入速度,性能各方面都還做得比較到位,第三方的jquery,zepto等都還用得比較熟練了,基本可以脫離API了。知道模塊化開發AMD/CMD,了解MVC/MVVM的框架(backbone,angular,knockout等)。大概了解一些安全問題的防範。。跟後端配合完全沒有問題。大牛(我不是很確定題主所說的大牛是什麼程度吧):合格的部分就不用說了,我覺得大牛的關鍵還是在於不僅是前端技術的廣度與深度,還有各方面的能力。溝通能力,解決問題的能力,產品思維,考慮問題的角度,高度等方面。前端的水有多深,應該在圈子裡干不用太長時間就能了解到了,當然也是大有牛人在的。我面試的時候基本上就是這樣一個標準來衡量面試者的,個人認為關鍵還是看自身的努力與潛力吧。題主多看多寫多思考吧,基礎一定要打好。或許突然有一天你發現自己就牛逼了。@vczh 來,咱倆pk一下
https://github.com/astamuse/asta4js1,讀過w3c等入門讀物,從把知乎的文字變成紅色,直到可以寫一個5分相似度的知乎首頁...2,在日常工作中能夠通過搜索得到答案,複製粘貼修修改改總能完成任務...3,可以在編程時選擇使用同功能的函數...4,正確的選擇和使用第三方類庫...5,自己開始封裝得意的代碼...6,考慮團隊的使用習慣,制定團隊的開發規範...7,c/c++/java 寫起來也很順手啊...8,覺得應該有門新的語言,暫且叫 javascript+
看題主的描述,趕腳題主和很多大學生都一樣一樣,很是迷茫,但是題主大二就感到迷茫了,這是好現象,一般好多大學生都要在大三才會出現迷茫現象題主是想學習web前端,但是又不曉得如何才算入門?合格?甚至精通?這隻能說,題主對於web前端每個階段需要熟知的知識不清楚,不知道哪個階段,具體應該學習哪些課程,沒有一個詳細的學習計劃個人建議題主可以從web開發基礎知識開始學習,然後學習實踐,最好去IT在線教育網站,看他們分了課程模塊的視頻教程,一般這類教程裡面都對每個階段要學的內容有嚴格的劃分,個人推薦:web前端開發視頻教程當然但從教程來學習,肯定只能達到入門和合格的地步,要精通的話,還需要具體投身工作實踐幾年才有可能達到題主現在要做的就是快速入門,熟悉web前端開發的各種技術,並能運用於實踐
掌握html css js jquery ajax。
html,基本標籤和屬性,注意掌握標籤語義。
css,文檔流,各種屬性,盒模型,等等。css中細節太多,能用和能用好差太多。
js,相對比較難,最好橫評著學習,比如js單線程,有啥特性?跟其他語言比較還有啥不同?js怎麼用什麼來替代面向對象,用啥實現繼承。就像這樣的。跟css一樣,也有不少細節,能用和用的好差很多。
jquery,作為屹立不倒的js庫,其中的設計思想很值得學習。用jq開發起來也很快哦
ajax,已經是常規技術了,不會就作死。多看原版書,這方面中文書都是咀嚼過的
前端水很深,入門需謹慎
輪子哥的答案估計題主目前是看不明白了。首先題主說一下自己的詳細專業吧,讓人大致對你的計算機基礎有個認識,不然無從回答嘛。如果只想有一個清晰的認識,找幾本入門書看一下就好了,比如說《Web標準實戰》 、《深入淺出HTML》、《精通JavaScript》這些。題主說「始終」不能,這個讓我很疑惑,題主應該還沒有開始進行「理解」,何談「始終」不能有「清晰」的認識呢?
一個小時可以入門,一百個小時算是合格,一萬個小時也許能成為大牛。人們眼中的天才之所以卓越非凡,並非天資超人一等,而是付出了持續不斷的努力。1萬小時的錘鍊是任何人從平凡變成超凡的必要條件。——馬爾科姆·格拉德威爾
推薦閱讀: