六星云課堂:成為一個(gè)合格的程序員,需要具備哪些能力?

要想成為一個(gè)合格的程序員,你還需要具備哪些能力呢?

1.熟練開發(fā)工具
作為程序員,至少熟練掌握了2~3種開發(fā)工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點(diǎn)推薦的開發(fā)工具,C/C++以其高效率和高靈活性成為開發(fā)工具的工具,很多系統(tǒng)級(jí)軟件都是C/C++。
JAVA的跨平臺(tái)和與WEB的良好結(jié)合是JAVA的優(yōu)勢(shì),JAVA是其相關(guān)技術(shù)集JAVAOne很可能成為未來的主流開發(fā)工具之一。
其次,如果能夠掌握VB、PowerBuilder、Delphi、CBuilder等簡(jiǎn)單的可視化開發(fā)工具,這些開發(fā)工具可以減少開發(fā)難度,加強(qiáng)程序員對(duì)象模型的概念。
此外,還需要掌握shell、perl等基本的腳本語(yǔ)言,至少可以閱讀這些腳本代碼。
2.熟悉數(shù)據(jù)庫(kù)
作為程序員,他們當(dāng)然有自己的理由。很多應(yīng)用程序以數(shù)據(jù)庫(kù)的數(shù)據(jù)為中心,數(shù)據(jù)庫(kù)的產(chǎn)品也很多,其中關(guān)系型數(shù)據(jù)庫(kù)仍然是主流形式,程序員至少熟練掌握一兩個(gè)數(shù)據(jù)庫(kù),關(guān)系型數(shù)據(jù)庫(kù)的重要因素非常清楚,必須熟練掌握SQL的基本語(yǔ)法。
許多數(shù)據(jù)庫(kù)產(chǎn)品提供了可視化的數(shù)據(jù)庫(kù)管理工具,但SQL是基礎(chǔ),是一種通用的數(shù)據(jù)庫(kù)操作方法。如果沒有機(jī)會(huì)接觸商業(yè)數(shù)據(jù)庫(kù)系統(tǒng),使用免費(fèi)數(shù)據(jù)庫(kù)產(chǎn)品是mySQL、Postgres等好選擇。
3.了解操作系統(tǒng)
目前主流的操作系統(tǒng)是Windows、Linux/Unix,需要熟練使用這些操作系統(tǒng),但只有這些還不夠。
要成為真正的編程名人,必須深刻理解操作系統(tǒng),理解存儲(chǔ)管理機(jī)制、過程/線程調(diào)度、信號(hào)、核對(duì)對(duì)象、系統(tǒng)調(diào)用、協(xié)議堆棧實(shí)現(xiàn)等。
Linux作為開發(fā)源代碼的操作系統(tǒng),是一個(gè)很好的學(xué)習(xí)平臺(tái),Linux幾乎具有所有現(xiàn)代操作系統(tǒng)的特點(diǎn)。Windows系統(tǒng)的核實(shí)機(jī)制的資料很少,但是通過互聯(lián)網(wǎng)可以得到很多資料。了解網(wǎng)絡(luò)協(xié)議TCP/IP。
在互聯(lián)網(wǎng)如此普及的今天,如果你還沒有掌握好互聯(lián)網(wǎng)的支持協(xié)議TCP/IP協(xié)議棧,就需要迅速補(bǔ)充這門課程,互聯(lián)網(wǎng)技術(shù)改變了軟件運(yùn)營(yíng)的模式。
從最初的客戶/服務(wù)器結(jié)構(gòu)到今天的WEBServices,再到未來的網(wǎng)格計(jì)算,這都離不開基于TCP/IP協(xié)議棧的網(wǎng)絡(luò)協(xié)議支持,需要深入掌握TCP/IP協(xié)議。
至少要了解ISO七層協(xié)議模式、IP/UDP/TCP/HTTP等常用協(xié)議的原理和三次握手機(jī)制。
4.了解DCOM/CORBA/XML/WEBServices存在的意義
隨著技術(shù)的發(fā)展,軟件與網(wǎng)絡(luò)的無(wú)縫結(jié)合是必然趨勢(shì),軟件系統(tǒng)的位置無(wú)關(guān)性是未來計(jì)算模式的重要特征之一,DCOM/CORBA是目前兩大主流分布計(jì)算的中間平臺(tái),DCOM是微軟COM(組件對(duì)象模型)的擴(kuò)展,CORBA是OMG支持的規(guī)范。
XML/WebServices的重要性不言而喻,XML以其結(jié)構(gòu)化的表達(dá)方式和超強(qiáng)的表達(dá)能力被稱為互聯(lián)網(wǎng)上的世界語(yǔ),是分布式計(jì)算的基礎(chǔ)之一。
5.請(qǐng)勿將軟件工程與CMM分離
在大型軟件系統(tǒng)的開發(fā)中,工程化的開發(fā)控制取代了個(gè)人英雄主義,成為軟件系統(tǒng)成功的保證,編程名人不一定是優(yōu)秀的程序員。
優(yōu)秀的程序員將優(yōu)秀的編程能力和開發(fā)技術(shù)與嚴(yán)格的軟件工程思想有機(jī)地結(jié)合起來,編程只是軟件生命周期的一環(huán),優(yōu)秀的程序員必須掌握軟件開發(fā)各階段的基本技能。
例如市場(chǎng)分析、可行性分析、需求分析、結(jié)構(gòu)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件測(cè)試等。
當(dāng)然,除了程序員必備的專業(yè)硬實(shí)力外,這些軟實(shí)力也可以幫助自己在職場(chǎng)走的更遠(yuǎn)。
項(xiàng)目管理能力
每一個(gè)程序員都有做PM的那一天,不管是要負(fù)責(zé)大項(xiàng)目還是小項(xiàng)目,都需要具備很好的項(xiàng)目管理能力才行。
有關(guān)如何預(yù)估風(fēng)險(xiǎn)、如何預(yù)估成本、如何保證項(xiàng)目按時(shí)上線、如何管理項(xiàng)目團(tuán)隊(duì),這些都是需要掌握的。出現(xiàn)一點(diǎn)差錯(cuò),都有可能導(dǎo)致項(xiàng)目出現(xiàn)風(fēng)險(xiǎn)甚至項(xiàng)目失敗。
項(xiàng)目管理這種事情,項(xiàng)目如期發(fā)布可能并沒有功勞,但是一旦項(xiàng)目出現(xiàn)bug,那就有罪過了。
不會(huì)項(xiàng)目管理的程序員,最多也就是一個(gè)高級(jí)程序員,無(wú)法晉升為專家及以上級(jí)別。

溝通協(xié)調(diào)能力
溝通也是一個(gè)非常重要的技能,在工作中經(jīng)常碰到溝通上的問題,往往因?yàn)闇贤òl(fā)生很多矛盾。
這一點(diǎn)會(huì)被很多程序員忽視,程序員多把職場(chǎng)競(jìng)爭(zhēng)力與自己的專業(yè)能力劃等號(hào),其實(shí)并不然,現(xiàn)在企業(yè)都是以協(xié)作模式為主,一個(gè)項(xiàng)目的完成都需要與其他部門相溝通,如何將自己的需求讓對(duì)方更好的理解,是我們需要掌握的技能。擁有較強(qiáng)的溝通能力,不僅方便自己工作,也提升團(tuán)隊(duì)合作的融洽度。
而且,還有很多公司的晉升制度是靠答辯的。如何能夠?qū)⒆约哼^去一段時(shí)間的工作成果和收獲表達(dá)清楚會(huì)在很大程度上決定著自己的晉升結(jié)果。技術(shù)人既要能做,也要會(huì)說。
職業(yè)規(guī)劃能力
如何看待自己在職業(yè)方面所取得的成就,以及自己在公司、行業(yè)內(nèi)的水平定位,是在每個(gè)階段需要弄清楚的事情。
在擁有一定年限的工作經(jīng)驗(yàn)后,如果沒有一定的職業(yè)認(rèn)知能力,會(huì)使得自己的職業(yè)判斷出現(xiàn)各式各樣的偏差或誤判。并且,一般在這個(gè)階段你需要帶領(lǐng)他人一起完成工作,如果沒有足夠的職業(yè)認(rèn)知,那么在帶人完成任務(wù)或團(tuán)隊(duì)組建上面或許會(huì)走彎路。
學(xué)習(xí)提升能力
當(dāng)今社會(huì)發(fā)展迅速,互聯(lián)網(wǎng)行業(yè)的變化更是日新月異,個(gè)人必須努力學(xué)習(xí)新知識(shí)、新技能,才能不被淘汰。未來各行各業(yè)對(duì)復(fù)合型人才的需求將不斷增加,例如,現(xiàn)在的產(chǎn)品運(yùn)營(yíng)已經(jīng)進(jìn)入數(shù)據(jù)運(yùn)營(yíng)時(shí)代,這就要求運(yùn)營(yíng)人員具備數(shù)據(jù)分析能力,來驅(qū)動(dòng)運(yùn)營(yíng)工作。
而且程序員的門檻有降低的趨勢(shì),許多半路出家的都能轉(zhuǎn)行互聯(lián)網(wǎng),長(zhǎng)江后浪不斷向前推,如果提升自己的價(jià)值,很容易被市場(chǎng)淘汰。
作為一名純技術(shù)人員是沒有出路的,必須善于學(xué)習(xí)各類新知識(shí),成為一名復(fù)合型人才,如上所說,程序員不能死磕代碼,團(tuán)隊(duì)管理能力、溝通表達(dá)能力和社會(huì)資源都是要學(xué)習(xí)積累的地方。只有站的更高才能被人看得見,被行業(yè)需要!
在 IT 行業(yè),技術(shù)迅速轉(zhuǎn)變、業(yè)務(wù)要求不斷變化,這使得重塑職業(yè)道路成為一個(gè)關(guān)乎生存的問題。
隨之互聯(lián)網(wǎng)的發(fā)展,越來越多的人涌入程序員這個(gè)賽道,競(jìng)爭(zhēng)日益激烈,加之新技術(shù)層出不窮,更新迭代快,程序員所使用的語(yǔ)言、框架、模式都會(huì)發(fā)生天翻地覆的變化。如果不主動(dòng)學(xué)習(xí),有可能很快就會(huì)被落伍淘汰。
避免自己在職場(chǎng)上走入死胡同,最穩(wěn)妥的辦法就是欣然接受新技術(shù),從不停止學(xué)習(xí)。
要想成為一個(gè)優(yōu)秀的程序員,基礎(chǔ)一定要打好,這就需要有優(yōu)秀的老師帶你,并且做好努力付出的準(zhǔn)備;其次,要有良好的項(xiàng)目實(shí)踐經(jīng)驗(yàn),有基礎(chǔ)有實(shí)踐,能力基本不會(huì)太差!
以上就是本次分享的全部?jī)?nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星云課堂!