iOS晉升之路:外包—蘇寧—阿里 好家伙我是怎么快速晉升的?

寫在開篇的思路

2020年是多災難的一年,對于我們每個人來說,健康地活著比什么都重要。受到疫情的影響,很多公司都過得比較艱難,裁員更是普遍,所以對大部分來說保住飯碗就很不錯了,更別說什么跳槽晉升了。

但今年的我,似乎要比很多人幸運,??瞥錾恚瘘c很低了,在看重學歷的一眾大廠中殺出一條血路。工作兩年我就跳槽進入了蘇寧,在蘇寧待了3年,現(xiàn)在竟到了阿里。身邊很多人都好奇,我究竟是怎么做到的?下面就來分享一下我這些年是怎么快速晉升的,希望能夠給你帶來一些啟發(fā)和幫助吧。

本文主要分享4個點,可按需來閱讀:

  • Share1:阿里iOS崗面試題

  • Share2:蘇寧開發(fā)三年,我如何積累經(jīng)驗?

  • Share3:5年開發(fā)經(jīng)驗,如何跳槽阿里?

  • Share4:如何提升阿里社招面試通過率?


Share1:阿里iOS崗面試題

  • 1、介紹項目

  • 2、在KVO中,他是怎么知道監(jiān)聽的對象發(fā)生了變化?

  • 3、字典的工作原理 ?怎100w個中是怎么快速去取value?

  • 4、一個上線的項目,知道這個方法可能會出問題,在不破壞改方法前提下,怎么搞?

  • 5、Block和函數(shù)指針的區(qū)別?

  • 6、性能優(yōu)化

  • 7、YYModel和AF源碼

  • 8、如何自己設計json轉model

  • 9、架構

他們的面試官好像都愛問一下底層的東西,比如這次面試上來機會問我KVO的問題。
問題【1】,看著好像很吊的樣子,仔細一樣不去思考,可能還真不是太了解,
問題【2】,這個就是純純的數(shù)據(jù)結構的問題了。
問題【3】,這個就是iOS的runTime的問題了,要只要isa,和一些swizzling技術
問題【4】,就是看你了解有多廣泛了。

二面

  • 1、淺拷貝和深拷貝的區(qū)別

  • 2、Block的循環(huán)引用、如何解決、原理

  • 3、Block和delegate的比較

  • 4、kvo的實現(xiàn)原理

  • 5、Autorelease pool的實現(xiàn)原理

  • 6、消息轉發(fā)機制

  • 7、線程死鎖的四個條件

  • 8、進程和線程的區(qū)別

  • 9、持久化

  • 10、事務的特征

中途還討論了Masonry的約束應該寫在哪里,我說應該寫在layoutSubViews,他說會調(diào)用多次,然后爭論了一會兒

三面

  • 主要問了項目的一些東西 和給一些場景問我如何實現(xiàn)

  • 自我介紹 介紹一些項目難點

  • 主線程是相對于什么而言的

  • 一張圖片的內(nèi)存占用大小是由什么決定的

  • 索引的作用

  • 索引的優(yōu)缺點

  • 在數(shù)組中找最小的k個數(shù)

  • 淘寶下拉加載更多如何優(yōu)化

  • 淘寶頁面發(fā)送HTTP請求的過程

  • 介紹一下MVVM

  • 知道哪些設計模式

三面面試官主要就聊了一些具體場景問題和一些基礎,基礎應該是沒太大問題。

答案文檔整理在文尾處!

(1)善于利用碎片時間,學習提升自我

  • 從初級程序員升到資深開發(fā),沒有別的捷徑可走,從始至終我都奉信:進步得靠學習,學習得靠時間堆砌。現(xiàn)在互聯(lián)網(wǎng)行業(yè)基本上都是996趨勢,程序員加班情況更為明顯,所以利用碎片時間來學習,才是提升自己最合適的方式。
  • 先算算我個人的學習時間賬(可參考,可借鑒):
  • 每天早上起床后,大概30min(上廁所,吃早餐,通勤等)

  • 每天上班時,利用別人劃水的時間搜一些技術資料,逛逛技術博客,約30min。

  • 晚上通勤、吃飯(這個階段我一般會休息+娛樂來調(diào)整自己狀態(tài),刷刷微博、朋友圈)

  • 晚上到家后,不管再累都會抽出1~2個小時來學習,看書+看視頻。

  • 這樣計算下來,一天大概平均在2~3小時,一周5天至少10個小時,不包括周末。
  • (2)解決Bug積累經(jīng)驗(提升自己優(yōu)化能力)
  • 論壇上流行一種說法:大部分的程序員都是通過BUG來積累經(jīng)驗的,你解決的每一個BUG都是你的經(jīng)驗。
  • 實際上,這觀點并不在強調(diào)BUG的重要性,而是意味著程序員可以通過改Bug來提升自己的優(yōu)化能力,但這個“改”就非常關鍵了。

(3)參與開源項目

其實,在很多面試攻略和分享中,我們都能get到一個信息:參與過開源項目的面試者往往更吃香,更容易獲得offer。

那么,為什么參與過開源項目的程序員會更吃香更搶手呢?

大型的開源項目幾乎都是大型團隊構建的,且非常復雜,由此可以推斷出你個人的能力和素質(zhì)都是過關的;

開發(fā)開源項目,說明個人的綜合能力得到極大提高,這些能力包括“書面溝通能力”、“了解如何挑選和協(xié)商要處理的事情”、“完善Git流程/GitLab流程”、“理解語言語法”等等;

其他:建立線上聲譽、保持個人的進步的動力等等。

(4)提升自己的軟實力,讓自己更專業(yè)

按照我個人的理解來說,初級程序員更像學生,而高級程序員則需要擁有“獨當一面”的能力,而這個過渡是需要時間的,也是我前兩年來努力的方向之一。

提升自己的軟實力,成為更專業(yè)的程序員:

要學會積極主動溝通;

提升自己解決問題(bug)的能力,積累解決問題(bug)的經(jīng)驗;

協(xié)調(diào)(扯皮)的能力:工作方面積極主動協(xié)調(diào)部門;

學會合作,一起完成一個任務或目標。

Share3:5年經(jīng)驗如何跳槽阿里?

  • Step1:知己知彼(了解崗位職責,規(guī)劃職業(yè)成長路徑)
  • ①崗位職責
  • 求職時,我們往往更注重簡歷,卻忽略了“崗位職責”這個關鍵詞,實際這往往也會影響到我們的面試結果。
  • 俗話說“知己知彼,百戰(zhàn)不殆”,崗位職責非常清晰明確地標注了應該干什么,怎么干,干到什么標準,對于程序員來說,技術掌握程度以及之后的開發(fā)內(nèi)容都要了解清楚。
    ②成長路徑

在第一次正式工作后,我就非常認真仔細的思考過自己日后的發(fā)展方向,實際上程序員的成長軌跡(晉升路徑)越早確定越好。程序員的方向大致分為技術崗和管理崗,而這兩個方向所看重的能力還是有很大本質(zhì)區(qū)別的。

成長路徑如下:

  • 管理崗:初做者→技術經(jīng)理→技術總監(jiān)→副總裁→總裁

  • 技術崗:初做者→高級工程師→技術專家→領域?qū)<摇I域權威

image

Step2:制定目標(制定明確的、可衡量的、可達到的、有時間限制的目標)

在職場中,一定要制定自己的的目標,這樣才不免被淪為“咸魚”,想要快速晉升,就得從目標下手,目標需要滿足SMART原則:

  • 具體的(Specific)

  • 可以衡量的(Measurable)

  • 可以達到的(Attainable)

  • 具有相關聯(lián)性的(Relevant)

  • 有明確的時間截止的(Time-based)

簡單來說,我的操作就是將自己的目標進行階段性的拆分,比如我1-3年需要達到一個什么階段,3-5年要達到什么階段,然后在這個階段里繼續(xù)進行拆分,樹立一個一個小目標,然后構成一個大目標,總目標,這樣就會容易達到得多了。

Step3:善于思考(培養(yǎng)逆向思維、優(yōu)化思維)

不想機械式的碼代碼,快速晉升之道首先就要轉變自己的思維,要開始慢慢調(diào)整,善于思考一些問題,培養(yǎng)逆向思維和優(yōu)化思維。

所謂的逆向思維,就是要多問自己為什么?如:

  • 為什么需要這些數(shù)據(jù)?

  • 為什么要做這些事?

  • 為什么要做總結?

  • 為什么要做規(guī)劃?

  • 為什么要做代碼審核?

而優(yōu)化思維,則是把事情做得更好,即使是繁瑣雜事,也有優(yōu)化的空間,包括效率和效果,任何事都是有優(yōu)化空間的,缺少的是發(fā)現(xiàn)的眼睛。

Share4:如何提升阿里社招面試通過率?

  • (1)準備簡歷
  • 面試是會根據(jù)簡歷來進行對你提問的,尤其是對于開發(fā)人員來說,看到你的項目經(jīng)歷后,或多或少都會問相關的問題,甚至一線互聯(lián)網(wǎng)公司會針對項目進行提問,所以準備簡歷這一環(huán)節(jié)就尤為重要。
  • 準備簡歷時,一定要真實,簡歷作假是職場大忌,切記切記。其次,要分清楚“了解、熟悉、精通”三詞的區(qū)別,對技術棧的掌握程度跟面試題難度密切相關


當然,為了幫助各位能夠順利過了簡歷,我也準備了一些模板大禮包,包括我自己的個人簡歷也在里面,歡迎大家參考:> 這里有我準備的一線大廠面試資料和簡歷模板,歡迎Star!
https://docs.qq.com/doc/DVXdtWXJGVWt0TkVG

(2)盡量找內(nèi)推

校招容易,社招難。這是一線互聯(lián)網(wǎng)的普遍現(xiàn)象,對于應屆生的要求相對來說還是比較寬松的,但對于有一定工作年限的人來說,技術要求就比較高了,因此很多中途想要進一線大廠的人都說社招實在太難了,簡歷都過不了。

那其實也是有一些“捷徑”可走的,可以找一些內(nèi)推機會,相對直接社招來說,幾率大大提升了。

(3)對技術要掌握一定的廣度和深度

既然是技術崗,那么企業(yè)對于技術掌握的廣度和深度是有自己相應的要求的,學歷在技術面前都顯得沒那么重要了,因此努力提升自己的技術水平是程序員的首要目標。

那么,技術要掌握到什么程度呢?特梳理了一下技術路線,如下圖譜:

對于現(xiàn)在流行的一些技術框架,我又掌握得如何了呢?實際上,我是有一個記錄學習心得,做學習筆記的習慣,所以我對一些技術也有自己的總結和經(jīng)驗。

iOS核心成長筆記:

成長筆記

面試核心技術筆記


高效高質(zhì)量代碼方法:
高效

學習干貨與總結
更多干貨文檔

以上文章中,提及到的所有筆記內(nèi)容、面試題等資料,均可以免費分享,只需要你:在文末 “點個贊” 或者 評論 “Mark”,謝謝您的支持

歡迎加入我的iOS討論圈子:761407670 加入回復簡書就好了! 獲取文章資料 一起交流技術

學習,永遠不會辜負你,靠學習得到的,永遠是你最寶貴的財富。

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

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

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