原文地址:為什么很多互聯(lián)網(wǎng)公司更注重應(yīng)聘者的編程基礎(chǔ) 轉(zhuǎn)載請注明出處
先說說自己的狀況,臨近畢業(yè),面臨著找工作。自己在本科階段成績還不錯,獲得不少獎學(xué)金和獎項證書,本來有保研的機會,但是自己放棄了。我考慮的是,就算讀完研究生,畢業(yè)同樣面臨找工作或者繼續(xù)升學(xué)的問題。現(xiàn)在的本科生基本上算是批量生產(chǎn),研究生也在大力擴招當(dāng)中,或許再過幾年,研究生與本科生基本上也是滿大街都是,沒多少優(yōu)勢。研究生出來,起點或許學(xué)歷上比本科生高一些,但是在工作經(jīng)驗和社會閱歷方面比起已經(jīng)工作好幾年的本科生還是差的不少,工作的時候還是可以學(xué)習(xí),而在學(xué)校學(xué)習(xí)卻不能放開手去獲取社會經(jīng)驗。一句話,學(xué)歷不代表學(xué)識,能者入世。
澄清一點:我并不是針對對研究生的同學(xué)們,也沒說讀研究生不好,其實關(guān)鍵還得看個人取舍。而且讀研跟專業(yè)關(guān)系很大,我個人認(rèn)為,工科學(xué)生還是盡量找工作,工科對動手能力要求很高,如果只是搞研究也只是紙上談兵,當(dāng)真正需要開發(fā)序項目的時候還是不會,理論上說得頭頭是道,卻沒有實戰(zhàn)經(jīng)驗,如此,還不如學(xué)理科專業(yè),理科專業(yè)注重理論研究,而工科專業(yè)注重實踐。當(dāng)然,文史性質(zhì)的專業(yè)我還是建議繼續(xù)讀研。
好了,步入正題吧。春節(jié)過后去了深圳,面試了不少公司,一般都是先做一張技術(shù)試題,差不多的話進行技術(shù)面試之后再人事面試。技術(shù)面試有的時候會有好幾輪,一般涉及基礎(chǔ)的知識偏多。我目前主要搞前端開發(fā),HTML+CSS+JS的一定涉及,其中偏重于JS部分。一般來講,字符串與數(shù)組、Ajax、閉包、作用域、原型與原型鏈、面向?qū)ο髱缀跏敲婷姹貑枺硗膺€涉及一些瀏覽器兼容性、hack技術(shù)、跨域、HTTP協(xié)議的問題。運氣好的話,公司本身就有前端人員,問得比較專業(yè)也比較好回答,運氣不好的話,遇上一個名曰后端轉(zhuǎn)前端的工程師來問你問題就有得好受了,總是用后端的思維審視前端(雖然在系統(tǒng)學(xué)習(xí)前端之前我也是這樣的),問的問題,他認(rèn)為跟前端有關(guān),實際上完全是后端的問題,跟前端八竿子打不著的問題。對于一些不是計算機相關(guān)專業(yè),在社會上混了好幾年卻想轉(zhuǎn)行做IT的童鞋可就有的受了,很多人連數(shù)據(jù)庫、服務(wù)器、后端語言都不知道是什么東西,被問著的話往往是兩眼一抹黑,呵呵了也。
然而,那么多公司為什么那么注重于基礎(chǔ)呢?無非就是循環(huán)分支、內(nèi)置API加上一些語言特性而已。對,的確是,但事實上,前端所有厲害的庫和框架都是基于原生JS構(gòu)建開發(fā)的,無論是簡單易學(xué)的jQuery,還是強大的Angular、Vue或React,萬變不離其宗,都是基于原生JS開發(fā)的。讀過jQuery源碼的同學(xué)都應(yīng)該知道,其實一個前端庫并不是那么難以構(gòu)建,關(guān)鍵得深入其精髓,明白其原理,那么離精通便不遠(yuǎn)矣。
所謂精通是什么概念?可以不借助任何框架、任何提高開發(fā)效率的插件和庫,完全自己使用原生進行開發(fā),實現(xiàn)不亞于使用任何框架的效果和兼容,謂之精也。但是要達(dá)到精通并不容易,不但需要付出時間還得有鉆研精神,并不是輕輕松松能達(dá)到的。記住,一萬小時定律。
當(dāng)原生達(dá)到一定程度的時候,完全可以自己開發(fā)插件,寫自己的庫和框架。這也就是為什么很多面試官更側(cè)重于編程基礎(chǔ)。有的童鞋用插件、庫或框架用得非常厲害,但是遇到那種所謂”弱智問題“的時候,卻往往不知道如何處理,關(guān)鍵就是,基礎(chǔ)不牢靠,不知從何入手,不知如何調(diào)試。
當(dāng)然,我也遇到過一上來就問“你Bootstrap/Angular/Vue/React熟練嗎?”,"我們公司是基于Webpack+Vue/Angular+ionic進行開發(fā)的,你會嗎?"。這種公司更傾向于快速開發(fā),不乏有很多是外包公司。孰優(yōu)孰劣,怎么說呢,還得看個人定位與取舍。但我個人認(rèn)為,框架是學(xué)不完的,更新?lián)Q代快,今天流行這個框架過兩天馬上就是另一個框架的天下了,學(xué)無止境,如果一直研究框架,會讓人覺得一直在學(xué)習(xí)卻一直學(xué)不完的狀態(tài)。所以,算是建議吧,先把基礎(chǔ)打牢,不管學(xué)什么框架,都先熟悉其原理,那么,入手快,能夠很快進行開發(fā),不會付出大量的時間和經(jīng)歷去糾結(jié)一些不必要的東西。