⑴ 前端開發很難嗎
相較於其它編程類技術,前端開發是最易學的一門技術。可以這么理解,Web前端開發技術是一個先易後難的過程,它主要包括三個大的技術架構是:HTML、CSS、JavaScript。
HTML是一種超文本標記語言,就是結構標簽,並不會涉及到復雜高深的技術邏輯,更多時候是需要牢記、背下來一些標簽的作用。所以這個學習階段主要考驗的是記憶力,如果記憶力不好也沒關系,可以多記筆記,需要用到什麼功能的時候看筆記就可以,時間長了代碼練習多了自然就記住了。
CSS的學習方式和HTML大同小異,它的作用是樣式配置,更多時候也是一個死記硬背的過程,不涉及太復雜的邏輯。
比較有難度的是學習JavaScript的過程,這個階段需要接觸到很多復雜的邏輯。HTML和CSS需要互相結合學習,只學習這兩個只能展現一個靜態界面,如果想要增加動態的效果就必須要學習JavaScript。靜態頁面是比較容易就可以實現的,功能全面的動態頁面需要很多復雜邏輯技術的支撐,JavaScrip就是實現這些功能的主要技術。
⑵ 前端開發的難點到底在什麼地方
不同級別的前端面臨的難點各不相同,不可一概而論;
業務開發的前端難點在於對業務的理解和把控能力;
平台開發的前端難點在於產品化的把控和推進能力。
觀點1:不同級別的前端面臨的難點各不相同,不可一概而論。
其他回答有說 CSS 難,有說 CSS 不難的,每個人水平不同,這樣爭論毫無意義。我剛學前端時覺得 JS/CSS/瀏覽器兼容問題都很難,現在覺得也就那樣,因為前端路子廣,辦法總比問題多。後來覺得要評估好需求,把控好項目質量比較難,很多時候我們是在幹事,在解決問題,不是只埋頭寫代碼,時間一長你會發現前端工作中,技術問題往往比較好解決,反而資源+協作問題比較麻煩。現在對我來說比較難的是快速產品化的能力,如何從無到有去做出一些有價值的東西。
舉一個簡單粗暴的例子吧:阿里前端很多,P5/P6 一大把,但是 P8/P9 的非常少,為什麼?進階的難點在哪裡?
前端開發的難點跟前端進階的難點是非常相似的。阿里對每個前端層級都有一個標准,這也從側面回答了這個問題,比如對 P5 來說,難點可能是寫好業務代碼,保證其靈活性和可維護性,能解決各種適配問題;對 P6 來說則需要獨擋一面,能獨立 owner 需求,而 P7 則需要在某方面技術有深入理解,等等。
能提出這個問題首先得恭喜題主,說明題主在當前階段遇到瓶頸了,需要向下一個 level 出擊了。
觀點2:業務開發的前端難點在於對業務的理解和把控能力。
業務邏輯開發本身並不是難點,誰都可以寫。但是對於你自己負責的這塊業務,後續業務的發展方向和潛力,你有去了解過嗎?當業務方提需求過來時你是只負責執行還是和業務方一起探討更合理的方案?你有沒有給自己負責的產品提過一些建議?做過一些改善措施?如果前端只是作為一個執行者,作為一種被調度的資源,那麼即使最終項目取得了好的成績,跟你有多大關系?你自己會有多大的成就感?
另外一個很重要的點:就是對業務的把控能力。業務方總是會催著上線,開發時間不斷被壓縮該怎麼辦?進度不如預期怎麼辦?開發遇到瓶頸怎麼辦?發布新功能翻車了怎麼辦?
我見過有默默加班保證進度的,也有跟需求方重新談延期的,有發布出問題手足無措的,也有自己默默修復的,有遇到瓶頸一籌莫展的,也有及時跟老闆溝通,跟業務方撕逼的… 如何優雅的處理這些問題,有時候比寫代碼更難。為什麼有的人業務代碼邏輯混亂,寫的一團糟?我不相信是智力問題,反倒更相信是對項目本身沒有把控好,本來排了5天工作量的需求被業務方壓到了3天,你還能保證寫出健壯而不失風度的代碼?
觀點3:平台開發的前端難點在於產品化的把控和推進能力。
做業務時有人給你提需求,幫你出交互視覺稿,你只要負責寫頁面就行了。但是在支付寶前端,很多內部平台和技術產品都是技術自己主導,你需要自己發現問題,出方案,設計資料庫,自己出頁面,這是一個從無到有的創造的過程。並且要保證你做的東西是真正解決問題的,而不是做一些自己覺得很牛逼實際上並沒有解決用戶痛點的東西,用我老闆的話說就是對產品的把控能力,不要跑偏了。前端是最容易做出產品化東西的工程師了,因為後端不會做 UI,UI 不會寫代碼,唯前端兼顧,這是最大優勢。
再一個就是對產品的推進能力了,你做的東西可能需要各種資源?如何爭取?可能牽扯到多方利益?如何權衡?東西做出來了如何推廣?如何在用戶的一片罵聲中奮勇前進?
印象中很多平台型產品,剛開始投入使用時都是一片罵聲,各種問題,說實話負責這些產品的程序員壓力是相當大的,天天被罵還得徹夜幫別人解決問題,還得不斷優化系統,你說難不難?
以上三點就是本文所展現的理念,希望能對大家有幫助。
⑶ 前端開發很難嗎
前端相對Java,C++這些後台編程語言入門難度低一些,但是學習到後期也是一樣有難度的,沒有難度的東西沒有競爭力,對應薪資肯定也不高。
有沒有報培訓的必要還是要根據你實際情況和自身的需求,很多人都在自學和培訓之間糾結。我也回答過很多這方面的問題。
自學可以省錢,靈活不受拘束。但需要你有比較好的自控能力和學習能力。如果沒有良好的規劃和自控能力很多人自學到放棄只需要一周。
培訓有老師全程輔導監督、完善的課程體系、就業服務等。但培訓費用昂貴,良莠不齊。學員培訓出來找不到工作也大有人在。所以需要你也要擦亮眼睛。現在機構很多,坑的也不少。
所以你需要分析哪種方式更適合你,自學和培訓沒有絕對的好壞,只是希望你選擇到最適合你的方式。
⑷ 為什麼前端這么難學,培訓班出來的前端。在每個公司都待不長
這只能說明你的前端培訓班比較糟糕而已。前端培訓千千萬,培訓前端的萬萬千,你如果是隨便找了一個,你大概率會被坑啊,你想啊,好的大學在全國所有大學當中才能佔多少比例啊,更何況民間的機構?
正常的前端培訓班本來就是應該通過短期速成的培訓,把1~2年的前端開發的工作經驗傳授於你,如果你根本就沒達到這個水準,那就是非常失敗的培訓啊。
其實前端開發並不難學。前端開發的技術棧。也並沒有什麼艱深的地方,如果說後端開發的難度是1的話,前端開發只是0.5。前端開發最大的問題是技術棧更新過快。需要不斷學習。但是學的內容也並沒有超出正常人理解范疇之外的事。
所以得出結論,培訓出來的前端程序員在公司都待不長,大概率是自身原因,然後是機構的原因。並不是行業的原因。
⑸ 前端剛上班感覺工作做不了
這很正常,只有盡你的一份力好好學就行了。
很多做web前端的,在實踐中的經驗遠比你在學校里學時,提升更快,以後還有機會,不要著急,慢慢來。從頭做起,先不斷的完善自己的知識和技能。
現在node,js,angular,js,react,js,vue,js等等新技術更新太快,前端對接api結構是幹了後端的事情,我大膽認為將來前端勢必還要細分,分為兩派,一個以功能性前端為主導,一個以用戶體驗的前端為主導。
⑹ web前端設計難學嗎未來就業怎麼樣
web前端開發難學嗎
大部分人在學習前端的時候都感覺前端很難學,目前大多數的前端開發不僅包括前端代碼,例如現在最先進的html5和css3,還包含了美工設計等工作,並不是只是寫寫幾個頁面,更多的是用戶體驗。web前端工程師主要是利用一些html和css等各種web技術,完成標准代碼的製作,並且增加一些交互,同時也結合後台效果,完善互聯網的開發。
web前端開發,不管是前端還是後端都是要學習的,當前學習的東西有很多,這就導致一部分人感覺web前端很難學。
未來就業如何
對於web前端開發,對現今前端的發展,中國的發展還很落後,中國沒有Jquery,沒有Node.js,其中最主要的一點是,中國的前端比較封鎖,大家都沒有分享的覺悟。回頭看看,那些發展比較快的行業、軟體,為什麼發展那麼快,最重要的他們願意分享,開源自己的代碼。我很喜歡做前端開慧正發。要說做業務是挑戰自己,做前端開發也是很挑戰自己的,因為信息更新速度很快,要斷的學習,去研究。下面是我來網上轉來的一篇文章,寫的很有道理。希望我們做前端開發的人心能靜下了,好好的學習。因為要學習的知識太多了。在這里我說一句,三百六十行,行行出狀元!
關於一個WEB前端的職業規劃,其實是有各種的答案,沒有哪種答案是完全正確的,全憑自己的選擇,只要是自己選定了,堅持去認真走,就好。在這里,我只是簡要說一下自己對於這塊兒內容的理解。有一個觀點想要分享給大家的是:任何規劃和目標的實現都依賴於知識的積累,而知識的積累來源於學習及學習後大量的實踐。我提供一個實踐途徑,我們可以在工作之餘的時間在網上或外包公司那裡接一些私單做,因為目標不是賺錢,我們可以用最低的價格來提升自身競爭力,獲得大量訂單就意味著獲得大量的實踐機會,同時,還有一些收入作為工作成就感之外的安慰獎,還是不錯的。
一、職業方向定位
首先,只有確定好自己的職業方向,才能做好職業規劃。在我看來,做WEB前端技術能夠找到的職業方向有以下幾種:
(1)資深WEB前端工程師
這個方向算是一個WEB前端最基本的選擇了,在國外,很多老外都能夠把自己的專業做到極致,能一輩子就在一個專業領域不斷學習和積累。主要在於內因和外因兩方面,內因是老外通常思想比較簡單直接,容易一直專注於一個領域;外因是國外的環境很好,能夠良好的支撐這樣的職業發展道路。反觀國內,從內因來講,WEB前端技術人員還是蠻浮躁的,通常會因為WEB前端知識的更新速度太快而覺得學習起來辛苦,最終轉向後台或其他道路。從外因來講,WEB前端人員沒有獲得公平的待遇,可能從HTML頁面製作就開始並沿襲下來的,從來WEB前端人員都比後端人員低一等,貌似前端就是「淺顯」的代名詞、後端就是「深奧」的代名詞,這也直接造就了前端人員的收入無法和後端人員媲美,同時直接巧碧察影響到前端人才市場的活躍程度。另一方面孝茄,前端的技術入門較容易,造成另一個極端情況:人員泛濫、人才稀缺。我想對所有的WEB前端工程師說:麵包總會有的,要耐得住寂寞!我個人比較推薦這個職業發展方向,因為,在這個方向下,只要足夠耐心、厚積薄發,成功的概率是非常高的。同時,這是一條最單純的路,我們更多的是花費精力在技術的鑽研上,而不是辦公室政治等其它瑣事。
(2)資深WEB架構師
說功利點兒,我喜歡這個方向,既兼顧了工作的單純性、又能夠減少實際Coding的工作量能騰出更多時間鑽研技術。在國內,WEB前端工程師遇到較多的情況是總是反復編寫著同樣的代碼,總是面對著同樣的技術和產品,容易感覺枯燥。由於我們擁有最為廣泛的WEB相關知識沉澱,使得我們更加容易成為一名架構師。這個職業發展方向不如第一種來得平滑,主要是作為一名架構師不得不學習:後端技術、DBA、Platform等內容,而這種學習通常需要實際操刀做項目,不是自己在家裡寫兩個Demo就好的,這就勢必會遭遇一段時間的陣痛期。雖然不是很平滑,但是,對於一個大局觀好、悟性好、知識面廣的前端工程師,我推薦你們努把力,走一條光榮的架構師之路吧。
(3)自己創業
其實,自己創業是最好的道路、也是成功率最低的道路,挑戰和機遇並存。這里,作為一個前端技術人員,需要將自己的視野更多放在行業的動態、產業鏈的動態、相關產品領域的動態,把關注細節的優勢繼續保持,同時,增強自己把控一個產品乃至一個公司命運的能力。但是,這條道路和技術之路稍有分歧,後續將不再贅述。
(4)轉崗管理或其他
由於這條職業道路和WEB前端技術之路關系不大,故而,這里不做過多討論,但是,無論是否走上這條道路,我覺得對於任何技術之路,更好的大局觀、更廣泛的視野是良好發展的必備條件,擁有良好的大局觀和更廣泛的視野別無他法,只能不斷的進行知識的橫向拓展和積累,同時,多在橫向拓展知識的時候進行實踐,把知識變成技能。
二、職業發展目標
我都有一個最終的目標,在這個目標之上,我們需要給自己制定一系列學習和成長計劃,制定的方法如下:
第一、梳理知識架構;
梳理知識架構的目的在於,我們要了解清楚,哪些技術是前置、哪些技術是後繼,那些技術是深度、哪些技術是廣度,按照這兩個維度梳理好知識架構之後,我們才能准確地制定清晰的成長目標、高效的成長計劃。
第二、分解目標;
我認為,大抵可分解為三個階段,包括:起步階段、提升階段、成型階段。這三個階段分別對應著不同的目標:
起步階段:
1、基本知識的掌握
在我們梳理的知識架構中,按照我們分析的兩個維度里最前置的、最淺顯的部分,作為打基礎的階段,必須要在這個過程中更多投入到實踐中去,我們通常做的多了、熟練了,就認為這部分知識和內容掌握
2、常用工具的掌握
對於常用工具的掌握應該掌握一些有大公司或專業團隊背景的流行工具,這些工具的熟練掌握能夠提升專業度、職業度,同時,能提升我們的工作效率。我們只有在檢驗自己對於知識和技能熟練程度的時候,才會自虐式的用Notepad去編寫頁面、css和腳本等內容。
3、溝通技巧的掌握
通常做技術的人會被定位為「不善溝通」的人,這是為什麼呢?究其原因,主要是因為多跟程序和代碼打交道,跟人的溝通較少導致。這種時候我們要特別注意增加和人溝通的機會,著重提升這塊兒的能力。另一方面,我們通常被稱為「不懂溝通技巧」的人。作為一個技術人員,包括我自己,似乎天生就有一些難以接受挑戰的缺陷。在國內,我們的技術人員通常都是自己制定方案、自己執行方案,在執行過程中又缺乏相關產品、交互設計等人員的溝通,大多是在自己的思路貫徹下進行開發,久而久之,我們習慣於信任自己的觀點、在自己的視角看問題,對於挑戰總是百般地「據理」力爭。我們需要更多提升的是,如何在對方的視角看問題、如何在用戶的視角看問題。
4、良好的開發習慣
開發習慣是養成的,一旦有不好的習慣,對於將來去修正帶來的將是很大的麻煩,我們在培養良好開發習慣一定要從起步時做起,例如:寫代碼之前先分析、先寫文檔、先寫注釋。定義變數最好能用直接可理解的語義,最好是拼音,別整英文,尤其是生僻單詞,將來自己忘了還要開金山詞霸。文件最好有有意義的文件夾命名來管理,文件名最好有意義,需要版本號的最好能和項目版本號一同更新等等。
提升階段:
1、高級技術的掌握
在提升階段對於知識和技能掌握,我們需要從梳理好的知識架構中選擇更深一層次的技術進行學習,選擇之前,我們先通過類比或預估的方法,衡量自身學習的難點,以學習難點和自己最不感興趣的部分為主。這樣推薦大家的原因是:這個階段我們興趣正濃,已經度過了苦澀的起步階段,到達了興奮的提升階段,我們要用興趣和興奮去挑戰最困難的部分,在我們信心受挫和興趣濃厚之中找到平衡。同時,輔以其他的深層次知識一起學習和研究。
2、產品思想的學習
沒有正確的產品思想,很難設計出良好的程序,無論從界面、交互,還是介面、邏輯,不能夠理解產品、理解用戶需求,我們會給自己造成很大的麻煩,例如:我們千辛萬苦用最新技術、最復雜的實現做出的功能,卻得不到使用者或領導、同事的認可。為了使我們的工作和學習更加有效率、避免無用功,我們需要不斷的學習產品的思想,只有理解了產品的思路,我們才知道用我們的技術去輸出什麼。
3、各種框架的學習
框架是我們提高工作效率的優秀手段,對於框架的學習是成長必經之路。我們學習框架的路線通常應該是:使用——》分析——》個性化定製——》模仿編寫自己的框架。只有大量的使用,才能明白設計框架者在設計背後的思路,只有了解到設計的思路,才能做正確全面的分析,只有正確全面的分析才能支撐我們去對其裁剪或擴展,只有經過實際分析、修改別人的框架,才有可能寫出優秀的、自己的框架。學習通常的路線是:學習、理解、模仿、創造。
4、富客戶端應用的學習
隨著帶寬和計算機性能的提升,以及WEB2.0的如火如荼,富客戶端應用充斥著互聯網,如果你不懂得富客戶端應用,你就不能稱之為一個合格的前端技術人員。可以按照:Flash動畫—>Flash編程—>Flex—>Air—>Silverlight動畫—>Silverlight編程的步驟學習,先學Flash後學Siverlight的原因,一來Silverlight還不太成熟,二來,實際Silverlight借鑒了很多Flash的思想,最好在學習的時候不要本末倒置。
5、各種網路協議的學習
WEB前端技術就是雲上的技術,雲的協議有N種,我們應該著重學習:TCP/IP,UDP,HTTP,POP3,SMTP這幾種協議,在開發WEB前端應用過程中,這些協議是我們的技術的載體,有時候決定了我們的應用是否能實現、有時候決定了我們的應用是否高性能,同時,這些協議還是我們和後端技術交互的重要手段,這些協議就像是密碼字典,幫助我們把後端傳輸過來的密文解釋成我們前端技術能夠理解的明文。
6、程序設計
這個階段我們需要學習OO、UML、設計模式、設計方法,我們要讓技術開發工作變成有目的性、有計劃性,並且,這些目的和計劃必須有理論的支持,這樣,我們設計出來的程序才能夠更優秀、我們的開發才更有效率,這樣,我們的技術才能有所提升。為什麼要學習程序設計呢?主要是,就算我們不用Flash的Action編寫程序的前端邏輯,我們至少要把我們自己的Java函數、包的定義規劃起來,避免將來自己或他人維護代碼的時候出現問題。程序設計能力,在技術人員仍然被看作是程序員的這個年代,是灰常、灰常重要滴。
成型階段:
到了這個階段,我也沒什麼好說的了,如果能達到這個階段,就證明後續的成長之路是異彩紛呈的,是成為一個資深WEB前端工程師,還是成為一個資深WEB架構師,亦或其他,都要具體分析自身的特點和興趣所在。如果是資深的前端工程師,我覺得更重要的是去作新技術的研究,互聯網技術發展速度日新月異,不斷學習新技術,否則就被淘汰。此外,我建議在知識的廣度、深度方面最好能挑選一個自己最擅長和最感興趣的一兩個領域深入鑽研,不要挑太多,多而不精。如果是資深的WEB架構師之路,我建議要深入了解後台技術,這種深入了解一定要伴隨著實際的項目開發,基本方法是:按照別人設計的架構實現幾個Server—>自己設計並實現幾個Server。
⑺ 前端開發很難嗎
目前,有兩三年前端工作經驗,加上大專及以上學歷,會好找工作。現在專業的前端工程師的需求量很大。
對於題主的情況,我有三點建議:
第一,展示前端成果。前端知識學一年不同於做一年,我面試時,會關注應聘者做了什麼、做了多久。如果應聘者有github,看一看代碼,就可以大致評估出他的能力,准確又節約時間。題主如果有精力,可以在github上放些自己的成果,這會加分不少。
第二,要了解技術細節。應聘者不適合說前端擅長的是js,因為js的技術點非常多。要是擅長js,我一般不信,我會挑難點問,要是都答上來,那是真牛。我期望得到的回答是「ajax原理和應用」、「jquery的應用」、「backbone.js」等框架、「性能優化」,等等。
第三,要懂編程和計算機相關的基礎理論。應聘初級前端工程師,我不會關注這個方面。要是中級及以上,就必須懂這些。比如計算機網路的http協議,這是前端十分依賴的基礎知識。演算法和數據結構是深入js編程的基礎。對於中高級工程師,如果不懂這些,連基本的前端性能優化都是做不了的。所以,前端工程師的知識和技能,不限於前端技術,也要懂編程理論和後端知識。
另外,題主應聘時候可以了解一下招聘方的招聘需求是不是很迫切,因為有些時候,招聘方並不是急需招人。
⑻ 前端開發哪部分比較難
難點在於:
1.對業務的理解
由於前後端分離的普及,越來越多的業務邏輯開始往前端這里轉移。「客戶想干什麼」,在大的公司可能有UE專門去思考這問題,前端只需要實現就可以。但是其實大多數的小公司沒有專職的UE設計。很多時候需求並不明確。前端開發就需要開發人員自己對業務有一定的了解知道客戶需要什麼?才能去寫合適的業務邏輯。如果並不能很好的去了解業務,寫出來的頁面可以看,但是就會出現,沒有門把手的一面只有拉才能開門的設計。而且其實業務最多變的就是業務邏輯,如何設計好才能滿足業務邏輯變的需求,也是一個很難精的事情。
2.計算機基礎知識
CDN、網路接入層、API網關、存儲系統、代理、cookies、socket等等的專業術語。一聽可能就有很多人蒙圈了。很多時候只是開發頁面很簡單,但是現在出現問題了,因為問題是在前端表現出來的,很有可能需要前端第一時間去定位問題點。這就不得不要求前端需要了解計算機的基礎知識來定位具體問題。0基礎培訓班可以寫網頁,但遇到如代理問題,API網關問題可能就無從下手了。
3.新技術的獲取,方向的選擇
前端生態和工具不斷的在變化,如WebAssembly,Less,TypeScript不斷在變化的語法特性,Vue,React,Angularjs等不斷變化的框架。iView,Bootstrap, Element-ui,Ant Design等各種框架。 vscode ,sublime , atom ,WebStorm等開發工具。出現了「別更新了,學不動了」這樣的言語。如何保持對新技術的獲取。如何跟對技術,如何選型技術其實也是一個難點。
4.工程化
只是寫一個頁面可能不難,但是前端由於能力的增加,越來越多的前端工作開始接觸到工程化的問題。軟體工程化一直沒有銀彈,也就帶來了設計模式的知識。如何讓各個分散的頁面變成可以互相配合契合業務,如何公用代碼,如何設計架構。這也是一個需要時間積累的能力。
5.優化兼容
前端是第一個和客戶接觸的頁面,性能好壞直接影響PV、UV、訪問次數、跳出率、轉化率、平均訪問時長等指標,但是前端優化兼容又是一條慢慢長路,從CSS到JS再到網路,再到後台優化的無止境。後端最難的可能也是優化,優化演算法,優化資料庫,優化響應時間。前端演算法優化,渲染優化,針對瀏覽器優化,還有兼容問題,IE,CHROME,火狐,大大小小廠商的瀏覽器,不同手機的瀏覽器。這條路也是漫漫長路。也最考驗一個前端的綜合能力。
6.溝通能力
前端提意見的門檻低。後端提意見需要一定的專業能力。前端做演示,小朋友看,問問他們有什麼意見,估計也能提出很多,所以前端需要和跟打交道的能力,如何溝通也是一個不可缺的能力。和客戶交流,和後端交流,和產品經理交流。