⑴ 前端和後端的區別,哪個好學一點
前端和後端是從開發者角度來說的,前端就是用戶可見部分的優化、交互功能開發,隨著軟體WEB化,Html5前端開發技術的發展,前端的技術方向越來越多,可開發解決的功能很多。
web前端有廣闊的發展空間,app、小程序、移動端、pc端等都是需要前端技術的開發支持才能夠完成,技術門檻相對較低、需求量較大,薪資待遇良好。只要是互聯網端的客戶界面,就需要前端來製作完成,前端開發的編程量不大,但是需要部分編程,入門簡單,但是要學的深入需要一個過程。
Web前端招聘崗位
• 前端開發工程師、Web開發工程師、網頁開發工程師、HTML開發工程師...
• H5開發工程師、移動應用開發工程師、App開發工程師、小程序開發工程師...
• JS開發工程師、Vue.js開發工程師、Node.js開發工程師、前端架構師...
• 小游戲開發工程師、數據可視化開發工程師、WebGL開發工程師、WebVR開 發工程師、Web安全工程師...
在互聯網行業,前端有WEB前端、HTML前端等,隨著互聯網技術發展,就業方向也有很多。web前端的就業方向有web架構師、web前端工程師、HTML前端開發工程師、網頁設計師等等。
HTML前端開發
與Web前端開發不同的是,使用HTML5不僅僅可以開發前端,還有網頁游戲,手機APP,使用瀏覽器進行3D渲染等一系列建立在HTML5標准與搭載其標准瀏覽器上的開發,而未來可能會有更多的功能分支並入HTML5標准。web前端工程師
這個方向是目前從事Web前端開發的主要就業方向
Web架構師
薪資普遍比較高,技術要求高,掌握多種技能,包括:後端技術、DBA、Platform等等,甚至包括網站優化SEO技術。
數據方向
數據研發這個是在Web開發的基礎上用數據附能,懂可視化的一定是有前端能力的,懂hadoop的一定java要熟悉,屬於Web開發的拓展方向。
大前端方向
比如阿里,在大量實踐rn和weex;由於公司內部安卓/ios式微,一定程度上,前端把ios和安卓收編了,統稱大前端。
圖形學方向
前端自然是與圖形學有千絲萬縷的聯系,除了上面提到了可視化,還有相關3d引擎的開發工作。做這一行要求也非常高了,圖形學相關的演算法,3d引擎的開發,這都需要圖形學相關知識。
⑵ 程序前端跟後端有什麼區別呀
前端開發主要做的是用戶所能看到的前端展示界面;後端開發主要做的是邏輯功能等模塊。其實主要區別體現在以下兩個方面:知識結構與實現和工作職責。
1、知識結構
(1)展示的方式不同
前端指的是用戶可見的界面,網站前端頁面也就是網頁的頁面開發,比如網頁上的特效、布局、圖片、視頻,音頻等內容。前端的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,並配合後端做網頁的數據顯示和交互等可視方面的工作內容。
後端是指用戶看不見的東西,通常是與前端工程師進行數據交互及網站數據的保存和讀取,相對來說後端涉及到的邏輯代碼比前端要多得多,後端考慮的是底層業務邏輯的實現,平台的穩定性與性能等。
2、工作職責
前端工程師主要的工作職責分為三大部分,分別是傳統的Web前端開發,移動端開發和大數據呈現端開發。Web前端開發主要針對的是PC端開發任務;
移動端開發則包括Android開發、iOS開發和各種小程序開發,在移動互聯網迅速發展的帶動下,移動端的開發任務量是比較大的,隨著5G標準的落地,未來移動端的開發任務將得到進一步的拓展;大數據呈現則主要是基於已有的平台完成最終分析結果的呈現,呈現方式通常也有多種選擇,比如大屏展示等。
後端工程師的主要職責也集中在三大部分,分別是平台設計、介面設計和功能實現。平台設計主要是搭建後端的支撐服務容器;介面設計主要針對於不同行業進行相應的功能介面設計,通常一個平台有多套介面,就像衛星導航平台設有民用和軍用兩套介面一樣;功能實現則是完成具體的業務邏輯實現。
⑶ 運維、測試、程序員,這些技術崗位哪個更有前景
在一個初具規模的互聯網公司,從業務方面出發,有很多崗位類型,比如運營、客服、市場、產品、設計、技術等等。
在這些大類下面,還要細分各種小類,以技術為例,可分為前端(客戶端)、後端、測試、運維、DBA等等,這些都是技術類崗位。
那麼如果想從事這些技術崗位,該如何選擇,哪一個更有前途呢?
這五個崗位,可以做一個分類,前端和後端、運維和DBA、測試
前端和後端屬程序類,也就是通常大家知道的程序員,主要是根據產品的需求開發出軟體,屬於公司的技術核心,非常重要。沒有程序員的軟體公司,也不好意思稱為軟體公司。
運維和DBA,這兩個崗位的主要工作是管理伺服器程序運行的環境和依賴的數據。運維可以看成是伺服器管理員,所有跟伺服器相關工作都是由他處理,比如伺服器程序運行環境CPU、內存、磁碟資源監控、網路是否穩定監控,伺服器程序依賴的軟體安裝等等。DBA就是資料庫管理員,專門管理生產環境的資料庫如Mysql、Redis。這兩個崗位的工資不一定比程序員低,但是市場需求沒有程序員旺盛。一家軟體公司可以沒有運維和DBA,但是不能沒有程序。運維和DBA一般只有上規模的企業配備,小公司都由程序員兼任,畢竟如果公司只有個位數的伺服器,完全沒有必要專門配備一個運維,老闆也不願意花這個錢。
測試,雖然也是技術崗位,但是我個人感覺他們的工作不和技術掛鉤,他們的工作就是不斷使用程序員開發出來的軟體,找出其中的BUG和漏洞。與此同時,他們的另一項工作就是督促程序員幹活,修BUG。
論這些崗位的技術含量,我覺得測試是最低的,低端的測試幾乎沒有技術門檻,只要有軟體使用經驗,基本上都能乾乾測試的活,畢竟只是用用軟體找找BUG嘛,而程序和運維則不行,必須掌握基礎的技術技能才能上崗。當然高端的測試另當別論,他們也可以牛逼到天上。
其次是運維,當然並不是說運維這個崗位沒有技術含量,同樣運維的技術含量也很高,只是通常情況下,程序員都會點運維的工作,裝裝環境,監控下伺服器運行情況,都沒什麼問題。反過來,運維卻不一定會程序員的工作。我覺得運維應該是脫胎與程序員,然後隨著行業的發展,獨立成為一個崗位,本質上還是依附與程序員。
最後則是程序,一個合格的程序員,不但要掌握程序員本職的技術,還需要會伺服器運維的技術,比如自己搭建一個測試環境,這樣的技能是必須的,所以對伺服器必然要有較為深入的了解。同時需要會DBA的技術,通常DBA是在數據量巨大的情況下才會配備,大多數時候一家公司不需要DBA,DBA的工作的都由運維或者程序員兼職的。與此同時,程序員還需要測試技能,當程序員寫出來一個程序時,免不了要進行自測,寫測試用例等等,只有經過自己測試,才可以將功能提交給專門的測試人員進一步測試。
所以,對於這三類崗位,我覺得程序員的技術含量是最高的。
我們再來說說這些崗位的發展前景。
對於一個大公司來說,會有專門的研發部門、運維部門、測試部門,然後設有研發總監、運維總監、測試總監,這些領導在公司的身價不相上下,不存在誰壓誰一頭的情況。但是在小公司通常只有一個技術部,這個部門管轄所有技術類員工,包括程序、運維、測試,甚至有的公司還會包含設計人員。而技術部門的領導十有八九是程序員出身,幾乎不太會是運維或測試出身。因為一個軟體公司的技術部門,沒有運維和測試,照樣可以運轉,雖然有可能轉的不順溜,但是一定可以轉,但是沒有程序員,即便運維和測試配備的多麼強大,這個部門也轉不起來。其次一個技術部門程序員的數量絕對是壓制運維和測試人員數量的。因此在程序員中出技術部門領導的概率遠大於在運維和測試中出領導,除非真的遇到難得一見的人才。
所以,如果你想從事互聯網軟體行業的技術崗位,要想選其中比較有前途的技術類崗位,那麼首選程序員,當然,更多的機會也意味著有更大的競爭,同時也有更大的難度,你選擇程序員不見得一定會成為技術部門的領導,選擇測試和運維也不意味著職業生涯會默默無聞,只是相對來說程序員的情景更加明朗。
與此同時,關於35歲程序員會被淘汰的觀點,其實運維和測試的危險性更大,仔細想想難道不是嗎,運維和測試並沒有比程序員更有優勢,反而劣勢一大堆,那麼肯定比程序員先一步面對淘汰,這是市場規則。
⑷ 求解,什麼是前端系統,和後端系統,求通俗點的解釋
1.前端框架一般指用於簡化網頁設計的框架,比如,jquery,extjs,bootstrap等等,這些框架封裝了一些功能,比如html文檔操作,漂亮的各種控制項(按鈕,表單等等)。
2. 使用前段框架可以降低界面開發周期和提高界面的美觀性。
3. 有些框架比較輕量,比如jquery,有些框架比較重量,比如extjs。一般來說重量的框架會封裝更多的功能,比如extjs,封裝的grid控制項有很強的數據展示和操作功能。
1.對用戶的價值:
大部分產品對用戶的核心價值是功能和內容提供的,而不是由表現層和交互。譬如支付、電商、新聞、交友。
後端解決有還是無的問題,開天闢地。
前端解決有了以後好用的問題,錦上添花,在競爭激烈的領域確實至關重要。
2.技術廣度和難度:
廣度上後端工作在伺服器領域,能控制的硬體基本沒有極限,CPU、存儲、網路、集群等等,因此技術領域極廣。一個優秀的後端需要掌握或了解大量技術如:並發、業務架構、資料庫、幾打流行框架、性能調優、分布式計算、集群架構、容災、安全、運維等等,一層挖透了還有下一層。幾十年計算機發展歷史中大量的技術沉澱在伺服器端。
Web前端一直工作在一個瀏覽器盒子里,先天不足,能承載的可能性太小,技術廣度不足。
深度上,現代計算機領域的難題如大規模負載,海量數據處理,實時計算也是後端的,前端集中在表示層,這一層雖然也很復雜,但能稱之為難題的技術幾乎沒有,也很容易復制。
前端要說深度也不是沒有,但這一步需要跨到圖形領域(如網頁游戲),不是常見場景。
說到底前端代碼能控制的硬體確實不如後端,因此在技術上,前端更容易。現在為什麼說前端會比後端更值錢呢?那是因為前端對硬體的控制能力提升了(html5 odejsmobile),而後端分化得比較厲害,有一批後端專門只寫業務邏輯,框架是別人寫的,系統架構是別人搭的,伺服器跑在雲里,連機器物理地址都不知道。世人眼裡可能覺得這種寫MVC代碼的人才是後端,這種被限制在一個「虛擬盒子」里的後端確實不怎麼難上手。
一般而言網上說的互聯網行業的技術含量排名大概是這樣:
產品經理<設計師<前端<後端<其他更高級職位,比如演算法工程師等等。
在廣大中小公司,很多產品經理都是不會代碼,不會設計。 很多技校學藝術設計的畢業生,當上了美工。這些都是真,所以能力低,乾的人多,自然就低。然而,你問Google設計師掙多少了嘛?
門檻低不等於技術含量低。
⑸ 網站前端,後端,前台,後台什麼關系
前台和後台的區分是功能的區分,或者說前台給普通用戶使用的,後台一般給web管理員使用的。比如,你在前台注冊一個網站用戶名,其實信息存儲在伺服器的資料庫中,如果那天網站管理員說把你這個用戶剔除了,他一般是在後台操作,當然,也可以直接用資料庫客戶端軟體運行sql語句操作。還有一點就是,很多前台也許也有後台的功能,或者說前台後台功能有重疊。因為無論前台後台大家都在查(顯示)刪增改資料庫的數據而已。一個web應用可以只有前台(後台如果資料庫客戶端能勝任的話),也可以只有後台(一般企業web程序,根據許可權區分每個人的功能,就沒必要非搞個前台,當然這時候前台就是後台,後台就是前台),也可以前台後台都有。無論前台還是後台肯定都有前端,否則大家啥也看不見。可以簡單理解前台後台是2套web。
前端後端的區別是:前端是瀏覽器能解析的那部分,後端是必須有PHP或者ASP解析器才能運行的那部分。也就是大家能看到的都屬於前端,大家都有瀏覽器,除了設計師PS圖片的,美碼辯棗工顏色搭配這些,一般包括HTMLCSSJavaScript(react,vue)這些。後端除了資料庫運維,就是JSP,ASP,PHP這些,一般後端是前端與伺服器資料庫的橋梁,就是前端需要查改增刪伺服器中的資料庫,都通過後端提供的遲拆API,或者說後端的代碼。一個頁面不用資料庫,那就是完全前端搞定,否則就要後端,當然本身後端這些可以寫HTML的,只是難看,要好看就要CSS,這是前端的活,後來乾脆前後端分離,網上很多所謂的專業web工程師一會前後台分離,一會前後端分離。還說前端從後台拿數據,或者前台從後台灶首拿數據等等。誤導了很多初學者。包括我。最後我是學會計的。
⑹ 程序員分前端與後端,那麼後端程序員都做些什麼看完就知道了
我剛開始做Web開發的時候,根本沒有前端,後端之說。
原因很簡單,那個時候伺服器端的代碼就是一切: 接受瀏覽器的請求,實現業務邏輯,訪問資料庫,用JSP生成HTML,然後發送給瀏覽器。
即使後來Javascript在瀏覽器中添加了一些AJAX的效果,那也是錦上添花,絕對不敢造次。因為頁面的HTML主要還是用所謂「 套模板 」的方式生成:美工生成HTML模板,程序員用JSP,Veloctiy,FreeMaker等技術把動態的內容添加上去,僅此而已。
那個時候最流行的圖是這個樣子:
在最初的J2EE體系中,這個 表示層 可不僅僅是瀏覽器中運行的頁面,還包括Java寫的桌面端,只是Java在桌面端太不爭氣, 沒有發展起來。
每個程序員都是所謂 「全棧」工程師 ,不僅要搞定HTML, JavaScript, CSS,還要實現業務邏輯,編寫訪問資料庫的代碼。等到部署的時候,就把所有的代碼打成一個WAR包,往Tomcat指定的目錄一扔,測試一下沒問題,收工回家!
不差錢的公司會把程序部署到Weblogic,Websphere這樣的應用伺服器中,還會用上高大上的EJB。
雖然看起來生活「簡單」又「愜意」,但實際上也需要實現那些多變的、不講邏輯的業務需求,苦逼的本質並沒有改變。
隨著大家對瀏覽器頁面的 視覺和交互 要求越來越高,「套模板」的方式漸漸無法滿足要求,這個所謂的表示層慢慢地遷移到瀏覽器當中去了,一大批像Angular, ReactJS之類的框架崛起,前後端分離了!
後端的工程師只負責提供介面和數據,專注於業務邏輯的實現,前端取到數據後在瀏覽器中展示,各司其職。
像Java這樣的語言很適合去實現復雜的業務邏輯,尤其是一些MIS系統,行業軟體如稅務、電力、煙草、金融,通信等等。 所以剝離表示層,只做後端挺合適的。
但是如果僅僅是實現業務邏輯,那後端也不會需要這么多技術了,搞定SSH/SSM就行了。
互聯網,尤其是移動互聯網開始興起以後,海量的用戶呼嘯而來,一個單機部署的小小War包肯定是撐不住了,必須得做分布式。
原來的單個Tomcat得變成Tomcat的 集群 ,前邊弄個Web伺服器做請求的 負載均衡, 不僅如此,還得考慮狀態問題,session的一致性。
(註:參見文章《小白科普:分布式和集群》)
業務越來越復雜,我們不得不把某些業務放到一個機器(或集群)上,把另外一部分業務放到另外一個機器(或集群)上,雖然系統的計算能力,處理能力大大增強,但是這些系統之間的通信就變成了頭疼的問題, 消息隊列 (MQ), RPC框架 (如Dubbo)應運而生,為了提高通信效率,各種 序列化的工具 (如Protobuf)也爭先空後地問世。
單個資料庫也撐不住了,那就做資料庫的 讀寫分離 ,如果還不行,就做 分庫和分表 ,把原有的資料庫垂直地切一切,或者水平地切一切, 但不管怎麼切,都會讓應用程序的訪問非常麻煩,因為數據要跨庫做Join/排序,還需要事務,為了解決這個問題,又有各種各樣「 數據訪問中間件 」的工具和產品誕生。
為了最大程度地提高性能,緩存肯定少不了,可以在本機做緩存(如Ehcache),也可以做 分布式緩存 (如Redis),如何搞 數據分片 ,數據遷移,失效轉移,這又是一個超級大的主題了。
互聯網用戶喜歡上傳圖片和文件,還得搞一個 分布式的文件系統 (如FastDFS),要求高可用,高可靠。
數據量大了,搜索的需求就自然而然地浮出水面,你得弄一個支持全文索引的 搜索引擎 (如Elasticsearch ,Solr)出來。
林子大了,什麼鳥都有,必須得考慮 安全 ,數據的加密/解密,簽名、證書,防止SQL注入,XSS/CSRF等各種攻擊。
前面提到了這么多的系統,還都是分布式的,每次上線,運維的同學說:把這么多系統協調好,把老子都累死了。
得把持續集成做好,能自動化地部署,自動化測試(其實前端也是如此),後來出現了一個革命化的技術 docker , 能夠讓開發、測試、生成環境保持一致,系統原來只是在環境(如Ngnix, JVM,Tomcat,MySQL等)上部署代碼,現在把代碼和環境一並打包, 運維的工作一下子就簡化了。
公司自己購買伺服器比較貴,維護也很麻煩,又難於彈性地增長,那就搞點虛擬的伺服器吧,硬碟、內存都可以動態擴展(反正是虛擬的), 訪問量大的時候多用點,沒啥訪問量了就釋放一點,按需分配,很方便,這就是 雲計算 的一個場景。
隨著時間的推移,各個公司和系統收集的數據越來越多,都堆成一座大山了,難道就放在那裡白白地浪費硬碟空間嗎?
有人就驚奇地發現,咦,我們利用這些數據搞點事情啊, 比如把數據好好分析一下,預測一下這個用戶的購買/閱讀/瀏覽習慣,給他推薦一點東西嘛。
可是這么多數據,用傳統的方式計算好幾天甚至好幾個月才能出個結果,到時候黃花菜都涼了,所以也得利用分布式的技術,想辦法把計算分到各個計算機去,然後再把計算結果收回來, 時勢造英雄, Hadoop 及其生態系統就應運而生了。
之前聽說過一個大前端的概念,把移動端和網頁端都歸結為「前端」,我這里造個詞「大後端」,把那些用戶直接接觸不到的、發生在伺服器端的都歸結進來。
現在無論是前端還是後端,技術領域多如牛毛,都嚴重地細分了,所以 我認為真正的全棧工程師根本不存在,因為一個人精力有限,不可能搞定這么多技術領域,太難了 。
培訓機構所說的「全棧」,我認為就是前後端還在拉拉扯扯,藕斷絲連,沒有徹底分離的時候的「全棧」工程師。
那麼問題來了, 後端這么多東西,我該怎麼學?
之前寫過一篇文章叫做《上天還是入地》,說了學習的廣度和深度,在這里也是相通的。
往深度挖掘,可以成為某個技術領域的專家,如搜索方面的專家、安全方面的專家,分布式文件的專家等等,不管是哪個領域,重點都不是學會使用某個工具和框架, 而是保證你可以自己的知識和技術去搞定這個領域的頂尖問題。
往廣度發展,各個技術領域都要了解,對於某種需求,能夠選取合適的軟體和技術架構來實現它,把需求轉化成合適的技術組件,讓這些組件以合適的方式連接、部署、運行,這也需要持續地學習和不斷的經驗積累。
最後,以一張漫畫來結束吧!
C/C++高級工程師學習路線圖:
⑺ 想轉行進入IT行業,請問前端,後端,運維,網路安全怎麼選擇想快速就業,求大神指教!
快速入門的話做前端吧,門檻低一些,後端要求比較高
⑻ java中的前端,後端,測試,運維都包括哪些內容
前端主要是展示給用戶、接受用戶的輸入
後端主要是處理業務邏輯
人工測試,主要是測試這些界面邏輯是否符合用戶需要
⑼ 前端和後端有什麼關系嗎
前端和後端當然有關系了,前後端是互聯網公司關系最緊密的兩個崗位 他們之間的關系要遠遠高於。開發和測試開發和運維開發和運營開發和產品
⑽ 前端 後端 運維哪個更厲害
不能說更厲害,應該說更有潛力。個人認為,後端>前端>運維。