從事軟體開發多年,上機寫代碼這種考查模式在國外用的比較多,很多國內的公司也在學習這種方式,這種方式能直接看出寫代碼的能力,但對上機做編程題目這種事情很多成熟的程序員覺得是一種侮辱,有一些程序員看到有筆試直接就選擇走人了,這些東西在面試之前應該有溝通,事情不會變得這么被動,因為對於很多有能力的程序員,能夠請到面試已經非常不容易了,能力越強脾氣越大。
直接上機做編程測試能力的公司不是很多,從事軟體開發十幾年主要經歷了四家公司,面試的時候主要靠面談為主,因為編程行業能力的高低通過交談就能了解差不多,只需要根據簡歷上寫的項目進行細節溝通,如果真的做過幾句話就能看出大概的水平,所以很多公司壓根不搞什麼筆試或者上機寫代碼的事情,編程這個職業主要靠時間的積累,並且在積累中不斷完善自己的知識體系,慢慢提高自己的認知。
一個程序員如何提升自己的能力水平,對於初學者來講首先是學習好一門編程語言,開始學習階段覺得編程語言就是天了,好像是學會了編程語言就能做任何的東西了,隨著編程語法的學習完畢就開始嘗試做一些題目,結果發現距離語法真的非常遙遠,所以有很多的初學者有一種感概明明在課堂什麼都明白了,結果到真正自己實踐的時候什麼都想不起來,這是初學者必然的經歷,編程本身就是一種不斷磨練編程思想的過程,編程語言屬於在輔助類基礎技能,沒有輔助就不會寫代碼,編程設計思想再牛也不可能實現,兩者是相輔相成的作用,編程思想裡麵包含著仙姑經驗的積累。
很多人覺得很奇怪有些公司也不進行面試也不讓上機寫代碼,就是通過不到一個小時的閑聊就能把一個人的水平能力和工資水平給定位下來,通過面試就能檢測出編程思想以及編程基礎,編程基礎類的考察只需要問幾個簡單的語法問題就能做個大概的檢測,編程思想就是完全的編程意識以及編程經驗的積累,所以一些企業在招聘的時候明確寫著就相關開發經驗的人優先,企業招聘的目的就是希望要的人在短時間內能夠上崗直接切入到項目開發中去,整體來看是不是需要上機寫代碼測試完全看每個公司的技術文化了。
有些技術類的公司對於程序員的基本功要求特別嚴格,有個同事在第一家技術公司的時候,部門技術經理特別關注程序員的基本語法,只要是簡單的代碼語法錯誤,就能到部門的黑板通報,開始實施階段很多人上了黑板,後來隨著時間的推移上去的人越來越少了,同事說到自己上了兩次黑板都是因為在使用指針的時候沒有初始化導致,到今天還是記憶尤新,如果在技術生涯的初期能夠經歷過這種企業是一個技術人的幸運了,越是嚴格要求的領導或者公司越是有利於技術人員 的成長,至於在面試的時候要不要上機這個就看每個公司的技術文化了,一般注重代碼基礎的領導會引領這個事情,希望能幫到你。
這是一個正常的流程,我覺得有時候還是有必要的考驗一下面試者的。
以前這種面試實際上是很平常的,但是發展到現在越來越多的人對這樣的面試很反感,大概率的原因是因為很多人更多的是在搬代碼,並且搬的很成功,而真正注意寫代碼的人反而越來越少。
筆試和上機編程好不好?
我覺得挺好的,這樣可以刷下去很多劃水的人,有的人,寫代碼的能力並不強,但是搬代碼的技術一流,隨著技術越來越晚上,一些解決各種bug的網站越來越流行,現在更多的畢業生為了高工資,變成了搬代碼的人,他們能解決問題嗎?能,但是是他們自己的解決的嗎?不是,更多的是他們通過搜索的手段,問度娘,問谷歌,漸漸的形成了一個可以解決問題的方案,雖然問題解決了,但是等遇到一個需要創新開發的時候,他們就完了,基本上沒有了自我的思維。
筆試和上機可以有效的防止這類人進入公司,實際上也是一種不錯的手段。
這樣的公司多不多?
據我所致,目前來講上機編程的公司不是很多,畢竟,每個公司所使用的編程軟體不同,有的公司製作的軟體也比較具有保密性,沒辦法直接考程序員的實際能力,只能通過一些演算法測試,或者是什麼測試,來簡單的排除掉那些搬運的人。
所以上機測試的效果並不是特別好,一般的公司都會選擇用筆試的方式。
我遇到過不少筆試的,上機的從來沒有遇到過。
我一個同事之前換工作的時候倒是遇到過,按他所說,這樣的測試並沒有什麼效果,畢竟測試題出得很淺,太難的問題,基本上短時間內很難解決,也不會有那麼長的面試時間。
其實,在我看來,這個上機面試並沒有那麼大的用途,畢竟測試不到太多的東西,還不如看他自己寫過的代碼來的更快。至於這樣的公司多不多,真沒辦法說,畢竟沒有統計過,根據我的經驗,我覺得不會太多。
筆試的我見過,但是上機的沒有過。
1.筆試可以有
這么說嘛,其實簡單的筆試的話肯定是可以的。因為筆試的話可以讓招聘者知道你大概的能力定位在什麼位置?一些邏輯編程可以測試你的邏輯能力。尤其是在it這個行業,邏輯能力是非常重要的。
如果說你是一個已經有工作經驗的人。其實筆試就沒有那麼重要了。這時候看中的一般差不多就是你曾經的項目經歷。
如果說讓你做一些項目上的,比如說項目架構了這種的,你可以拒絕回答。因為我之前就有聽到過說招聘產品經理,讓他去設計一個產品的。結果這個公司就是通過一直招聘產品經理。然後讓產品經理去設計產品相關的功能,最後再把這些所有求職者的產品相關的思維組合到一起。
雖然說這總公司是很少的,但是也不排除是有隻通過這種方式來滿足產品需要的。
所以解釋的時候可以大概的寫一個思路代碼的流程,但是可以不用全部都寫。
2.上機測試
我覺得這個確切的來說是有一點過分的。像這種上機考試的話,肯定他是需要一個比較完整的項目。但是這種項目誰都不知道是他們公司需要,還是讓他僅僅是為了做測試。所以像這種事情完全可以直接拒絕。
在這里大概說明一下。 找工作是一個雙向的過程 ,如果說是你無法接受這個公司相關的制度,或者說是相關的流程。其實你可以趁早放棄這種公司的,不然的話即使是你筆試面試都過啦,你到公司之後也會因為你自己的價值觀跟企業的文化匹配不到一起。遲早還是要辭職的,所以你要慎重考慮。
其實面試的時候筆試和機試都是it的正常流程,但是在國內被玩爛了,面試和機試過程中,會有公司內遇到的問題做為面試內容的,也許是個人也許是公司,讓你解決這樣那樣的問題,這樣子的都是垃圾
作為一個老程序員,關於程序員面試的話題,非常有意思,特別有的聊。其實在 IT 界面,有兩個不算公開的秘密,也就是兩個不成文的習慣或者規定吧,關於面試的。
讓老程序員做筆試題是一種侮辱
很多程序員,尤其是有經驗的程序員,去面試的時候,尤其是去小公司面試的時候,如果對方給你出了一套筆試題,很多程序員會說: 我轉頭就走,這是對我經驗水平的侮辱 。
你們是不是感覺很吃驚,還有這種道理?確實是,我有一次去一個創業公司面試,對方給我出了一套筆試題,我做完了,面試完回去跟一些同事聊筆試題的事,他們會驚訝的說:你竟然把筆試題做了?你是有經驗的程序員,不應該經過筆試的,直接面試就行,筆試是一種侮辱。那是我才發現,好多程序員都這么認為的。
但是,我感覺這是一種病態思維,你既然去面試,其實筆試也是面試的一種,你去大公司比如 BAT 這樣的公司的時候,也會有筆試,而且層層面試好幾輪,你都能忍,一些小公司給你出筆試題,你竟然受不了?公司用什麼方式來面試你,是公司的選擇和考量,當然了,面試是一種雙向選擇,如果你感覺是侮辱,當然可以選擇不面了,這是雙方面試的權利。
但是,我感覺筆試是一種正常的流程,跟有沒有經驗沒有關系。有經驗了,你筆試你確定能過么?
很多程序員都不會選擇上機測試
還有一種就是面對上機做題的面試,很多程序員都不喜歡,其實我也不喜歡的,大部分程序員好像遇到上機面試的情況,也是選擇扭頭就走。
其實,我感覺上機測試是可以接受的,但是是有條件的,那就是上機做題,可以做演算法題,這種方式我能接受。
有一次我去面試,他讓我上機做題,竟然跟我說用 Android 寫個什麼功能,什麼模塊,簡直了,這種題怎麼做?直接去實現功能模塊,寫其中的一個點,我都不熟悉需求,也不熟悉功能模塊,上來就寫,怎麼做?沒法弄。我直接就走了。
演算法題屬於比較明確的東西,上機做兩道應該是可以接受的。
你問上機做題的這樣面試的公司多嗎?可以明確地告訴你,不多,我工作這么多年,面試了很多公司,只遇到過兩家。
我是負責我們公司技術面試的,機試環節必不可少。題目不會很難主要是考核程序員的感覺,只有有感覺的程序員才能寫好大程序,這很關鍵。
這主要看做什麼了,我最頭疼的是拿一個構架來靠你函數命令。我都是自己寫數學模型和函數。我哪知道這個構架的函數名?
務實啊,說明人要的是能實乾的程序猿,沒什麼奇怪。面試需求很明確,要會乾的。找領導才找會說的。剛畢業面試的時候遇見過這種機試,程序猿這行算是工科,靠技術吃飯,面試動手實戰是正常的。
支持,不然很多水逼,劃水貨太多了
這樣的公司會存在
基於以下4個原因:
1 面試的人很多,不想花過多的時間去篩選。這樣做題,可以快速過濾一些濫竽充數的人
2 通過合理的上機操作,有針對性地找合適的人,匹配的人也能快速完成上機操作
3 標准,對面試者統一對待,以免主觀原因造成誤判
4 面試者的配合度,一般看到機試,有人就會直接退出。(我遇到這種情況,就會直接走)
以上4個原因,都是較為正式的原因,還有一個主要原因就是能力不行,面試官無法正確篩選簡歷,面試官無法從面試中獲取想要的信息並加以判斷。
基於最後一個原因就是我會選擇直接走的原因,面試官能力不行,表示公司對此招聘的用功不足,該公司沒有能力或沒有意願重視此次招聘。即使入職,收到的待遇不會重視,沒有必要把自己的前景壓在一個不會重視你成果的公司上。
⑵ 應屆生面試java相關崗位可能會被問到哪些技術問題
常見的Java問題
1.什麼是Java虛擬機?為什麼Java被稱作是「平台無關的編程語言」?
Java虛擬機是一個可以執行Java位元組碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的位元組碼文件。
Java被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬體平台的指令長度和其他特性。
2.JDK和JRE的區別是什麼?
Java運行時環境(JRE)是將要執行Java程序的Java虛擬機。它同時也包含了執行applet需要的瀏覽器插件。Java開發工具包(JDK)是完整的Java軟體開發包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調試器),可以讓開發者開發、編譯、執行Java應用程序。
3.」static」關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法?
「static」關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。
Java中static方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。
4.是否可以在static環境中訪問非static變數?
static變數在Java中是屬於類的,它在所有的實例中的值是一樣的。當類被Java虛擬機載入的時候,會對static變數進行初始化。如果你的代碼嘗試不用實例來訪問非static的變數,編譯器會報錯,因為這些變數還沒有被創建出來,還沒有跟任何實例關聯上。
5.Java支持的數據類型有哪些?什麼是自動拆裝箱?
Java語言支持的8中基本數據類型是:
byte
short
int
long
float
double
boolean
char
自動裝箱是Java編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把int轉化成Integer,double轉化成double,等等。反之就是自動拆箱。
6.Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?
Java中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
7.Java中,什麼是構造函數?什麼是構造函數重載?什麼是復制構造函數?
當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java編譯器會為這個類創建一個默認的構造函數。
Java中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。
Java不支持像C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java不會創建默認的復制構造函數。
8.Java支持多繼承么?
不支持,Java不支持多繼承。每個類都只能繼承一個類,但是可以實現多個介面。
9.介面和抽象類的區別是什麼?
Java提供和支持創建抽象類和介面。它們的實現有共同點,不同點在於:
介面中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
類可以實現很多個介面,但是只能繼承一個抽象類
類如果要實現一個介面,它必須要實現介面聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
抽象類可以在不提供介面方法實現的情況下實現介面。
Java介面中聲明的變數默認都是final的。抽象類可以包含非final的變數。
Java介面中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
介面是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調用的。
也可以參考JDK8中抽象類和介面的區別
10.什麼是值傳遞和引用傳遞?
對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。
對象被引用傳遞,意味著傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。
Java線程
⑶ 關於java程序員應聘機試
我是剛找到了一個java程序員的工作,現在我告訴你一些具體的問題;
他們首先回讓你自我介紹1-3分鍾,這其中,可能你就要談到,你對java的了解吧。然後問你曾經做過那些關於java的項目(或者自己編寫),他們會問你對bean是否了解,然後會問,你對j2ee了解多少,問這個的目的,對數是想問你,對ejb有多少了解,然後會問你對應用伺服器,比如weblogic和websphere了解多少。因為你面試的是java程序員,還可能讓你做一份java人證的考試題(1-20道),最後可能會問你關於資料庫的知識在最後,可能就是問你的薪資方面的要求了。
就這些了,這是我面試所經歷的一切。
⑷ java面試 談業務邏輯
首先你要考慮的一點是,對方掌握什麼樣的信息、他應該想從你這里得到什麼樣的信息。
lz的大體思路是正確的。
首先,對方想要知道的是你做了什麼。這個時候需要從整體介紹你製作的項目,例如,你的作品是針對什麼樣的人群,提供什麼樣的服務,然後是自己的特點。
然後介紹具體使用了什麼樣的框架和相關技術。
到此為止還不需要說細節,只要概括就可以。
等到對方問到你的時候,再確認對方想要了解什麼,然後再逐一描述。
-------------------------------------------------
每個主考官的思路不同,確切地說沒有正確答案,如果是我的話,會按照以下思路回答。
1.自己的思路和理解貫穿一線很重要,但是,自己的能力可以做到那一步,不能做到那一步,在哪方面需要改善,都要明確,被問到的時候誠實的講出來。
2.基本正確,但是注意著眼點盡可能從整個服務去說,而不是單純的PG角度。
3.這應該主要是看你的管理能力,同樣沒有正確答案,只有思路。不要局限於PG,把眼光放到整個團隊,思考處於整個團隊中的自己,需要做什麼、做了什麼,哪方面做得比較好、哪方面做得不夠,自然而然就知道自己的價值了。
⑸ 《程序員面試邏輯題解析》epub下載在線閱讀,求百度網盤雲資源
《程序員面試邏輯題解析》(薩沙)電子書網盤下載免費在線閱讀
鏈接:
書名:程序員面試邏輯題解析
作者:薩沙
譯者:朱學武
豆瓣評分:7.5
出版社:人民郵電出版社
出版年份:2013-1
頁數:208
內容簡介:
《程序員面試邏輯題解析》共分為3個部分。第一部分從有趣且鍛煉頭腦的謎題入手,繼而給出解題思路和詳細答案,更有「熱身問題」給大家提供充分的思考空間。第二部分綜合了不同類型的謎題,如數獨、調度問題及概率題等。神秘的第三部分帶領大家不斷歷險,開動腦筋,解決大量密碼及銀行賬戶等方面的問題。幾十道簡潔的小謎題不僅充分鍛煉了我們的思維方式,更為提高面試成功率奠定了基礎。《程序員面試邏輯題解析》不僅適合程序員閱讀,更是謎題愛好者的饕餮盛宴。
作者簡介:
Dennis E. Shasha
紐約大學柯朗數學研究所計算機科學教授,先後獲得耶魯大學理學學士、雪城大學理學碩士和哈佛大學哲學博士學位。《科學美國人》網站和Dr. Dobb』s Journal的謎題專欄作家。除本書外,還著有《奇思妙想:15位計算機天才及其重大發現》、Database Tuning: A Principled Approach、The Puzzling Adventures of Dr. Ecco、Natural Computing: DNA, Quantum Bits, and the Future of Smart Machines 和Codes, Puzzles, and Conspiracy等書。
⑹ 軟考程序員考試下午題如何解答
做一份工作,實際就是追尋夢想的過程,而為了完成夢想,必須有一個長期規劃,從而指導我們選擇工作。它是擇業過程中最本質和最原始的參考借鑒。下載鏈接
為此,小雲為你精選一份程序員面試書單,分為職業規劃、編程技能兩部分,適合剛畢業的大學生、正准備換工作的程序員們,涵蓋演算法工程師、Java工程師、測試等多個領域。
軟技能 代碼之外的生存指南約翰 Z.森梅茲 著
這是一本真正從「人」(而非技術也非管理)的角度關注軟體開發人員自身發展的書。書中論述的內容既涉及生活習慣,又包括思維方式,凸顯技術中「人」的因素,全面講解軟體行業從業人員所需知道的所有「軟技能」。
本書聚焦於軟體開發人員生活的方方面面,從揭秘面試的流程到精耕細作出一份殺手級簡歷,從創建大受歡迎的博客到打造你,從提高自己工作效率到與如何與「拖延症」做斗爭,甚至包括如何投資不動產,如何關注自己的健康。
編程珠璣(第2版)喬恩·本特利(Jon Bentley) 著
作者雖然沒有給出解決這些問題的具體代碼,但始終非常富有洞察力和創造力地圍繞著這些折磨程序員的實際問題展開討論,從而引導讀者理解問題並學會解決問題的技能,這些都是程序員實際編程生涯中的基本技能。
為此,本書給出了一些精心設計的有趣而且頗具指導意義的程序,這些程序能夠為那些復雜的編程問題提供清晰而且完備的解決思路,書中還充滿了對實用程序設計技巧及基本設計原則的清晰而睿智的描述。
PS:本書在第一版的基礎上增加了3個方面的新內容:測試、調試和計量,集合表示,字元串問題,並對第一版的所有程序都進行了改寫,生成了等量的新代碼。
重構 改善既有代碼的設計馬丁·福勒(Martin Fowler) 著
軟體開發的不朽經典,生動闡述重構原理和具體做法,普通程序員進階到編程高手必須修煉的秘笈。
重構,一言以蔽之,就是在不改變外部行為的前提下,有條不紊地改善代碼。多年前,正是《重構:改善既有代碼的設計》原版的出版,使重構終於從編程高手們的小圈子走出,成為眾多普通程序員日常開發工作中不可或缺的一部分。《重構:改善既有代碼的設計》也因此成為與《設計模式》齊名的經典著作,被譯為中、德、俄、日等眾多語言,在世界范圍內暢銷不衰。
《重構:改善既有代碼的設計》凝聚了軟體開發社區專家多年摸索而獲得的寶貴經驗,擁有不因時光流逝而磨滅的價值。今天,無論是重構本身,業界對重構的理解,還是開發工具對重構的支持力度,都與《重構:改善既有代碼的設計》最初出版時不可同日而語,但書中所蘊涵的意味和精華,依然值得反復咀嚼,而且往往能夠常讀常新。
C和C++程序員面試秘籍董山海 著
眾多高級語言都從C/C++有所借鑒,所以說C/C++的語言基礎對從事軟體開發的人員來說非常重要。
本書是一本解析C/C++面試題的書,可以幫助求職者更好地准備面試。《C和C++程序員面試秘笈》共包含12章,囊括了目前企業中常見的面試題類型和考點,包括C/C++程序基礎,預處理、const、static與sizeof,引用和指針,字元串,位運算與嵌入式編程,C++面向對象,C++繼承和多態,數據結構,排序,泛型編程,STL,演算法和邏輯思維等最常見的面試題。《C和C++程序員面試秘笈》通過技術點解析、代碼輔佐的方式讓讀者能深刻領會每個考點背後的技術。
本書緊扣面試精髓,對各種技術的剖析一針見血,是目前想找工作的C/C++程序員和剛畢業的大學生的面試寶典。
Java程序員面試寶典楊磊 著
本書對程序設計面試中Java常見的題型和常用解答技巧進行了介紹,對現代職業人如何有效求職、面試考官如何關注求職者動態等做了詳細解說。本書將為您揭開知名IT企業面試、筆試的核心機密;傳授程序員崗位求職的關鍵技巧。
編程之法:面試和演算法心得July 著
本書涉及面試、演算法、機器學習三個主題。書中的每道編程題目都給出了多種思路、多種解法,不斷優化、逐層遞進。本書第1章至第6章分別闡述字元串、數組、樹、查找、動態規劃、海量數據處理等相關的編程面試題和演算法,第7章介紹機器學習的兩個演算法—K近鄰和SVM。此外,每一章都有「舉一反三」和「習題」,以便讀者及時運用所學的方法解決相似的問題,且在附錄中收錄了語言、鏈表、概率等其他題型。
書中的每一道題都是面試的高頻題目,反復出現在最近5年各大公司的筆試和面試中,對面試備考有著極強的參考價值。全書邏輯清晰、通俗易懂,適合熱愛編程、演算法、機器學習,以及准備IT筆試和面試,即將求職、找工作的讀者閱讀。
C#與.NET程序員面試秘笈靳華 著
《C#與.NET程序員面試寶典》取材於各大IT公司的歷年面試題252個(包括研發類筆試及口試題目、情商及智商類題目),詳細分析了應聘C#與.NET程序員職位的常見考點。《C#與.NET程序員面試寶典》主要內容包括:面試流程、基礎語法和技術框架、數據訪問及XML應用、高級特性及應用進階、測試及質量保證、跨國公司經典面試題等。
軟體測試工程師面試指導蔡為東 著
對於想要得到一份軟體測試工程師職位的朋友來說,可能會有一些疑問,如軟體測試這個行業究竟怎麼樣?什麼樣的人適合做軟體測試?面試當中要注意什麼?軟體測試的基本知識點都有哪些?筆試都會涉及哪些內容?等等。本書將解答以上所有的疑問。
本書共6章內容,主要包括軟體測試行業概貌、軟體測試從業人員的基本要求、如何找工作、軟體測試技術基礎、典型的測試工程師筆試題等。本書內容豐富,講解深入淺出,能讓讀者朋友在短時間內掌握基本的測試技術,了解求職過程的各個環節,熟悉各種類型的筆試題,領會面試技巧。本書後附有一些實用的附錄,例如簡歷模板、新人工作指南等,尤其是「我在微軟做軟體測試外包」這一部分內容,寓故事性和知識性於一體,講述了作者在國際軟體巨頭——微軟公司做軟體測試外包的親身經歷,相信對於廣大的讀者朋友有閱讀和參考的價值。
本書適合想要從事軟體測試工作的朋友,也可供初級軟體測試工程師學習之用,另外也可作為大專院校軟體測試培訓的教材之一。
Android高薪之路李寧 著
《Android高薪之路:Android程序員面試寶典》取材於各大IT公司面試真題,所給出的試題盡可能地覆蓋了Android應用開發的各個方面,而且大多數試題都有解析部分,讀者可以通過這部分更深入地理解試題中所包含的技術內容,希望真正做到由點成線,舉一反三。
《Android高薪之路:Android程序員面試寶典》中還將Android中涉及的各個常用技術問題進行篩選、分類。這樣讀者可以有的放矢,對自己還沒有掌握的Android技術進行重點攻破,從而起到事半功倍的效果。除了對每道題目都有詳細的解析和回答外,對相關知識點還有擴展說明。
《Android高薪之路:Android程序員面試寶典》對面試中Android常見的題型和常用解答技巧進行了介紹,它不僅能幫助求職者快速復習相關知識點,也對現代職業人如何有效求職做了詳細解說。《Android高薪之路:Android程序員面試寶典》對於讀者從求職就業到提升計算機專業知識都有顯著的幫助。
編程之美《編程之美小組》
《編程之美—— 微軟 技術面試心得》收集了約60道演算法和 程序設計題目,這些題目大部分在近年的筆試,面試中出現過,或者是被微軟員工熱烈討論過。作者試圖從書中各種有趣的問題出發,引導讀者發現問題,分析問題,解決問題,尋找更優的解法。
書中絕大部分題目都提供了詳細的解說。 每道題目後面還有一至兩道擴展問題,供讀者進一步鑽研。
書中還講述了面試的各種小故事,告訴讀者微軟需要什麼樣的技術人才,重視什麼樣的能力,如何甄別人才。回答讀者關於IT業面試,招聘, 職業發展的疑問。 這本書的很多題目會出現在IT 行業的各種筆試,面試中。但本書更深層的意義在於引導讀者思考,和讀者共享思考之樂,編程之美。
⑺ java實習生面試的時候一般會被問到什麼問題
如果是實習生的話,就不要過分地擔心,這時更主要的是積累經驗。
作為一個Java開發人員,我認為如果我考察一個人,就是看它是否真正理解什麼是面向對象,首先會告訴一個例子,看他是不是用面向對象的思維分析它。如果解決了這些問題,後續的學習就慢慢就會了。
當然了,這也與你的開發工作性質有關,如果你從事的是個從事Java Web開發的公司,你就需要了解Java設計模式,掌握最基本的SSH開發框架的使用,了解JavaEE的基本知識,同時對資料庫有所了解。
作為實習生,沒這么麻煩,你只需要有學習的激情,這些東西後續都可以掌握,但是現在有個基礎,會更讓人注意。
⑻ 你要面試一個程序員,應該問他什麼問題
首先面試程序員分有沒有經驗
面試沒有經驗的程序員就隨便問問點ssm,ssh五大框架問題,多線程什麼的,再問問是否會點前端技術
有經驗就看看他的簡歷,問他簡歷項目上的問題,可以圍繞著簡歷上的項目問,通過他的回答涉及到的技術點之類的,拓展出去問其他的
⑼ 3道有意思的邏輯思維面試題
從小到大做了無數道智力題,工作之後接觸到程序員邏輯思維面試題,也曾經饒有興致的研究過。這些智力題,表面上是考智力水平,實際上是考察邏輯思維能力,而從更一般的意義而言,是在考察解決問題的能力。
一個人學習、研究、工作,其實無時無刻不是在訓練或使用解決問題的能力。解決問題的能力,在我看來,有很多方面,其中很重要的一方面就是邏輯思維能力。很多人對於邏輯思維的理解是存在誤區的,總以為邏輯思維只是理科生和工程師用的東西,與文科生甚至普通人沒有什麼關系。而實際上, 邏輯思維所涉及的范圍遠遠不止以數學為基礎的理工科,而是一種涵蓋各種學科、各種工作的通識能力 。
比如說,大學學文科專業的羅振宇,幾年前開了一個節目叫「羅輯思維」,強調用邏輯思維來理解世界,節目的內容涉及社會、歷史、經濟、人文、理工等各方面,俘獲了幾百萬乃至上千萬的粉絲。後來羅打造得到APP成為最知名的知識付費應用,就是以羅輯思維這個品牌欄目為底子做的。
最近看了一些大的科技公司(比如谷歌、微軟等)等招聘員工的面試題,很有意思,在這里與大家分享,並共同探討。
這是微軟非常知名的一道面試題,曾經難倒無數學霸才子:不是說好的考程序題或者智力題嗎,怎麼來了一個社會基礎建設問題?
為什麼是圓的?方的不行嗎?圓的究竟優勢在哪裡?
這就是在考察面試者的邏輯思維了。其實認真思考之後,不難得出「標准答案」:
如果面試者能夠這樣回答,說明他的邏輯思維不錯,或者至少生活經驗比較豐富。
那麼這是唯一的正確答案嗎?沒有這么簡單。我從一些優秀者的回答中,還發現了其它也很有道理的答案:
如果面試者能夠在所謂「標准答案」的基礎上,多給出幾個原因,那麼說明不僅邏輯思維很好,工程思維也非常棒,善於運用生活中的知識。這道題基本上給考官的印象應該是滿分了。
但是,關於這道題的討論並非到此為止。 下水道井蓋一定是圓的嗎?有沒有可能是方的或者其它形狀的?
傳說有一位面試者,在被問到該問題的時候,堅持說也可以用方的井蓋,並給出了合理的理由,最終成功說服了考官。下面是傳說的面試過程:
這位面試者不僅邏輯思維和工程經驗豐富,說服人的能力也非常強,讓考官覺得他是不可多得的人才,被推薦到更需要綜合技能的銷售部門工作。
其實,像這樣的邏輯思維面試題並沒有所謂的標准答案,考官的真實目的是 考察面試者的邏輯思維能力 ,更一般的講,是 解決問題的能力 。下水道蓋也可以是方的,只要你能給出合理的理由,自圓其說。
這是Google的一道面試題:
有一棟100層高的大樓,給你兩個完全相同的玻璃球。假設從某一層開始,丟下玻璃球會摔碎。那麼怎麼利用手中的兩個球,用什麼最優策略知道這個臨界的層是第幾層?
最笨的辦法誰都能想到:
可是這個辦法,最壞的情況下要試99次,平均意義上要試49次。而且只用了一個球,另一個球沒利用上。顯然不是最優的策略。
計算機專業的學生很容易想到更高級的辦法——二分法。具體是:
用這種方法,需要log100,也就是大約7次,能夠找到答案。
面試者如果能這樣回答,說明對計算機專業基本演算法是有了解的。但是,仔細想想,這個方法對嗎?
這個方法顯然是有毛病的。比如說我舉一個反例,第10層是臨界層的情況。按照二分法來執行,第一次試驗第50層將摔碎,第二次試驗第25層又將摔碎,此時兩個玻璃球都摔碎了,將沒有辦法繼續進行試驗!
注意最多有兩個球,也就是最多可以摔碎兩次。盡管上述二分法不可行,我們是否可以借鑒其思路,先大致確定一個小的范圍,然後逐個試驗呢?根據這樣的思路,可以提出下面的方法:
這種方法最壞的情況出現在臨界層為100時,將需要試驗10+10=20次;最好的情況出現在臨界層為2時,只需要試驗2次。而平均意義上大約需要試驗10次。怎麼樣,是不是有效的利用了兩個球呢?
按照吳軍老師的說法,這種解題方法其實體現了 一種典型的工程思維:粗調和精調 。其中第一個球用於粗調,確定一個大致的范圍;第二個球用於精調,在大致的范圍內確定精確的值。
其實,粗調和精調的工程思維在生活和工程中都很常見:
從這幾個例子,我們可以對粗調和精調的優點及注意事項進行簡單的總結:
了解了粗調和精調的概念之後,我們回過頭來,再次考察這道玻璃球題目。如果有3個玻璃球呢,是否有更好的方法?
當然是有的,標準的答案是採取三步試驗:
細心的讀者會發現,這三步試驗分別把答案的可能范圍縮小了4、4、5倍,最終確定了答案。
為什麼是這幾個數呢?而且,回過頭來想想,為什麼兩個小球的情況下,兩步試驗縮小的范圍分別是10、10呢?
這幾個數的選擇,當然絕非巧合。實際上,2個和3個玻璃球的情況下,縮小倍數分別是按照根號下100(也就是10)、3次根號下100(大約是5)來選擇的。 推廣到n個玻璃球的情況下,每步試驗的范圍縮小倍數應該是n次根號下100。 具體證明,我們在這里不做討論。
這絕不僅僅是一個小小的邏輯題, 考官想考察的是面試者的邏輯思維,包括工程思想、分析能力以及舉一反三的歸納概括能力 。知道標准答案不算什麼,吃透這道題並弄清背後的深刻原理,才是本事。
這道題相對前兩道來說要簡單一些。據說Google過去面試產品經理的時候會問到這個問題。什麼數據都不給,直接就這么問。
有些中國面試者可能不樂意了:你又不告訴我高爾夫球多大,也不告訴我這個房間的尺寸,什麼數據都沒有,我怎麼算啊?
但是這個題沒錯,考官考察的就是不給數據你怎麼計算!要不然小學生都能算出來了。
有些人一看沒給數據,可能就會胡猜:一間普通辦公室,又不是很大,高爾夫球直徑大概幾厘米,直觀感覺應該能裝幾千個或者幾萬個吧?
然而答案恰恰違反我們的直覺:至少能裝幾十萬個,甚至能裝上百萬個。
我們來算算:
一個房間竟然能裝這么多高爾夫球?是不是大的出乎我們的意料呢?
有人可能會懷疑,這道題如此簡單,小學生都能做,侮辱人智商嗎?然而這道題實際考察的,是我們解決問題的方式。Google對產品經理的要求是:
有的面試者在沒給數據的情況下可能會根據直覺亂猜,這是做事的大忌,因為很多東西其實是反直覺的,亂猜可能導致完全錯誤的結論,這是很危險的。最准確的做法是拿工具量一下會議室的長寬高以及高爾夫球的直徑,然後進行計算。不過,在沒有準確數據的情況下,合理的估算也是可行的,甚至也是必要的,估算能夠幫助我們大致知道答案的范圍,這在很多情況下已經足夠支持決策!