3 年經(jīng)驗(yàn)的 PHP 程序員應(yīng)該掌握哪些知識

中級PHP開發(fā)面試經(jīng)驗(yàn)及問題總結(jié)

標(biāo)簽 : 中級 PHP 面試


對于互聯(lián)網(wǎng)的從業(yè)人員來說,每年的3锄俄,4月份可以說是一個跳槽的黃金時期,也因此業(yè)內(nèi)有金三銀四的說法千贯。本人在上一家公司工作三年之后也漸漸按耐不住激動的心情選擇了跳槽。在經(jīng)過了半個多月的面試之后送朱,對于目前市場上對于 3 年左右的程序員的的一個技能需求大概有了了解娘荡,對于個人的短板也有了一個更加全面的認(rèn)識。今天我把最近一段時間面試中遇到的一些問題和考察的技能點(diǎn)總結(jié)下來驶沼,以供大家參考炮沐。也希望無論是否正在求職的程序員都能有個對照,如果你 3 年經(jīng)驗(yàn)如果對于下面的問題大部分還不了解的話回怜,那就需要有危機(jī)感了大年。

總的來說换薄,3 年經(jīng)驗(yàn)的程序員面試一般還是以技術(shù)考察為主,基礎(chǔ)和架構(gòu)都會涉及翔试,問題也會相對深入轻要。一般面試官會根據(jù)你在上一家工作的經(jīng)歷以及你上一家公司的技術(shù)情況(業(yè)務(wù)規(guī)模,PV垦缅,數(shù)據(jù)量冲泥、并發(fā)量)對你的技術(shù)有個大概的了解,然后結(jié)合你的實(shí)際項(xiàng)目進(jìn)行考察壁涎》不校考察的主要有數(shù)據(jù)庫、系統(tǒng)怔球、網(wǎng)絡(luò)嚼酝、架構(gòu)、前端竟坛、算法闽巩、面向?qū)ο蠛驮O(shè)計(jì)模式等這些方面,數(shù)據(jù)庫索引優(yōu)化流码、高并發(fā)場景又官、Redis的使用幾乎是每家面試的,在 Linux 系統(tǒng)下操作日志漫试、文件的方法大部分公司也會考察六敬。

下面我將分門別類列出面試中遇到的一些問題,在每個問題后面并以 * 標(biāo)識每個問題問到的頻率和重要性(最高為 5 )驾荣,希望能給大家面試準(zhǔn)備和技術(shù)學(xué)習(xí)提供一個方向

數(shù)據(jù)庫

數(shù)據(jù)庫基本是每家面試考察的重點(diǎn)外构,主要方向是 Mysql 索引及優(yōu)化,基本每家面試都會問到

Mysql 索引及其優(yōu)化

Mysql 索引及其優(yōu)化幾乎是每家面試都需要問的問題播掷,重點(diǎn)考察的是 Mysql 聯(lián)合索引的最左原則审编,這點(diǎn)必須要掌握

  • Mysql 的索引有哪些 (* * * * *)
  • Mysql 聯(lián)合索引的數(shù)據(jù)結(jié)構(gòu),為什么要用這個數(shù)據(jù)結(jié)構(gòu)歧匈,有什么優(yōu)點(diǎn)(* * * *)
  • Mysql 聯(lián)合聯(lián)合索引的最左原則垒酬,以及如何根據(jù)查詢情況和字段數(shù)據(jù)分布確定聯(lián)合索引的順序 (* * * * *)
  • 如何使用 Explain 語句分析 Sql 查詢情況(如何看查詢用了是否用了索引,用了哪些索引)(* * *)
  • Sql 語句在 Mysql 里面執(zhí)行過程(* * *)

參考資料

  1. 索引基礎(chǔ)——B-Tree件炉、B+Tree勘究、紅黑樹、B*Tree數(shù)據(jù)結(jié)構(gòu)
  2. Mysql索引優(yōu)化
  3. 細(xì)說MySQL索引
  4. mysql性能優(yōu)化之索引優(yōu)化
  5. MySQL架構(gòu)設(shè)計(jì)——MyISAM存儲引擎與InnoDB存儲引擎
  6. Mysql explain執(zhí)行計(jì)劃詳解
  7. MySQL Explain詳解

Mysql 存儲引擎

Mysql 存儲引擎也是面試官喜歡問的一個問題斟冕,主要問題如下

  • 你只知道的 Mysql 的存儲引擎有哪些(* * * *)
  • MyIsam 和 InnDB 有什么區(qū)別(* * * *)

參考資料

  1. MySQL中四種常用存儲引擎的介紹

Mysql 事務(wù)和鎖

Mysql 事務(wù)和鎖這類問題也有公司會問到口糕,問到的不多,不過也會有

  • Mysql 事務(wù)隔離的四個級別是什么(* *)
  • 悲觀鎖和樂觀鎖磕蛇、共享鎖和獨(dú)占鎖有什么區(qū)別(* *)

參考資料

  1. 理解事務(wù)的4種隔離級別
  2. MySQL的四種事務(wù)隔離級別
  3. 數(shù)據(jù)庫事務(wù)與鎖詳解
  4. 樂觀鎖和悲觀鎖的區(qū)別(最全面的分析)
  5. 數(shù)據(jù)庫鎖機(jī)制

其他

也有不少公司會讓你根據(jù)數(shù)據(jù)表寫查詢語句景描,知識點(diǎn)的話有 having 和 where 的區(qū)別以及 case when 的用法十办。還有就是一些實(shí)際的復(fù)雜業(yè)務(wù)場景了。

網(wǎng)絡(luò)

網(wǎng)絡(luò)的一些知識大部分公司也會考超棺,由于這方面實(shí)在是短板向族,吃了不少虧,主要有如下問題说搅。

  • 301炸枣、302、304弄唧、305适肠、307、401候引、403侯养、404、408澄干、500逛揩、501、502麸俘、503 等 http 狀態(tài)碼的含義 (* * *)
  • http 協(xié)議和 https 協(xié)議的區(qū)別是什么 (* *)
  • PHP 上傳文件的原理和過程(* * * *)
  • 用戶在瀏覽網(wǎng)頁時辩稽,主要經(jīng)歷的一個過程有哪些(* * *)
  • Ngnix 如何和 PHP 進(jìn)行通信,使用 php-fpm 和 Socket 有什么區(qū)別从媚,哪個性能高(* *)
  • tcp/ip協(xié)議的三次握手過程(*)

操作系統(tǒng)

操作系統(tǒng)方面主要考察在 Linux 系統(tǒng)下對日志文件的管理和如何查看系統(tǒng)的負(fù)載和運(yùn)行狀況逞泄。在日志文件管理方面主要是 awk、sort拜效、grep 等命令的使用

  • 有一個用戶訪問的日志文件喷众,如果從中取出用戶訪問 ip 并排序(* * * *)
  • 如何不打開文件查看文件的行數(shù) (* * *)
  • 如何查看系統(tǒng)的磁盤、網(wǎng)絡(luò)等情況(* *)

架構(gòu)

架構(gòu)也是公司面試考察的一個重點(diǎn)方向紧憾,主要是提供一個業(yè)務(wù)場景到千,讓你設(shè)計(jì)架構(gòu)方案

  • 分布式系統(tǒng)的 CAP 理論是什么,Paxos 協(xié)議解決的是什么問題赴穗,Zookeeper 是否使用過(*)
  • 如果讓你設(shè)計(jì)一個秒殺系統(tǒng)憔四,你會怎么設(shè)計(jì)保證系統(tǒng)能夠高并發(fā)的流量以及庫存不超賣。(* * * * *)
  • 針對你的秒殺系統(tǒng)般眉,假設(shè)有 5000W 的 UV加矛,你要如何分配你的 Web 服務(wù)器、數(shù)據(jù)庫服務(wù)器煤篙、Redis 服務(wù)器。(*)
  • 有一個系統(tǒng)響應(yīng)比較慢毁腿,你要如何確定性能瓶頸并優(yōu)化(* * *)

參考資料

  1. 分布式中 CAP BASE ACID 理解
  2. 分布式系統(tǒng)事務(wù)一致性到CAP,BASE理論
  3. 分布式服務(wù)化系統(tǒng)一致性的“最佳實(shí)干”
  4. 秒殺系統(tǒng)架構(gòu)
  5. 高并發(fā)秒殺系統(tǒng)的優(yōu)化
  6. 秒殺系統(tǒng)架構(gòu)分析與實(shí)戰(zhàn)

Redis

Redis 也是面試官非常喜歡問的一個問題辑奈,主要是考察 Redis 的一些基本知識以及應(yīng)用場景

  • Redis 的五種數(shù)據(jù)類型有哪些(* * *)
  • Redis 里面 list 的最大長度是多少(*)
  • Redis 的事務(wù)和發(fā)布訂閱相關(guān)知識(*)
  • Redis 原子計(jì)數(shù)器的實(shí)現(xiàn)原理是什么(*)
  • 如何使用 Redis 實(shí)現(xiàn)分布式鎖(*)
  • 你的項(xiàng)目中都哪些業(yè)務(wù)場景用到了Redis(* * * * *)

前端問題

一般面試 PHP 程序員并不會怎么問前端問題苛茂,不過也會有一些公司問到,這時候你如果完全懵逼當(dāng)然是不太好的鸠窗,下面是我再面試中遇到的一些前端問題妓羊。

  • 什么是跨域問題,如何解決(* *)
  • JSONP 的實(shí)現(xiàn)原理(*)

參考資料

  1. 瀏覽器的跨域問題以及解決方案
  2. 前端常見跨域解決方案(全)
  3. 那些年稍计,那些跨域問題
  4. 深入剖析jsonp跨域原理

面向?qū)ο蠛驮O(shè)計(jì)模式

面向?qū)ο蠓矫娴囊恍┲R也會問到躁绸,不過問的不多,主要有一下問題

  • 面向?qū)ο蟮娜筇匦杂心男?)
  • 多態(tài)和重載的區(qū)別是什么(* *)

設(shè)計(jì)模式方面考察的并不是特別多臣嚣,主要是在筆試的時候?qū)崿F(xiàn)一個單例模式净刮,展開的話會問幾個工廠模式的區(qū)別和用法,或者問你工作總用到的設(shè)計(jì)模式

PHP 的基本知識

面試 PHP 程序員通常也會有 PHP 相關(guān)知識的考察硅则,主要有以下幾個方面的問題

  • 是否閱讀過 PHP 源碼淹父,能否寫 PHP 擴(kuò)展,PHP 的架構(gòu)是什么(*)
  • PHP 的垃圾回收機(jī)制是什么(* * *)
  • 對于字符串和數(shù)字的比較怎虫,PHP 的比較過程是什么(* *)
  • empty暑认,== 等一些語法細(xì)節(jié)(* *)
  • PHP 都有哪些魔術(shù)方法(* * *)

算法

算法方面除了讓你手寫二分法查找多一些之外,很少會考察課本的基本算法了大审,但如果你作死把話題往這邊引的話蘸际,面試官是不介意考你一下的,不過也主要是那幾個常用的排序算法徒扶。不放心的話可以把二分法查找的排序算法復(fù)習(xí)一下粮彤。
不考課本上的算法,面試官一般會結(jié)合實(shí)際業(yè)務(wù)中的問題酷愧,讓你設(shè)計(jì)算法解決并手寫代碼實(shí)現(xiàn)驾诈,主要考察你解決問題的思路和編碼能力。

  • 有一個日志文件溶浴,記錄了用戶訪問的 ip 和時間乍迄,如何設(shè)計(jì)算法找出在 10 分鐘內(nèi)訪問超過 500 次的 ip (* * *)
  • 有一個 n 維的全是整數(shù)的數(shù)組,取值為 [0, n-1)士败,設(shè)計(jì)算法取出數(shù)組里面的一個重復(fù)元素闯两,要求時間復(fù)雜度 O(n),空間復(fù)雜度 O(1) (*)
  • 設(shè)計(jì)一個類似 beyond compare 的字符串比較功能的算法(*)

其他

除了以上知識點(diǎn)外谅将,還有以下相關(guān)的一些知識會問到

  • Session 和 Cookie 的區(qū)別(* * *)
  • Ngnix 的架構(gòu)是什么漾狼,配置文件的載入過程是什么(*)
  • 什么是對稱加密和非對稱加密,各有哪些算法(*)
  • Unicode 什么饥臂,Utf-8 和 Utf-32 以及 GBK 編碼的區(qū)別(*)
  • 在支付過程中逊躁,有哪些策略保證數(shù)據(jù)安全性,防止數(shù)據(jù)被篡改(*)
  • 設(shè)計(jì)一個權(quán)限管理系統(tǒng)隅熙,你要如設(shè)計(jì)表結(jié)構(gòu)(*)

通過以上總結(jié)我們可以知道稽煤,對于中級 PHP 程序員的面試核芽,數(shù)據(jù)庫、系統(tǒng)酵熙、網(wǎng)絡(luò)轧简、架構(gòu)是面試的一個重點(diǎn)方向,架構(gòu)主要針對高并發(fā)匾二、大量數(shù)據(jù)處理哮独,系統(tǒng)主要是性能分析和日志操作。面試官在面試時也會主要根據(jù)你的工作經(jīng)驗(yàn)及簡歷做相應(yīng)的提問察藐。希望這篇文章能大家以后的技術(shù)學(xué)習(xí)及面試準(zhǔn)備提供一個參考皮璧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市转培,隨后出現(xiàn)的幾起案子恶导,更是在濱河造成了極大的恐慌,老刑警劉巖浸须,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惨寿,死亡現(xiàn)場離奇詭異,居然都是意外死亡删窒,警方通過查閱死者的電腦和手機(jī)裂垦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肌索,“玉大人蕉拢,你說我怎么就攤上這事〕涎牵” “怎么了晕换?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長站宗。 經(jīng)常有香客問我闸准,道長,這世上最難降的妖魔是什么梢灭? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任夷家,我火速辦了婚禮,結(jié)果婚禮上敏释,老公的妹妹穿的比我還像新娘库快。我一直安慰自己,他們只是感情好钥顽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布义屏。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪湿蛔。 梳的紋絲不亂的頭發(fā)上膀曾,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機(jī)與錄音阳啥,去河邊找鬼。 笑死财喳,一個胖子當(dāng)著我的面吹牛察迟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耳高,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扎瓶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泌枪?” 一聲冷哼從身側(cè)響起概荷,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碌燕,沒想到半個月后误证,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡修壕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年愈捅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慈鸠。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蓝谨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出青团,到底是詐尸還是另有隱情譬巫,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布督笆,位于F島的核電站芦昔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胖腾。R本人自食惡果不足惜烟零,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咸作。 院中可真熱鬧锨阿,春花似錦、人聲如沸记罚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至末早,卻和暖如春烟馅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背然磷。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工郑趁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姿搜。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓寡润,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舅柜。 傳聞我的和親對象是個殘疾皇子梭纹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容