www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導讀]攝于:19年9月廣州飛北京 0.先嘮嘮嗑 Paxos文章跳票了。 最近總是鴿,寫作也鴿,跑步也鴿,更別提擺地攤了,倒是最近標題黨的感覺越來越重了,主要是怕各位老鐵錯過這篇干貨... 所以就得反思一下為什么最近總鴿?說到底時間都被我浪費了。 根據(jù)以往的經(jīng)驗,工

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀

攝于:19年9月廣州飛北京

0.先嘮嘮嗑

Paxos文章跳票了。

最近總是鴿,寫作也鴿,跑步也鴿,更別提擺地攤了,倒是最近標題黨的感覺越來越重了,主要是怕各位老鐵錯過這篇干貨...

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀


所以就得反思一下為什么最近總鴿?說到底時間都被我浪費了。

根據(jù)以往的經(jīng)驗,工作時找個隔音非常好的耳機,然后把手機扔得遠一點,睡前也把手機扔遠點,是可以提高時間利用效率的。

想起幾年前準備考研的時候,就用只能打電話發(fā)短信的手機,充一次電用好幾天,自己對時間的把控力也就好很多,現(xiàn)在看還是各種壞習慣太多了,時間也都給浪費掉了。

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀 

但是不要走極端,閉門造成更可怕,所以合理利用時間是很重要的,好像聞到了雞湯的味道。

每次長假回到老家,早上6點多就起來,然后忙很久看時間才10點,瞬間覺得時間被拉長了很多,感覺賺到了,但是一回北京就繼續(xù)晚睡晚起,但是我還是十分渴望一種健康的田園式作息的。

扯了這么多,只是想當個反面教材,和盆友們共勉一下:早睡早起 遠離手機 提高技能 努力賺錢

所以今天和老鐵們聊聊面試的一些問題和觀點,為提高收入做點準備,題目基本上都是工作這些年自己遇到的或者身邊好友遇到的,所以整理了一下。

先看一張非常有名的圖片暗淡藍點(維基百科):

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀

暗淡藍點是旅行者1號拍下的有史以來第一張?zhí)栂导易逭盏囊徊糠帧?/p>

從距離地球40億英里,黃道上方32°的地方,拍攝了60幅畫面,最后拼接成太陽系照片。

在遙遠的旅行者1號眼里,地球只是一個光點,即使在窄角鏡頭里,也小于1個像素,新月形的地球只有0.12個像素那么大。

很巧的是,地球正好就在靠近太陽的一道散射光線中間。

1.面試心法

面試是為了 查漏補缺、明確學習方向和斬獲offer,所以寫一些自己以及好朋友們遇到過的面試題、以及個人對面試的一些看法。

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀

1.1 不打無準備之仗

知己知彼百戰(zhàn)不殆,面試之前需要在拉勾、BOSS直聘上大致了解一下招聘崗位的工作描述,不排除一些公司虛張聲勢寫些個根本用不著的玩意,所以如果覺得崗位對口卻匹配度低,也不必緊張試試再說。

內(nèi)推是了解崗位要求的重要渠道,不過從經(jīng)驗看如果不是內(nèi)推人本組的招聘崗位,很難做到深入細致的了解,總起來說這樣的內(nèi)推和在線投遞差別并不太大,不要以為內(nèi)推就穩(wěn)了,否則筆者內(nèi)推獎金早拿到手軟了。

另外相同崗位不同級別考察的側(cè)重點也有很大區(qū)別,因此要根據(jù)意向崗位級別在深度和廣度上進行差異化準備。

1.2 面試官什么路子

一百場面試就有一百種側(cè)重點,但并不能都算得上高質(zhì)量的面試,知乎上有關(guān)于高質(zhì)量面試的話題,感興趣可以看看。

https://www.zhihu.com/question/60911582

作為主導者的面試官,個人認為最重要的原則是:明確在招崗位的職責內(nèi)容,并以此為出發(fā)點對候選人進行考察,一般來說候選人過往經(jīng)歷和在招崗位很相似的情況比較少,在此情況下就要從候選人的基礎(chǔ)是否扎實、學習能力如何等方面來衡量候選人快速適應(yīng)新崗位內(nèi)容的能力。

舉個例子:"并不一定要把1TB的硬盤裝滿才能證明這個硬盤是1TB的"

因此很多時候面試就像是一場證明500GB硬盤具備1TB空間的過程,至于測試手段是否科學就是面試官需要拿捏的了。

如果面試官都不清楚自己問這個問題究竟是為了考察什么,那么這就是一場低質(zhì)量的面試,所以對于候選人來說成敗與否都不用在意,畢竟這種糊涂面試官如果以后作為同事也是件很糟糕的事情。

1.3 做個合格的面試者

候選人無法左右面試官的問題,但是對于非大神面試者還是要做到幾點,來提高面試成功率,包括但不限于:
  • 珍惜機會切忌裸面
毫無準備地去面試既浪費自己的時間也浪費面試官的時間,任何事情都有機會成本,重要的是現(xiàn)在大廠都有自己的人才庫體系,如果一年半載后再投,上次裸面的評價都依然還在,新的面試官對候選人的印象會大打折扣,甚至不給面試機會,所以要珍惜面試機會,裸面的面試者并不少見,問幾個問題就GameOver了,場面也十分尷尬。
  • 理清思路清晰表達
在面試官表述了問題之后,就算 問題在射程范圍內(nèi)也不要急于回答,先理清楚條件,如有疑問立即求證,確定問題所有條件再做解答。在筆者作為面試官時比較看重這一點,因為這種性格在工作中是非??少F的,很多時候你會遇到很多模糊需求,如果不反復確定就按照你以為的開干,只能是緣木求魚,最終delay掉需求。
  • 拓展思維勇敢作答
對于大部分面試者來說,遇到 沒見過的題目也不必慌張要冷靜分析當前問題中的難點,進而結(jié)合自己的實際經(jīng)驗和知識儲備來提出你的分析和解決方案,縱然短時間內(nèi)很難提出最優(yōu)方案,或許可以很接近答案了,但是 也不要胡說,否則只能讓人覺得你膽大心更大,具備刪庫跑路的潛力。
  • 相信自己信心滿滿
時常出現(xiàn)面試者去二三線廠面試,最后給的評價很低,完全與其本人技術(shù)實力不匹配,之后短時間內(nèi)反手拿了BAT的offer,所以 任何時候都不要妄自菲薄,要無條件相信自己
我對此深有體會,筆者本碩都非CS專業(yè)且有一定跨度,遙想當年校招隔壁實驗室一起打球的CS碩們收割大廠offer,我這邊就算小公司也會被鄙視一通,所以無論現(xiàn)境如何, 堅定信念、找準方向、持續(xù)發(fā)力、總會有所斬獲。

2.實戰(zhàn)題目

由于筆者以及好朋友們大都是 Linux C/C++/Python/Go技術(shù)棧,所以實戰(zhàn)題目也是圍繞這個技術(shù)棧展開的,其他語言棧的大神可以選擇性閱讀無語言差異的共性問題,比如MySQL、Redis、Linux系統(tǒng)等。
題目主要來自 百度、阿里、騰訊、微博、搜狗、FunPlus、高德、滴滴、快手、曠視、360、迅雷、獵豹、TME等公司。
由于時間原因做到100%完整描述不太可能,但是基本上也都達意了,有一定的參考價值。

2.1 題目分類

Linux C/C++技術(shù)棧的題目一般包括但不限于以下幾大類:編程語言
  • 數(shù)據(jù)結(jié)構(gòu)和算法
  • 數(shù)據(jù)庫存儲
  • Linux系統(tǒng)
  • 開源組件
  • 工程設(shè)計

2.2 題目匯總

按照上面分類來歸納一些大廠的問題,更能看到各個分類下的熱門問題,從而更好地把握面試方向。

2.2.1 編程語言

  • 闡述如何設(shè)計一個C++類?實現(xiàn)String類。
  • 談?wù)剬++虛函數(shù)機制的理解。
  • STL的Vector原理及迭代器失效的理解。
  • 設(shè)計一個C++HashMap類。
  • 使用C++實現(xiàn)一個堆的模板類。
  • 寫一個宏定義比較函數(shù)并解釋宏展開過程。
  • 談?wù)剆td::move的理解和使用。
  • malloc的內(nèi)存可以用delete釋放嗎?原因?
  • 簡述C++11的新特性以及解決了什么問題。
  • STL的Map原理、插入和刪除復雜度分析。
  • STL的Map基于紅黑樹實現(xiàn)的原因,為什么不選擇哈希表?
  • 為什么需要虛析構(gòu)?虛析構(gòu)和普通析構(gòu)函數(shù)的區(qū)別是什么?
  • 說明C++對象的內(nèi)存布局模型。
  • 聊聊C++臨時對象和右值引用,寫個例子。
  • 使用C++寫一個高效的多維矩陣乘法。
  • 談?wù)剬χ悄苤羔樀恼J識并實現(xiàn)一個智能指針類。
  • STL中Map的查找時[]和find區(qū)別是什么?哪個更快?
  • 實現(xiàn)memcpy函數(shù)效率盡可能高。
  • 嘗試實現(xiàn)C/C++中常用字符串庫函數(shù)。
  • 談?wù)凜++中強制類型轉(zhuǎn)換的原理和使用,寫個例子。
  • 談?wù)凜++的設(shè)計模式,重點介紹下單例模式、工程模式等。

2.2.2 數(shù)據(jù)結(jié)構(gòu)和算法

  • 求二叉樹節(jié)點和為N的所有路徑。
  • 實現(xiàn)二叉樹的鏡像。
  • 實現(xiàn)兩棵二叉樹相加生成一棵新的二叉樹。
  • 實現(xiàn)單鏈表的遞歸逆置和非遞歸逆置。
  • 二分查找變種問題。
  • 二叉樹的后序非遞歸遍歷。
  • 兩個無序整型數(shù)組交換元素使得兩數(shù)組和差距最小。
  • 給定整型數(shù)組和目標數(shù)輸出數(shù)組所有兩數(shù)之和為目標數(shù)的組合。
  • 找到帶權(quán)重二叉樹中從根到葉子的最大和路徑。
  • 最長公共子序列LCS問題。
  • 二叉樹中找到指定兩個節(jié)點最近公共祖先。
  • 實現(xiàn)堆排序求Top10數(shù)據(jù)。
  • 實現(xiàn)最小棧。
  • 簡述并嘗試設(shè)計一個布隆過濾器。
  • 外排序的基本實現(xiàn)過程。
  • 常見排序算法的性能對比。
  • 快速排序的非遞歸實現(xiàn)
注:關(guān)于數(shù)據(jù)結(jié)構(gòu)和算法的網(wǎng)站和書籍非常多,并且這個分類也是面試中變幻最大的,這里就不展開了。
對于數(shù)據(jù)結(jié)構(gòu)和算法能力的切實提高,可以刷LeetCode、《算法導論》、《編程之法》、《編程珠璣》、 《程序員面試金典》(注意不是寶典)、 《程序員代碼面試指南》等書籍,很多公眾號或者書籍的作用是對知識點進行梳理歸納總結(jié), 沒有捷徑,只有自己動手多練多寫才能真正成為自己的硬實力。
筆者認為雖然數(shù)據(jù)結(jié)構(gòu)和算法的題目比較繁雜,但是掌握常見數(shù)據(jù)結(jié)構(gòu)(數(shù)組、鏈表、棧、隊列、樹等)的基本特性和實現(xiàn)方法,再結(jié)合二分、遞歸、回溯、貪心、動態(tài)規(guī)劃等算法思想,很多問題都可以回答得比較接近正確答案, 數(shù)據(jù)結(jié)構(gòu)做骨架、算法是靈魂,務(wù)必多練多寫找到感覺。
堅持每天刷leetcode是個好辦法,但是對于在職人員來說996已經(jīng)快被搞死了,LeetCode每日一題確實有些困難,況且刷LeetCode的重點在于一題N解,多個角度多種方法解題,不過還是那句話:"種一棵樹的最好時間是十年前,而后是現(xiàn)在",能刷就刷吧,百利無一害。

2.2.3 數(shù)據(jù)庫存儲

  • 談?wù)剬τ赗edis的底層數(shù)據(jù)結(jié)構(gòu)的理解。
  • 跳表了解嗎?Redis的zset實現(xiàn)原理以及為什么不用紅黑樹。
  • Redis哨兵原理以及集群版故障轉(zhuǎn)移過程。
  • 基于Redis實現(xiàn)分布式鎖。
  • Redis漸進式Rehash的實現(xiàn)原理。
  • Redis和LevelDB的區(qū)別以及LevelDB的LSM樹和WAL原理。
  • Redis主從同步的實現(xiàn)原理和過程、產(chǎn)生數(shù)據(jù)丟失的原因。
  • MyISAM和InnoDB的區(qū)別。
  • MySQL索引原理和優(yōu)化。
  • Redis集群版如何實現(xiàn)一致性Hash算法的。
  • Redis的單線程網(wǎng)絡(luò)框架原理和混合持久化機制。
  • 類Redis數(shù)據(jù)庫Pika了解嗎?基本設(shè)計架構(gòu)是什么?
  • 如何設(shè)計一個緩存系統(tǒng)以及緩存擊穿的解決方案?
  • 一致性協(xié)議raft/paxos/2pc/3pc基本原理。
  • Redis的Gossip協(xié)議原理。
  • Redis4.0+版本的BIO線程原理和使用。
  • 簡述如何自己實現(xiàn)一個NoSQL,需要考慮什么。

2.2.4 Linux系統(tǒng)

  • LVS實現(xiàn)負載均衡的原理。
  • 簡述Linux內(nèi)存管理原理以及伙伴算法和Slab算法。
  • select和epoll的對比以及epoll實現(xiàn)的底層原理和數(shù)據(jù)結(jié)構(gòu)。
  • epoll的LT模式和ET模式下讀寫操作,實現(xiàn)一下ET模式的read/write。
  • 使用C++簡單實現(xiàn)一個生產(chǎn)者消費者模型。
  • Linux虛擬內(nèi)存和物理內(nèi)存的區(qū)別與聯(lián)系
  • 如何使用gdb調(diào)試多進程、多線程程序。
  • 談?wù)凜10K和C10M問題及大致實現(xiàn)思路。
  • Linux地址復用和端口復用的使用。
  • 談?wù)凴eactor和Proactor模式區(qū)別與聯(lián)系。
  • 嘗試基于epoll實現(xiàn)一個高并發(fā)網(wǎng)絡(luò)框架。
  • Nginx的基本原理以及負載均衡實現(xiàn)方法。
  • 談?wù)凩inux服務(wù)器內(nèi)存/cpu/磁盤/網(wǎng)絡(luò)帶寬的監(jiān)控命令和問題排查。
  • 談?wù)凜AP理論以及分布式一致性算法。
  • 了解CpuCache嗎,如何據(jù)此來優(yōu)化代碼。
  • 讀寫鎖、RCU鎖、自旋鎖的對比以及設(shè)計讀優(yōu)先/寫優(yōu)先的讀寫鎖。
  • 自己設(shè)計實現(xiàn)一個簡單的讀寫鎖。
  • 談?wù)刧rpc的使用以及brpc的對比。
  • 對比協(xié)程和進線程,重點說明系統(tǒng)開銷差異和各自優(yōu)缺點。
  • 談?wù)剬€程同步和多線程安全的理解。
  • Https的C/S交互過程、http1.0/2.0/3.0的對比。
  • 多進程通信的方法和對比。
  • 多線程同步的實現(xiàn)和線程安全。
  • 實現(xiàn)一個基于LRU的本地緩存。
  • TCP/IP的擁塞控制原理和缺陷、BBR算法對比。
  • 使用Python實現(xiàn)多進程和多線程以及談?wù)剬IL的理解。
  • 網(wǎng)絡(luò)攻擊有哪些?簡述DDos、CC攻擊。
  • 對比內(nèi)存分配malloc/tcmalloc/ptmalloc。
  • Protobuf協(xié)議的簡單原理和使用。
  • Coredump的常見原因。
  • 死鎖的原理以及寫一個死鎖。
  • MapReduce的基本原理、寫個簡單的map和reduce的程序。
  • 同步異步阻塞非阻塞IO的理解。
  • git的基本原理以及常用命令。
  • 局部性hash算法simhash的原理。
  • 服務(wù)端長短連接的區(qū)別、優(yōu)勢和場景。
  • 如何避免多線程的虛假喚醒問題。
  • 實現(xiàn)簡單的線程池和連接池。
  • 實現(xiàn)一個可以完成C10K+的TCP網(wǎng)絡(luò)框架。
  • 嘗試多種方法實現(xiàn)一個守護進程,2 magic fork了解嗎?
  • 驚群問題知道嗎?Nginx是如何解決的?
  • 談?wù)剬Ψ?wù)治理和服務(wù)發(fā)現(xiàn)的理解。
  • 微服務(wù)接觸過嗎?談?wù)剬ξ⒎?wù)的理解。
  • 服務(wù)異步化編程了解過嗎?

2.2.5 開源組件

  • 常用的MQ有哪些以及各自的對比和場景
  • Kafka的基本原理和實現(xiàn)要點
  • libevent/libuv的基本原理和使用
  • Boost.Asio的原理和使用
  • 微信協(xié)程庫libco原理和使用
  • DPDK的基本原理和用戶態(tài)協(xié)議棧的概念
  • Redis和Memcached對比
  • RPC框架對比:brpc/grpc/thrift
  • STL源碼的理解和閱讀分析
  • Nginx的架構(gòu)、原理、使用
注:開源組件的問題一般都比較寬泛,因此沒有列舉太多具體問題。
開源組件的準備重在基本原理和架構(gòu)的理解, 面試官不希望候選人對開源組件的使用是完全的拿來主義和黑盒子式API調(diào)用,其次是 從開源組件中獲得解決問題的思想和套路。
因為日常工作場景有很多共性問題, 可以借鑒開源組件的經(jīng)驗進行遷移解決,都是要站在巨人的肩膀上的,牛頓都站了,你何必要閉門造車呢?

2.2.6 工程設(shè)計

  • 詞庫每個詞都有根據(jù)點擊率來計算的熱度,實現(xiàn)一個系統(tǒng),支持前綴匹配并且返回Top10的熱詞。
  • 簡述如何設(shè)計一個支持千萬級文章相似度去重的程序,來實現(xiàn)抄襲、洗稿文章的識別,時間ms級,準確率不低于90%。
  • 小內(nèi)存機器有兩個文件A和B,分別存放5億條均長64字節(jié)的url,試著找到A和B中所有重復的url。
  • 嘗試實現(xiàn)一個簡單的音樂推薦系統(tǒng),可以不涉及具體算法,主要說明工程部分即可。
  • 設(shè)計一個黑詞服務(wù)實現(xiàn)黃反、指令詞、敏感詞等過濾功能,耗時ms級。
  • 設(shè)計一個類似于微信運動的功能,包含占領(lǐng)封面/七日排行榜等。

工程設(shè)計題目一般會是面試官日常遇到的典型問題,類型很多,但是系統(tǒng)設(shè)計類問題經(jīng)常和海量數(shù)據(jù)問題、堆排序等一起出現(xiàn)。

對于此類問題,重要的是明確功能點、找準解題方向、拆解子問題、分步驟合并、各個擊破、先實現(xiàn)再提優(yōu)化方案,以此原則來解決工程設(shè)計問題,基本上就很接近答案了。

這類題目其實還是很考驗架構(gòu)能力的,所以平時要多思考產(chǎn)品模式和技術(shù)點,算是個好習慣吧。

3.小結(jié)和感慨

題目很多并且沒有給出解答,除了工程設(shè)計題,其他題目在網(wǎng)上都可以找到解答,但是本號會在后續(xù)文章中對上述問題各個擊破,建立完整分類的體系,敬請期待。
總能聽到裁員或者公司倒閉的一些消息,有校招生比offer比總包的,也有剛畢業(yè)的應(yīng)屆生被裁,有套現(xiàn)離場的也有昨天還在熬夜加班優(yōu)化代碼,次日被裁的,還有甚囂塵上的35歲失業(yè)問題,林林總總。
無論如何作為求職者和在職者都要坦然面對,市場波動在所難免,我們能做的只有: 擁抱變化 時刻準備著。
最后感謝各位老鐵的傾情閱讀,我們下期見!

特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀

長按訂閱更多精彩▼

炸裂!前浪老狗工作這5年遇到的面試題們,建議老鐵們收藏&研讀

如有收獲,點個在看,誠摯感謝

免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉