談?wù)勛罱嬖嚨囊恍w會

最近一兩個月,作為公司的iOS面試官,面試了幾十個人,其中不乏優(yōu)秀的面試者,但大部分還是相對平庸,這些人通常都工作了兩三年,有一定的經(jīng)驗,但存在幾個關(guān)鍵性的問題:

1. 研究不深入。

? 最普遍的問題就是只知道調(diào)用sdk或者第三方庫,卻不知道里面怎么寫的。這種面試者一般在小公司工作了兩三年,能使用sdk去解決一般性的問題,但也僅僅只是停留在使用層面上,卻從來不鉆進(jìn)源碼里面去研究原理,對于iOS系統(tǒng)較為底層的技術(shù)也是一知半解,或者壓根沒聽過。這種面試者我基本上都pass了,如果是招普通的工程師,也勉強(qiáng)說得過去,但我們招的是高級工程師,對系統(tǒng)底層是一定要有些了解的,否則很多關(guān)鍵性問題就解決不了。

2. 缺乏程序設(shè)計方面的思考。

程序設(shè)計是區(qū)分一個開發(fā)者是普通還是高級的一個門檻,一般來說程序設(shè)計包括兩個方面:組件設(shè)計和架構(gòu)設(shè)計。組件設(shè)計是針對單個模塊的,相對比較簡單,架構(gòu)設(shè)計是針對整體的,比較復(fù)雜。但總的來說,都是要解決在版本不斷迭代,業(yè)務(wù)不斷變化的過程中,模塊的耦合性和可擴(kuò)展性始終保持在一個合理的范圍內(nèi)。很多人平時開發(fā)的時候只關(guān)注自己做的那個模塊,對整個應(yīng)用程序缺乏一個宏觀的思考,架構(gòu)設(shè)計的不合理。舉個例子來說,很多人喜歡把什么網(wǎng)絡(luò)請求、手勢處理、頁面布局和各種業(yè)務(wù)邏輯都往VC里面寫,導(dǎo)致其無比臃腫,不僅別的人看不懂,自己維護(hù)起來也麻煩。還有單例模式的濫用,單例確實有時候挺好的,用來傳值、發(fā)網(wǎng)絡(luò)請求都可以用單例,但是濫用單例會破壞模塊的獨(dú)立性,且增加不必要的內(nèi)存開銷。還有些人喜歡增加一個新的功能就繼承一下原來的類,這樣在版本的迭代中,繼承關(guān)系越來過多,當(dāng)有一個新的模塊,要把某個功能從繼承關(guān)系中抽出來的時候,就發(fā)現(xiàn)抽不出來了,因為已經(jīng)耦合的太深。如果你想做高級工程師或者架構(gòu)師,這方面的技術(shù)是一定要修煉的,而且越早越好。

3. 基礎(chǔ)不扎實。

這里說的基礎(chǔ)主要是在大學(xué)里面學(xué)的基礎(chǔ)課程知識,比如數(shù)據(jù)結(jié)構(gòu)、算法、操作系統(tǒng)什么的。一般來講,重點(diǎn)大學(xué)畢業(yè)的基礎(chǔ)知識會比普通大學(xué)畢業(yè)的要好,可能是因為在學(xué)校的時候要求比較嚴(yán)吧,反正考到這方面的時候,差別就很明顯??赡苡行┤藭f,算法這些在實際工作中能用到的太少了,考察這些沒有意義。確實,平時開發(fā)中直接使用算法的很少,因為我們都是直接調(diào)用系統(tǒng)或者第三方的sdk,這些人家都幫我們封裝好啦。但正是因為如此,才讓我們少了去深入研究底層的一個機(jī)會。殊不知,越到底層,越是講究性能和效率,這時候如果你算法、數(shù)據(jù)結(jié)構(gòu)這些掌握的不扎實,就徹底完蛋了?,F(xiàn)在的iOS開發(fā)說實在的,真的沒有什么特別難的,難也就是難在幾個方面:圖像渲染、動畫、音視頻、socket、runtime(這些都是屬于Cocoa底層框架),除此之外基本都是屬于業(yè)務(wù)層面的或者是應(yīng)用架構(gòu)的問題。當(dāng)你把Cocoa底層框架都研究透以后,你會發(fā)現(xiàn)自己已經(jīng)到了一個技術(shù)瓶頸,而這時你想要再提高自己水平的話,就只能往系統(tǒng)底層去研究了。

4. 對網(wǎng)絡(luò)和后臺知識的了解匱乏。

?雖然我們招的是iOS工程師,是做客戶端的,但我覺得如果只掌握客戶端的技術(shù),而對網(wǎng)絡(luò)和后臺知識一無所知的話,也是不合格的。因為實際的工作環(huán)境中,避免不了要與后臺聯(lián)調(diào)接口,如果出了問題不知道從哪里著手,只知道依賴后端工程師的話,那工作效率肯定很低,這在一個創(chuàng)業(yè)型的公司里面是非常嚴(yán)重的問題。所以一個合格的iOS工程師或者說前端工程師,是應(yīng)該要了解網(wǎng)絡(luò)和后臺知識的。

5. 對待工作的主動性不夠。

?這種情況在工作了兩到三年的開發(fā)者中最為明顯。初入職場還不到一年的,一般還會主動去承擔(dān)工作任務(wù),因為他們想要提升自己的能力,得到領(lǐng)導(dǎo)的重視。而工作了兩三年以后,很多人已經(jīng)是“老油條”了,業(yè)務(wù)方面已經(jīng)很熟練,一般的編程問題似乎也沒什么解決不了的,然后就會漸漸變得懶惰起來,不愿意承擔(dān)額外的工作,一下班就走人。這種人其實很危險,在團(tuán)隊中會起到一個不好的影響,會讓整個團(tuán)隊的士氣下降。 如果公司招了更優(yōu)秀的人才,那么他被解雇的可能性就會很大。

以上幾點(diǎn)只是我個人的看法,作為一個工作了6、7年的程序員,我也曾經(jīng)經(jīng)歷過這么一段時期,也犯過一些錯誤,所幸那時候iOS的競爭還沒那么激烈,找工作沒那么困難。但是隨著這一行從業(yè)的人越來越多,要想出類拔萃,就必須在自己的工作能力和工作態(tài)度上面下功夫。最后,希望大家都能找到好工作!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容