工作有些年頭了,從學校開始自學asp,偶然因為php乙個功能愛上它(asp上傳**要寫好多,php基本幾行就搞定了),從此走上了 」拍黃片「 之路。結合這幾年的工作經驗,說說我對php工程師知識結構的理解
php的執行環境
連環境都搞不起來,就是你有多麼喜歡php,那也是白搭,開始我們大多會使用整合環境軟體例如xampp,wamp。隨著知識的增加慢慢要學會自己搭建執行環境,例如 linux(ubuntu/centos),apache/nginx,mysql,redis/memcached,php-fpm
基礎知識
有了php基礎之後,第乙個輸出就是 hello world 請舉手(感覺好神奇)
問:opcode 是什麼東西?
前端知識
如果你認為php是後端開發工程師,那麼你就錯了,最起碼目前我接觸的php工程師對於前端知識掌握的也是非常深的
php擴充套件
在最開始使用php的過程,可能完全不是擴充套件是什麼玩意,我是知道了memcache之後才知道原來有擴充套件這個概念,對於php擴充套件最基本的要求是先要學會安裝和載入,更高的要求是了解擴充套件的結構並實現乙個簡單擴充套件,給大家推薦乙個**php擴充套件開發及核心應用
web安全
sql注入、驗證碼、重新整理提交、漏洞掃瞄、dos攻擊、跨域攻擊、xss 這些都要了解下,並學會基本的防禦手段,你一定會碰到這些破壞的
高效能mysql
下雨天php和mysql很配哦,對於資料庫的要求,開始是會使用基本語句就行(增刪改查),其次要有能力寫高效語句優化資料庫、分庫分表的策略、主從架構,最後需要了解索引的原理,推薦大家看一本書叫做 "高效能mysql"
mvc框架
會使用某個框架這是最低要求了,現在那個商業公司不用框架了。希望大家可以理解mvc模式,最終可以自己實現乙個簡單的mvc框架
mvc模式介紹
檢視控制器
模型模組和操作
主入口檔案
mvc模式應用
伺服器知識
隨著了解的越來越多,發現linux知識是必不可少的,就像七巧板,總差那麼一塊。對於linux的知識要求 我覺得以 「鳥哥的私房菜」 這本書 作為要求吧。
版本控制
做研發的版本控制很重要,因為這個牽扯到順利持續整合的進度,最開始使用的是svn,後續換到了git,牆裂推薦大家都要學習git,因為目前git已經是研發的乙個基本要求了
快取
快取在目前網際網路的**使用頻率非常之高,後端主要是大量使用在快取資料庫結果集,減輕資料庫的壓力,目前主流的有memcache 和redis。前端大部分使用cdn,對靜態資源使用cdn可以載入更快。無論前後哪端,都是為了給使用者更好的體驗
問:memcache 和 redis 有什麼區別?
大流量
我所接觸過的最大請求量是千萬級別的(每天),使用的架構基本都是分布式的做法,例如負載均衡
高併發
高併發目前比較流行,經常看到某某秒殺活動,關於高併發需要了解常用的幾種解決方案
學會使用ide
不管你用什麼ide,請選擇一款適合自己的,這能大大提高你的開發效率,個人牆裂推薦phpstorm
學會搜尋
好多人都喜歡問別人這個什麼問題呀,遇到的問題我建議都先搜尋,只有認真確認過的確找不到解決辦法在找人問了。沒有思考和嘗試哪有成長了
應該會的功能
不是說會了這些功能,你就天下無敵,應該是基本要求了
一下子就想了這麼多,後續想到了再補,請大家多多指教。
其實程式設計使用什麼語言不重要,最重要的是思想,程式設計的思路。當時這個的前提是你實現了很多功能,此時已經是任憑你需求千變萬化,哥心中已有解決方案
合格的工程師怎麼理解技術?
兩年前,我遇到過這道題 合格的工程師怎麼理解技術?今天再次碰到,也是尋覓良久得來卻不費工夫。蔣尚義認為 乙個好的工程師是要在這個事情不完全了解之下就可以把它做出來,等到你所有的東西完全了解以後,你再做出來已經太遲了,你已經賣不出去了,因為你的競爭者早已經做出來了。這個絕對不是說你不需要念書只要空想,...
IT PRO的知識結構
我一直想幫助新入行的朋友建立乙個知識結構,但是一直也沒有想好怎麼寫。在我之前的文章中,我曾提到了,從事計算機it pro,需要建立自己的知識結構。這方面的文章,估計介紹的很少,需要作者豐富的行業閱歷。在這方面,本人也覺得資歷不夠,不過還是想寫一寫,算是拋磚引玉吧。首先給從事計算機的工作來乙個分類。根...
devops工程師 DevOps工程師的認證
devops工程師 devops的團隊欣賞使用devops的過程 尤其是在多 和混合雲基礎架構,原因是多方面的。一方面,devops打破了障礙,使敏捷軟體開發和it運營的持續交付成為可能。它在企業中也很流行,因為它可以通過數位化轉型幫助加速業務成果。隨著敏捷實踐和流程深入企業內部,具有擴充套件框架知...