主頁 > 軟體設計 > “老板,對不起!我胃不好,您給的餅我消化不來”,我去騰訊吃“軟飯”了!

“老板,對不起!我胃不好,您給的餅我消化不來”,我去騰訊吃“軟飯”了!

2021-03-04 11:21:00 軟體設計

啊!我親愛的張姓前老板,真希望你也會逛CSDN,能看到我對你深深的歉意!

前言

我是一名雙非本科畢業一年的Android開發渣渣,坐標深圳,在此次上岸騰訊之前,自己一直都是在一家10多人的創業公司承當“Android首席開發官”的職務,從裸辭準備到上個月20號拿到騰訊的offer,歷經2個多月的時間,接下來就給大家分享一下我這段時間的學習心得與面試經驗,

所謂“Android首席開發官”,其實也就是跟朋友吹牛皮時的一句玩笑話,包括老板、財務、業務人員、開發人員等,攏共15個人,如果算上物業的保潔,就算15個半吧,我馬某很是“有幸”從這15個半的員工當中脫穎而出,出任“Android首席開發官”一職,

“一個人守一座城”的磨練,讓我不得不去不斷的加深自己的技術深度與廣度,來以坐穩高位,但同時提升的還有自己的眼界與“野心”,

“我TN的,全公司Android這塊的開發就是我一個人在抗,錢還給得少!”

“辛辛苦苦干了一年,竟然連個年終獎都沒得,說是因為今年公司沒怎么賺錢,明年補3倍?”

“那你前陣子付訓的奧迪A6L,是TN的中彩票中的?老子還不跑路,還留著過年?”

這是一個悲傷的故事,但現在看來又是個幸運的故事,感謝你的磨練,技術上和身心上雙重的,12月底辦完離職手續,然后開始面試準備,刷面試題,演算法題,面經,然后投了一輪非知名“大公司”來檢驗自己,查漏補缺,復盤學習,在2月初的時候開始沖擊大廠,算下來投了,位元組、美團、oppo、阿里、騰訊、百度、網易,最終被騰訊音樂的QQ音樂收了,

一點面經

總的感覺,雖然是社招,但是對于只有一年經驗的面試者其實和校招感覺差別不是很大,四輪都是視頻面試,面試官都很準時,而且人都很好,在回答卡住的時候會給與提示,在反問環節我也看出了面試官的思路是非常清晰的,總的來說整個面試程序非常nice,接下里就給大家具體分享下騰訊四面的面試題,希望能給準備面試騰訊Android崗的小伙伴一些思路和幫助!

2.9 一面 1h15min

    1. 為什么離開上家公司
    1. 在開發中遇到的最大的困難?怎么解決的
    1. 介面和抽象類的區別,一個類的能不能多繼承,能不能實作多個介面
    1. 介面類的非方法能不能被修改?不能,介面類里非方法的型別都是final修飾,所以必須初始化并且不能被修改
    1. 抽象類的變數可以被繼承和修改么?可以final關鍵字
    1. GC如何標記要回收的記憶體?GC Roots有哪些
    1. 執行緒安全問題,sychronized、lock/unlock的區別使用,公平鎖和非公平鎖的概念
    1. sychronized是如何體現公平鎖和非公平鎖的(CAS、鎖自旋)
    1. HashMap原理,在什么時候擴容(當加入的元素大于閾值threshold后),以及執行緒安全的HashTableConcurrentHashMap的原理
    1. View的事件分發
    1. 布局優化怎么做的?LinearLayout和RelativeLayout在性能上的區別
    1. WebView的優化,如果出現了資料的互動該怎么做?(AIDL),Binder怎么實作行程間通信的?mmap的模型
    1. 記憶體優化?RecyclerView的快取機制,如何優化
    1. 專案中的聯網模塊怎么實作的?UDP和TCP的區別
    1. TCP會檢查包的順序么,Tcp怎么控制包的發送(滑動視窗)
    1. 看到專案中使用了WebSocket,講下它和Http的區別
    1. RxJava的運算子?專案中是如何使用RxJava的
    1. 快速排序和冒泡排序的穩定性問題
    1. 編程題:將一個分數轉化成小數形式輸出,因為分數只可能是有限小數或無限回圈小數,如果小數是無限回圈小數,則使用小括號括起,(這題思路是做while輪除,我界定是否產生了無限回圈小數是使用的HashTable,)
    1. 對我們公司了解多少?有什么想問的?

2.12 二面 45min

    1. "abcde"字串在記憶體中占多大,這些位元組在JVM的編碼格式
    1. JVM堆和堆疊的作用,行程和執行緒的作用,堆疊和執行緒行程的對應關系
    1. 死鎖怎么產生?如何去解決死鎖,多個方案
    1. 執行緒同步問題,自增是原子操作嗎?如果要做到執行緒安全的自增要做怎么做
    1. 快排的程序,時間復雜度,n*lgn是如何得來的
    1. Http是在哪一層,Https使用了非對稱加密還是對稱加密?
    1. TCP和UDP的區別?為什么UDP不可靠還要使用UDP
    1. 擁塞控制和流量控制的區別
  • 9 . 智力題:給一籃子雞蛋,如何用最少的比對次數找到最大的和最小的雞蛋,
    (我的回答是 一開始,隨便拿出兩個雞蛋,然后接下來剩下的雞蛋每拿出一個,就和這兩個進行比較,如果比兩個中小的雞蛋小就替換小的那個,如果比大的雞蛋大就替換掉大的那個,這樣比較次數就是 (n-2) *2 ,因為有些雞蛋只用比一次就行了(因為是最小的就不用往大的比了),所以結果是小于 (n-2) *2的,但我覺得應該還可以更加快…)
    1. 編程題,排序二叉樹的插入,如果插入相同的數,需要做什么保證樹可以還原(即不允許丟棄到相同的數)?
    1. 有什么要問的?

2.17 三面 1h20min

    1. 兩桶油漆,A桶全是紅色油漆,B桶全是藍色油漆,將A桶中取一勺倒入B中,再從B桶中取一勺倒入A中,求A桶的藍紅比例和B桶的紅藍比例,是大于、小于還是等于?
    1. 用一個陣列實作一個回圈佇列
    1. 給定一個只有“R”“G”“B”三個字母的字串,用一次遍歷基于原字串將他們以“RGB”的順序排序好(LeetCode原題)
    1. 52張撲克牌,取一張不放回,再取一張, 兩張為相同顏色的概率是多少?

hr面 45min

    1. 自我介紹
    1. 為什么選擇計算機這個專業
    1. 為什么要離開上家的公司
    1. 在上一個公司學到了什么
    1. 選擇公司因素,按優先級排個序
    1. 用三個關鍵詞描述自己
    1. 代入用戶思維和不代入用戶思維做產品有什么區別
    1. 家庭情況,有沒有女朋友
    1. 你覺得一個好勝心過強的人會有什么樣的問題
    1. 你會想在團隊里面承擔一個什么樣的角色
    1. 平時的愛好是什么
    1. 有沒有給自己制定一些計劃?對自己的要求有多高
    1. 學習的渠道、方式,有GitHub嗎?看什么樣的書
    1. 學習是基于公司專案學習,還是個人興趣學習
    1. 預計到崗時間,期望薪資
    1. 反問環節

簡單總結

總結一下,技術面環節主要考專案和Java基礎、編程題要注意規范和思路是否最優,和HR小姐姐聊得很開心,然后在2月20號收到了offer,

一些分享

因為上家公司“Android首席開發官”職責的原因,所以平時加了不少技術交流群,以便于自己在遇到問題后,請教學習,這次能成功跳槽騰訊,也是非常感謝群內一位騰訊的前輩老哥給予的一些學習計劃指導,和一些面試題、技術筆記分享,讓我在短時間內有實力“入贅”騰訊,再經得大佬同意的前提下,我把這套進階筆記及面試題集分享出來,希望能幫助到更多有著大廠夢的朋友,

  • 架構師筑基必備技能

目前Android APP開發主流語言就是Java語言,Java語言最大的特性就是提高了軟體的互動可能性,可以說安卓手機幾乎所有應用程式都是利用Java語言來進行撰寫的,

知識要點:
1、深入理解Java泛型
2、注解深入淺出
3、并發編程
4、資料傳輸與序列化
5、Java虛擬機原理
6、高效IO

架構師筑基必備技能

  • 設計思想解讀開源框架

隨著互聯網企業的不斷發展,產品專案中的模塊越來越多,用戶體驗要求也越來越高,想實作小步快跑、快速迭代的目的越來越難,插件化技術應用而生,如果沒有插件化技術,美團、淘寶這些集成了大量“app”的應用,可能會有幾個g那么大,

所以,當今的Android移動開發,不會熱修復、插件化、組件化,80%以上的面試都過不了,

知識要點:
1、熱修復設計
2、插件化框架設計
3、組件化框架設計
4、圖片加載框架
5、網路訪問框架設計
6、RXJava回應式編程框架設計

設計思想解讀開源框架

  • 360°全方位性能調優

在不同層次的開發工程師手里,因為技術水平的參差不齊,即使很多手機在跑分軟體性能非常高,打開應用依然存在卡頓現象,

另外,隨著產品內容迭代,功能越來越復雜,UI頁面也越來越豐富,也成為流暢運行的一種阻礙,綜上所述,對APP進行性能優化已成為開發者該有的一種綜合素質,也是開發者能夠完成高質量應用程式作品的保證,

1、設計思想與代碼質量優化

2、程式性能優化

  • 啟動速度與執行效率優化
  • 布局檢測與優化
  • 記憶體優化
  • 耗電優化
  • 網路傳輸與資料儲存優化
  • APK大小優化

3、開發效率優化

  • 分布式版本控制系統Git
  • 自動化構建系統Gradle

4、專案實戰

  • 啟動速度
  • 流暢度
  • 抖音在APK包大小資源優化的實踐
  • 優酷回應式布局技術全決議
  • 網路優化
  • 手機淘寶雙十一性能優化專案揭秘
  • 高德APP全鏈路原始碼依賴分析
  • 徹底干掉OOM的實戰經驗分享
  • 微信Android終端記憶體優化實踐

360°全方位性能調優

  • Android框架體系架構

Android框架體系架構(高級UI+FrameWork原始碼) 這塊知識是現今使用者最多的,我們稱之Android2013~2016年的技術,

Android開發者也往往因為網上Copy代碼習慣了而導致對這塊經常“使用”的代碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道, 天天在復制這些代碼 ;陌生的是雖然天天和這些代碼打交道,但是并沒有深入研究過這些代碼的原理,代碼深處的內涵,

本篇知識要點:
1、高級UI晉升
2、Android內核組件
3、大型專案必備IPC
4、資料持久與序列化
5、Framework內核決議

Android框架體系架構

  • NDK模塊開發(音視頻系列)

NDK(Native Development Kit縮寫)一種基于原生程式介面的軟體開發工具包,可以讓您在 Android 應用中利用 C 和 C++ 代碼的工具,通過此工具開發的程式直接在本地運行,而不是虛擬機,

在Android中,NDK是一系列工具的集合,主要用于擴展Android SDK,NDK提供了一系列的工具可以幫助開發者快速的開發C或C++的動態庫,并能自動將so和Java應用一起打包成apk,

本篇知識要點:
1、NDK開發之C/C++入門
2、JNI模塊開發
3、Linux編程
4、底層圖片處理
5、音視頻開發
6、機器學習

NDK模塊開發

  • Flutter學習進階

2019 年無疑是 Flutter 技術如火如荼發展的一年,

每一個移動開發者都在為 Flutter 帶來的“快速開發、富有表現力和靈活的 UI、原生性能”的特色和理念而癡狂,從超級 App 到獨立應用,從純 Flutter 到混合堆疊,開發者們在不同的場景下樂此不疲的探索和應用著 Flutter 技術,也在面臨著各種各樣不同的挑戰,

本篇知識要點:
1、Flutter跨平臺開發概述
2、Windows中Flutter開發環境搭建
3、撰寫你的第一個Flutter APP
4、Flutter Dart語言系統入門

Flutter學習

  • 微信小程式開發

微信小程式作為現在比較火的編程開發應用場景之一,深受市場的青睞,這讓不少開發者眼饞不已,但是對于初學者來說,就完全摸不著頭腦了,不知道微信小程式開發制作需要學習那些知識,有需要的朋友可以參考本篇,

本篇知識要點:
1、小程式概述及入門
2、小程式UI開發
3、API操作
4、購物商場專案實戰

微信小程式開發

  • Android相關原始碼解讀
    只要是程式員,不管是Java還是Android,如果不去閱讀原始碼,只看API檔案,那就只是停留于皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的,

Android相關原始碼解讀
Android相關原始碼解讀部分內容

  • 騰訊歷年面試真題集(含決議)

騰訊歷年面試真題集(含決議)

由于篇幅原因,需要以上完整學習筆記及面經pdf如有需要,可以 點贊+評論 沾沾喜氣,然后點擊這里免費自取!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/265970.html

標籤:其他

上一篇:【請求頭Content-Type為表單提交和JSON提交的區別】呼叫快遞介面回傳400的原因

下一篇:如何透過表象直達本質

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more