韓建忠001
一、基本知識 我們生活在網(wǎng)際網(wǎng)路時代,你想知道的任何事情幾乎都能在15分鐘內(nèi)找到相關資訊。可是,能找到資訊并不等于你會使用它。我認為所有前端工程師至少都應 該掌握某些基本的知識,才能有效地完成自己的工作。如果一遇到問題,就停下工作上網(wǎng)四處搜尋解決方案,怎么可能保證按期完成工作呢?聽聽,還有誰在說“我 不知道,但我可以上網(wǎng)搜到?!闭堖@些同學把手舉起來,讓大家認識一下(immediately raises a flag for me.)。下面我列出一些基本的知識點,這些都是我認為一名前端工程師(無論工作年頭長短)在沒有任何外來幫助的情況應該知道的。 [list][*] DOM結構——兩個節(jié)點之間可能存在哪些關系以及如何在節(jié)點之間任意移動。 [*] DOM操作——怎樣新增、移除、移動、復制、建立和查詢節(jié)點。 [*] 事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。 [*] XMLHttpRequest——這是什么、怎樣完整地執(zhí)行一次GET請求、怎樣檢測錯誤。 [*] 嚴格模式與混雜模式——如何觸發(fā)這兩種模式,區(qū)分它們有何意義。 [*] 盒模型——外邊距、內(nèi)邊距和邊框之間的關系,IE 8以下版本的瀏覽器中的盒模型有什么不同。 [*] 塊級元素與行內(nèi)元素——怎么用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應該如何定義它們的樣式。 [*] 浮動元素——怎么使用它們、它們有什么問題以及怎么解決這些問題。 [*] HTML與XHTML——二者有什么區(qū)別,你覺得應該使用哪一個并說出理由。 [*] JSON——它是什么、為什么應該使用它、到底該怎么使用它,說出實現(xiàn)細節(jié)來。 [/list] 重申一下,上述這些知識點都應該是你應該“想都不用想”的東西。我一開始問的所有問題都是想摸清你對所有這些領域知識的掌握程度。雖然上面列出的這些知識點并沒有面面俱到,但我覺得你至少應該掌握這些,才有可能跟我坐到一間辦公室里來。 二、少量提問 我非常贊同面試者問的問題越少越好。反復問應聘者各種問題既不公平,也很無聊。我在任何一次面試中,通常只問三個大問題,但每個問題又會涉及我所能想到的多個方面。回答每個大問題一般要經(jīng)過幾個步驟,這樣我就可以在每個步驟中穿插著問一些小問題。比如說:
HR一般不會面試太深的問題,主要是了解一下你之前的工作經(jīng)歷,更多的是你自己描述,中間可能會問一些初級的問題,比如,你為什么從上一家單位離職等類似問題。
這樣的布局用絕對定位實現(xiàn)最合適,ABC的外層用相對定位,里邊各列用絕對定位就可以。至于CBA且B寬度自適應,還是用絕對定位,但只定位C,A分部到兩側(cè),中間的列margin設成左右列的寬度就可以。
web前端開發(fā)工程師想要硬氣的跳槽,起碼應該達到以下幾點: 1.掌握扎實的技術基礎, 需要掌握技術包括:HTML、CSS、JavaScript; HTML是Web程式設計的基礎,HTML也是一種規(guī)范,一種標準,它通過標記符號來標記要顯示的網(wǎng)頁中的各個部分。網(wǎng)頁檔案本身是一種文字檔案,通過在文字檔案中新增標記符,可以告訴瀏覽器如何顯示其中的內(nèi)容。 維護大型的CSS程式碼庫并非易事,特別是那些隨意散漫未經(jīng)組織的CSS程式碼極易變成一團亂麻,所以,應該掌握CSS命名規(guī)范,來幫助開發(fā)者編寫優(yōu)質(zhì)的程式碼。 2.深入理解前端工程化和元件開發(fā); 需要熟悉web前端框架—— React、等, React為我們提供了直接易用的,以狀態(tài)為核心的前端應用開發(fā)方式,前端工程師應該會分析React內(nèi)部工作原理,討論React中簡單元件、類元件等渲染流程。 單元測試是應用開發(fā)中不可或缺的部分,日常開發(fā)中會用到的單元測試的例子,所以應該掌握。 3.熟練掌握Web開發(fā)相關知識 至少熟悉一門后端語言,例如、Java、Go等; 內(nèi)部原理視非常重要的,應該明白的主程序是如何啟動的、如何載入內(nèi)建模組、os包如何實現(xiàn)等等。 4.對技術有熱情,有一定前端架構能力或者技術深度;具備團隊合作意識強,能夠多團隊協(xié)作開發(fā);具備企業(yè)級大型前端應用開發(fā)經(jīng)驗更佳。
前端工程師需要懂得設計類程式碼和js,有需要了解一些后臺語言,例如PHP等。
1.入門階段:能夠解決一些問題的水平。有一定的基礎(比如最常見的HTML標簽及其屬性、事件、方法;最常見的CSS屬性;基礎的JavaScript程式設計能力),能夠完成一些簡單的Web前端研發(fā)需求。 2.進階階段:將JavaScript、HTML、CSS之類的編碼幫助手冊里的每個方法/屬性都通讀幾遍!只有將基礎打好,以后的路才能走的順暢。 3.入室:最強程式碼,知道所有能夠解決需求的各種方案,能夠選擇使用最優(yōu)秀的方案滿足需求。這個級別基本上產(chǎn)品開發(fā)程式設計中的程式碼主力。程式設計師應該能夠肯定的回答:對于這個需求而言,我的程式碼就是最優(yōu)秀的程式碼。 4.注重細節(jié),注意那些當前需求里沒有明文給出的細節(jié):程式碼效能的差異、執(zhí)行平臺(瀏覽器)的差異、需求的隱性擴充套件、程式碼的向后相容等等。
web前端工程師是不參與任何的設計,直接將網(wǎng)站美工制作的網(wǎng)站效果圖使用ps按照效果圖進行切片并使用、css、js等程式碼進行網(wǎng)頁的制作,最終編寫出符合w3c標準的相容各個主流瀏覽器的靜態(tài)頁面,同時還需要按照后臺開發(fā)人員的要求留下一些后臺資料的介面。所以說網(wǎng)站前端工程師更多的是程式設計而不是設計。 UI設計師一般是學美術或者設計出身,精通photoshop、AI、AE等平面設計工具,其在網(wǎng)站開發(fā)過程的中的職責就是按照客戶或者公司的需求設計出符合客戶需求和介面或者顏色符合大眾視覺的網(wǎng)站效果,如根據(jù)不同行業(yè)的需求設計顏色、設計介面風格等,其工作的最后成果就是網(wǎng)站的效果圖。
less和sass什么時候?qū)W都行,1,2天就能學會。這個不著急,沒有什么承上啟下的作用,可以單獨拿出來學。 bootstrap就是一個框架,把最主要的柵格系統(tǒng)看看就好。其他的大概了解能干啥就行,很多公司,是不讓用bootstrap的,而是用原始碼自己寫。這個用一天的時間沒啥問題。 和angular比較重要,如果學會,算是上了一個臺階了。所以重點說說這個。 angular屬于mvvm框架,一開始覺得angular挺復雜的,所以想學一個簡單的,輕量級的,所以決定先學vue。但是在了解的過程中發(fā)現(xiàn),很多的專業(yè)名詞,沒聽過,或者理解不透。所以又開始從頭學習。在學習的過程中又開始迷茫,發(fā)現(xiàn)了很多JS不懂的地方。 所以,又開始深入研究js的dom,函式,ajax,陣列等??傊昧撕荛L的時間,浪費了很長時間。 最后總結一下啊。其實,沒必要鉆那么多牛角尖。 先做著vue的例子,不懂的地方,直接略過,很多時候,不理解的不懂的東西,用著用著,突然就能明白。照貓畫虎先把VUE的例子跟著做一遍之后,同時梳理一下涉及到的JS知識點。能自己用vue做出幾個小成品的時候,開始結合js研究。之后再去涉及angular。 angular差不多有個大概了解的時候,反過頭接著學vue,你會發(fā)現(xiàn),又會發(fā)現(xiàn)很多新東西。 web前端這個東西特別有意思,當你達到一個高度,返回來再看以前的技術,會發(fā)現(xiàn),哎呀,竟然又能發(fā)現(xiàn)新大陸。
培訓學校很多,沒有具體的衡量標準的。但是可以從幾方面去選擇: 1 有很多優(yōu)秀導師的 2 培養(yǎng)出很多優(yōu)秀學員的 3 只做培訓的,沒有做其他的 4 做的比較久的。
建議找全程面授課程的地方學習,課程體系很重要,現(xiàn)在企業(yè)在用人方面講究全棧的前端工程師人才,所在在課程選擇上要慎重,學習內(nèi)容要基于HTML5,要包含pc端+移動端+后端。這要才能學的系統(tǒng),就業(yè)上才會有所保障。
Huanglingying
首先,當前重慶互聯(lián)網(wǎng)發(fā)展正在勢頭上,從企業(yè)的招聘需求看前端開發(fā)的需求量依然較高,因此在重慶不愁找不到一份前端的工作。
一、在重慶找前端工作的方法:
如果你是一個前端小菜鳥,找一份心儀前端工作有些困難,但并不代表你就會找不到工作?此處全是干貨,有用記得點贊收藏!
1、部分優(yōu)質(zhì)企業(yè)在招聘時會對外招聘初級前端人才,因為工作上有些簡單或者不可替代的事物需要初級前端來處理,為中高級前端騰出時間和精力來做更重要的事情,才不會給企業(yè)造成資源的浪費。
2、報班學習。相較于自學來說,可能存在效率低下,容易走向誤區(qū)等問題,如果有一定的經(jīng)濟條件可選擇報班突擊,提升自己的前端開發(fā)水平。
3、少談薪資先入行,選擇前端實習工作。先入行可從實習工作做起,在企業(yè)職位上能夠觸碰到行業(yè)或者企業(yè)給予的相關前端開發(fā)需求,增添自己的實戰(zhàn)經(jīng)驗。有時候?qū)W習也并不是要在課本上,同時還可以向周圍的前端同事請教,也是快速提高自己能力的途徑之一。
4、主動在崗位中學習,承擔更多工作。積極融入到團隊當中,多承擔一部分工作,不斷的在工作熟能生巧,攻克自己的薄弱環(huán)節(jié),同時虛心向同事請教,相信勤奮的你能夠收獲事半功倍的效果。
二、重慶前端的薪酬如何?有哪些要求?
1、從經(jīng)驗的角度看:
經(jīng)驗在3年以下的前端人才,企業(yè)給出的薪酬主要集中在5—10k左右;
2、從招聘量的角度看:
相較于初級前端,大部分的企業(yè)愿意給8—15k的薪酬給3—5年經(jīng)驗的中高級前端乃至前端架構師。因此,雖然工作機會較多,但留給初級前端的機會偏少。
3、從學歷方面看:
大部分的企業(yè)比較青睞大專及本科以上學歷的前端人才,畢竟前端職位需要一定的技術和知識,因此學歷是該職位的敲門磚。
三、初級開發(fā)怎么才能成長為一名高級前端?
對于初級前端來說,除了熬年限、熬經(jīng)驗,實力才是最為重要的。
高水平的開發(fā)也是從初級水平成長起來的,你也是可以成長為一名高級前端開發(fā)的。前端的知識體系龐雜,框架、庫、插件數(shù)不勝數(shù),API迭代飛速,怎么才能在如此混亂的局面中抓住正確的道路?下面介紹3點關鍵點:
01 夯實基礎
無論是做什么樣的專業(yè)技術工作,專業(yè)基礎都是十分重要的?;A不牢固,上層建筑建的再華麗,都是岌岌可危的。
前端的基礎是什么?是HTML、CSS,JavaScript。特別是JavaScript,我們對前端基礎的掌握程度,極大程度上體現(xiàn)在對JavaScript的掌握程度上。所有的瀏覽器引擎運行的腳本語言都是JavaScript,我們使用的框架也是用JavaScript開發(fā)的。即使最近非常流行的typescript,其實底層也是JavaScript,是需要編譯為JavaScript后才能在瀏覽器運行的。
即使是高級前端工程師的面試中,對于JavaScript知識的考核也是必不可少的。不僅體現(xiàn)在JavaScript語法,API,也很大一部分包含著最新的ES6的知識。
02 洞悉原理
我們需要知道的原理不僅體現(xiàn)在框架的原理上,也體現(xiàn)在JavaScript語言和瀏覽器引擎的原理上。高級前端工程師對于框架和語言的理解絕不會停留于了解API的層面上,需要深入到了解內(nèi)部原理和運行機制的層面上。
JavaScript引擎運行各種數(shù)據(jù)類型的方法的操作細節(jié),各個JavaScript runtime在運行JavaScript的差異細節(jié),各個框架的設計原理,使用的設計模式,核心算法,比如拼接字符串時+方法和join方法,在不同瀏覽器因為引擎操作不同而有著截然不同的性能差異;又比如Vue響應式的原理,Virtual DOM生成真實DOM和Diff的算法,運用到的發(fā)布訂閱設計模式,自定義指令,插件掛載等等,即便不懂這些,寫起業(yè)務邏輯來完全不耽誤,但是不懂這些在前端市場上完全沒有競爭力。
能完全弄懂這些原理的人的確相對很少,但是會寫JavaScript、會用Vue之類框架的人卻很多,此時如果企業(yè)看到你是了解原理的高級開發(fā)者,你的競爭力必然是陡然上升。另一方面高級前端作為初級前端的引領者,要能夠幫助初級前端工程師解決棘手的問題。如果不懂得原理,如何能夠快速的定位和解決問題,如何履行高級前端的職責?如何能夠?qū)τ诓粩嘧兓目蚣蹵PI迅速地理解和深入運用?
03 主動學習
一名優(yōu)秀的程序員絕對不是一個被別人牽著鼻子或者被人用鞭子趕著才會去學習的人,他一定是一個主動學習的人。
優(yōu)秀的程序員之所以優(yōu)秀,是因為他有深厚的知識積累,而這些知識的來源,是因為他在不斷地學習。所以才能夠在工作中解決棘手的問題,在面試中回答出刁鉆的難題,因此而獲得豐厚的薪水。一個被動學習的人,我想是很難達到這種地步的。
作為前端要主動學習,方向必須是能夠具有針對性的提升自身競爭力的內(nèi)容,而且是輕易不會過時的穩(wěn)定的知識。比如就像語言內(nèi)部機制和框架原理,設計模式這種知識。學了這種知識,其實就有能力自己做一些簡單的框架,工具和庫了,心中有底氣,就可以擺脫被不斷更新的應用型,API型知識牽著鼻子走的局面。
前端依然是一個很有前途的職業(yè),如果目前還只是一名初級前端的話,一定還要努力盡快成為一名高級前端開發(fā)者。在夯實基礎的前提下,向縱深出挖掘,在做好工作的同時,利用平時點滴零碎時間,追根朔源式的學習,不斷積累前端知識。同時也建議多看些前端最新新聞,前端前沿技術之類的文章,多嘗試最新的技術功能更新,緊跟技術發(fā)展,才能不被飛速發(fā)展的前端圈落下。
更多關于重慶前端職位的回答,歡迎百度搜索匯博招聘~
Leo不是處女座
前端工程師不一定需要懂設計方面。倘若有這等要求,前端工程師豈不是一項除其本身特征性工作外還包含用戶界面設計、視覺設計、業(yè)務邏輯及交互動畫設計師等工作的職稱了么!前端工程師,主要工作內(nèi)容與用戶界面的表現(xiàn)緊密聯(lián)系,但均為在圖形上或以其為基礎通過某種實現(xiàn)方式去正確、準確呈現(xiàn)什么。之所以以“主要工作”修飾,是因為 / 的出現(xiàn)與發(fā)展致使前端被引入服務器端性質(zhì)的工作內(nèi)容。在能力方面:對 HTML / CSS / JavaScript 具有專家級別的知識;有較熟練使用 AngularJS / / jQuery 或者其它類庫的經(jīng)驗;較熟悉第三方組件(插件)生態(tài)環(huán)境及具體案例;有較熟練使用 Jade / Swig / Handlebars / Mustache 或者其它模板引擎的經(jīng)驗;有較熟練使用 SASS 或者其它 CSS 預處理器的經(jīng)驗;有較熟練使用 CoffeeScript 的經(jīng)驗;對 CSS / JavaScript 設計模式有很好的認識及應用;對常用數(shù)據(jù)結構和算法熟悉;有使用 GruntJS / GulpJS 任務運行器的經(jīng)驗;有使用 Yeoman 生成器的經(jīng)驗;有諸如 Bower / Volo / JSPM 等前端靜態(tài)資源包管理器使用經(jīng)驗;熟悉本地及遠程(真機)調(diào)試操作;有 Git 的使用經(jīng)驗;意識驅(qū)動行為,所以:有自己的技術信仰;有渴望嘗試新技術的強烈愿景及較強的主觀學習、客觀探索能力;擁有令人難以置信的關注細節(jié)的精神;在諸如 Github、Sitepoint 等這樣的技術社區(qū)活動;因為你不是一個人工作,并且要對一個產(chǎn)品付之責任心,所以:有良好的編程風格和文檔習慣;對模塊化開發(fā)及相關標準有很好的認識及應用;有對網(wǎng)頁標準和標準制定機構重要性較深刻的理解;建站過程中考慮其它諸如UI、安全性、高性能、SEO、可維護性以及技術因素等方面;有跨瀏覽器(主:兼容性)、跨設備(主:響應式)開發(fā)并測試頁面的經(jīng)驗;對網(wǎng)格在WEB設計中的應用有深刻的理解,以及具備系統(tǒng)(有組織)地實現(xiàn)出來的能力;能夠獨立工作并做出正確的抉擇;能夠適應不斷變化的更新 / 擴展 / 改版需求,同時處理多個項目;能夠提供準確的定時估計工作(適應準時交付管理法則);有與服務器端程序開發(fā)人員協(xié)同工作的經(jīng)驗;能夠(熟練)閱讀英文資料;有一定的工作壓力承受能力;然后再為自己從長遠打算及加分:有 NodeJS Web / 服務器 / 客戶端應用程序設計、開發(fā)、優(yōu)化經(jīng)驗;有 MangoDB / Redis 等No SQL 數(shù)據(jù)庫設計、實現(xiàn)、維護經(jīng)驗;有使用 PhoneGap / Apache Cordova 進行移動應用開發(fā)經(jīng)驗;有瀏覽器 Addon 擴展(以擴展的形式添加一些為提高用戶體驗的附加功能)開發(fā)經(jīng)驗者;
我的大BABY
隨著時代的發(fā)展,很多新興的就業(yè)職位隨之產(chǎn)生。前端工程師將就是隨著互聯(lián)網(wǎng)的快速發(fā)展而產(chǎn)生的。其實在很多人的觀念里,前端工程師也就是一個切頁面的而已,他們也就是會html、css、javascript這些沒有任何技術含量的網(wǎng)頁制作而已。然而隨著技術飛速發(fā)展,人們對這些技術的要求也是越來越高,如果只憑著一個人來把所有的事情都解決是很困難的,所以這個時候前端工程師就開始發(fā)揮著他們很大的作用了。
那我們應該如何來面試前端工程師呢?
首先我們要了解到一般關于工程師的面試都是被分為問答面試和代碼面試的。當然也有很多公司會增加一些其他的面試。不過這就主要看公司的情況而來。一般前面一二輪的面試都是主要是技術方面為主。后面幾輪就是你的老板要和你聊聊你的待遇和規(guī)劃的問題了。接下來就讓我們來聊聊面試前端工程師的一些技巧吧。
如果你想成為一個優(yōu)秀的前端工程師你就必須要有一些基礎工程師所必需的具有的扎實的理論基礎。這些扎實的理論基礎是你面試前端工程師的前提。如果你不具備這些理論上的知識想必你連面試的資格都沒有。所以想面試成功你就需要掌握這些有關的理論知識。
關于這個前端工程師的面試,考察能力時候很重要的。一般呢,我們可以總結為前端工程師是有關基礎理論和能力的綜合。而這個里面的能力就包含這個考察能力這個考察能力呢一般就是指工程師的編程能力。
一般面試官都是通過案例問題來檢驗每個人的考察能力的。這個所謂的案例問題就是在編程上的一些算法題。這一般有些小復雜所以就需要你較強的考察能力來配合了。
在我們在面對面試官時我們千萬不要緊張。在進行自我介紹時我們要努力做到自信大方、吐字清晰。我們在自我介紹時要用簡明扼要的話語來介紹自己,突出自己的優(yōu)點表明自己的求職意向。你要通過寥寥數(shù)語把自己的優(yōu)勢都向面試官介紹清楚。記住不必要的話語要少說。
好了關于如何面試前端工程師這個話題我就聊到這了。希望我的回答能對你有所幫助。
寶媽媽愛吃醋
從前端開發(fā)要掌握的技術來講,前面已經(jīng)說得差不多了。我主要想從面試者的角度談一談看法。如果是我面試,就給應聘者一個開放的項目,可以提供服務器端API或數(shù)據(jù)服務,限定一周時間,這叫試做。然后,根據(jù)評審確定入圍的人,再面試。面試可以圍繞項目展開,首先讓面試者圍繞HTML、CSS和JavaScript講一講設計思路、實現(xiàn)過程、遇到了什么困難,如何解決的,最終實現(xiàn)方案與設計有什么出入,有什么收獲,等等。然后再根據(jù)項目中的不足有針對性地提問測試,考察面試者的實際經(jīng)驗和解決問題的能力。解決實際問題的能力最重要??傊?,實際的開發(fā)工作不同于考試,考試設計得越接近實際工作需要,結果才可能越真實,才可能真正招到想要的人。
優(yōu)質(zhì)工程師考試問答知識庫