面試php工程師出什麼考題好?
1 介紹自己過去工作中,或學習中,最能體現自己價值的成就。
-&> 等介紹完後,這個成就實現時,遇到過怎樣的困難,如何解決的。2 解釋一下SQL注入的原理及危害,假設這裡有一個不嚴謹的登陸程序,如何利用SQL注入進入。3 解釋一下跨站腳本的原理及危害,假設這裡有一個不嚴謹的留言板,請構造跨站腳本範例。4 解釋一下數據索引為什麼能提高效率。
場景SQL select * from user where area="廣州『 and sex="女『 order by lastlogin desc limit 30; 如何設計索引? 現在有10萬條 IP地址對應區間表,格式為 startip, endip, area 要求每個用戶訪問時都能快速分析出對方地區,請設計實現。資料庫或不用資料庫,要求每秒鐘實現超過千次的查詢。基本上到這些對我而言就已經足夠了,如果上面題目特別滿意的,再附加5 現在有一個屏蔽詞列表,大約幾千個詞;假設有一個繁忙的論壇社區,發帖量巨大,要求用戶每發一篇文章就要快速分析是否包含屏蔽詞,請給出程序設計。6 一個遊戲網站,有數千個小遊戲,每個遊戲要做積分排行,數據結構如下 gameid,userid,gamescore 每天數百萬積分提交,數據量巨大,目前要求分庫處理。要求,可以基於每個遊戲id可以查詢積分排行榜。 可以基於用戶id查詢,比如自己或好友的歷史遊戲積分記錄。請問如何處理分庫。
最後,你有什麼要問的?我諮詢了一下我身邊的一位很牛PHP程序員,他也是我的面試官,他的回答如下(非原話):
1.PHP基本功,字元串與數組2.網路功能,發起curl,socket編程等3.對網路開發的理解,tcp/udp, http 協議的討論PS:對具體函數的掌握要求不高,反正可以查手冊。---------------以上上面匿名用戶整理的挺全的,值得參考。
工程師能否勝任某個崗位很大程度上受專業程度、周邊知識、溝通能力、主動工作的意願等多方面因素影響,對每個Team來說需要考核的重點是有區別的,一般會在面試過程中根據實際情況組合考察。
專業程度體現在對PHP的基本功的掌握和一些進階知識的了解,比如對常見性能點、不同版本特性等,session的實現機制、include/require的差異,進一步的主流框架掌握程度、常見的性能優化策略、其作為腳本語言所具備的一些特性、如何規避PHP的性能劣勢打造高並發的系統、如何保證高並發下的可用性和數據完整性等等。
周邊知識主要會包括MySQL性能優化、Memcache使用、Nginx/Apache的配合、對於PV/Click等數據收集和觀察的方法等。 同樣的,利用curl/socket操作http/tcp/udp,進一步的RPC調用(Web Service/JSONP/Thrift等)的前後端實現,進一步的包括更多的Cache策略(遠近、一致性哈希、數據一致性)、對Sharding即分庫分表之類操作的了解、更多NoSQL產品知識、各類常見協議細節、安全性(注入和旁註、跨站和CC)等。
溝通能力從「簡單介紹下自己」、「說說你在最近參與的項目中所做的事情」開始,根據其回答,進一步細化到考察是否能和業務部門、產品經理、運營人員自如溝通的「需求總是變更怎麼辦」、「怎麼看待業務人員或產品經理提出的似乎並不合理的需求」、「作為一個開發人員,如何知道自己參與的某個項目在用戶眼裡做得好不好」等;考察團隊領導能力的「作為一個小團隊的Leader,你覺得帶好團隊最重要的點有哪些」、「團隊里的工程師總是晚來早走/開小差,做為主管怎麼處理這些問題」、「被分派到一個重要項目,如何激勵團隊儘快完成項目」等;考察其作為工程師個體,是否具備更全面的視角(從產品、設計、業務等角度看待問題的能力)的「讓你運營一個論壇系統/企業微博賬號,你會怎麼做」、「作為一個XX產品的工程師,如何從技術的角度幫助運營人員提高ROI」等;考察發現和總結問題能力的「我暫時沒有其他問題了,你有什麼問題需要問我嗎」。
主動工作的意願則往往是通過了解其對加班的看法、對代碼質量的態度、如何提高團隊工作效率、對其參與的項目的一些細節的追問、如何提高參與的項目的代碼質量或運營產出、個人興趣愛好、以往的得意之作等側面的了解。不太認可目前排名第一的答案,有些問雖然面試的時候不知道,但是可以Google的啊.難道考歷史的時候,問:曹操出生於哪個時辰? 能夠知道的算是歷史了解得多嗎?不一定吧.
我覺得,一個程序員的能力,是如果把具體的問題抽象出模型來.0.簡單做一下自我介紹,? 然後談一下近三年來你的得意之作?1.看看簡歷,會問一些過去做的項目的用戶量、pv、吞吐量、相關難點和解決方法等2.資料庫設計經驗,為什麼進行分表? 分庫?
一般多少數據量開始分表? 分庫? 分庫分表的目的? 什麼是資料庫垂直拆分? 水平拆分? 分區等等?可以舉例說明
3.資料庫優化有哪些? 分別需要注意什麼?4.web開發方面會遇到哪些緩存? 分別如何優化?5.給你256M的內存,對10G的文件進行排序(文件每行1個數字),如何實現? 對10G的文件進行查找如何實現? 統計10G文件每個關鍵字出現的次數如何實現?6.假如你現在是12306火車訂票的設計師,你該如何設計滿足全國人民訂票?7.假如有1億用戶的訪問量,你的伺服器架構是怎樣的? 用戶信息的存儲方案如何設計?8.如果你是技術組長,所帶團隊任務進度無法完成你該如何解決?如果在進度排滿的前提下插入任務,你該如何保證總進度不延期?如果有的工程師今天預定任務沒有完成,你該如何解決?
9.從你的經驗方面談一下如何構建高性能web站點? 需要哪些環節? 步驟? 每個步驟需要注意什麼如何優化等?10. 為什麼要對資料庫進行主從分離? 11. 如何處理多伺服器共享session?12. 一個10G的表,你用php程序統計某個欄位出現的次數,思路是?13. 會告訴你一個nginx日誌例子,用你認為最佳的編程語言統計一下http響應時間超過1秒的前10個url?14. 給你一個mysql配置文件,用你認為最佳的編程語言解析該文件?15. 給你兩個路徑a和b,寫一個演算法或思路計算a和b差距幾層並顯示a和b的交集?16. 給你一個url,在nginx配置一下rewrite指定到某個具體路徑?17. 一個php文件的解釋過程是? 一般加速php有哪些? 提高php整體性能會用到哪些技術?18. session和cookie生存周期區別? 存儲位置區別?
19. require、include、require_once、include_once區別? 載入區別? 如果程序按需載入某個php文件你如何實現?20. chrome號稱為多線程的,所以多線程和多進程的區別為?21. php在2011年底出現hash碰撞,hash碰撞原理為? 如何進行修復?22. web不安全因素有哪些? 分別如何防範?23. 假如兩個單鏈表相交,寫一個最優演算法計算交點位置,說思路也可以?24. 假如你是技術組長? 如何提高團隊效率?25. nginx負載均衡有哪些? 如果其中一台伺服器掛掉,報警機制如何實現?26. 不優化前提下,apache一般最大連接數為? nginx一般最大連接數為? mysql 每秒insert ? select ? update ? delete?27. mysql 數據類型有哪些 ? 分別佔用多少存儲空間 ?28. nginx設置緩存js、css、圖片等信息,緩存的實現原理是?
29. 如何提高緩存命中率? 如何對緩存進行顆粒化?30. php的內存回收機制是?31. 我的所有問題都問完了,你有什麼問題問我沒有?謝邀,在公司作為面試官只面試過初中級水平的PHP程序員,對他們的要求基本上是能夠幹活,高級的PHPer的面試需要面哪些知識點我並不是很有經驗,在這裡只談一下面試初中級別的PHPer。先做一套面試題,題目基本上是基礎的PHP語法,資料庫設計和資料庫優化,Linux基礎,會在最後涉及一些深一點的內容。根據簡歷和面試題的答題情況,針對他熟悉的項目進行深入。比如他做過用戶相關,那我就問問session、cookie區別;實際用戶登錄時客戶端和伺服器端發生了哪些事情;改寫過session 的存儲嗎;資料庫設計是什麼樣的;密碼怎麼處理;怎麼實現一個定時退出的系統等等。如果用過框架,那就問問對於mvc模式有自己的考慮嗎;路由的原理是什麼。。。基本上根據答題情況,能夠篩選一些還可以的PHPer,但是實際效果還是有一些不足之處。我以前招進來一個同事,面試的時候面的頭頭是道,但進入具體的項目中,對業務邏輯的理解讓人抓狂,出東西慢並且代碼寫的很不好。後來就增加了一些針對業務邏輯的面試題,並且要求面試人員手寫一些代碼。感覺我的答案可能不對題啊,更像是對如何面試PHPer的答案。
面試php工程師取決於面試官的角色
1,面試官是業務面試官還是hr。兩個角色的思路和方向是不同的。
2,業務面試官的考題應該是針對專業技能方面。通常是由同崗位專業技能較強的同事來放任或是業務主管。但注意麵試是為了了解對方的技能結構而不是要考倒他3,hr方面則是從求職動機,期望的工作環境薪資待遇是否和公司匹配,注意用工風險方面。出一些和日誌相關的題目。
很多網路上的php源代碼,極少會在項目中使用日誌框架或者自己構建一個簡單的日誌系統。導致項目規模變大之後,測試,在線運行情況檢查和修改BUG都變的困難無比。
有不少自學php的同學很自然的也就沒有日誌的概念。
日誌是系統工業化設計的一個重要的部分。考察這個,准沒錯。正則表達式和輸入轉義別忘了
面試一些基礎的php,在這要讓年是這禽獸橋一百年代碼
把公司遇到過的問題或業務由易到難各抽一些,讓面試者提出解決方案或思路。
感覺不要面試什麼過於理論的東西
而是解決實際問題的能力!推薦閱讀:
※Web後台語言的選擇?
※什麼開發語言可以替代PHP?
※微軟.Net架構現在被不少人吐槽「老掉牙」,相比其它技術(如php)它是否真的失去優勢?
※大部分已經幹了兩三年的程序員水平是怎樣的?
※如何對程序員績效考核?