普通二本從小白到加入鵝廠的通關祕籍

前言

本文是給想進入「BAT」等企業的開發朋友們提供思路的,內容所有來自於真實經歷。前端

關於我(化名)

你們好,我是小白(化名),一名 iOS 開發工程師。程序員

有些人在畢業的時候就能順利進入「BAT」、「TMD」、「FLAG」,可是更多的人並無這個機會,好比,最典型的——我。面試

努力就能改變命運。這是真的嗎?算法

在我看來,雖然我不是特別聰明(但也不笨),可是努力確實給我帶來了更多的機會。經過努力,我順利拿到大廠offer,相信此時正在看這篇文章的你也必定能夠的。編程

因此,不管你是想跳槽去大廠的工做黨,仍是即將畢業找工做的應屆生,若是你想要進大廠殊不知從何着手,但願你能將這篇文章反覆看幾遍,根據本文的內容找到正確且適合本身的方法,努力打磨,而後堅持堅持再堅持,我相信你必定能拿到大廠的offer。安全

頹廢的校園經歷

我畢業於一所普通的二本院校,大學時曾夢想成爲學霸,幻想進入 BAT 大企業。然而,現實啪啪打臉,學渣一名。畢業的第一天,就成爲一名待業狀態的社會人。性能優化

曾經的我就是現實版的「餘歡水」:「努力」地活着,卻老是被生活「欺騙」。數據結構

上大學時,興趣普遍,但葉公好龍,無一擅長; 我想要成爲學霸、有所成就,但好高騖遠,無所做爲; 畢業那年考研,順利落榜; 後來痛定思痛,背水一戰,參加公務員考試,意外經過筆試,卻惜敗在面試。架構

那一年,我深入地感覺到 世界辣麼大,卻沒有個人容身之處。框架

 

初入職場

迫於生活壓力,在親戚的介紹下,我進入深圳的一家創業公司作 iOS 開發。

因爲我技術比較菜,工資只有 5k。當時我連 UITableView 的代理方法都不會用,UIView 的 frame 都不會設置,每次參加需求討論會的時候,都插不進話,由於我都不是很懂啊。

實在要發言時,卻也只能附和安卓的同事,說:俺也同樣。

 

若是連最簡單的業務需求都不能完成,是要被開的,因此當時的我就是處於被開的邊緣。 迫於工做壓力,我必須花額外的時間把基礎知識都弄懂。

可是,由於虛榮心做祟,我又不想被同事說我太菜,因此天天選擇在同事們下班後,一我的在公司瘋狂學習。 若是別人正點下班,我就「996」; 若是別人"996",我就"10106"。

功夫不負有心人,三個月左右,我就能勝任獨立模塊的開發了。爲了向進階發展,我看完了《Effective Objective-C》、《Core Animations》等當年市面上全部的 iOS 書籍和技術文章,並及時地把一些高級技巧在項目中實踐。

因爲在公司表現良好(多是加班比較多😂),領導給我漲薪到 8k。可是我以爲當時個人水平最起碼可以得上 12k 以上。在這家公司幹滿一年後,我決定跳槽了。那年是 2015 年。

職場進階

2015 年 iOS 的行情還不錯,趁熱打鐵,我本身投簡歷面試,很輕鬆就進入一家 Top 10 的金融互聯網公司。

大公司的分工更細,流程更規範,我在這裏待了兩年,時刻保持一顆學習的心態。

在這兩年中 iOS 開發的大環境已經出現了拐點,因爲開發者數量供大於求,總體上找工做的狀況不如以前。 爲了讓本身不掉隊,我複製在我在上家公司的成長模式——瘋狂學習。

我研究並實踐了當時社區比較流行的技術,好比 RAC、RxSwift、逆向開發、組件化等等。但我明白,因爲我大學時候基礎太差,離去一線互聯網大廠的水平還有差距。

 

 

加入鵝廠

有一天,我收到獵頭的電話,問我是否考慮騰訊?我欣然答應,沉睡在我心中多年的幻想又被喚醒。

然而想進入大廠沒那麼容易,須要對面試作系統性的準備。

我開始利用業餘時間夯實面試須要的基礎知識,通過大概三個月的準備,經過了五輪面試,終於順利加入鵝廠!

下面我把準備面試的經驗分享給你們(爲了尊重公司,我不能把原題告訴你們,但我會把方向告訴你們,由於方向裏天然有「題庫」),分爲基本功、軟實力、加分項三個方面。下面一個個來講。

基本功

所謂基本功,就是你須要練到有肌肉記憶的技能,當面試官問起的時候,你可以信手拈來。

簡歷基本功

簡歷的好壞決定第一印象。

不少人可能技術很牛逼,卻沒能得到面試機會,就是吃在簡歷的虧上。好比,錯別字連天、排版混亂、語句冗餘不通順。下面是我總結出的要點:

排版

我走的是極簡風格,直接使用 Markdown 進行書寫,而後轉換爲 PDF 格式。

做爲一個 GUI 開發者,你也能夠把簡歷製做成一個靜態頁面,加上漂亮的動畫效果,來展現你優秀的基本功,給面試官眼前一亮的趕腳。好比,個人一位朋友就是這樣製做簡歷的,當時也順利地經過了面試。

書寫邏輯

請遵循「STAR」法則。即情境(situation)、任務(task)、行動(action)、結果(result)。

好比,「爲解決項目中遺留的回調地獄和內存問題,我用了 RxSwift 重構了 XX 模塊,在團隊內普及了響應式編程思想,受到了團隊成員的一致好評」。這一般也是面試官提問的邏輯。

技術內容

1:底層探索能力

不少人會諷刺:面試造航母,上班擰螺絲! 其實否則,面試的高要求對於一家優秀的iOS需求單位來講是必須的!

  • iOS開發實現的確有不少的方式,可是一個真正懂得原理的開發人員在往後的開發工做中是很是重要。我見過一些開發人員:遇到BUG都是直接面向百度,不知道爲何直接 command + c/command + V OK,解決了,打版走人,下次又遇到了仍是要面向百度,其中浪費的時間和小夥伴之間的溝通成本可想而知!

  • 底層原理只是你在工做開發中偷懶而逃避選擇使用而已(或者全然不太瞭解)

  • 技術不斷更新,底層原理是永恆根基

  • 底層原理是很是重要的,只有真正掌握原理才能迎接將來無限可能。

下面是我推薦你們學習的內容:

 

OC 底層探索篇也是你們熟悉而又陌生的地方,平時到處用,就是不知道爲何!

2.性能優化以及架構能力

只要你面試要求 20-30K 必然要求性能優化能力!

  • 怎麼優化啓動速度,應用包的瘦身!

  • 界面優化(卡頓檢測以及分析解決)

  • 內存管理方面也是面試以及平時開發的重災區!

  • 架構並不屬於性能優化,可是我要求每個 3以上開發 都要有必定的架構思惟!

 
image
3.數據結構算法
 

數據結構算法應該是每個程序員必備的根據。我記得個人導師跟我說過:一個程序員須要兩樣東西:智商和勤奮

  • 英文能力陪襯你的勤奮度

  • 數據結構算法反饋你的智商等級

數據結構與算法並不僅是抽象的概念,掌握好的話能夠寫出更高效、運行得更快的代碼,這對於現在盛行的網頁和移動應用開發來講尤其重要。若是你最近一次使用算法是在大學課堂上或求職面試時,那你應該還沒見識到它的真正威力!

這個主題的大多數資料都有一種通病——晦澀難懂。滿紙的數學術語,我以爲一種有趣的學習方式也是很是重要的!

跨平臺能力

跨平臺的方案有不少:

 

如上表所示,RNWeex採用的技術方案大致相同,它們都使用JavaScript做爲編程語言,而後經過中間層轉換爲原生的組件後再利用Native 渲染引擎執行渲染操做。而 Flutter 直接使用 skia 來渲染視圖,而Flutter Widget則使用現代響應式框架來構建,和平臺沒有直接的關係。

從性能方面來講,Flutter 的性能理論上是最好的,RNWeex次之,而且都好於傳統的 WebView方案

而從社羣和社區的活躍來看,RN和Flutter無疑是最活躍的

總結:我我的針對如今的行情比較推薦你們學習:Flutter

 
  • 同時如今不少人也開始着手學習了

  • 如何陪襯你的優點,我我的還要推薦在平時入門到項目的過程,不妨花點時間探索了一下背後的原理:渲染的流程,Flutter和原生的共存通信優化

  • 下面這張思惟導圖你們能夠參考學習

 

軟實力

溝通能力

我用四個詞來歸納: 自信、流暢、耐心、禮貌。

不少小夥伴可能編碼技能不錯,卻不能在面試中表達出來。

在面試過程當中,不管面試環境怎樣,面試官態度如何,你都要保持積極的態度。請記住,你是在求職,就要創造一切對你有利的因素。

好比,你能夠與面試官主動握手,增長好感。

若是面試官問你的問題,你恰好不會,也要儘量列舉這個問題相關的概念,而後推測出這個問題的答案。

好比,面試官問,二進制重排的原理是什麼?

假設你恰好不知道這個知識點,你能夠答 App 啓動前 dyld 相關的概念或者說一下 Mach-O 二進制格式的原理,來推測可能的二進制的重排機制,即便推測錯了也沒有關係,由於在這個過程當中至少展現了你積極解決問題的能力。

固然,若是連相關概念也想不出來,那就誠實地回答不知道或者向面試官請教一下吧。

逆商能力

做爲開發人員,不免會在工做中與各類人撕B,可以扛過這些壓力,也是一項重要的素質。

好比,面試官問,你的學歷背景通常,學校排名靠後,和2十一、985的畢業生競爭有什麼優點?

那你要怎麼做答?

若是你是一個心理素質很差的面試者,極可能就會支支吾吾或者憤而離場了。 相反,你應該不卑不亢,冷靜做答,由於這偏偏多是某些面試官看好你的信號。 經過壓力面試給你最後的考驗,因此千萬不要失之交臂。

做答舉例:

雖然個人學歷不是2十一、985,可是我仍然經過了前面的技術面試,說明了貴司對個人技術實力的承認; 學歷證實了過往的學習能力,我是普通本科,卻能與2十一、985的畢業生同臺競爭,說明個人學習能力並不輸給他們。

加分項

如今的iOS開發爲何會遇到瓶頸是由於:前面儲備過少,坐吃山空! 技術不斷更新的時代,我但願你沉下心來與時俱進,不斷儲備技能爲本身加分

其實這裏並無很是具體的推薦學習方向,總的以下幾點!

  • 5G時代,小視屏/直播技術都是如今當紅,而且掌握人羣很是少的技術,OpenGL ES、Metal、FFmpeg等等!

  • 而應用逆向安全,是大部分大廠都一直重視的,只是在小公司突顯不出來,若是對於大廠有想法的,能夠嘗試學習!
    固然除了跟iOS有關係的,好比被炒火的Python,謠傳比iOS好找工做的前端等等都是能夠學習的!
    技術儲備和亮點,這些都得根據我的興趣或者公司需求來進行學習,固然越多的儲備就會使你後面的路走的越容易!

後記

如今不少大公司招人已經明確限制須要 2十一、985 的學歷,而對於咱們大多人這種雙非二本學歷,連敲門磚都木有。可是,可否拿到 offer,除了真的很幸運,也和自己的努力分不開。

推薦👇:

  • 020 持續更新,精品小圈子每日都有新內容,乾貨濃度極高。

  • 結實人脈、討論技術 你想要的這裏都有!

  • 搶先入羣,跑贏同齡人!(入羣無需任何費用)

  • (直接搜索羣號:789143298,快速入羣)
  • 點擊此處,與iOS開發大牛一塊兒交流學習

申請即送:

  • BAT大廠面試題、獨家面試工具包,

  • 資料免費領取,包括 數據結構、底層進階、圖形視覺、音視頻、架構設計、逆向安防、RxSwift、flutter,

     
相關文章
相關標籤/搜索