計算機科班出身,為什么很多人都不推薦做前端開發(fā)?(計算機專業(yè)做前端)
我是普通二本計算機專業(yè)畢業(yè),現(xiàn)在在做前端開發(fā)。當時大學期間課都沒好好上,和前端相關性比較高的網(wǎng)頁設計課,只教了HTML和CSS,當時授課老師用的編輯器居然還是記事本你敢相信?到了大三結束突然發(fā)現(xiàn)自己沒有什么能拿得出手的東西。同學室友慢慢地都有了實習或校招offer,自己卻不知道出路在哪,當時完全是糾結了快兩個月,有個想法就去網(wǎng)上提問,然后被業(yè)內人勸退,陷入自我懷疑的境地。
后來糾結了一段時間發(fā)現(xiàn)自己好像也沒什么能干的,破罐子破摔,干脆就先投簡歷看看,隨便找個什么設計助理、前端實習的崗位混個實習再說,果然沒過兩天就有電話約去面試一下,當時那個高興,覺得這就是天無絕人之路呀。到了地方后hr先給了一個表讓填了一些信息,問了一些常見的問題后,說公司一般不招收沒有相關工作經(jīng)歷的應屆生,但是可以培訓一段時間,培訓有一定的費用,這個費用可以貸款做分期,但是培訓完之后可以留公司做項目還培訓費用。我聽完后突然醒悟過來,這不是坑人的培訓機構常用的套路嗎,于是趕緊溜了。
后來聽說一些朋友也是畢業(yè)時找不到工作,但是后面通過刻苦的學習,找了一份還不錯的工作,結合網(wǎng)上所謂的行業(yè)薪酬統(tǒng)計,發(fā)現(xiàn)互聯(lián)網(wǎng)行業(yè)工資偏高,于是就下定了決心要做個碼農。(其實就是給自己加強信心,畢竟自己本專業(yè)還是計科當然舍不得這么大的優(yōu)勢。
有了目標之后很多問題就簡單了很多,我先在網(wǎng)上了解了這些互聯(lián)網(wǎng)崗位需要的知識和能力,以及崗位職能范圍,包括行業(yè)人士給出的建議和吐槽點。其次結合自己的興趣愛好和知識儲備,覺得還是前端更適合我。主要原因:
1. 大學期間學過C語言,C語言和javascript語法很接近,更好入手
2. 大學期間學過網(wǎng)頁設計,掌握了一些網(wǎng)頁搭建的知識,對前端產(chǎn)生了一定的興趣
3. 前端開發(fā)薪酬不算低,互聯(lián)網(wǎng)行業(yè)不可缺少,尤其是我那年,Node的聲勢非常浩大,一度讓人有種要替代JAVA的錯覺。
4. 前景尚可,有不可代替性,無論怎么變,前端都是需要的,總不能開歷史倒車啊~
定下方向后,接著我就決定留校學習前端開發(fā)的知識了。剛開始學的時候就是在網(wǎng)上找了一份教程,學習的過程中也逐漸的發(fā)現(xiàn)前端不只是搭建網(wǎng)頁那么簡單,還涉及到網(wǎng)絡請求、邏輯交互、跨端展示、屏幕適配等一系列的知識。
前端頁面的載體也不只是PC瀏覽器,還有微信小程序、H5混合開發(fā),頁面也需要一些順手好用的框架和UI組件去豐富(慢慢的發(fā)現(xiàn)自己好像入了一個大坑),不過也算是付出就有收獲,后來也順利的找到了一份滿意的工作。
前端的確是對小白友好很多,即使沒有相關的知識儲備,只要學習了HTML和CSS相關的基礎知識后,不出一個月就可以搭建出好看的頁面,做出來炫酷好玩的動畫,能快速地將自己學習的知識轉化為可見的成果,如此正向反饋,自然讓你有前進的動力,比Java那種好上手的多。
但是正如前面提到的那樣,由于前端開發(fā)擔任了用戶與程序交互的橋梁,并不意味著僅僅搭建出好看的頁面就行,還要對用戶的操作作出反饋,發(fā)送請求與服務器進行信息交互,將數(shù)據(jù)更新或渲染到界面上。這就要對HTTP知識和JavaScript有一定了解。在解決了基礎的數(shù)據(jù)渲染和更新后,脫離了初級切圖仔的范疇。
但是隨著頁面頁面逐漸復雜功能越來越多,JS單純的操作DOM會使得頁面不同的回流、重繪,甚至會引起頁面卡頓影響到展示效果,于是又需要借助開發(fā)框架來生成虛擬DOM,提升頁面的渲染效率,所以就要掌握前端三大框架VUE、react、Angular之一,有了框架做后臺和用原生js做后臺完全是兩個世界,好在我培訓入場的時候,大多公司已經(jīng)是使用框架做后臺了。
在開發(fā)的過程中,有很多頁面的按鈕、下拉框、導航欄等,會重復出現(xiàn),不停地復制粘貼又顯得很蠢,于是為了解決這類問題還要將重復的功能區(qū)域封裝成組件,只要頁面引入就可以實現(xiàn)一次編寫,到處引用的效果,于是還要封裝自己的組件或者引用第三方UI組件解決這個問題,于是ElementUI、VantUI、IView等常見優(yōu)秀的UI組件庫也要掌握。
在開發(fā)的時候頁面越來越多,引入的依賴越來越多樣,相互間的依賴關系復雜,于是還需要引入打包工具來處理你的代碼,輸出為瀏覽器可以識別的js文件。如果開發(fā)移動端頁面還要解決不同手機的屏幕適配和不同系統(tǒng)的瀏覽器差異。如果開發(fā)微信小程序還需要學習相關的小程序開發(fā)API。如果想做到一套代碼多端復用還需要掌握uni-app或flutter等框架。當這些了解得差不多之后,想往后端延伸還有nodeJS等著你。
任何具有爭議的事物都有兩面性,前端開發(fā)前期的學習難度偏低,學會HTML、CSS、JS和掌握一個前端開發(fā)框架后,就可以很快的勝任簡單的開發(fā)工作。但是前端開發(fā)注定需要解決各種各樣的領導要求和亂七八糟的多端展示問題。
說白了,簡單的搬磚工作所需的技術很容易掌握,但是前端領域所涵蓋的范圍太廣,太多樣化,很多高級的崗位需要你掌握的不僅僅是上面提到的框架和工具怎么使用,還要明白和理解這些工具深層的設計思想,去解決更復雜的問題或者選擇最優(yōu)的實現(xiàn)方案,因此,入行了前端就意味著不能停下探索的腳步。
其實不管做什么工作,保持不斷的學習和自我提升,提高自己的不可替代性才是最重要的。
程序員對學歷沒有硬性要求,題主計算機本科學歷已經(jīng)符合大多數(shù)公司的標準了,聽取過多的建議會在一定程度上影響自己的判斷,他人說的都具有一定的主觀性,題主選擇性還很多,與其聽別人說不如自己做決定,早作決定意味著可以早點了解自己是不是做碼農這塊料,人生就是試錯的過程,一無所有的人沒什么可害怕的,干就完了。
如果你僅僅因為“很多人不推薦前端”而被勸退,那你大概率會陷入想做XX事情——>行內人勸退——>想干XXX——>行內人勸退的循環(huán)怪圈,浪費大把的時間在躊躇不前上。
在網(wǎng)上,如果有人說大方向如何如何,大家都鼓勵,
但是如果細分到具體,尤其是自己的行業(yè),大家又開始紛紛勸退,而且這批人都是同一批,非常有意思,這就是干一行恨一行?圍城?
與其一直被他們干擾,你不妨把你能做的選擇列出來一一比較,我相信大多人做前端或者說做開發(fā)是比較好的選擇,尤其本科計科專業(yè)的你!
如果你還在大學的話,抓緊時間自學,以本科本專業(yè)應屆生身份有希望進大廠,起碼我身邊進大廠都是這個方法!
小編是個多年開發(fā)經(jīng)驗的程序員,懂前端、Java、Python。年初整理了一份最新的WEB前端學習教程,無論你是計算機專業(yè)想往前端開發(fā)方向發(fā)展,還是零基礎想要轉行做程序員,都可以通過教程學習?,F(xiàn)在這份教程作為粉絲福利,分享給大家,只要關注我私信“前端”即可獲取。