日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从一道面试题谈起,大厂到底看重程序员的什么能力?

發布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从一道面试题谈起,大厂到底看重程序员的什么能力? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

唐磊,他謙遜的自我介紹,是“在阿里云打工的清華學渣”。

上周的一篇《字符串比較,居然暗藏玄機》,我最早是在唐磊《這10行比較字符串相等的代碼給我整懵了》里看到的,我用通俗的語言,展開了“密碼破解”案例。文末卻沒有提引用的出處,這里和唐磊道個歉。

看了唐磊的其他一些文章,源于一線,深入細節,不禁想起了4-5年前提筆寫技術文字的自己。

希望他的好文被更多熱愛技術的小伙伴看到,這里轉一篇唐磊的好文。

文章:《從一道面試題談起,大廠到底看重程序員的什么能力?》

這是我在面試過程中,經常問的一道題。

一起看看,一起動筆試試吧。

實現一個函數,完成開根號的操作:

double sqrt(int v, double t)

要求:

(1)不能調用系統庫函數,例如 Math.sqrt(v);

(2)假設計算出的結果為 r,要求滿足這個條件:??,其中?是真實的值, t ?為給定的一個誤差范圍,例如0.1等,即你計算出的值要在給定的誤差范圍內;?

畫外音:例如,調用你的接口 sqrt(9, 0.21) 返回值屬于 [2.79, 3.21] 這個區間就行。

你可以拿出筆和紙,嘗試解答一下。

畫外音:leetcode上遇見過類似的也沒問題。

面試官:有什么思路嗎?
求職者:沒有啊。

可能候選人內心在罵你:出這樣的題目是不是有病啊,明明有 lib 函數可以直接用的。

我想說的是,面試,并不在于題目本身,而是以題目為抓手,考察候選人在分析問題解決問題的能力,以及在交流過程中,所體現的理解能力邏輯能力思維方式,當然,也會從?Code 中考察候選人的編程習慣編程風格

此時,我會引導候選人:

面試官:根號10等于多少?
求職者:3點幾吧。
面試官:你怎么知道是3點幾?

求職者:9開根號是3,明白了,我再想想……

這里是希望提醒候選人,要先解決,再優化。在實際工作場景也一樣,先思考解決問題的方法,再考慮優化。

暴力搜索法

面試過程中,很多人能回答到這一步:

先用一個循環找到 r,使得 r^2 是離給定 v 最近的平方數,即你希望算根號10 ,先找到3,因為3^2=9 。然后再用一個循環, 每次 r+=t ,直到 r^2 > v ?為止。

面試官:這是一個可行的方案,但如果精度要求很高,v 也很大,如 sqrt(v = 10000000, t = 0.000001) 之類的,效率不會很低么?


求職者:可以這樣優化,比如設置一個步長,一次迭代后,如果沒有達到預期,可以不斷修改這個步長來增大逼近真實值的速度,比如10倍誤差,100倍誤差等。

其實,在與候選人的不斷交流中,可以看出候選人的理解能力,與解決問題的能力,這本身也是面試過程中的一部分。

面試官:恩,這樣做確實可以優化。但從本質上講,該題目其實是在一個有序的列表里,去搜索滿足條件的特定的值。除了你說的線性搜索,還有其它方法嗎?

?

求職者:二分搜索?

二分搜索法

提示二分,大部分候選人就能夠寫出二分框架,只是結束條件仍有疑惑,我會繼續舉例提醒他:

面試官:借助二分的意思就是,比如算 根號10,搜索范圍是?[0, 10]:

  • 因為5^2 = 25 > 10 ,?所以 r 屬于[0, 5) ??

  • 因為(5/2) ^2 = 6.25 < 10 ,?所以 r 屬于 (2.5, 5) ??

  • 因為(3.75^2 = 14.0625 > 10) ,所以 r 屬于 (2.5, 3.75) ??

  • ...

求職者:明白了。

能寫出二分,作為一線開發者基本就不成問題了。

但很多人都喜歡用遞歸寫,卻容易遺漏遞歸里的結束條件。所以一般情況下,代碼寫完后,我會讓候選人自己寫測試用例。

面試官:假設這個接口是別人寫的,應該從哪幾個角度去測試?
求職者:sqrt(-4, 0.21),哎呀,我這里忘了判斷了。改一下代碼。
求職者:sqrt(0, 0.21),sqrt(4, 0.21) 還有問題,再改改。
面試官:……

為什么要別人提示要測試用例,才去 check 自己寫的代碼的正確性呢。

能夠到達這一個步驟的人已經較少了,如果你有較全測試用例和邊界條件的判斷,再加上后面的結束條件能夠正確,基本上這道題目就算滿意了。

關于結束條件

本質上講,這個算法就是一個迭代逼近的過程,用二分的思路后,關鍵就在于什么時候結束。?題目中已經給了誤差條件??,難點在于其中的不知道,不太方便直接進行計算判斷。不少人用一個另外的結束條件來進行了判斷即:??,額,這一樣嗎?

其他解法

當然本題還有一些其他的數學解法,例如用牛頓迭代法梯度下降法泰勒公式展開等等。如果候選人能想到這些,說明他還是有一定數學基礎的,可以讓他講講。

?

結語

其實,上面大部分內容只談到了這道題目本身,也穿插了一些對這道題目的分析和理解,這樣的題目考察校招的同學會比較合適。

但類似的題目,社招完全不適用嗎?

社招的的同學,寫不出來就有很充分的理由嗎?

或許你在工作場景中不會遇到實際這種題目,但我其實想表達的是,作為一線的工程師,在面試官講解了二分算法,并且自己也能理解的情況下,寫出相關的 Code ,真的很過分嗎?

在日常有些場景下,“復制粘貼”工程師貌似也夠用,遇到問題,叫更高水平的人來幫你,這樣的話,你的核心競爭力在哪里?

我建議一線的程序員們,應該對基本的數據結構和算法有所了解,對常見的算法復雜度有所了解。這樣的要求,不高吧。

之前遇到過一些候選人,Java 開發七八年經驗了,卻不清楚 ArrayList, HashMap 內部是怎么做的。還有些候選人,口頭表達頭頭是道,結果落實到寫代碼就根本下不了筆。

希望我們不要拋棄一些基礎的東西,多培養一下我們的編程素養,在用編程語言,利用各種工具來實現我們想要達到的目的的時候,能做到“知其然,知其所以然”。

總結

以上是生活随笔為你收集整理的从一道面试题谈起,大厂到底看重程序员的什么能力?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产aⅴ爽av久久久久成人 | 精品在线观看一区 | 婷婷激情成人 | 99国产精品久久久久久久成人热 | 在线免费中文字幕 | av黄色在线播放 | 欧美国产日韩在线观看成人 | 日韩黄色免费电影 | 亚洲精品午夜国产va久久成人 | 国产女教师一区二区三区 | 制服.丝袜.亚洲.中文.综合 | 久久久久一级片 | 国产精品入口夜色视频大尺度 | 中文字幕第35页 | 国产av成人一区二区三区 | av久草 | 色94色欧美sute亚洲线路二 | 欧美女优一区 | 三区在线 | 自拍视频在线播放 | 国产制服丝袜 | 亚洲成熟毛多妇女av毛片 | 美日韩丰满少妇在线观看 | 中文字幕+乱码+中文字幕明步 | 99热99在线| 黑人极品ⅴideos精品欧美棵 | 69国产精品 | 午夜黄色网 | 高清无码视频直接看 | 91九色在线观看 | 久久亚洲中文字幕无码 | 久久精品免费电影 | 久久精品三级视频 | 久久久性视频 | 夜夜骚视频 | 国产区一区二区三区 | 天堂在线中文资源 | 欧美日韩国产免费 | 天天爱天天做天天爽 | 久久精品福利视频 | 婷婷成人在线 | 国产天堂 | 蜜桃视频一区 | 伊人免费视频 | 亚洲免费在线看 | 国产精品白浆一区二小说 | 成人一二三区 | 日本精品一区二区三区四区 | 性a视频 | 极品国产在线 | 小柔的淫辱日记(h | 成人午夜精品视频 | 精品嫩模一区二区三区 | 久久亚洲少妇 | 国产精品v日韩精品v在线观看 | 黄网地址 | 亚洲熟妇av乱码在线观看 | 日韩在线国产精品 | 亚洲欧洲视频在线观看 | av毛片在线 | 色婷婷久久综合中文久久蜜桃av | 欧美理伦少妇2做爰 | 久久久精品日韩 | 亚洲精品视频在线观看免费视频 | 日韩成人精品一区二区三区 | 嫩草影院在线观看视频 | 午夜小视频免费 | 超碰520 | 色屁屁网站 | 亚洲黄网在线 | 久久aⅴ国产欧美74aaa | 1515hh成人免费看 | 黄色不打码视频 | 影音先锋男人天堂 | 中国黄色网页 | 国产一区激情 | 久久视频国产 | av色成人 | 国产精久久久 | 美女脱裤子让男人捅 | 樱桃av | 丰满熟妇肥白一区二区在线 | 深夜福利影院 | 精品午夜一区二区三区在线观看 | 中文精品久久久久人妻不卡 | 中文字幕亚洲一区二区三区 | 欧美黄色大全 | 久久三 | 免费色片| 国产视频手机在线播放 | 亚洲免费视频观看 | 福利网站在线 | 欧美成人怡红院 | 日韩爱爱视频 | 亚洲日本在线观看 | 国产免费一区二区三区最新不卡 | 国产3p露脸普通话对白 | 欧美怡红院一区二区三区 | 一区二区三区视频在线播放 |