一,php能力
1,了解階段,您能寫一些代碼,因?yàn)槟鞘窃谑謨?cè)和google的幫助下,您才完成的。變量亂定義,N多函數(shù)不知道,做起事來(lái)很慢,想到什么寫什么,代碼寫的比較亂,后期維護(hù)很麻煩。
2,熟悉階段,經(jīng)常查函數(shù),手冊(cè)估計(jì)也看過(guò)一,二遍了,常用的函數(shù)基本上您都了解了。后 期維護(hù)給您帶來(lái)了不少痛苦,您開(kāi)始發(fā)現(xiàn)自己的代碼有很多不足,開(kāi)始思考如果改進(jìn)自己的代碼,如何站在項(xiàng)目的角度來(lái)規(guī)劃自己的代碼,而不是想到什么寫什么, 知道如何來(lái)減少冗余代碼,使您的代碼清晰,知道什么樣的代碼寫出來(lái)讓人看著舒服,基本的代碼規(guī)范,已經(jīng)形成。為了提高自己,會(huì)特意的去一些技術(shù)性的論壇, 學(xué)習(xí)研究。
3,很熟悉階段,本來(lái)我想寫精通的,到現(xiàn)在我也不知道精通是到什么程度,也沒(méi)有聽(tīng)到有人 說(shuō)自己精通PHP的,所以就用很熟悉了。這個(gè)階段,我想您已經(jīng)從面向過(guò)程進(jìn)入了面向?qū)ο蟆€(gè)人覺(jué)得面向?qū)ο蟮淖畲蠛锰幘褪牵苁拐麄€(gè)項(xiàng)目功能化,模塊化, 后期維護(hù),改版,升級(jí)就很方便了。沒(méi)有面向?qū)ο蟮臅r(shí)候,不也一樣開(kāi)發(fā)嗎.這個(gè)時(shí)期,您已經(jīng)研究過(guò)了一種或者幾種框架,結(jié)合自己的實(shí)際項(xiàng)目經(jīng)驗(yàn),在腦子里已 經(jīng)能形成自己的一個(gè)框架,這個(gè)框架是最適合你的。并且能夠?qū)⑦@個(gè)框架運(yùn)用到實(shí)際的開(kāi)發(fā)中去,以提高自己的開(kāi)發(fā)效率。
如果您剛寫代碼的時(shí)候,就有人能約束你按OOP的思想去寫代碼的話,那您就遇到貴人了。當(dāng)不好的代碼習(xí)慣養(yǎng)成時(shí),在想改就不那么容易了。
二,數(shù)據(jù)庫(kù)能力
用php來(lái)做項(xiàng)目的話,用mysql是最多的了,其次是pgsql。因?yàn)樗麄兌€(gè)是免費(fèi)的。哈哈,以mysql為例
1,了解階段,知道m(xù)ysql是什么,能寫一些簡(jiǎn)單的sql語(yǔ)句,能設(shè)計(jì)簡(jiǎn)單的表,知道如何使用數(shù)據(jù)庫(kù)管理工具(如:phpmyadmin)
2,熟悉階段,知道如何才能寫出高效率的sql語(yǔ)句,了解索引原理,知道如何創(chuàng)建索引, 會(huì)寫一些儲(chǔ)存過(guò)程,觸發(fā)器等,能通過(guò)各種手段來(lái)分析,測(cè)試數(shù)據(jù)庫(kù),例如:利用mysqlslap來(lái)進(jìn)行壓力測(cè)試,通來(lái)explain來(lái)分析sql語(yǔ)句,通 過(guò)開(kāi)啟慢查詢來(lái)分析哪些sql語(yǔ)句真正影響mysql的運(yùn)行,能利用dbdesigner4,mysql workbench為設(shè)計(jì)數(shù)據(jù)庫(kù),能在命令狀態(tài)下,查詢,分析mysql環(huán)境變量,來(lái)分析mysql的運(yùn)行狀態(tài)等等
3,很熟悉階段,對(duì)于各有種存儲(chǔ)引擎的原理非常熟悉,知道通過(guò)修改配置文件來(lái),使存儲(chǔ)引 擎達(dá)到最優(yōu)化,知道如何來(lái)優(yōu)化數(shù)據(jù)庫(kù)的最大連接數(shù),知道怎么樣來(lái)優(yōu)化mysql的I/o瓶頸,為了項(xiàng)目的需要,向mysql數(shù)據(jù)庫(kù)增加存儲(chǔ)引擎或者插件, 知道如何搭建數(shù)據(jù)庫(kù)集群,并監(jiān)控?cái)?shù)據(jù)庫(kù)的運(yùn)行狀態(tài)等等
三,html,css能力
php是腳本語(yǔ)言,我們用php大多數(shù)情況下是用來(lái)做網(wǎng)站的,慨然是網(wǎng)站,那肯定是離不開(kāi)html,css
1,了解階段,知道html標(biāo)簽是干什么用的,通過(guò)網(wǎng)絡(luò)和手冊(cè)能自主的寫一些html,知道css是怎么回事,能在html中寫一些簡(jiǎn)單的style等
2,熟悉階段,能利用css來(lái)能設(shè)計(jì)一些簡(jiǎn)單的布局,可以將css單獨(dú)的寫成文件,熟悉css的語(yǔ)法規(guī)則,以及繼承性等
3,很熟悉階段,能夠設(shè)計(jì)出很好的CSS,并且管理好這些CSS文件,盡量減少冗余代碼。知道如何寫出有利于搜索引擎搜索的代碼,例如:title,h1,h2權(quán)重比較高的。等
對(duì)于php程序員來(lái)說(shuō),并不一定要你去設(shè)計(jì)頁(yè)面,但是給你一個(gè)頁(yè)面,你要知道如何來(lái)修改CSS文件,html就不要說(shuō)了肯定要掌握的。
四,js能力
如果提高用戶體驗(yàn),是一個(gè)網(wǎng)站能留住人的重要標(biāo)志。這個(gè)就要用到JS了
1,了解階段,了解JS的基本語(yǔ)法,知道如何去調(diào)試這些程序,能寫一些簡(jiǎn)單function等
2,熟悉階段,對(duì)JS的語(yǔ)法,函數(shù),正則等已經(jīng)熟悉了,能利用js來(lái)寫一些特效,并且發(fā) 現(xiàn)用JS寫特效,是比較累人的一件事,開(kāi)始嘗試jquery,prototype,并對(duì)jquery,prototype基本語(yǔ)法有所解,個(gè)人反對(duì)不學(xué) JS,直接入手jquery,prototype這樣的JS框架。
3,很熟悉階段,在框架的幫助下,能熟練的用OOP的思想的來(lái)寫代碼,而不是一個(gè)個(gè) function累加,熟練運(yùn)用jquery,prototype的ajax,或者是網(wǎng)上一些ajax框架,如(ajaxrequest),不在直接寫 active控件了。能夠利用網(wǎng)絡(luò)資源,來(lái)完成各種特效。
對(duì)于大型公司來(lái)說(shuō)一般都是有js程序員的,小公司基本上沒(méi)有,要么交給程序員來(lái)做,要么 交給美工來(lái)做。美工一般都不是程序員,也沒(méi)有編程基礎(chǔ),所以學(xué)JS比較吃力,但是學(xué)jquery比較容易的,因?yàn)閏ss對(duì)html進(jìn)行控制的方法,和 jquery對(duì)html的控制方法基本上差不多(css,jquery的相同之處),所以有好多公司把特效交給美工來(lái)做。
五,apache等能力
個(gè)人覺(jué)得,到目錄為止,跑php的話用apache的人還是最多,前段時(shí)間好多網(wǎng)站在吵NGINX有多么多么的好,能比apache好10倍,我覺(jué)得還是親自嘗試一下比較好。以apache為例
1,了解階段,不管是linux下,還是windows下,能夠安裝配置apache,知道如何添加php添模,如果面試官問(wèn)你,apache為什么能解釋php代碼,你怎么回答呢。對(duì)apache的基本配置有所了解,對(duì)于啟動(dòng)中遇到的問(wèn)題能夠解決等
2,熟悉階段,知道如何向apache中添加新的模塊,如果如何進(jìn)行url重寫,防盜鏈,進(jìn)行IP限制等
3,很熟悉階段,知道如何利用apache來(lái)緩存圖片,能利用apache來(lái)做負(fù)載均衡,并且知道利用ab命令來(lái)進(jìn)行壓力,通過(guò)工具對(duì)日志分析,經(jīng)過(guò)分析來(lái)對(duì)apache進(jìn)行優(yōu)化,知道如何搭建多個(gè)虛擬主機(jī);對(duì)apahce的常用模塊都有實(shí)際操作經(jīng)驗(yàn)等
對(duì)apache進(jìn)行監(jiān)控和維護(hù),一般是運(yùn)維人員或者是項(xiàng)目經(jīng)理來(lái)做的,個(gè)人覺(jué)得最好還是了解一點(diǎn),因?yàn)檫@樣您才不會(huì)那么容易被忽悠,對(duì)于自己將來(lái)的轉(zhuǎn)型也是非常有必要的。
六,linux系統(tǒng)
為什么要掌握l(shuí)inux系統(tǒng)呢?用php寫的網(wǎng)站大多數(shù)運(yùn)行在linux或者 freebsd下的,掌握l(shuí)inux系統(tǒng)對(duì)自己將來(lái)的發(fā)展還是比較有好處的。借此感謝一下我的好友汪洋,是他將我?guī)нM(jìn)linux世界的,進(jìn)來(lái)后我才發(fā)現(xiàn)這 里的世界很精彩,現(xiàn)在我基本上不用windows了,偶爾打游戲的時(shí)候會(huì)進(jìn)一下,在linux下,不用擔(dān)心中毒的問(wèn)題,linux下的病毒很少,也不用擔(dān) 心,XX和XXX掃描你的硬盤了。哈哈
1,熟悉階段,會(huì)裝linux系統(tǒng),對(duì)系統(tǒng)的常用命令能夠熟練運(yùn)用等
2,運(yùn)用階段,在linux系統(tǒng)下,能夠安裝配置apache,php,mysql,svn,memcache,squid,lvs等一些web項(xiàng)目必要的工具,能夠通過(guò)日志分析其狀態(tài)等。對(duì)shell要有所了解,并能夠?qū)懸恍┖?jiǎn)單的shell腳本等
七,勾通能力
這一點(diǎn)非常重要,并且被越來(lái)越多的人所忽視,其實(shí)做程序員挺杯具的,根電腦打交道的時(shí)間 是最多,也許是因?yàn)檫@樣吧,勾通的時(shí)候,是比較費(fèi)勁的,也有可能是被程序的嚴(yán)謹(jǐn)性束縛了大腦,說(shuō)出來(lái)的話,太專業(yè),可能其他人聽(tīng)不懂的。所以平時(shí)多和他人 交流,特別是根非技術(shù)人員多勾通,多站在對(duì)方的角度來(lái)思想問(wèn)題,這樣的話,我想勾通起來(lái)會(huì)容易很多。