eyeshadow5647
從業十幾年經歷的不是很多, 算起來也就是三四家,在編程行業跳槽比較頻繁的行業,這算是一股清流了,呆的習慣了也就懶得動了,主要還是覺得在一個公司呆的時間長點,才真正融入其中才真正能夠學到核心的東西,接觸核心的業務,如果一個程序員職業生涯完全跟著薪水,收穫的永遠只是應該得到的部分。
說到程序員面試題目的問題,正常來講越是老程序員越是不怎麼喜歡做些面試題目,更多的老程序員由於長期在一個行業待著,知識的全面性差些,如果不注重涉獵,在做面試題目的時候,有些很簡單的題目都回答不上來,這是程序員的一個通病,有問題已經習慣於從網絡尋找問題的答案,所以直接在沒有網絡狀態下有些題目做起來感覺相當的吃力,大部分的程序員都會存在類似的感覺,所以很多老程序員去參加面試的時候,發現有筆試的題目,有的直接就走人。
坦白來講筆試的題目,最初設置的初衷是為了設置門檻,檢查下基本功,對於真正的高手,很難通過一兩個題目就能得出一個人水平的高低,畢竟編程不僅僅是掌握個基本功,還要需要編程思想以及框架思想,這種內在東西主要還是靠真正的技術面試辨別。
這就是很多老程序員有點鄙視筆試的一個很重要的原因,畢竟這只是基本功主要還是編程思想做依靠。
不待見筆試的程序員不見得水平不咋樣,主要覺得靠幾個題目很難辨別出真實水平,從內心還是有一絲鄙視的意思。程序員的差距一方面表現在編程思想,還有很大一部分是基本功,基本功紮實了才能敢於做一些事情,不要為自己的年齡找藉口,很多程序員覺得自己都工作好多年了出來找個工作還要做什麼筆試題目,從心理上接受不了,很多時候是膽怯的表現,平時他專注於一個領域的研究,把很多基礎的東西都給忘掉了,內心當然有恐懼感,所以高水平的程序員何懼筆試題目。
希望能幫到你。
大學生編程指南
《crack the code interview》,出自谷歌的面試官之手,幾乎是所有程序員面試的時候可能遇到的題目。
這本書大家應該都說爛了,問題看起來很簡單,題量也不多,但這本書卻長盛不衰,必然有他的道理,它的好處正是以最經典的方式呈現了面試題的類型和歸類。在準備面試的時候,可以從這一套題目中發現自己的薄弱點,也可以把他當作一個面試前的訓練。
【部分《crack the code interview》】
- 1.1 判斷一個字符串中的字符是否唯一
- 1.2 字符串翻轉
- 1.3 去除字符串中重複字符
- 1.4 寫一個函數判斷兩個字符串是否是變位詞
- 1.5 寫一個函數,把字符串中所有的空格替換為%20
- 1.6 矩陣旋轉
- 1.7 矩陣行列置0
- 1.8 利用已知函數判斷字符串是否為另一字符串的子串
- 2.1 從鏈表中移除重複結點
- 2.2 實現一個算法從一個單鏈表中返回倒數第n個元素
- 2.3 給定鏈表中間某結點指針,刪除鏈表中該結點
- 2.4 求由兩個鏈表結點組成的數之和
- 2.5 給定一個循環鏈表,實現一個算法返回這個環的開始結點
- 3.1 如何只用一個數組實現三個棧
- 3.2 實現一個棧,要求實現min函數以返回棧中的最小值
- 3.3 實現數據結構SetOfStacks來模擬疊盤子
- 3.4 編程解決漢諾塔問題
- 3.5 使用兩個棧實現一個隊列
- 3.6 寫程序將一個棧按升序排序
- 4.1 用一個函數判斷一棵樹是否平衡
- 4.2 設計算法判斷有向圖兩結點間是否存在路徑
- 4.3 將遞增數組構建成一顆最小高度二叉樹
- 4.4 將二叉樹每一層結點構建成一個鏈表
- 4.5 查找二叉查找樹的任意給定結點的“下一個”結點
- 4.6 找出一棵二叉樹中兩個結點的第一個共同祖先結點
- 4.7 判斷一棵二叉樹是否為另一棵二叉樹的子樹
- 4.8 輸出二叉樹中路徑上結點值之和為給定值的所有路徑
- 5.1 寫程序使整數N中第i位到第j位的值與整數M中的相同
- 5.2 給定一個字符串類型表示的小數,輸出其二進制表示
- 5.3 給定一個整數x,找出另外兩個二進制表示中1的個數和x相同的數
- 5.4 解釋以下代碼的作用:((n & (n-1)) == 0)
- 5.5 寫程序計算從整數A變為整數B需要修改的二進制位數
- 5.6 交換一個整數二進制表示中的奇數位和偶數位
- 5.7 寫程序找出丟失的整數,要求時間複雜度O(n)
- 6.1-6.6 程序員”腦筋急轉彎”
- 7.1 為通用卡牌遊戲設計數據結構,並設計子類
- 7.2 為電話呼叫中心設計類和數據結構
- 7.3 用面向對象的方法設計一個音樂播放機
- 7.4 用面向對象思想設計一個國際象棋遊戲
- 7.5 利用OOP思想設計在線讀書系統
- 7.6 設計一個拼圖遊戲的數據結構
- 7.7 如何設計一個聊天服務程序
- 7.8 用面向對象思想設計奧賽羅遊戲(Othello)
- 7.9 為一個內存文件系統設計數據結構和算法
- 7.10 使用C++實現一個垃圾回收器
- 8.1 寫一個函數來產生第n個斐波那契數
- 8.2 機器人路徑計算
- 8.3 寫一個函數返回一個集合中的所有子集
- 8.4 寫一個函數返回一個串的所有排列
- 8.5 實現一個算法打印出n對括號的有效組合
- 8.6 實現圖像處理軟件中的“填充”函數
- 8.7 有25分,10分,5分和1分的硬幣無限個,計算組成n分的組合數
- 8.8 經典八皇后問題
- 9.1 寫一個函數將數組B融入數組A,並使其有序
- 9.2 寫一個函數對字符串數組排序,使所有變位詞都相鄰
- 9.3 在一個數字中查找特定元素
- 9.4 如何給一個2G文件中的字符串排序?
- 9.5 寫一個函數找到給定字符串的位置
- 9.6 在一個矩陣中找出特定的數
- 9.7 寫一個函數模擬疊羅漢節目
- 10.1-10.7 程序員面試——數學相關題目
看完這些題目你發現了什麼,是不是很容易就發現這些都是比較偏理論的題目。就算你的開發能力非常強,但如果有一段時間沒有看書或者練習,再來做這些題也會遇到很多不會的。
而已經入行的程序員更明白這一點:做題目做的準確程度與實際開發應用中的能力強弱無關,在職場上,我們注重的更多的是發現問題、解決問題的能力,而這些能力與上面的題目有關嗎?我敢說沒有太大關係,甚至沒有關係。以上的面試題目,涉及的都是簡單的算法和數據結構,是最能體現一個人的理解能力和學習態度的。
雖然說這不是一個真正考察程序員能力的好辦法。但你能不做嗎?答案當然是不能。因為這個面試的存在就是為了把不會做或者不願意做面試題的人給排除掉,如果你不想要這個Offer當然可以選擇不做。
其次,如果靠投遞簡歷來選擇工作的,這個公司並不認識你,對你也沒有了解,除了做這些題目,實在沒有辦法來考察你的能力和學習態度。
如果你不想通過做題來獲得Offer,走其他面試渠道的話,可以通過內推,通過企業內部員工推薦,繞過獵頭公司、招聘網站等中間步驟,使應聘者和招聘方直接溝通。前提是在相應的公司有認識的人並獲得他的認可。
路人甲
面試造火箭,工作擰螺絲
我覺得很多程序員不是排斥做筆試題,而是排斥花一兩個小時,去回答一些工作中幾乎用不到的問題。
我之前參加過一個國有銀行的程序員筆試(公司要招標什麼的,我們幫忙去考試),去了大概有上百人,在人家食堂答題,跟大學期末考試似的;題目內容也是五花八門,前後有五六頁,這種筆試我也是很反感的。(不過最後通過了,單位獎勵了八百塊錢,心情美美噠)
合理的筆試或機試
我們最近招人都是要做筆試題的,筆試題的內容是五道選擇題,五道SQL題(會寫內連接、外鏈接就行),和三道算法題;當然算法題是不用寫具體代碼的,直接寫解題思路或者偽代碼就行;整套題做下來,我覺得半個小時足矣,而且都是很實用的問題。前後有三五十個應聘者,並沒有發現有明顯排斥行為的人。
如果有可能的話,我都希望可以上機考試,當然在我們單位有些行不通。
對錶達能力差的面試者有利
我覺得筆試最大的好處,就是有些程序員技術能力是不錯的,但是表達能力稍差,所以面試問一些技術問題,有些程序員表達不出來,所以真實實力大打折扣的;不如出一些筆試題,甚至上機題,可以更好地篩選出來“能幹活兒”的程序員。
不過,溝通表達能力也是很重要的,在隨後的面試過程中,如果表達真的很令人捉急,那麼也會影響最終的面試通過率。
總結:這是應聘者和用人單位互相選擇的過程,一方面用人單位應該尊重面試者,另外一方面,面試者最好也能接收用人單位的規則,當然你也有權利不接受,那麼請大大方方提出來,走人,完全沒有必要大發雷霆,認為對方讓自己做筆試題就是不尊重自己。
我將持續分享Java開發、架構設計、職業發展等方面的見解,希望能得到你的關注。
會點代碼的大叔
我就是程序員,先說說我的經理吧,在廣州一家公司面試,一家二十幾個人都不到的公司。很小,在華景新城那邊。公司那邊電話叫我過去面試,一進去,前臺就叫我填寫兩張表的資料,什麼學歷,父母,還有有沒有駕照,以及工作經驗,以及一份調查表。填寫完了之後,前臺拿來一份筆試題,我一看,一共六張紙,每張雙面都有面試題,每面都有3~4到算法題。重點是,沒有一道選擇題!!!!也沒有什麼判斷題或者填空題,一共12面。全特麼都是算法題。哎,當時的那種心累啊。真的。填寫了個人檔案後還填寫什麼調查表,然後12面紙張的面試算法題。我想問。這裝逼要不要這麼高規格啊。什麼這麼強大的公司啊。然後就想了想,算了。不面試了。起身把題卷交還給前臺。說不面試了。說了一句,你們公司太高規格了。傷不起。等我跨出公司大門後,準備去乘坐公車,前臺電話過來問,為什麼不面試了。對他們公司有什麼想法或者建議嗎?還是哪裡出了問題?汗,我說,你們公司的面試題太能裝逼了。完全是在浪費我的時間。哎。別說是你,我一個開發8年的經驗,我都不想說了。心累,誰想做題啊。寧願放棄算了。別和我談那些吃得苦中苦,方為人上人。那狗屁理論用在這種公司,純屬浪費時間。
飛魚默默
以前跳槽面試的時候,有三個公司讓我記憶深刻~一個是幾年前的文安科技,好像是做監控的公司。去面試的時候,那個人力給我一份7-8頁的題,雙面A4的,涉及:心理測試,C++,C語言,JAVA,算法等等~“包羅萬象”呀~而且除了選擇題,還有各種寫程序的題~沒錯!就是那種在紙上寫程序的題~本人覺得最討厭的就是這種在紙上寫程序的題,改個變量都沒地方(碳素筆答題)。我越做題越鬧心,越想越憋屈~直接把題給那個人事,人事還看了一眼,問我為啥不做完題,我說不想做,不面了,貴公司跟我八字不合~扭頭就走了~
還有一次,是面試一個叫恆潤經緯的公司,讓我拿著電腦去,這我覺得還挺爽,最起碼不用紙上寫程序了~到那後,來了一個氣場極其大的面試官,他自己可能覺得自己是個大牛吧。問了我一大堆嵌入式單片機的問題,那時候哥們我做了6年linux內核開發~憑藉大學基本功,回答出來了。後來這個哥們兒,問我很多內核的東西,明顯感覺他就是入門,EHCI,PCIE,ALSA等等各種各樣的子系統,都是問一下,我一往深的說,他就換問題~明顯感覺不是評估我能力的問問題了,而是有敵意的難為我。最後他終於找到一個我的錯誤,就是結構體佔內存空間的大小的問題~他就可開心了~後來那個公司的人事再通知我下次面試的時候,我直接說不合適,貴公司的人,我伺候不了~
我就是一個打工的,合適就幹,不合適就不幹。你給我錢,我給你幹活,別跟我談理想,談追求~這樣的人,真心伺候不了~
還有一次,一次去華為海思,一次去H3C,華為海思沒有筆試,有好幾輪面試。最後拒絕海思,是因為海思人事那種居高臨下的態度~你有挑選的權利,我也有拒絕的權利~自強不息,厚德載物,不是因為你是華為,我去了就能更好,同樣我去別的公司,就一定不會成長不好~為祖國健康工作五十年,不僅僅是體育場的一句口號,更是一種自強的態度~H3C跟華為差不多,加班文化特別“先進”,有筆試~很不爽,跟華為差不多,最後連好好跟他面試的心情都沒有了~直接就是敷衍他們~
工作這麼多年,個人覺得,名氣很大的公司,有牛人,這是肯定的,但是進一個成熟的名氣大公司,進去了也是打下手。加班~無為~莫名其妙競爭~狼性文化~呵呵呵了~同樣是成長,同樣是賺一樣的錢,為啥不找一個對自己好的團體?別說在某個團體一定比某個團體更好。那是自我安慰自欺欺人的藉口罷了~
跑題了~不過打那麼多字,刪了挺可惜,留著吧~
很多人覺得,面試題能夠考察基本功,邏輯說的通,但是不客觀~基本功,有千千萬,舉個例子,C語言就有編譯器、語法、算法等等大方面,而大方面,又有很多小的方面,小的方面又有很多細節,細節裡又可能聯繫到其他情況(知識儲備面的大小),所以我覺得,那一點點面試題能覆蓋多大範圍?你可以說你只要跟你工作相關的基礎知識,那好吧,跟你工作相關的基礎知識,你就能保證其他方面你不會用到?而且工作能力,是什麼?我個人很個人的理解:學習能力+分析問題的方法論+解決問題的手段。而且我遇到的問題,都是很難找,解決起來,可能一行代碼的事。那麼是找問題的能力值錢,還是你們願意招語法基礎很厲害的人呢?基本功在開發這一行,個人覺得佔工作能力20%不到~
行家一出手,就知有沒有。PCIE高手,問一個msi中斷是什麼類型TLP,就能知道你對PCIE的理解程度~還用筆試你PCI配置頭都有什麼?
應該有點執念
提到面試的時候做題,雖然我不是程序員,但我也聯想到了曾經在面試的時候經歷過的相關體驗。有次我到某家公司面試的時候,面試官把我帶到一個會議室,給了我一份試題。我一看,簡直就像考研時候的論述題,還有字數要求。整個試題做完,花了我整整兩個多小時的時間,寫了密密麻麻好幾張A4紙。其實寫的過程中我好幾次都想放棄了,最後本著有始有終的原則還是認真答完了。
最坑爹的是,雖然筆試和第二輪面試都沒問題通過了,最後一輪和總監面試之後,種種原因我最後也沒拿到offer。倒不是我特別想進這家公司,而是感覺整個面試流程相當浪費我的時間。尤其是那幾頁的像申論一樣的筆試題,到現在為止我也想象不到有什麼意義。
再回到程序員這邊來,別說排斥面試做題了,我曾經見過一個很牛氣的工程師來公司面試的時候,直接要求和技術部門的負責人面談,如果要先讓HR面試的話他就直接走人了。
分析一下程序員排斥面試做題的原因,大致有這樣幾個方面:
首先,不少公司的HR其實是不懂技術的。所以出的面試題一言難盡,毫無專業性可言,被面試的程序員不知道吐槽了多少回。不同的崗位,工作內容和性質都不同,就拿一套題出來大家一起做,這是忽悠誰呢?如果針對不同崗位,以及不同工作年限的工程師設計很多套不同的題目,這個工作量不僅增大很多,流程上也更繁瑣,因此一般公司的HR是做不到這麼精細化操作的。所以大多數還是簡答粗暴的一兩套題,沒有什麼實際的意義。
其次,從程序員的角度出發來看。如果是個非常資深的工程師,技術很牛了,做題簡直就有點被侮辱智商的感覺。如果是年輕的程序員,工作沒多久,那麼做題也未必能看出真實的能力和潛力。也許當時的題目不適合他的特長,也可能他正好在那個筆試環境下,靈感出不來,寫不出代碼,但這不代表這個面試者沒有很好的工作能力和培養潛質。如果僅僅靠著一套題就一刀切,很可能會錯失一個發展潛力的人才。
因此做題並不是面試最好的工具,要想尋找真正合適的候選人,還是要用更加專業的考核手段。
獨角獸工場
先上兩份面試題吧,來自北京的兩家一線互聯網公司,百度,阿里,美團,京東四家之二。
第一份面試題:
第二份面試題:
我覺得程序員之所以排斥面試題,大部分情況下排斥的是那些沒弄明白麵試題意義的公司。
詳細點說。
假如我今天去百度面試,到了百度發現和我競爭同一職位的有5個人,那麼這時候面試方拿出一頁面試題讓我們五個來做,題目難度跟圖示差不多,我覺得會牴觸的人是不多的。
再比如說,我上午在百度面試失敗,中午一個創業公司的hr在招聘平臺上發現了我的簡歷,聯繫我約了下午的面試。我下午到了創業公司,公司加上前臺一共50個人,就我一個面試的,然後這時候面試官拿出了一套面試題,題目又臭又長,還沒啥難度,這時候我就很不爽了。浪費了大家的時間,如果公司環境再不好,可能我就直接甩筆走人了。
面試題是一種硬性篩選手段,在求職者多職位少的情況下,招聘方為了減少工作量,使用面試題硬性過濾一些條件不夠的求職者,典型例子比如校招。
而現在互聯網環境下,很多小公司處於一種招不到人的狀態,這時候,如果招聘方還要把鑑別候選人的時間成本用面試題轉嫁給求職者的話,引起求職候選人反感是必然的。
幽藍戀歌
本身就是一名程序員,前段時間我也剛離職,去面試難免會遇到一些公司,一進門聽到是來面試的,流程大概是:收簡歷、等一會、拿套題和基本信息登記表、引進面試間。
其實這時候一般人都不會扭頭就走,還是乖乖按照人家的要求來做(誰叫咱是來打工的)。好吧,來都來了只能試試,翻了一下,ง😵ว居然兩頁A4紙雙面打印這麼環保,4頁的題量我也是醉了,當然有的公司不止,當看到一些問題問原理、理解的時候,完了,又要扯很多字,後面還有手寫代碼,蒼了天了,寫的abcd字母都懷疑是不是拼錯了。磨了一個鐘洋洋灑灑寫完交卷,甚是滿意,然後等HR交到面試官那裡。
心想這麼多問題,面試官還能問啥其他的。果不其然,叫我解釋一遍(大哥,你現場問我也是可以的啊,是想欣賞一下覺得還行再過來不然就叫HR通知我不在嗎)。遇到一個迄今為止最無語的,做了一份面試題,填一份登記表,之後還要做一份IQ題,限時一個鐘,忘了叫什麼測試,感覺就是一堆找規律猜圖形空間想象等等,靠 光是這些都已經將近兩個小時了(天知道毅力是有多強)。
其實做點題還算好的,可以緩衝一下,做點題回憶一下,避免剛到公司就被叫去,腦子空白。當然這是針對一些稍微對頭的題,至於那些老到掉牙的題目,說真的我是直接不做,如果有問我原因我也直接說題目太舊實用性不大(拜託,至少是互聯網公司,麻煩更新下技術體系啊,不然很容易淘汰的)。
除了做測試題了解基本能力,面試階段往往是大腦快速運轉的階段,千萬不能一時被面試官一道難題嚇得大腦一片空白,沒思路以至於接下來擔心自己表現不好等。因為考核因素是很多的,只是個別領域沒研究或不夠深入,只要自己說明白理由。當然還有一些現場編程題,面對面手寫代碼或說思路。
華聖靈魂
1、面試時的“做題”環境、心境和真實工作時相差甚遠,容易造成失誤、影響發揮,所以不能苟同以此來評判程序員技術水平的方式。
這很好理解啊,你上學時候的平時作業也比考試的時候正確率要高吧?一路考上來的中國考生對考試有這種天然排斥也是可以理解的,而且寫代碼這種事情真的是要看感覺的呢
我親身見過的一個例子就是,我校招那年和幾個同學在外面租房子做項目,那天晚上剛好是某大廠的線上筆試嘛,然後,我就看到工作室十幾個開發在那考試,兩兩一隊,外接顯示屏做筆試題(因為考試有攝像頭嘛,外接個顯示屏就看不出來有幫手了,大概像這樣)
你能想象嗎?他們很多人都是能獨立開發、架構、全棧、開源的那種黑客級工程師,但是也不喜歡這種筆試方式,無法改變只能找辦法適應。。。
2、用這麼標準化的流程來面試我,是不是看不起我?
還有人說,我可以跟技術負責人聊一天不帶喘氣的,但是不喜歡被屏幕上倒數的時間催著,不喜歡被攝像頭拍著去寫。感覺自己像個被老師盯著練字的小學生。
3、當然,更多的原因是,能現場限時做出解決方案的高水平工程師真的不多!
“講道理,我遇到的那些面試題,真的和學校學的完全不一樣”我怎麼會啊??而且技術不像公務員考試,刷幾套行測題,題庫裡做一遍基本就沒問題了,技術問題日新月異,我們課本上學到的案例都是幾年前的了,當然不足以應對大企業面臨的技術問題,要求我們限時給出解決方案是真的難!!”
你覺得還有什麼原因呢?歡迎評論裡與我交流,坐等勾搭(✿◡‿◡)
京東校園
現在互聯網發展很快,人們對互聯網網速追求的體驗以及獲取信息來源等等要求也越來越高,這些其實都離不開在背後默默工作的程序員,又稱為“碼農”。那麼為什麼程序員越來越排斥面試時候做題呢?
面試對於職場人員並不陌生,每個職場人員都會經歷面試,在面試過程中或多或少都會遇到些奇怪或者意料之外的問題,比如說京東筆試面試的時候,就有一道題是如何用1分錢購買到價值3元的可樂?我想很多人遇到這樣問題都會蒙圈,其實這些都是企業想更多的瞭解應聘者的應變能力。就像企業要求程序員在面試中做題,因為企業與求職者之間並不瞭解,那麼只有通過做題才能更簡單更直觀地看出求職者的技術水平。
可是對於程序員來說,面試時做題等於就是在浪費時間,往往在面試的公司需要花費1-2小時,有的甚至半天時間來做一道測試題,還有就像學校學習理論知識一樣,你學習理論知識能夠考試及格或者滿分,並不代表你能在職場筆試中就能得到面試者的肯定,很多面試時候做題都是實際工作中遇不到的題目,做題成績好壞也與實際開發中能力好壞沒有太多關係。另外很多程序員對自己電腦編輯器比較熟悉,面試時候操作公司電腦編輯器不熟悉需要花費很多時間。
對於程序員應聘面試做題來說,有的程序員善於筆試,有的程序員善於機試,有的善於研究開發新項目,如果僅靠做題能力來判定面試人員是否合格的話,未免有點武斷,往往有可能流失真正的技術人才。