第一篇:程序員,應(yīng)該掌握的英語(yǔ)詞匯
程序員,應(yīng)該掌握的英語(yǔ)詞匯
卷首語(yǔ):“英語(yǔ)”不需要專業(yè),因?yàn)樗皇枪ぞ?/p>
......本文選自《Java程序員,上班那點(diǎn)事兒》
有時(shí)候如果應(yīng)聘到了一個(gè)有外資背景的公司或者這個(gè)公司的很多人都有海外或外資工作背景時(shí),你也許還會(huì)用到一些日常工作交流時(shí)候的詞匯。
比如我們看一下某主管開(kāi)會(huì)時(shí)的發(fā)言:
小王,請(qǐng)你盡快“Push”一下這件事,按照前期咱們定下來(lái)的“Plan”來(lái)“follow”這個(gè)“case”,每一個(gè)“Milestone”都要“Share”出來(lái),你負(fù)責(zé)的這塊工作要充分的“Open”,明天最好和客戶做一個(gè)“Conference”能夠“Face to face”的交流一下。
小李,你的那個(gè)“Project”最近有些“Delay”了,這么多“Resource”都分配給你了,還分配給你了那么多“Part time”,作為一個(gè)“PM”你應(yīng)該知道目前這個(gè)“Cost”恐怕“Cover”不住這個(gè)項(xiàng)目了,你要盡快完成。
最近“Marketing”那邊對(duì)我們“Team”的要求比較緊,“Sales”他們的業(yè)績(jī)也上來(lái)了,咱們作為技術(shù)部門要堅(jiān)決做好“Product”的后盾。
請(qǐng)注意,這并不是一個(gè)笑話,而是在某些公司每天都在發(fā)生的一個(gè)最最普通的一個(gè)部門會(huì)議。如果你對(duì)這些詞匯不明白,恐怕這個(gè)會(huì)議開(kāi)下來(lái)都不知道領(lǐng)導(dǎo)說(shuō)的是什么。
翻譯一下:
小王,請(qǐng)你盡快“推動(dòng)”一下這件事,按照前期咱們定下來(lái)的“計(jì)劃”來(lái)“跟蹤”這個(gè)“事情”,每一個(gè)“里程碑”都要“共享”出來(lái),你負(fù)責(zé)的這塊工作要充分的“開(kāi)放給大家”,明天最好和客戶做一個(gè)“討論會(huì)”能夠“面對(duì)面”的交流一下。
小李,你的那個(gè)“項(xiàng)目”最近有些“延遲了”了,這么多“資源”都分配給你了,還分配給你了那么多“臨時(shí)員工”,作為一個(gè)“項(xiàng)目經(jīng)理”你應(yīng)該知道目前這個(gè)“成本”恐怕“包”不住這個(gè)項(xiàng)目了,你要盡快完成。
最近“市場(chǎng)部門”那邊對(duì)我們“團(tuán)隊(duì)”的要求比較緊,“銷售人員”他們的業(yè)績(jī)也上來(lái)了,咱們作為技術(shù)部門要堅(jiān)決做好“產(chǎn)品開(kāi)發(fā)”的后盾。
很有意思吧,經(jīng)常能在公司中看到喜歡中英文混說(shuō)的領(lǐng)導(dǎo)。要么本身這個(gè)企業(yè)就是外企,要么這個(gè)領(lǐng)導(dǎo)曾經(jīng)在外企工作,或者本身就覺(jué)得這樣說(shuō)話很酷,但不管是因?yàn)槭裁丛蛄钇溥M(jìn)行中英文混說(shuō),我們作為程序員,在開(kāi)會(huì)的時(shí)候也不能“大眼瞪小眼”吧!
因此,我們應(yīng)該盡可能熟悉這些英語(yǔ)詞匯,以備不時(shí)之需。我們下面就總結(jié)一下,在公司中經(jīng)常會(huì)用到的一些單詞都是什么意思,以及何時(shí)能夠用得上。
13.1.3.1 幾個(gè)開(kāi)會(huì)的時(shí)候最容易出現(xiàn)的單詞
Conference:討論會(huì),碰頭會(huì)議的意思
例如,有時(shí)候領(lǐng)導(dǎo)會(huì)說(shuō)“咱們Call一個(gè)Conference吧”,這個(gè)的意思應(yīng)該是一個(gè)電話會(huì)議,或者視頻會(huì)議。
Follow:跟蹤
例如,一般會(huì)說(shuō)那個(gè)Case你follow一下吧,這就是說(shuō)讓你跟蹤一下這個(gè)事情。Team:
是團(tuán)隊(duì)的意思,團(tuán)隊(duì)的主管一般叫Team Leader,一個(gè)Team可以大也可以小,一個(gè)項(xiàng)目小組可以叫一個(gè)Team,一個(gè)部門也可以叫做一個(gè)Team,有時(shí)候一個(gè)公司的高層領(lǐng)導(dǎo)團(tuán)隊(duì)也可以叫做是一個(gè)Team。
Policy:政策或者是策略
很多東西都可以制定Policy,銷售的Policy,價(jià)格的Policy,網(wǎng)絡(luò)的Policy都可以。Open:打開(kāi)的、開(kāi)放的有時(shí)候當(dāng)成一種狀態(tài)來(lái)說(shuō),比如你的項(xiàng)目是不是Open的呢?這個(gè)的意思是說(shuō),你是不是非常聽(tīng)不進(jìn)去別人的意見(jiàn)閉門造車呢?
Share:共享
例如,把你的文檔Share一下吧,有時(shí)候也說(shuō)把你的想法Share一下吧。
Plan:計(jì)劃、規(guī)劃
例如,你有什么Plan告訴我一下,或者說(shuō),你在這件事請(qǐng)開(kāi)始前是否已經(jīng)制訂了詳細(xì)的Plan?Plan是每一件事的行動(dòng)方案和地圖。
Milestone:里程碑、階段
例如,請(qǐng)你把每一個(gè)Milestone共享出來(lái),就是說(shuō)讓每一個(gè)人都知道你項(xiàng)目的進(jìn)度狀況。Milestone就是每一個(gè)進(jìn)展階段的結(jié)束。
Product:產(chǎn)品
產(chǎn)品就是一個(gè)公司的用于銷售而生產(chǎn)的物品,Product有時(shí)候也可以代表一個(gè)部門,比如“產(chǎn)品部”。
Project:項(xiàng)目
一般項(xiàng)目是需要在公司立項(xiàng)的,如果沒(méi)有立項(xiàng)一般都不能稱作一個(gè)正式的項(xiàng)目,在立項(xiàng)以后每一個(gè)項(xiàng)目都會(huì)任命一個(gè)項(xiàng)目經(jīng)理作為這個(gè)項(xiàng)目的總負(fù)責(zé)人,項(xiàng)目經(jīng)理的英文簡(jiǎn)稱是PM。
Boss:老板
我們有時(shí)候一提到Boss總是想到的是這個(gè)公司的實(shí)際控股人,也就是公司里最大的那個(gè)領(lǐng)導(dǎo),其實(shí)不盡然,這里面所說(shuō)的老板并不是整個(gè)公司的老板,而指得是你的上級(jí),一般將你的上級(jí)也叫做Boss。
Close:關(guān)閉
Close有時(shí)候描述某些事情的狀態(tài),比如說(shuō),“這個(gè)事情已經(jīng)Close了”,意思是說(shuō)這件事情已經(jīng)了結(jié)了,這個(gè)和“finish”的意思是不一樣的,finish是完成了,而Close是關(guān)閉了。
Manager:經(jīng)理
到了工作單位以后,你會(huì)發(fā)現(xiàn)在一個(gè)公司中有無(wú)數(shù)的Manager,幾乎每一個(gè)人都可以叫做Manager,大大小小的Manager有很多,但卻都不是領(lǐng)導(dǎo),比如,負(fù)責(zé)采購(gòu)的原來(lái)叫采購(gòu)員,現(xiàn)在叫采購(gòu)經(jīng)理,負(fù)責(zé)銷售的原來(lái)叫銷售員,現(xiàn)在叫銷售經(jīng)理,客戶服務(wù)的原來(lái)叫客戶服務(wù)人員,現(xiàn)在叫客戶經(jīng)理,等等。
Delay:延遲了
Delay也是一種狀態(tài),這個(gè)狀態(tài)一定是和一個(gè)Plan相比較的,在Plan中設(shè)定了每一個(gè)Milestone的時(shí)間點(diǎn),而在相應(yīng)的時(shí)間點(diǎn)上沒(méi)有完成那個(gè)Milestone的目標(biāo),那么說(shuō)明這個(gè)項(xiàng)目Delay了。
Schedule:時(shí)間表
有時(shí)候在規(guī)范每一個(gè)人在項(xiàng)目中在不同時(shí)間段應(yīng)該完成的事情,可以編制一個(gè)
Schedule的Excel文件,發(fā)給每一個(gè)參與項(xiàng)目的人員
Update:更新一下
Push:推動(dòng)
比如,你Push這一下這件事,就是推動(dòng)一下。
Solution:解決方案
有時(shí)候說(shuō),給用戶提供一個(gè)Total solution的意思是,全面的解決方案。
Announce:宣布
比如,有時(shí)候說(shuō),把你們的想法通過(guò)Email Announce出來(lái),這就是說(shuō)發(fā)一個(gè)群發(fā)郵件,讓所有人都知道你所要表達(dá)的某些計(jì)劃等等。
Interview:原意是接見(jiàn)會(huì)見(jiàn)的意思,但是現(xiàn)在面試也是這個(gè)。
Resource:資源
Review:檢查一下或者回顧一下
13.1.3.2 幾個(gè)和軟件開(kāi)發(fā)相關(guān)的單詞
API:Application Programming Interface 應(yīng)用編程接口
比如,兩個(gè)本來(lái)互相沒(méi)有聯(lián)系的系統(tǒng)需要數(shù)據(jù)共享,就需要開(kāi)發(fā)API作為接口。Coding:編碼工作
有時(shí)候?qū)⒄介_(kāi)始編碼工作稱作“Coding”,聽(tīng)起來(lái)似乎怪怪的,但實(shí)際上就是敲代碼。Document:文檔
WebBase:Web應(yīng)用程序
“WebBase”從單詞字面上看就是以Web為基礎(chǔ)的意思,其實(shí)就是所謂的“B/S”結(jié)構(gòu)的程序,有時(shí)候如果你和不懂技術(shù)的人交流說(shuō)“B/S”他們不懂,你就說(shuō)“WebBase”他們一定懂。
Face to face:面對(duì)面
Hand by hand:手把手
Step by Step:一步一步的Quality:質(zhì)量
“Quality”可以說(shuō)產(chǎn)品的質(zhì)量,也可以說(shuō)是網(wǎng)絡(luò)通信的“Quality”等。
On-line:在線的有時(shí)候所謂的“On-line的客戶”并不是說(shuō)他們現(xiàn)在就在線上連接著網(wǎng)絡(luò)或者服務(wù)器,而有時(shí)候是指這些客戶是我們的正式客戶。
Handbook:手冊(cè)
License:許可證
經(jīng)常聽(tīng)到“購(gòu)買幾個(gè)License”這樣的話,“License”意思就是授權(quán)許可,有時(shí)候即使這個(gè)軟件可以正常安裝使用也是非法的,因?yàn)闆](méi)有購(gòu)買“License”,只有購(gòu)買了
“License”才可以合法使用,也就是所謂的“正版”。對(duì)于軟件而言,有時(shí)候“License”并沒(méi)有加密措施,完全是一種自覺(jué)行為。對(duì)于網(wǎng)絡(luò)版軟件而言,每一個(gè)客戶端的使用都需要購(gòu)買相應(yīng)的“License”。
On-site:現(xiàn)場(chǎng)服務(wù)
現(xiàn)場(chǎng)服務(wù)我們稱作“On-site”服務(wù),需要派工程師到用戶的現(xiàn)場(chǎng)實(shí)施服務(wù)。
Report:報(bào)告
很多情況下人們把“Report”翻譯成“報(bào)表”,其實(shí)“Report”本身即是名詞又是動(dòng)詞,作為動(dòng)詞用到的地方也很多,比如,在一個(gè)公司中有人問(wèn)“你report給誰(shuí)?”,這句話的意思是說(shuō)“你的上級(jí)主管是誰(shuí)”。
Version:版本
13.1.3.3 幾個(gè)常用的設(shè)備名稱的單詞
Voice gateway:語(yǔ)音網(wǎng)關(guān)
Router:路由器
HUB:有時(shí)候已經(jīng)把小的桌面級(jí)的集線器和交換機(jī)都叫HUB
Switch:交換機(jī)
13.1.3.4 幾個(gè)常用和商務(wù)相關(guān)的單詞
Order:訂單
Price:價(jià)格
List price:官方報(bào)價(jià),往往廠家會(huì)給一個(gè)折扣價(jià),實(shí)際采購(gòu)設(shè)備的價(jià)格并不是“List price”,“List price”僅僅是官方報(bào)價(jià)。
Customer:客戶
Partner:合作伙伴
Billing:計(jì)費(fèi)
Marketing:市場(chǎng),有時(shí)候也代表市場(chǎng)部門
13.1.3.5 幾種職位名稱的稱呼
CEO:Chief Executive Officer的簡(jiǎn)稱,首席執(zhí)行官 COO:Chief Operating Officer的簡(jiǎn)稱,運(yùn)營(yíng)總裁 CTO:Chief Technology Officer的簡(jiǎn)稱,首席技術(shù)官 Director:總監(jiān)
HR:Human resource的簡(jiǎn)稱,人力資源部
CS:Customer service的簡(jiǎn)稱,客戶服務(wù)部門 MIS:公司辦公網(wǎng)絡(luò)和辦公設(shè)備管理人員
Teamleader:團(tuán)隊(duì)領(lǐng)導(dǎo)
PM:Project Manager的簡(jiǎn)稱,項(xiàng)目經(jīng)理
Sales:銷售的,有時(shí)候代表銷售人員
Engineer :工程師
Parttime:臨時(shí)員工,或者叫兼職工作人員
第二篇:PHP程序員應(yīng)該掌握的10項(xiàng)技能!
一個(gè)PHP程序員應(yīng)該掌握的10項(xiàng)技能!
很多學(xué)PHP的人一直也搞不清楚,一個(gè)PHP程序員和Java程序員或者是.net程序員有什么不同,告訴你,其實(shí)都一樣!沒(méi)有什么不同,下面的內(nèi)容,就是針對(duì)一個(gè)Java程序員掌握的技能對(duì)比PHP來(lái)說(shuō)的!告訴你,它們其實(shí)是一樣的,不過(guò)是工具而已,沒(méi)有高低貴賤之分。只不過(guò)你不熟練,不知道而已!
1、語(yǔ)法:必須比較熟悉,在寫代碼的時(shí)候IDE的編輯器對(duì)某一行報(bào)錯(cuò)應(yīng)該能夠根據(jù)報(bào)錯(cuò)信息知道是什么樣的語(yǔ)法錯(cuò)誤并且知道任何修正。
2、命令:必須熟悉PHP帶的一些常用命令及其常用選項(xiàng),熟悉那些命令,自己運(yùn)行php.exe-h 如果這些命令你沒(méi)有全部使用過(guò),那么你對(duì)PHP實(shí)際上還很不了解。
3、工具:必須至少熟練使用一種IDE的開(kāi)發(fā)工具,例如:Eclipse、Netbeans、zend或者editplus,ultraedit,包括進(jìn)行工程管理、常用選項(xiàng)的設(shè)置、PHP插件的安裝配置以及進(jìn)行調(diào)試。
4、API:PHP的核心API是非常龐大的,但是有一些內(nèi)容筆者認(rèn)為是必須熟悉的,否則不可能熟練的運(yùn)用PHP,包括:
◆ 文件目錄處理函數(shù)包80%以上的函數(shù)的功能的靈活運(yùn)用。
◆ 日期時(shí)間函數(shù)中的80%以上的函數(shù)的功能的靈活運(yùn)用
◆ 數(shù)學(xué)函數(shù)庫(kù)中的100%的內(nèi)容。
◆ 網(wǎng)絡(luò)庫(kù)中的60%以上的內(nèi)容,對(duì)各個(gè)函數(shù)的功能比較熟悉。
◆ 字符串處理函數(shù)下的60%以上的內(nèi)容,特別是各種處理函數(shù)。
◆ 正則表達(dá)式函數(shù)下的90%以上的內(nèi)容,特別是各種正則處理
◆ 一些安全庫(kù)下的40%以上的內(nèi)容,如果對(duì)于安全沒(méi)有接觸的話根本就不可能掌握PHP
◆ XML處理,熟悉SAX、DOM以及JDOM的優(yōu)缺點(diǎn)并且能夠使用其中的一種完成XML的解析及內(nèi)容處理。
◆ 圖形圖像函數(shù)庫(kù)下的80%以上的內(nèi)容,特別是一些圖像生成和處理
◆ MySQL 數(shù)據(jù)庫(kù)函數(shù)下的90%以上的內(nèi)容,特別是處理各種數(shù)據(jù)的函數(shù)
◆ 數(shù)組處理函數(shù)下的90%以上的內(nèi)容,特別是各種操作處理函數(shù)
◆ 其它PEAR,PECL,和一些擴(kuò)展類庫(kù)中的80%以上的內(nèi)容,特別是一些常用的類的處理
◆ 針對(duì)不同的需求,查找不同的函數(shù)庫(kù)。
5、測(cè)試:必須熟悉使用phpunit編寫測(cè)試用例完成代碼的自動(dòng)測(cè)試。
6、管理:必須熟悉使用xinc, phing等完成工程管理的常用任務(wù),例如工程編譯、生成phpdoc、生成、版本控制、自動(dòng)測(cè)試。
7、排錯(cuò):應(yīng)該可以根據(jù)異常信息比較快速的定位問(wèn)題的原因和大致位置。
8、思想:必須掌握OOP的主要要求,這樣使用PHP開(kāi)發(fā)的系統(tǒng)才能是真正的PHP系統(tǒng)。
9、規(guī)范:編寫的代碼必須符合流行的編碼規(guī)范,這樣程序的可讀性才比較好。
10、博學(xué):掌握OOA、OOD、MS SQL Server、Oracle、Zendframework、cakephp、symfony、模板技術(shù)等流行技術(shù),掌握軟件架構(gòu)設(shè)計(jì)思想、搜索引擎優(yōu)化、緩存系統(tǒng)設(shè)計(jì)、網(wǎng)站負(fù)載均衡、系統(tǒng)性能調(diào)優(yōu)等實(shí)用技術(shù)。
綜合上述,沒(méi)發(fā)現(xiàn)PHP和java有什么不同!PHP和Java,還是.net一樣要學(xué)的東西有很多!
推薦格言:
浮躁的人容易說(shuō):PHP語(yǔ)言不行,應(yīng)該學(xué)Java,C#,VB.NET:--是你自己不行了吧!?
浮躁的人容易問(wèn):PHP和Java,C#,VB.NET哪個(gè)好;--告訴你吧,都好--只要你學(xué)好就行;
浮躁的人容易問(wèn):我到底該學(xué)什么:--別問(wèn),學(xué)就對(duì)了;
浮躁的人容易問(wèn):PHP有錢途嗎:--建議你去強(qiáng)銀行
專家建議:
如果可選的語(yǔ)言有好幾種,那么,選擇其中學(xué)習(xí)難度最小的一種。
不要輕信廣告,不要輕信媒體。唯一可以相信的是你的市場(chǎng)。
個(gè)人可以喜歡一種、兩種甚至好幾種語(yǔ)言,但一定不要排斥其他任何一種語(yǔ)言
第三篇:熟練的Java程序員應(yīng)該掌握哪些技術(shù)?
熟練的Java程序員應(yīng)該掌握哪些技術(shù)?
Java程序員應(yīng)該掌握哪些技術(shù)才能算是脫離菜鳥(niǎo)達(dá)到熟練的程度?
1、語(yǔ)法:Java程序員必須比較熟悉語(yǔ)法,在寫代碼的時(shí)候IDE的編輯器對(duì)某一行報(bào)錯(cuò)應(yīng)該能夠根據(jù)報(bào)錯(cuò)信息 知道是什么樣的語(yǔ)法錯(cuò)誤并且知道任何修正。
2、命令:必須熟悉JDK帶的一些常用命令及其常用選項(xiàng),命令至少需要熟悉:appletviewer、HtmlConverter、jar、、javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒(méi)有全部使用過(guò),那么你對(duì)java 實(shí)際上還很不了解。
3、工具 :必須至少熟練使用一種IDE的開(kāi)發(fā)工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進(jìn)行工程管理、常用選項(xiàng)的設(shè)置、插件的安裝配置以及進(jìn)行調(diào)試。
4、API:Java的核心API是非常龐大的,但是有一些內(nèi)容筆者認(rèn)為是Java程序員必須熟悉的,否則不可能熟練的運(yùn)用Java,包括:
java.lang包下的80%以上的類的功能的靈活運(yùn)用。
java.util包下的80%以上的類的靈活運(yùn)用,特別是集合類體系、規(guī)則 表達(dá)式、zip、以及時(shí)間、隨機(jī)數(shù)、屬性、資源和Timer.java.io包下的60%以上的類的使用,理解IO體系的基于管道模型的設(shè)計(jì)思路以及常用IO類的特性和使用場(chǎng)合。
java.math包下的100%的內(nèi)容。
java.net包下的60%以上的內(nèi)容,對(duì)各個(gè)類的功能比較熟悉。
java.text包下的60%以上的內(nèi)容,特別是各種格式化類。
熟練運(yùn)用JDBC.8)、java.security包下40%以上的內(nèi)容,如果對(duì)于安全沒(méi)有接觸的話根本就不可能掌握java.AWT的基本內(nèi)容,包括各種組件事件、監(jiān)聽(tīng)器、布局管理器、常用組件、打印。Swing的基本內(nèi)容,和AWT的要求類似。
XML處理,熟悉SAX、DOM以及JDOM的優(yōu)缺點(diǎn)并且能夠使用其中的一種完成XML的解析及內(nèi)容處理。
5、測(cè)試 :必須熟悉使用junit編寫測(cè)試用例完成代碼的自動(dòng)測(cè)試。
6、管理:Java程序員必須熟悉使用ant完成工程管理的常用任務(wù),例如工程編譯、生成javadoc、生成jar、版本控制、自動(dòng)測(cè)試。
7、排錯(cuò):應(yīng)該可以根據(jù)異常信息比較快速的定位問(wèn)題的原因和大致位置。
8、思想:必須掌握OOP的主要要求,這樣使用Java開(kāi)發(fā)的系統(tǒng)才能是真正的Java系統(tǒng)。
9、規(guī)范:編寫的代碼必須符合流行的編碼規(guī)范,例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個(gè)單詞一般是動(dòng)詞,包名全部小寫等,這樣程序的可讀性才比較好。
10、博學(xué):Java程序員除了精通Java意外,還要掌握J(rèn)2EE、Oracle、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技術(shù),掌握軟件架構(gòu)設(shè)計(jì)思想、搜索 引擎優(yōu)化、緩存系統(tǒng)設(shè)計(jì)、網(wǎng)站負(fù)載均衡、系統(tǒng)性能調(diào)優(yōu)等。
第四篇:中高級(jí)PHP程序員應(yīng)該掌握哪些技術(shù)[最終版]
網(wǎng)站建設(shè)定制專家www.tmdps.cn
中高級(jí)PHP程序員應(yīng)該掌握哪些技術(shù)? 中級(jí)PHP程序員
1.Linux 能夠流暢的使用Shell腳本來(lái)完成很多自動(dòng)化的工作;awk/sed/perl 也操作的不錯(cuò),能夠完成很多文本處理和數(shù)據(jù)統(tǒng)計(jì)等工作;基本能夠安裝大 部分非特殊的Linux程序(包括各種庫(kù)、包、第三方依賴等等,比如MongoDB/Redis/Sphinx/Luncene/SVN之類的);了解基 本的Linux服務(wù),知道如何查看Linux的性能指標(biāo)數(shù)據(jù),知道基本的Linux下面的問(wèn)題跟蹤等
2.Nginx:
在第一階段的基礎(chǔ)上面,了解復(fù)雜一些的Nginx配置;包括多核配置、events、proxy_pass,sendfile/tcp_*配置,知道超 時(shí)等相關(guān)配置和性能影響;知道nginx除了web server,還能夠承擔(dān)代理服務(wù)器、反向靜態(tài)服務(wù)器等配置;知道基本的nginx配置調(diào)優(yōu);知道如 何配置權(quán)限、編譯一個(gè)nginx擴(kuò)展到nginx;知道基本的nginx運(yùn)行原理(master/worker機(jī)制,epoll),知道為什么nginx 性能比apache性能好等知識(shí);
3.MySQL/MongoDB:
在第一階段的基礎(chǔ)上面,在MySQL開(kāi)發(fā)方面,掌握很多小技巧,包括常規(guī)SQL優(yōu)化(group by/order by/rand優(yōu)化等);除了能夠搭 建MySQL,還能夠冷熱備份MySQL數(shù)據(jù),還知道影響innodb/myisam性能的配置選項(xiàng)(比如key_buffer/query_cache /sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等),也知 道這些選項(xiàng)配置成為多少值合適;另外也了解一些特殊的配置選項(xiàng),比如 知道如何搭建mysql主從同步的環(huán)境,知道各個(gè)binlog_format的區(qū) 別;知道MySQL的性能追查,包括slow_log/explain等,還能夠知道基本的索引建立處理等知識(shí);原理方面了解基本的MySQL的架構(gòu)(Server+存儲(chǔ)引擎),知道基本的InnoDB/MyISAM索引存儲(chǔ)結(jié)構(gòu)和不同(聚簇索引,B樹(shù));知道基本的InnoDB事務(wù)處理機(jī)制;了解大 部分MySQL異常情況的處理方案(或者知道哪兒找到處理方案)。條件允許的情況,建議了解一下NoSQL的代表MongoDB數(shù)據(jù)庫(kù),順便對(duì)比跟 MySQL的差別,同事能夠在合適的應(yīng)用場(chǎng)景安全謹(jǐn)慎的使用MongoDB,知道基本的PHP與MongoDB的結(jié)合開(kāi)發(fā)。
4.Redis/Memcached:
在大部分中型系統(tǒng)里面一定會(huì)涉及到緩存處理,所以一定要了解基本的緩存;知道Memcached和Redis的異同和應(yīng)用場(chǎng)景,能夠獨(dú)立安 裝 Redis/Memcached,了解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他們的使用結(jié)合;Redis了解 基本工作原理和使用,了解常規(guī)的數(shù)據(jù)類型,知道什么場(chǎng)景應(yīng)用什么類型,了解Redis的事務(wù)等等。原理部分,能夠大概了解Memcached的內(nèi)存結(jié)構(gòu)(slab機(jī)制),redis就了解常用數(shù)據(jù)類型底層實(shí)現(xiàn)存儲(chǔ)結(jié)構(gòu)(SDS/鏈表/SkipList/HashTable)等等,順便了解一下Redis 的事務(wù)、RDB、AOF等機(jī)制更好 網(wǎng)站建設(shè)定制專家www.tmdps.cn
5.PHP:
除了第一階段的能力,安裝配置方面能夠隨意安裝PHP和各種第三方擴(kuò)展的編譯安裝配置;了解php-fpm的大部分配置選項(xiàng)和含義(如 max_requests/max_children/request_terminate_timeout之類的影響性能的配置),知道m(xù)od_php /fastcgi的區(qū)別;在PHP方面已經(jīng)能夠熟練各種基礎(chǔ)技術(shù),還包括各種深入些的PHP,包括對(duì)PHP面向?qū)ο蟮纳钊肜斫?SPL/語(yǔ)法層面的特殊特 性比如反射之類的;在框架方面已經(jīng)閱讀過(guò)最少一個(gè)以上常規(guī)PHP MVC框架的代碼了,知道基本PHP框架內(nèi)部實(shí)現(xiàn)機(jī)制和設(shè)計(jì)思想;在PHP開(kāi)發(fā)中已經(jīng)能 夠熟練使用常規(guī)的設(shè)計(jì)模式來(lái)應(yīng)用開(kāi)發(fā)(抽象工廠/單例/觀察者/命令鏈/策略/適配器 等模式);建議開(kāi)發(fā)自己的PHP MVC框架來(lái)充分讓開(kāi)發(fā)自由化,讓自己深入理解MVC模式,也讓自己能夠在業(yè)務(wù)項(xiàng)目開(kāi)發(fā)里快速升級(jí);熟悉PHP的各種代碼優(yōu)化方法,熟悉大部分PHP安全方面問(wèn)題的解決處理;熟悉基本的 PHP執(zhí)行的機(jī)制原理(Zend引擎/擴(kuò)展基本工作機(jī)制);
6.系統(tǒng)設(shè)計(jì):
能夠設(shè)計(jì)大部分中型系統(tǒng)的網(wǎng)站架構(gòu)、數(shù)據(jù)庫(kù)、基本PHP框架選型;性能測(cè)試排查處理等;能夠完成類似:瀏覽 器-> CDN(Squid)-> Nginx+PHP-> 緩存-> 數(shù)據(jù)庫(kù) 結(jié)構(gòu)網(wǎng)站的基本設(shè)計(jì)開(kāi)發(fā)維護(hù);能夠支撐 每天數(shù)百萬(wàn)到千萬(wàn)流量基本網(wǎng)站的開(kāi)發(fā)維護(hù)工作;
高級(jí)PHP程序員
重點(diǎn):除了基本的LNMP程序,還能夠在某個(gè)方向或領(lǐng)域有深入學(xué)習(xí)。(縱深維度發(fā)展)
目標(biāo):除了能夠完成基本的PHP業(yè)務(wù)開(kāi)發(fā),還能夠解決大部分深入復(fù)雜的技術(shù)問(wèn)題,并且可以獨(dú)立設(shè)計(jì)完成中大型的系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)工作;自己能夠獨(dú)立hold深入某個(gè)技術(shù)方向,在這塊比較專業(yè)。(比如在MySQL、Nginx、PHP、Redis等等任一方向深入研究)
1.Linux:
除了第二階段的能力,在Linux下面除了常規(guī)的操作和性能監(jiān)控跟蹤,還能夠使用很多高級(jí)復(fù)雜的命令完成工作(watch/tcpdump/starce /ldd/ar等);在shell腳本方面,已經(jīng)能夠編寫比較復(fù)雜的shell腳本(超過(guò)500行)來(lái)協(xié)助完成很多包括備份、自動(dòng)化處理、監(jiān)控等工作的 shell;對(duì)awk/sed/perl 等應(yīng)用已經(jīng)如火純青,能夠隨意操作控制處理文本統(tǒng)計(jì)分析各種復(fù)雜格式的數(shù)據(jù);對(duì)Linux內(nèi)部機(jī)制有一些了解,對(duì)內(nèi)核模塊加載,啟動(dòng)錯(cuò)誤處理等等有個(gè)基本的處理;同時(shí)對(duì)一些其他相關(guān)的東西也了解,比如NFS、磁盤管理等等;
2.Nginx:
在第二階段的基礎(chǔ)上面,已經(jīng)能夠把Nginx操作的很熟練,能夠?qū)ginx進(jìn)行更深入的運(yùn)維工作,比如監(jiān)控、性能優(yōu)化,復(fù)雜問(wèn)題處理等等;看個(gè)人興趣,更多方面可以考慮側(cè)重在關(guān)于Nginx工作原理部分的深入學(xué)習(xí),主要表現(xiàn)在閱讀源碼開(kāi)始,比如具體的master/worker工作機(jī)制,Nginx內(nèi)部 的事件處理,內(nèi)存管理等等;同時(shí)可以學(xué)習(xí)Nginx擴(kuò)展的開(kāi)發(fā),可以定制一些自己私有的擴(kuò)展;同時(shí)可以對(duì)Nginx+Lua有一定程度的了解,看看網(wǎng)站建設(shè)定制專家www.tmdps.cn
是否可 以結(jié)合應(yīng)用出更好模式;這個(gè)階段的要求是對(duì)Nginx原理的深入理解,可以考慮成為Nginx方向的深入專業(yè)者。
3.MySQL/MongoDB:
在第二階段的基礎(chǔ)上面,在MySQL應(yīng)用方面,除了之前的基本SQL優(yōu)化,還能夠在完成一些復(fù)雜操作,比如大批量數(shù)據(jù)的導(dǎo)入導(dǎo)出,線上大批量數(shù)據(jù)的更改表 結(jié)構(gòu)或者增刪索引字段等等高危操作;除了安裝配置,已經(jīng)能夠處理更多復(fù)雜的MySQL的問(wèn)題,比如各種問(wèn)題的追查,主從同步延遲問(wèn)題的解決、跨機(jī)房同步數(shù) 據(jù)方案、MySQL高可用架構(gòu)等都有涉及了解;對(duì)MySQL應(yīng)用層面,對(duì)MySQL的核心關(guān)鍵技術(shù)比較熟悉,比如事務(wù)機(jī)制(隔離級(jí)別、鎖等)、對(duì)觸發(fā)器、分區(qū)等技術(shù)有一定了解和應(yīng)用;對(duì)MySQL性能方面,有包括磁盤優(yōu)化(SAS遷移到SSD)、服務(wù)器優(yōu)化(內(nèi)存、服務(wù)器本身配置)、除了二階段的其他核心 性能優(yōu)化選項(xiàng)(innodb_log_buffer_size/back_log/table_open_cache /thread_cache_size/innodb_lock_wait_timeout等)、連接池軟件選擇應(yīng)用,對(duì)show *(show status/show profile)類的操作語(yǔ)句有深入了解,能夠完成大部分的性能問(wèn)題追查;MySQL備份技術(shù)的深入熟悉,包括災(zāi)備 還原、對(duì)Binlog的深入理解,冷熱備份,多IDC備份等;在MySQL原理方面,有更多了解,比如對(duì)MySQL的工作機(jī)制開(kāi)始閱讀部分源碼,比如對(duì)主 從同步(復(fù)制)技術(shù)的源碼學(xué)習(xí),或者對(duì)某個(gè)存儲(chǔ)引擎(MyISAM/Innodb/TokuDB)等等的源碼學(xué)習(xí)理解,如果條件允許,可以參考CSV引擎 開(kāi)發(fā)自己簡(jiǎn)單的存儲(chǔ)引擎來(lái)保存一些數(shù)據(jù),增強(qiáng)對(duì)MySQL的理解;在這個(gè)過(guò)程,如果自己有興趣,也可以考慮往DBA方向發(fā)展。MongoDB層面,可以考 慮比如說(shuō)在寫少讀多的情況開(kāi)始在線上應(yīng)用MongoDB,或者是做一些線上的數(shù)據(jù)分析處理的操作,具體場(chǎng)景可以按照工作來(lái),不過(guò)核心是要更好的深入理解 RMDBS和NoSQL的不同場(chǎng)景下面的應(yīng)用,如果條件或者興趣允許,可以開(kāi)始深入學(xué)習(xí)一下MongoDB的工作機(jī)制。
4.Redis/Memcached:
在第二階段的基礎(chǔ)上面,能夠更深入的應(yīng)用和學(xué)習(xí)。因?yàn)镸emcached不是特別復(fù)雜,建議可以把源碼進(jìn)行閱讀,特別是內(nèi)存管理部分,方便深入理 解;Redis部分,可以多做一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的應(yīng)用(zset來(lái)做排行榜排序操作/事務(wù)處理用來(lái)保證原子性在秒殺類場(chǎng)景應(yīng)用之類的使用操作);多涉及 aof等同步機(jī)制的學(xué)習(xí)應(yīng)用,設(shè)計(jì)一個(gè)高可用的Redis應(yīng)用架構(gòu)和集群;建議可以深入的學(xué)習(xí)一下Redis的源碼,把在第二階段積累的知識(shí)都可以應(yīng)用 上,特別可以閱讀一下包括核心事件管理、內(nèi)存管理、內(nèi)部核心數(shù)據(jù)結(jié)構(gòu)等充分學(xué)習(xí)了解一下。如果興趣允許,可以成為一個(gè)Redis方面非常專業(yè)的使用者。
5.PHP:
作為基礎(chǔ)核心技能,我們?cè)诘诙A段的基礎(chǔ)上面,需要有更深入的學(xué)習(xí)和應(yīng)用。從基本代碼應(yīng)用上面來(lái)說(shuō),能夠解決在PHP開(kāi)發(fā)中遇到95%的問(wèn)題,了解大部分 PHP的技巧;對(duì)大部分的PHP框架能夠迅速在一天內(nèi)上手使用,并且了解各個(gè)主流PHP框架的優(yōu)缺點(diǎn),能夠迅速方便項(xiàng)目開(kāi)發(fā)中做技術(shù)選型;在配置方面,除 了常規(guī)第二階段會(huì)的知識(shí),會(huì)了解一些比較偏門的配置選項(xiàng)(php auto_prepend_file/auto_append_file),包括擴(kuò)展中 的一些復(fù)雜高級(jí)配置和原理(比如memcached擴(kuò)展配置中的memcache.hash_strategy、apc擴(kuò)展配置中的 apc.mmap_file_mask/apc.slam_defense/apc.file_update_protection之類的);對(duì)php的 工網(wǎng)站建設(shè)定制專家www.tmdps.cn
作機(jī)制比較了解,包括php-fpm工作機(jī)制(比如php-fpm在不同配置機(jī)器下面開(kāi)啟進(jìn)程數(shù)量計(jì)算以及原理),對(duì)zend引擎有基本熟悉(vm/gc/stream處理),閱讀過(guò)基本的PHP內(nèi)核源碼(或者閱讀過(guò)相關(guān)文章),對(duì)PHP內(nèi)部機(jī)制的大部分核心數(shù)據(jù)結(jié)構(gòu)(基礎(chǔ)類型/Array /Object)實(shí)現(xiàn)有了解,對(duì)于核心基礎(chǔ)結(jié)構(gòu)(zval/hashtable/gc)有深入學(xué)習(xí)了解;能夠進(jìn)行基本的PHP擴(kuò)展開(kāi)發(fā),了解一些擴(kuò)展開(kāi)發(fā) 的中高級(jí)知識(shí)(minit/rinit等),熟悉php跟apache/nginx不同的通信交互方式細(xì)節(jié)(mod_php/fastcgi);除了開(kāi)發(fā) PHP擴(kuò)展,可以考慮學(xué)習(xí)開(kāi)發(fā)Zend擴(kuò)展,從更底層去了解PHP。
6.C/C++:
在第二階段基礎(chǔ)上面,能夠在C/C++語(yǔ)言方面有更深入的學(xué)習(xí)了解,能夠完成中小型C/C++系統(tǒng)的開(kāi)發(fā)工作;除了基本第二階段的基礎(chǔ)C/C++語(yǔ)法和數(shù) 據(jù)結(jié)構(gòu),也能夠?qū)W習(xí)一些特殊數(shù)據(jù)結(jié)構(gòu)(b-tree/rb-tree/skiplist/lsm-tree/trie-tree等)方便在特殊工作中需 求;在系統(tǒng)編程方面,熟悉多進(jìn)程、多線程編程;多進(jìn)程情況下面了解大部分多進(jìn)程之間的通信方式,能夠靈活選擇通信方式(共享內(nèi)存/信號(hào)量/管道等);多線 程編程能夠良好的解決鎖沖突問(wèn)題,并且能夠進(jìn)行多線程程序的開(kāi)發(fā)調(diào)試工作;同時(shí)對(duì)網(wǎng)絡(luò)編程比較熟悉,了解多進(jìn)程模型/多線程模型/異步網(wǎng)絡(luò)IO模型的差別 和選型,熟悉不同異步網(wǎng)絡(luò)IO模型的原理和差異(select/poll/epoll/iocp等),并且熟悉常見(jiàn)的異步框架(ACE/ICE /libev/libevent/libuv/Boost.ASIO等)和使用,如果閑暇也可以看看一些國(guó)產(chǎn)自己開(kāi)發(fā)的庫(kù)(比如muduo);同時(shí)能夠設(shè) 計(jì)好的高并發(fā)程序架構(gòu)(leader-follow/master-worker等);了解大部分C/C++后端Server開(kāi)發(fā)中的問(wèn)題(內(nèi)存管理、日 志打印、高并發(fā)、前后端通信協(xié)議、服務(wù)監(jiān)控),知道各個(gè)后端服務(wù)RPC通信問(wèn)題(struct/http/thirft/protobuf等);能夠更熟 絡(luò)的使用GCC和GDB來(lái)開(kāi)發(fā)編譯調(diào)試程序,在線上程序core掉后能夠迅速追查跟蹤解決問(wèn)題;通用模塊開(kāi)發(fā)方面,可以積累或者開(kāi)發(fā)一些通用的工具或庫(kù)(比如異步網(wǎng)絡(luò)框架、日志庫(kù)、內(nèi)存池、線程池等),不過(guò)開(kāi)發(fā)后是否應(yīng)用要謹(jǐn)慎,省的埋坑去追bug;
7.前端:
深入了解HTTP協(xié)議(包括各個(gè)細(xì)致協(xié)議特殊協(xié)議代碼和背后原因,比如302靜態(tài)文件緩存了,502是nginx后面php掛了之類的);除了之前的前端 方面的各種框架應(yīng)用整合能力,前端方面的學(xué)習(xí)如果有興趣可以更深入,表現(xiàn)形式是,可以自己開(kāi)發(fā)一些類似jQuery的前端框架,或者開(kāi)發(fā)一個(gè)富文本編輯器 之類的比較瑣碎考驗(yàn)JavaScript功力;
8.其他領(lǐng)域語(yǔ)言學(xué)習(xí):
在基礎(chǔ)的PHP/C/C++語(yǔ)言方面有基本積累,建議在當(dāng)前階段可以嘗試學(xué)習(xí)不同的編程語(yǔ)言,看個(gè)人興趣愛(ài)好,腳本類語(yǔ)言可以學(xué)學(xué) Python /Ruby 之類的,函數(shù)式編程語(yǔ)言可以試試 Lisp/Haskell/Scala/Erlang 之類的,靜態(tài)語(yǔ)言可以試試 Java /Golang,數(shù)據(jù)統(tǒng)計(jì)分析可以了解了解R語(yǔ)言,如果想換個(gè)視角做后端業(yè)務(wù),可以試試 Node.js還有前面提到的跟Nginx結(jié)合的 Nginx_Lua等。學(xué)習(xí)不同的語(yǔ)言主要是提升自己的視野和解決問(wèn)題手段的差異,比如會(huì)了解除了進(jìn)程/線程,還有輕量級(jí)協(xié)程;比如在跨機(jī)器通信場(chǎng)景下 面,Erlang的解決方案簡(jiǎn)單的驚人;比如在不想選擇C/C++的情況下,還有類似高效的Erlang/Golang可用等等;主要是提升視野。網(wǎng)站建設(shè)定制專家www.tmdps.cn
9.其他專業(yè)方向?qū)W習(xí):
在本階段里面,會(huì)除了基本的LNMP技能之外,會(huì)考慮一些其他領(lǐng)域知識(shí)的學(xué)習(xí),這些都是可以的,看個(gè)人興趣和長(zhǎng)期的目標(biāo)方向。目前情況能夠選擇的領(lǐng)域比較 多,比如、云計(jì)算(分布式存儲(chǔ)、分布式計(jì)算、虛擬機(jī)等),機(jī)器學(xué)習(xí)(數(shù)據(jù)挖掘、模式識(shí)別等,應(yīng)用到統(tǒng)計(jì)、個(gè)性化推薦),自然語(yǔ)言處理(中文分詞等),搜索 引擎技術(shù)、圖形圖像、語(yǔ)音識(shí)別等等。除了這些高大上的,也有很多偏工程方面可以學(xué)習(xí)的地方,比如高性能系統(tǒng)、移動(dòng)開(kāi)發(fā)(Android/IOS)、計(jì)算機(jī) 安全、嵌入式系統(tǒng)、硬件等方向。
10.系統(tǒng)設(shè)計(jì):
系統(tǒng)設(shè)計(jì)在第二階段的基礎(chǔ)之上,能夠應(yīng)用掌握的經(jīng)驗(yàn)技能,設(shè)計(jì)出比較復(fù)雜的中大型系統(tǒng),能夠解決大部分線上的各種復(fù)雜系統(tǒng)的問(wèn)題,完成類似 瀏覽 器-> CDN-> 負(fù)載均衡->接入層-> Nginx+PHP-> 業(yè)務(wù)緩存-> 數(shù)據(jù) 庫(kù)-> 各路復(fù)雜后端RPC交互(存儲(chǔ)后端、邏輯后端、反作弊后端、外部服務(wù))-> 更多后端 醬紫的復(fù)雜業(yè)務(wù);能夠支撐每天數(shù)千萬(wàn)到數(shù) 億流量網(wǎng)站的正常開(kāi)發(fā)維護(hù)工作。
第五篇:JAVA程序員應(yīng)該掌握的10項(xiàng)技能
www.tmdps.cn JAVA程序員應(yīng)該掌握的10項(xiàng)技能
作為一個(gè)Java程序員,應(yīng)該掌握的一些技能:
1、語(yǔ)法:必須比較熟悉,在寫代碼的時(shí)候IDE的編輯器對(duì)某一行報(bào)錯(cuò)應(yīng)該能夠根據(jù)報(bào)錯(cuò)信息知道是什么樣的語(yǔ)法錯(cuò)誤并且知道任何修正。
2、命令:必須熟悉JDK帶的一些常用命令及其常用選項(xiàng),命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒(méi)有全部使用過(guò),那么你對(duì)java實(shí)際上還很不了解。
3、工具:必須至少熟練使用一種IDE的開(kāi)發(fā)工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進(jìn)行工程管理、常用選項(xiàng)的設(shè)置、插件的安裝配置以及進(jìn)行調(diào)試。
4、API:Java的核心API是非常龐大的,但是有一些內(nèi)容筆者認(rèn)為是必須熟悉的,否則不可能熟練的運(yùn)用Java,包括:
◆java.lang包下的80%以上的類的功能的靈活運(yùn)用。
◆java.util包下的80%以上的類的靈活運(yùn)用,特別是集合類體系、規(guī)則表達(dá)式、zip、以及時(shí)間、隨機(jī)數(shù)、屬性、資源和Timer.◆java.io包下的60%以上的類的使用,理解IO體系的基于管道模型的設(shè)計(jì)思路以及常用IO類的特性和使用場(chǎng)合。
◆java.math包下的100%的內(nèi)容。
◆java.net包下的60%以上的內(nèi)容,對(duì)各個(gè)類的功能比較熟悉。
◆java.text包下的60%以上的內(nèi)容,特別是各種格式化類。
◆熟練運(yùn)用JDBC.8)、java.security包下40%以上的內(nèi)容,如果對(duì)于安全沒(méi)有接觸的話根本就不可能掌握java.◆AWT的基本內(nèi)容,包括各種組件事件、監(jiān) 聽(tīng)器、布局管理器、常用組件、打印。
◆Swing的基本內(nèi)容,和AWT的要求類似。
◆XML處理,熟悉SAX、DOM以及JDOM的優(yōu)缺點(diǎn)并且能夠使用其中的一種完成XML的解析及內(nèi)容處理。
www.tmdps.cn
5、測(cè)試:必須熟悉使用junit編寫測(cè)試用例完成代碼的自動(dòng)測(cè)試。
6、管理:必須熟悉使用ant完成工程管理的常用任務(wù),例如工程編譯、生成javadoc、生成jar、版本控制、自動(dòng)測(cè)試。
7、排錯(cuò):應(yīng)該可以根據(jù)異常信息比較快速的定位問(wèn)題的原因和大致位置。
8、思想:必須掌握OOP的主要要求,這樣使用Java開(kāi)發(fā)的系統(tǒng)才能是真正的Java系統(tǒng)。
9、規(guī)范:編寫的代碼必須符合流行的編碼規(guī)范,例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個(gè)單詞一般是動(dòng)詞,包名全部小寫等,這樣程序的可讀性才比較好。
(ps:本文章由北大青鳥(niǎo)廣安門校區(qū)搜集自互聯(lián)網(wǎng))