7年老Android一次操蛋的面試經歷,揮淚整理面經

看到還有很多程序員連面試流程都沒有徹底弄清楚,今天,我們以阿里為例,來聊聊互聯網大廠的面試流程和過程!

本篇主要還是聊聊社招的面試過程!阿里以及其他的互聯網大廠的技術類社招面試,通常情況是 4 個輪次。第一、第二面是技術面,第三面是主管面試,第四面是 HR 面試。對于目標級別在 P6+ 的候選人,我們會增加至少一輪的跨團隊 Review 面試,因為涉及招聘委員會(Hire Committee)的定級流程,所以要復雜一些。接下來的內容,主要針對通常情況下 P5~P6 的面試來介紹,大神請直接忽略。

01?技術面

1. 個人介紹和基礎知識考查

這部分算是必備技能。我個人倒是傾向于弱化基礎知識的考查,畢竟每個候選人的背景不同,應該更看重聰明程度、學習能力、溝通理解力等,基礎知識只能證明他不是一個優秀的工程師,卻無法證明他是一個優秀的工程師。
2. 項目經歷考查

從這個階段開始就格外重要了,因為面試官之前并不一定完整瀏覽候選人的簡歷,所以聆聽候選人對項目的介紹是了解候選人的最主要途徑。在這個過程中,面試官試圖刨根問底,這跟各公司內部的技術評審很相似。幾個關鍵點,希望你格外注意:

  1. 對項目背景的了解程度,講不清楚需求從哪里來是非常可怕的,這說明你更多只是一個執行者,不是負責人,且缺少對于項目整體的思考。
  2. 對需求的合理性進行分析,一味聽從 PM,不能把控需求的研發是很可怕的。
  3. 對技術方案設計的調研和選型,我們更希望看到你的方案是經過充分思考、調研、對比、論證的,通過這個過程,可以看到候選人的系統設計功底,是否對業界技術有足夠了解,對開源技術的掌握情況,是否愿意應用開源技術。哪怕你的項目只是一個簡單的業務系統,那么仍然應該有很多亮點可尋,否則這段項目經歷可能會減分。
  4. 取得的成效。很多工程師只看重過程,不看重結果,這是不可取的。

3. 編程技術考查
在我的團隊中,我要求每一輪技術面,都至少要有 1 道編程題目。一方面,我們非常看重侯選人的代碼風格、優雅程度,還有對邊界條件的考慮,這些都是好的程序員必須具備的素質。對于代碼混亂、邊界考慮不清的人,我們會認為他沒有足夠的編程素養和追求,在邏輯思維層面,也有所欠缺。**這樣的候選人進入團隊,短期可能造成 Bug 多、項目質量差等影響,長遠來看,不利于合作開發、項目傳承等。**另一方面,**我們非常看重數據結構、算法等的高效實現。能夠快速設計出高效的程序,這體現了候選人日常的深厚積累,還有對編程的極致追求。**前不久就有一個典型案例,我們的運維同學發現一個后端模塊上線后處理性能只有幾十 QPS,很不理解為什么性能這么差。直到我們重新 review 代碼后,才發現是個“經典”問題,即 for 循環里調用 sort(雖然是隔了幾次函數調用),簡單優化后,性能就可以提升 1~2 個數量級。優秀的工程師,一定會盡可能規避這類問題,幾行代碼的優化,就能提升用戶體驗、降低服務器成本、方便代碼維護、減少兄弟們的工作量。
4. 邏輯題目或數學題目

這類題目的核心不在于它有多復雜,需要多少經驗背景,而在于,只要邏輯清晰,認真思考,大多能得出結果,雖然不一定是最優解。我舉幾個例子:

  1. 一個六位數字,逆時針旋轉 180 度后與之前完全相等的概率是多少?
  2. 邊數是 3*4 的網格,從左下角的 A 點走到右上角的 B 點,一共有多少種不同的走法?

這類題目其實很簡單,可以用編程的思路解決,比如遞歸(當然還有很多其他方式),也可以用概率論、組合數學的方式解決,甚至一個一個“數”也是能得到答案的。在思考問題的過程中,可以看出候選人的思維習慣,也可以看出候選人的邏輯能力。另外,這類題目其實有很多變化,如果候選人很輕松完成了回答,面試官就可以適當加大難度,比如 3*4 的網格有一個點不能經過,那么會是什么結果?這類題目看似簡單,實則分辨率很高,可以充分挖掘候選人的潛力。除去上面的介紹外,候選人還應該對行業情況有所理解,包括競品、開源項目等,這可以體現一個人的眼界和行業洞察能力,也可以看出一個人的學習態度,他是否在持續更新自己的知識儲備。

02??主管面

相對于技術面而言,主管面試不會過多考查基礎知識、數據結構及算法,但因為技術主管大多具備很強的技術背景,所以仍然會針對技術面過程中的一些遺漏點(可能是面試官沒有考查到,也可能是候選人的回答不夠完善),著重補充考查。除此之外,主管面的核心就是判斷候選人除了技術能力外的其他維度,是否與團隊相匹配。第一類維度,軟素質能力。軟素質的維度很豐富,每一次面試過程不會面面俱到地考查,但一些重要的維度一定會被照顧到。

1. 邏輯思維。
與技術面的邏輯題目類似,團隊可以接受不足夠聰明的人,但無法接受邏輯不清晰的人。在這個環節,可以提出一些進階的題目,比如給候選人一個很復雜的問題,希望候選人可以嘗試分析、分解,讓看起來一團亂麻的問題變得清晰可實現。或者,讓候選人闡述一個經歷過最有挑戰的問題,是如何定義問題并分析解決的。當然這類問題,一般初入職場的同學都很難回答完美;不過對于工作 2 年 + 的同學,我覺得問題的分析、分解、設定目標、規劃、執行都是必備素質。這個能力很難在工作中迅速培養,它更多是通過候選人過去一二十年的學習和工作經歷,一點一滴積累的,所以對于社招而言,希望候選人已經具備很好的邏輯思維能力。
2. 溝通能力。
不能有效且高效地溝通,對于團隊項目是場災難。在日常工作中,經常會看到幾個同學針對一個問題爭論得不可開膠,但其實他們往往沒有理解對方所講的主旨是什么,甚至對于一些名詞和概念的理解都不一致,就更不要說同理心了,這種無效溝通是導致會議冗長的最主要因素。這類的面試考查,一般會依附于項目介紹或者設計題目等。

如果候選人已經具備不錯的溝通能力,我們一般還會考查進階能力:說服和影響。這是成為技術 / 項目負責人的必備能力。面試官可能會和候選人進行一個簡短的虛擬溝通或辯論環節,希望候選人可以說服面試官接受某個觀點或技術方案。當然,在這個過程中,面試官扮演的反派可能會用一些偏激的詞匯和行為,這一方面是看候選人的溝通說服和影響他人的能力,另一方面也是壓力測試,看看候選人在受到刁難時的反應,是否足夠職業。創新能力。

在過去的項目中,請講述一次發現傳統方法的不足,嘗試新的解決問題的方法,并獲得成功的經歷。這類題目非常開放,但遺憾的是,在我面試過的候選人中,近半數都是在思索一會兒后回答“沒有什么”。

當然,一方面可能候選人很謙虛,另一方面,則很可能是候選人確實沒有嘗試做過什么創新。

互聯網行業,創新是一切之源,如果真的“沒有什么”,如何給 Offer 呢?

第二類維度,文化價值觀。

工程師文化是務實、自驅、Follow Through(跟進到底,有始有終)。一個浮夸,不思進取,凡事不愿承擔責任,不能將項目跟進到底的候選人,很難成為我們的伙伴。這類維度,其實沒有太多經驗可談,每個公司都有它的文化基因,而候選人是否與之匹配,是基因和環境使然。我只說下從我個人角度,最為看重的內容,否則我會一票否決。樂觀積極。不得不承認,每個人都有積極的一面和消極的一面,職業化的思維在于將積極的一面展現出來,盡量弱化消除消極一面的影響。

在日常工作中,每個人都不希望遇到一群愁眉苦臉、滿腹牢騷的同事。善于合作。一位同學加入到我們的團隊,他不僅需要具備優秀的個人能力,同時也需要能和其他人協同合作,起到 1+1>2 的效果。我們會考查候選人在過去的經歷中,對待合作的態度,有沒有接觸過比較復雜、跨越多個角色或團隊的合作,遇到過的協作困難是什么,遇到這類困難是如何解決的。有些候選人經常會無意識地表達出,在項目研發過程中,多人寫代碼,還要同步需求、設計、協商接口、聯合調試,而且有 Bug 修復推動也很麻煩,如果我一個人開發早就解決了。這種思維雖然無可厚非,但希望每個人可以看得更遠,大型項目是一個人完成不了的,在多人合作的背景下,如何提升合作的效率和質量才是重點,而不是過多地看到負面。追求極致。這一條很難。在我發過的這么多 Offer 中,具備這個素質的候選人也是鳳毛麟角,但只要具備這個素質,我幾乎一定會給 Offer。當然,追求極致不等于鉆牛角尖。

文末

我總結了一些Android核心知識點,以及一些最新的大廠面試題、知識腦圖和視頻資料解析。

需要的小伙伴私信【學習】我免費分享給你,以后的路也希望我們能一起走下去。(謝謝大家一直以來的支持,需要的自己領取)

直接點擊鏈接也可以領取哦!

Android學習PDF+架構視頻+面試文檔+源碼筆記

部分資料一覽:

  • 330頁PDF Android學習核心筆記(內含8大板塊)

  • Android學習的系統對應視頻

  • Android進階的系統對應學習資料

  • Android BAT大廠面試題(有解析)

習資料**

[外鏈圖片轉存中…(img-C14ukY4U-1624138360079)]

  • Android BAT大廠面試題(有解析)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

gin context和官方context_Go Web 小技巧(一)簡化Gin接口代碼

不知道大家在使用 Gin 構建 API 服務時有沒有這樣的問題:參數綁定的環節可不可以自動處理?錯誤可不可以直接返回,不想寫空 return, 漏寫就是 bug本文通過簡單地封裝,利用 go 的接口特性,提供一個解決上述兩個問題的思路一、解決過…

7年老Android一次操蛋的面試經歷,深度好文

Java基礎 Java Object類方法HashMap原理,Hash沖突,并發集合,線程安全集合及實現原理HashMap 和 HashTable 區別HashCode 作用,如何重載hashCode方法ArrayList與LinkList區別與聯系GC機制Java反射機制,Java代理模式Jav…

Hadoop大數據應用生態圈中最主要的組件及其關系

Hadoop Common Hadoop Common是在Hadoop0.2版本之后分離出來的HDFS和MapReduce獨立子項目的內容,是Hadoop的核心部分,能為其他模塊提供一些常用工具集,如序列化機制、Hadoop抽象文件系統FileSystem、系統配置工具Configuration,并…

7年老Android一次操蛋的面試經歷,系列教學

公司的需求 不同的公司,不同的需求現在的市場上,公司很多,大致上可以歸納為兩個大類:大公司和小公司,他們招聘時對人才的需求也不一樣。 小公司 小公司他們一般急需的是能夠投入工作的人才,因為公司規模…

丁香園 武漢 神童_杭州、武漢、成都哪個城市更適合程序員發展

很多朋友討論起房價和職業發展機會,都會提到這三個城市,有的人認為目前杭州房價太貴了,生活成本高,華中的武漢和西部崛起的成都都在鼓勵高新技術發展并且有了一定成果,在選擇職業發展和定居城市之間該如何取舍呢&#…

Windows 7 64位系統上搭建Hadoop偽分布式環境(很詳細)

在開始配置前,我們先了解Hadoop的三種運行模式。 Hadoop的三種運行模式 獨立(或本地)模式:無需運行任何守護進程,所有程序都在同一個JVM上執行。在獨立模式下測試和調試MapReduce程序很方便,因此該模式在…

7年老Android一次操蛋的面試經歷,講的太透徹了

由于涉及到的面試題較多導致篇幅較長,我根據這些面試題所涉及到的常問范圍總結了并做出了一份學習進階路線圖???????及面試題答案免費分享給大家,文末有免費領取方式! View面試專題 View的滑動方式View的事件分發機制View的加載流程…

處理效應模型stata實例_stata︱政策處理效應模型sata基本命令匯總

本文來源經管之家論壇,由壇友cuifengbao歸納 Use ,文件名.dta,clear Ssc installpamatch2,replace 一、首先做一元回歸 reg 結果變量 處理變量,r 二、直接引入協變量,再做多元回歸 reg 結果變量 處理變量 協變量1 協變量2 協變量3……,r 三、接下來進行傾向得分匹配 1.將數…

80后程序員月薪30K+感慨中年危機,面試必問!

說說程序猿行業 現在社會上給IT行業貼上了幾個標簽:高薪、高危、高大上、禿頂(哈哈)。這些標簽我相比大家都比較清楚,至于為什么是這些標簽呢?而且這些標簽是真實還是假象呢? 高薪 作為IT行業來說&#…

華為照片在哪個文件夾_原來華為手機還能這樣清理垃圾,怪不得你的手機可以多用5年...

對于目前市場上的智能手機來說,大家的手機功能都是差不多的,除了一些外觀上的差別之外,最大的區別就是手機的內存,但是很多朋友卻表示手機內存很大,但是沒用多久,手機就會出現卡頓或者是運行速度變慢的現象…

996頁阿里Android面試真題解析火爆全網,全網首發!

在安卓系統中: 當系統內存不足時,Android系統將根據進程的優先級選擇殺死一 些不太重要的進程,優先級低的先殺死。進程優先級從高到低如下。 前臺進程 處于正在與用戶交互的activity與前臺activity綁定的service調用了startForeground&…

python不適合大型項目_在大型項目上,Python 是個爛語言嗎? |

【洪強寧的回答(89票)】:太多硬傷和臆想,懶得批。只說“代碼超過 10w 以后你就別想用 python 開發了”這一句,2012年4月豆瓣主站項目代碼行數就近50萬行了,可我們還在用 python 開發。【劉鑫的回答(42票)】:我寫過幾年Python,也寫…

996頁阿里Android面試真題解析火爆全網,分享面經!

導語 學歷永遠是橫在我們進人大廠的一道門檻,好像無論怎么努力,總能被那些985,211 按在地上摩擦! 不僅要被“他們”看不起,在HR挑選簡歷,學歷這塊就直接被刷下去了,連證明自己的機會也沒有,學…

access ole 對象 最大長度_Redis 數據結構和對象系統,有這 12 張圖就夠了!

作者 | 程序員歷小冰責編 | 林瑟Redis 是一個開源的 key-value 存儲系統,它使用六種底層數據結構構建了包含字符串對象、列表對象、哈希對象、集合對象和有序集合對象的對象系統。 今天我們就通過 12 張圖來全面了解一下它的數據結構和對象系統的實現原理。01數據結…

python煙花表白_python炫酷煙花表白源代碼

詳細內容天天敲代碼的朋友,有沒有想過代碼也可以變得很酷炫又浪漫?今天就教大家用Python模擬出綻放的煙花,工作之余也可以隨時讓程序為自己放一場煙花秀。python炫酷煙花表白源代碼這個有趣的小項目并不復雜,只需一點可視化技巧&a…

【面試總結】2021Java春招面試經歷

三、堆空間 基本描述 JVM啟動時創建堆區,是內存管理的核心區,通常情況下也是最大的內存空間,是被所有線程共享的,幾乎所有的對象實例都要在堆中分配內存,所以這里也是垃圾回收的重點空間。 堆棧關系 棧是JVM運行時的…

tableau地圖城市數據_Tableau 地圖 | 無法識別的城市

Tableau自帶的地圖功能很強大,也很簡單只要雙擊具有地理位置角色的字段,即可生成地圖不過有的時候在你部署地圖的時候總會發現有些城市或地名無法識別,提示如下:這篇post就來簡單聊聊為啥今天直說處理方法,不談后臺原理…

【高級Java架構師系統學習】最新Java高級面試題匯

性能調優 影響MySQLServer 性能的相關因素 商業需求對性能的影響系統架構及實現對性能的影響Query語句對系統性能的影響Schema設計對系統的性能影響硬件環境對系統性能的影響 MySQL 數據庫鎖定機制 MySQL鎖定機制簡介各種鎖定機制分析合理利用鎖機制優化MySQL MySQL數據庫Qu…

vue 安裝指定版本swiper_Vue中的runtime-only和runtime-compiler

在我們使用vue-cli的時候,會提示你安裝的版本可以看到有兩種版本:Routime Only和Runtime Compiler版本1.Runtime Only - 代碼中不可以有任何template 性能更高在該版本下,通常需要借助如webpack的vue-loader發工具把.vue文件編譯成js因為是在…

一文搞懂JVM架構:入職3個月的Java程序員面臨轉正

Java基礎 1.JAVA 中的幾種數據類型是什么,各自占用多少字節。 2.String 類能被繼承嗎,為什么。 3. 兩個對象的 hashCode() 相同,則 equals() 也一定為 true,對嗎? 4. String 屬于基礎的數據類型嗎? 5.…