回覆列表
  • 1 # 去年今日

    最近幾年,只要是技術崗位,一般都離不開底層問題,無論你面試的是那個層級的崗位,統統要從底層走一波,而且特別底層特別細的那種。

    接下來簡單談談我對這個問題的看法

    對底層的關注度折射出行業的成熟度

    還記得老夫當年剛畢業的時候,只要你對一些常用語句,關鍵字、常規概念、運演算法則能夠熟練掌握,別人就會認為你基礎不錯,而且當時一堆技術人員在一起聊一些基礎問題往往也就是聊這些。然而,儘管現在看來這些無比簡單的概念,當年也難住了不少人。

    再後來,人們開始關注一些常用物件的不同適用場景,並開始注意到他們的實現原理等等,不過當時的要求畢竟還很簡單,只要瞭解他們的不同點以及底層的大致實現原理,基本上基礎這塊就能過關了。

    大約是在2009年2010年前後,只要提起基礎,就會涉及到垃圾回收、記憶體模型、載入器這些東西了,而且對一些常用物件的理解不僅僅要懂原理,還要明白大致的實現方式。

    到了最近幾年,一提起基礎,那是沒完沒了的細緻問題,底層的原理、演算法等等自不必說,甚至常會被問起一些犄角旮旯的細緻性實現,例如:某個容器內部程式碼中的某一段程式碼的作用,以及怎麼實現一個類似某容器的加強容器。

    小結:我們對事物的認識往往都是從外到內,從粗淺到深入,從簡單到複雜。隨著整個行業的發展,我們對底層的認識肯定也越來越深入,越來越細緻。而且在可預見的未來也會越來越深入。

    面試中為什麼要問這些底層問題

    1, 可以看出你對待技術的態度

    例如,從一個人能否記得住伴侶的生日,可以看出他對伴侶的關注度,儘管這個日期一問便知;從一個官員對治下人口、經濟情況的瞭解度可以看出他的勤政程度,儘管這些資料都可以查出來。

    因此,從你對底層問題的瞭解程度可以看出你對技術問題有沒有刨根問底的態度,也粗略的可以瞭解到以前你工作的層次。

    2, 對底層的瞭解可以增強解決問題的能力

    隨著二十多的發展,技術人員現在需要解決的問題早已經不侷限於一些簡單的邏輯問題,業務的深度定製、大規模的併發訪問、海量資料處理。有時候對底層的一個小小最佳化就可以給整個系統提升很高的處理能力。

    在一些架構設計過程中,如果你對底層足夠了解,還常常可以借鑑別人的優秀處理方案。

    小結:面試中很多看似無病呻吟的點,其實都是有目的的。儘管很多企業的面試官都不知道某些點的真實作用,例如:明明有你的簡歷還要讓你再填一份表格。

    面試中關於底層的提問是否真的能考察出面試人員的真實實力

    說一個十幾年前我的真實招聘經歷,某天公司安排了七八個技術人員過來面試,而最終的錄取人數只有一人,當時有個參與面試的(權且成為小A)人員給我留下的深刻的印象,他自稱有兩三年的工作經歷,而且所有的面試問題幾乎都完美的答了出來,而其他人或多或少都有一些問題答不出來。毫無疑問,小A被錄取了。

    然而入職後小A的動手能力特別差,好在比較勤奮,人也比較聰明,就留了下來,但我能明顯感覺到他不可能有兩三年的工作經歷,因為處於試用期也就沒問他真實的情況(他肯定不會說)。

    在轉正以後我找他談話才知道,他一天班也沒有上過,參加面試之前在家裡狠背了小半年的面試題,黑線!

    當然,這和我當年的面試能力有關,但是,面試的不確定性在這裡也有所體現。有過多次招聘經驗的面試官往往都會有這樣的經歷,那就是有些人面試的時候感覺不錯,但入職以後不怎麼樣;有些人面試時感覺很一般,但入職以後能力卻很出眾。

    具體到面試中對底層細節的考察,說實在的,這些年接觸過無數的技術人員,從大牛到小白都有,但是他們沒有任何一個人對底層細節都很熟悉。最多也就是對底層的一些原理很清楚,以及某一塊特別熟悉。

    其實想想也是,那麼龐大的程式碼量,如果都要熟悉,沒有個三五年不可能做到都熟練,況且底層也在不斷更新換代,而且你在工作中還有更多的框架新技術需要掌握,所以不可能拿出那麼多時間專研底層。

    所以在面試中,如果你碰到了剛好是你熟悉的那塊,回答出來當然沒問題,如果是你不熟悉的部分,那些細節問題自然回答不上來。除非,你能想上述小A那樣狠背半年面試題。

    小結:面試存在很大的偶然性,在那麼龐大的技術體系面前,誰也不可能處處精通,僅僅根據底層或者某幾個技術點,並不能完全衡量出來面試人員的技術能力。這些年我面試過的人沒有一千也有八百,單純因為技術的落選的,不足5%。

    這幾年整個行業都不景氣,大量公司倒閉或裁員,這也就增加了崗位的稀缺性,常常出現一個崗位幾十人候選的情況,因此,一些企業也開始增加入職的門檻,面試時會出現一些刁鑽,偏僻的問題也可以理解。

    作為求職者,在這種大環境下只能調整好自己的心態,多學習增加自己的競爭力,除此之外沒有更好的辦法了。當然,也可以想辦法讓自己不再是一個求職者。

  • 2 # 科技book

    技術類的面試,都喜歡問一些基礎的,是有它的道理的。

    不難發現,在大學,凡是帶“基礎“二字的學科,一般都不好學,比如,電工基礎,基礎物理學,基礎數學,演算法基礎……

    不好學的,你能回答出來,說明在專業學術上有一定的深度研究,這是原因之一。

    另外,這個也是“理論”和“做事”之間的關係,如果理論上理解了,再去做事,就容易上手。反之,如果一個事情很複雜,理論不理解,去做這個事情就會有茫然失措的情況。

    比如,程式設計師開發這個行業,面試也是喜歡問演算法等底層基礎原理,而不是高階應用,因為,學習介面API呼叫和高階工具的使用相對要容易,而基礎理論,需要苦功夫才能熟練掌握,從考察人的功底方面,考察基礎的內容更有參考性。

    所以,對於技術人員來說,基礎紮實+有一定的實戰應用經驗,才是面試中取勝的知識結構。

  • 3 # Sharon寶寶的原創

    為什麼面試官會問底層原理問題?

    hello~我是一個網際網路行業的HR,支援過大廠一線的招聘工作,技術開發類面試問底層原理,無外乎以下三點原因↓

    技術深度問底層原理,來考評你的思考深度,和對底層問題有沒有好奇心。如果你只是範範的寫程式碼,沒有思考底層的原理問題,那麼可能思考深度、探索好奇心方面會比較薄弱。後期遇到技術評審會,或者技術培訓,你可能會無法勝任。例如:"Java IO 底層的讀寫流程",會窺探到你對"伺服器端處理網路請求的流程"是否瞭解,並是否能夠清晰的表達出來。可培養力1-3年工作經驗:如果是這個年限範圍的程式設計師,問到底層就是看你的思考深度、學習和接受新事物能力和表達能力,而不是真的在意你懂不懂,主要是考察後期是否有可培養、發展的潛力。如果確實答不上來,可以嘗試反問面試官這個問題,讓他給你解答,你再把答案複述一遍就好了,也能體現你的優秀的理解力和學習力。3年以上工作經驗:如果是這個年限範圍的程式設計師,基本是比較中高階的程式設計師了,也許面試的技術崗位要求帶新人,那麼問到底層就是為了檢測未來能否勝任產品的研發工作,並將自己的技術普及、教給團隊其他人等能力是否具備。懂底層的話會更好地表達程式碼的邏輯及執行原理。面試官也不會

    這種情況在BAT之類的大廠基本是不會有這樣的面試官的,BAT大廠的面試官都是技術非常優秀,有面試專業培訓過的。如果小公司問底層問題,有可能面試官也不會,需要從你的解答來驗證你的能力。同理,你也可以反問面試官這個問題,看看他怎麼解答。他能答上來就說明他要求技術標準高,答不上來就是他也不會,想從候選人側得到答案。

  • 4 # 職知職明

    這都是些什麼神奇公司!!!

    1.底層原理是什麼?是元認知!元認知是什麼?就是你是如何思考如何思考的,或者你做事情的底層規律是什麼?

    比如,我們在測試人的潛力時,會用到MBTI,DISC等之類的,不知道底層規律,用100邊也不見得有啥成長,但是,一旦明白了這些工具的底層理論,不僅能夠把工具用的恰到好處,而且能夠創新。

    所以,擁有底層原理的人,不是思考的深度增加了,而是思考問題的結構性更強了,如果對技術的細節也能夠很好的把握,產生高績效的機率比較大。

    2.從底層原理進行思考的人,大多分佈在一些高階崗位上,尤其是一些影響業績的崗位上。

    比如總經理崗位,嚐嚐接觸重大決策,稍有不慎就是經營風險,所以職位或者角色,決定了他們不得不站在更高,更廣的視角,去分析問題和解決問題,知道觸碰到底層的規律和原理。

    所以,擁有這些思維方式的人,其實是個人職業發展比較合適的導師,不僅能提高工作能力,而且有助於延展職業發展。

    3.在社科領域,最近幾年有很多人倡導思維模型,思維模型有些也屬於底層原理,學會這些,對自己也是有價值的。

    比如,複利模型,就是做A事情導致B事情,而B事情則反過來會增強A事情,你拿過來用在學習上,學習了A會導致B,而B的出現,則會強化A,如此滾動下去,這就是量變的積累,久而久之,自然會讓自己提升一個臺階。

    總而言之,人生之中,多幾個這樣的朋友,或者同事,都是一件幸運的事情,加油!

  • 5 # 坑哥本坑

    底層要分情況

    1、常用演算法資料結構的底層原理,這些是必須要知道的。知道原理,才能更好的應用。不然你就是跟著習慣或者模仿著在寫程式碼,程式碼僅僅是處在一個可執行的狀態。對於後續最佳化,或者出了問題排查,會完全沒有思路。

    2、一些計算機,作業系統的底層原理。這部分,其實是面試官在考擦你的知識深度,或者說,在試探你的底線;這部分知識,常見的,要知道,不常見的,回答不上來,也沒關係。

    面試並非要答對所有問題

    特別是大廠面試官,會跟著你的專案發散,有可能完全走到一個他自己都不知道的深度,這僅僅是想考察一下你自己的深度。

    不要抗拒面試官的問題

    從你的題目中看出來,你似乎有點反感這些問題,可能你覺得實際工作中很少用到。千萬不要這麼想,要去思考面試官的用意,然後做相應的準備。抗拒這樣活著那樣的問題,是一個錯誤的方向。

    希望你能及時調整心態,正確應對面試。

  • 6 # web前端愛好者

    為什麼面試官愛問原理的問題?

    這是在摸清你知識的邊界,考察你知識的深度,和當你在遇到問題事處理事情的能力同時也是考察你對前端的熱情。如果你對某一項技術是如何運作的都沒有好奇心,你就很難有對技術深度學習的熱情。

    遇到原理的問題應該怎麼作答,面試官才會滿意?

    一句話說明技術用途,描述技術的核心和運作流程,說明技術的優缺點,和如何彌補缺點

    例如:我們用常見的AJAX做解答

    請問AJAX的原理是什麼?

    答:1、AJAX就是非同步JS和XML的縮寫,目前我們一般用Json代替XML

    2、 AJAX 主要用於在不重新整理頁面的情況下向瀏覽器發起請求並接受響應,最後區域性更新頁。該技術最核心概念是 XMLHttpRequest 物件,該物件可發起 HTTP 請求,我們可以監聽其 readystate 的變化獲得響應.

    3、優點剛才說了無重新整理請求缺點是缺點是被瀏覽器限制不能跨域。想要跨越就要用到 JSONP 或 CORS 了。

    在這裡估計還會被問到CORS的原理了。

    答:1、CORS 是跨域資源共享的縮寫

    2、該技術透過在目標域名返回 CORS 響應頭來達到獲取該域名的資料的目的

    3、改技術核心就是設定 response header,分為簡單請求和複雜請求兩種簡單請求只需要設定 Access-Control-Allow-Origin:目標源 即可,複雜請求則分兩步走,第一步是瀏覽器發起 OPTIONS 請求,第二步才是真實請求。OPTIONS 請求需要把伺服器支援的操作透過響應頭來表明,如 Access-Control-Allow-Methods:POST, GET,OPTIONS,另外一個重要的響應頭是 Access-Control-Allow-Credentials: true 用來表明是否接受請求中的 Cookie。

    4、優點是透過簡單的配置就能跨域缺點是某些古老瀏覽器不支援 CORS 或不支援 Credentials解決辦法是用 JSONP 或 P3P 等技術。

  • 7 # 正在放棄ing

    應該是今年網際網路寒冬影響的,我老公培訓公司教c++,也教過ios,以前ios火的時候學生很好找工作,只要你懂皮毛就行,後來不火了,找工作都要會核心,我做測試,今年找工作都要會自動化,可惜我不是很會

  • 中秋節和大豐收的關聯?
  • 為什麼會做飯的男生越來越多?