下麵是我花費兩個星期做的準備,主要分三部分: 有計劃——計劃好每天要複習的知識模塊(內容較多) 高效率——從整體到細節,著重把知識點“手寫”到自己的電腦記錄本 優簡歷——展示你的項目亮點,難點 有計劃: 1. 反思:為什麼好多知識看過後不能記住,面試一緊張更加想不起?一方面自己沒有深入學習,另一方面 ...
下麵是我花費兩個星期做的準備,主要分三部分:
- 有計劃——計劃好每天要複習的知識模塊(內容較多)
- 高效率——從整體到細節,著重把知識點“手寫”到自己的電腦記錄本
- 優簡歷——展示你的項目亮點,難點 有計劃:
1. 反思:為什麼好多知識看過後不能記住,面試一緊張更加想不起?一方面自己沒有深入學習,另一方面複習過程雜亂,和寫代碼一個道理,如果你的業務邏輯和其他亂七八糟的都放在控制器上,代碼一多你要調用某個方法可能就會讓你抓狂,所以一般採取controller和server分層,同理,我們最好提前做好計劃,分種類,分層次來學習
2.如果你是科班出身,那應該對操作系統不陌生,至少在高校裡面是學過這門課程的。但估計很多人像我一樣,後悔沒去好好學這門課,或者工作上用不上就拋棄它了(PHP更是如此),我要說的是操作系統很重要,就以我面試了幾家公司來說,基本如果你答出操作系統相關知識點基本都是加分的。
3. 進程和線程的概念,以及兩者的區別
.什麼是上下文切換
.多進程和多線程各自的優勢(可以Google一下有關php-fpm和nginx進程)
.進程通信方式
.進程基本狀態
.搶占式調度和非搶占式調度
. 進程線程同步,死鎖
. 理解協程
4.電腦網路可以說是大多數程式員需要學習的大課程,特別是PHPer這些web打交道的程式員。當然,電腦網路太底層的東西很枯燥很難懂,我只針對一些比較常見,比較基礎的知識面來學習。
5. 數據結構 很多人在大學裡面都學過這門課程,也是很多程式員的啟蒙課程,自然很重要,(大學唯一一次掛科就是它了。。。)
從事PHP工作的朋友應該都用不上它,所以這也是一個很容易被忽視的基礎知識點,自然有很多大公司面試的時候很註重這方面的基礎,特別是應屆畢業生。我複習這方面的知識是重新翻開我大學的課本,把其中比較重要的東西手寫幾遍。
學習思路這是很重要的部分
6.資料庫mysql
說實話,我覺得絕大多數程式員都是在CURD,學那麼多東西很大方面也是為了輔助最後的curd。所以資料庫知識的重要性毋庸置疑,後面我打算買本《高性能MySQL》來提升自己這方面的能力。
7. nginx和PHP-fpm
nginx和php-fpm應該算是PHP程式員接觸比較多,但是可能沒有去深入瞭解過,有些面試官喜歡結合nginx,php-fpm和操作系統進程方面的知識來考察。
8.redis
工作項目不大,用到redis的地方並不多,所以一直也沒去學習redis,但是從面試情況看來,被問到redis的概率還是很大的,畢竟這款基於記憶體的資料庫功能強大,市場占用率很高。
9.Laravel
由於我自己是一直用Laravel框架開發的,簡歷裡面的項目也多處標明Larvel,所以這裡就介紹Larvel相關的知識,你對哪個框架熟悉就去做相應的複習,基本Google和手冊都有。
10.設計模式
看一個人的代碼水平,可以從是否靈活使用設計模式看出來的。寫代碼也是一門藝術,好的代碼低耦合,易擴展,設計模式的理解和使用也決定了你的代碼水平。這裡推薦一本《大話設計模式》,目前我只看了一點點,對於我這樣的菜鳥覺得還不錯,後面需抽點時間好好看看。
11. PHP內核基礎知識
真正要讀懂PHP內核的人應該很少,大多數人都沒時間和精力去研究底層,畢竟PHP一直以開發效率高著稱,只要底層有人寫好給廣大程式員用就好了。確實是這樣,但是我記得有個面試過我的大佬跟我說,很多東西不要只會用,要多想想為什麼可以這樣用,PHP語言我覺得也是一樣,雖然現在能力有限,但我可以提前把一些比較基礎,容易理解的底層知識學習一下,這不也是一種自我提升?面試的時候你也可以拿出來炫一下,說錯也沒關係,至少你展示出你的好學,你的認知層面。 高效率:
12.根據你的簡歷內容做複習
面試都是拿著你的簡歷來問問題的,你的簡歷內容會直接影響面試內容的走向,所以簡歷寫完還要做響應的複習。
我的簡歷有涉及rabbitMQ,elasticsearch等知識,我就對其進行簡單的複習。
另外很重要的一點:提前想好怎麼描述你做過的項目,其中遇到什麼問題,怎麼解決,儘量把你好的一面展示出來,這些都可以提前寫下了的,好記性不如爛筆頭,下麵第二部分會說到。
13. 複習的內容實在是太多了,單單寫上一部分內容都快把我的鍵盤打爛,手寫斷了。雖然有了十全的計劃,但如何高效率去記住上面那麼多東西是一個大問題,看看我是怎麼做的。
例如第一天複習操作系統的知識,我是早上Google了一下有關操作系統的面試知識點,然後打開幾個標簽頁,選取內容比較齊全的。所謂“好記性不如爛筆頭”,沒有爛筆頭,只有爛鍵盤,所以我選擇把這些知識點一一整理到自己的電腦上,自己平時有寫博客,用markdown比較多(推薦Typora),所以每天就用一個md文件把知識整理下來,基本都是手打的,很少複製黏貼。這樣做,一方面讓自己印象深刻,另一方面鍛煉自己摘取核心內容,描述能力,這也是我能寫下這麼多內容的原因。
每天晚上計劃好明天的複習內容,可以選擇睡前回顧今天學習的知識,也可以在第二天早上回顧一遍
最好選擇一個安靜的地方,能讓你認真學習的環境,我由於提交了離職申請需要一個月才能走,交接項目也很快,所以每天都在公司有計劃的複習(遠離手機)
總之,真想要離職,找一份好工作,必須對自己狠一點,找到心儀的工作再好好去放鬆幾天。其實有不少人一直在埋怨大環境不好,確實是,但有何用,想為自己菜,自己不努力找一個藉口?王小波說的好:人的一切痛苦,本質上都是對自己無能的憤怒。當然運氣也很重要,保持樂觀,別輕易放棄。
優簡歷:
14.基本的,用PDF格式,個人信息寫完整,別寫精通
技能亮點,圍繞 熟悉 , 有所 , 掌握 , 瞭解 , 有一定心得 等
不要這樣:熟悉PHP , 熟悉YiiLavarel框架 ( 複製粘貼 , CURD , 就是乾! )
熟悉Linux使用 , 可以搭建XXXX環境 ( 會敲cd , ls命令 , 會apt install nginx )
熟悉git或svn版本管理的使用 ( 會git push , 會git pull )
熟悉MySQL以及對資料庫的優化 ( 會select update 和 delete , 會添加索引 )
熟悉Redis或Memcache的使用 ( 會set key , 會get key )
15.最好這樣:
PHP : 熟悉PHP語法 , 熟悉PHP面向對象 , 可以根據業務邏輯結合合適的設計模式 . 熟悉PHP SPL標準庫 , 對PHP的一些高級用法有所心得體驗 , 諸如pcntl多進程模塊 , socket模塊 . 對SWOOLE所有涉獵 , 有一些自己的積累和經驗 . 對於底層 , ZendVM如何如何 。
Redis : 熟悉Redis常用數據結構的使用 , 可結合業務場景選擇合適的數據結構 . 熟悉Redis集群 , 對集群實現方案原理有一定掌握 , 對於市面常用的集中集群方案的優缺點比較瞭解 . 對於底層 , 對Redis SET等底層數據結構的實現有所掌握。
16.一定要寫項目亮點和難點
大多數人都是這麼寫的 : 負責用戶登錄註冊模塊 , 後臺管理 , 多角色許可權控制 , 負責廣告業務模塊的管理和篩查(太普通,太泛了)
亮點 . 你覺得這個項目中哪一部分值得自豪或學到新東西了 . 比如項目中用到ECDH , 使用了MySQL中間件等等。
難點 . 你覺得這個項目哪一部分當時難了你幾天 , 然後你通過自己努力解決了以及解決方案是什麼。 不定期更新學習資料以及筆試面試題 點擊加入該群