運維,前端,后端,測試這些都是開發相關崗位。在業界有條神奇的鄙視鏈,不知道是誰先提出的,其實,就我個人的觀點來說,崗位沒有貴賤,都是為了共同完成工程中的任務,只是分工不同而已。
但真的要說區別,也有一些細微的區別的。
后端開發任務偏重(要在短時間實現大量業務需求,天天面臨加班甚至要通宵),建議年輕的開發者選擇,壓力大任務重,但多干幾年對自己的成長也是有益的。
前端是開發UI界面的,現階段的前端開發者一點也不輕松,比之幾年前要繁雜無數倍,前端框架也有一大堆,除了主流框架的學習和應用,設計界面的美觀和易用也是一大挑戰。建議有一些美學功底,比較喜歡完美有美感的同學嘗試。
再說說運維,運維崗位是在一個項目交付給客戶使用來確保項目正常運行,解決項目中零時或緊急問題的開發者,如果項目是個開發能力強的團隊完成的,運維人員的壓力就會小很多,基本上就是小修小補,但如果項目是不咋地的開發團隊寫的,這就比較坑運維了,還有一點就是客戶的業務變化頻繁,對運維的挑戰也很大。
最后就來說說測試崗位,測試就是找出程序中的bug,簡單的測試是黑盒測試,基本上就是點點鼠標,測試功能和業務是否正常,大部分的測試都是這一群人,他們天天都在重復類似的相同的工作(沒有細致而耐心的特質是受不了的),少部分測試就是比較高大上的自動化和半自動化測試工程師了,他們也要寫代碼編腳本,不比后端開發人員容易。
后端:入門難,深入更難,枯燥乏味,沒有太大成就感,看一堆業務邏輯代碼。
前端:入門簡單,先易后難,能看到自己做出來的展示界面,有成就感。
01
展示的方式不同
前端指的是用戶可見的界面,網站前端頁面也就是網頁的頁面開發,比如網頁上的特效、布局、圖片、視頻,音頻等內容。前端的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,并配合后端做網頁的數據顯示和交互等可視方面的工作內容。
后端是指用戶看不見的東西,通常是與前端工程師進行數據交互及網站數據的保存和讀取,相對來說后端涉及到的邏輯代碼比前端要多的多,后端考慮的是底層業務邏輯的實現,平臺的穩定性與性能等。
02
所用的技術不同
前端開發用到的技術包括但不限于html5、css3、javascript、jquery、Bootstrap、Node.js 、Webpack,AngularJs,ReactJs,VueJs等技術。
后端開發 以java為例 主要用到的 是包括但不限于Struts spring springmvc Hibernate Http協議 Servlet Tomcat服務器等技術。
肯定是做前端好。
首先,前端技術棧變得快,這樣可以保持一直的學習熱度,即使下班也不能安心休息,有利于加班。
第二,前端技術做的東西是別人能一目了解看得見的,回去相親的時候都容易展示給別人看; 相反,很多后端是做啥的,很難和別人講清楚,容易讓人顯得另類、不合群、像黑客;
第三,前端和美工接觸會多一些。鑒于程序員通常是男性、美工通常是女性(請不要抬杠),這種搭配理論上有利于提高生產效率,大家干活都不累。而且前端人員容易保持旺盛的工作動力,相反,后端人就顯得死氣沉沉,天天講一些“壓力”、“高并發”、“數據庫”、“性能”之類讓人聽起來云里霧里的只有他們自己才懂的莫名其妙的語言;
第四,需要緊急加班的情況,后端遠大于前端。比如服務器程序出現嚴重BUG、系統掛了之類,運維搞不清情況時都需要后端出手。后端就不得不擔任救火員的角色,讓老板覺得這個后端人員做事怎么老是出這么多問題。相反,前端人員的錯誤測試人員容易測試出來,相對不會有那么嚴重的BUG。但要是前端人員自己故意埋坑、寫個彩蛋之類,就不在些討論的范圍內了。
其它還有一些原因,我覺得這幾點已經足夠說明問題了。