南通青鳥(niǎo)IT教育告訴你要想成長(zhǎng)為一名優(yōu)秀的程序員,其過(guò)程是艱巨的,其道路是漫長(zhǎng)的。
不經(jīng)過(guò)悉心栽培,花兒開(kāi)不出鮮艷的花朵;不經(jīng)過(guò)時(shí)間的歷練,幼苗長(zhǎng)不成參天大樹(shù)。在軟件行業(yè)更是如此。
程序員必須具備的性格特點(diǎn)
最基本的要求是能自主地編程。只有在經(jīng)過(guò)多年的學(xué)習(xí)實(shí)踐之后,我們才能超越寫一些簡(jiǎn)短程序的基礎(chǔ)水平。而僅靠上課或者看書(shū)是做不成能力卓群的程序員的,不斷的練習(xí)和實(shí)踐才是*的正途。學(xué)校中那些所謂的CS程序課其實(shí)并不涉及如何編程,它主要教授的是理論,這和很多外行人的想法相悖。
作為一個(gè)程序員,還得有執(zhí)著鉆研的精神,能做到不懈地排除故障、開(kāi)發(fā)軟件和修復(fù)bug。特別是某個(gè)階段經(jīng)常會(huì)有毫無(wú)進(jìn)展的感覺(jué),而這個(gè)時(shí)候唯有堅(jiān)忍不拔的品質(zhì)才能支持我們排除萬(wàn)難再接再厲。這也是一道門檻,將很多不具備這一品格的程序員攔之門外。
擅長(zhǎng)數(shù)學(xué),善于解決問(wèn)題。編程就是解決問(wèn)題的過(guò)程。
有很棒的短期(和長(zhǎng)期)記憶能力。這樣就能在大腦中同時(shí)處理多個(gè)事情,并且記得月前自己寫過(guò)什么代碼。
超強(qiáng)的理解能力。理解事物是如何相互作用的,理解為什么這么設(shè)計(jì)和架構(gòu)的原因。
關(guān)注細(xì)節(jié)。在編程中真正演繹了什么叫做細(xì)節(jié)決定成敗的真理。在某處忘寫了一個(gè)分號(hào)?程序就不會(huì)編譯!拼錯(cuò)了某個(gè)函數(shù)名?那你的程序的運(yùn)行結(jié)果可能就會(huì)與你原先設(shè)想的大相徑庭。
上述性格特點(diǎn)方面的要求就像大浪淘沙一樣會(huì)淘汰掉很多人。
程序員必備的主要技能
深刻理解數(shù)據(jù)結(jié)構(gòu)和類,知道什么情況下以及怎么運(yùn)用它們。
熟悉已經(jīng)開(kāi)發(fā)完成的庫(kù),這樣就可以站在巨人的肩膀上,不必重新浪費(fèi)時(shí)間了。
熟悉各種基礎(chǔ)和高級(jí)的算法,理由同上條。
了解硬件的原理,這樣就能正確管理內(nèi)存避免內(nèi)存溢出,或者正確消除無(wú)關(guān)數(shù)據(jù)以加快處理進(jìn)程。
當(dāng)然還得會(huì)編程。*知道數(shù)據(jù)包格式、TCP/ IP、HTML、CSS、用戶界面設(shè)計(jì)和數(shù)據(jù)庫(kù)等,因?yàn)槌绦虿荒芄铝⑦\(yùn)行。
我們需要學(xué)習(xí)很多東西,但是還有一點(diǎn),你必須謹(jǐn)記在心,事物是在不斷變化發(fā)展的。我們只有專心致志竭盡全力地學(xué)習(xí),才有可能在這一行出人頭地大放光彩。三天打魚(yú)兩天曬網(wǎng),是行不通的。
程序員的工作和生活環(huán)境
安靜,不被打攪的環(huán)境。當(dāng)我們?cè)诰幊袒蛘邔W(xué)習(xí)編程的時(shí)候,一旦中斷,想要重拾思路并不是那么容易的。比方說(shuō),手機(jī)響了,然后你可能要花上15分鐘才能繼續(xù)沿著原先的思路走。但是很多工作和家庭環(huán)境都很難提供這樣的條件。
能在忙碌中權(quán)衡輕重然后做決策。當(dāng)然你也可以為每一種情況單獨(dú)寫一個(gè)程序,不過(guò)這不大現(xiàn)實(shí),所以要有側(cè)重點(diǎn)。再則,當(dāng)落后于進(jìn)度時(shí),*能快速實(shí)現(xiàn)程序并運(yùn)行起來(lái)。
最最重要的一點(diǎn),編程語(yǔ)言的流行時(shí)間是5年,5年之后,你看好的語(yǔ)言可能就沒(méi)人用了。我們得與時(shí)俱進(jìn)。
管理問(wèn)題也是重中之重
很多管理人員將程序員當(dāng)做工廠工人一樣對(duì)待,很多并沒(méi)有編程天賦和商業(yè)能力的人站在了項(xiàng)目責(zé)任人的位置上,在他們眼中,程序員就像機(jī)器上面的齒輪一樣,干的事情毫無(wú)技術(shù)含量。一旦發(fā)現(xiàn)項(xiàng)目超出預(yù)算或者落后于計(jì)劃進(jìn)度,就要求程序員無(wú)償加班,結(jié)果往往只能是出來(lái)設(shè)計(jì)拙劣測(cè)試不完全的產(chǎn)品。事實(shí)上,程序員是技術(shù)人員,要是你想得到關(guān)于項(xiàng)目的明智建議,那么請(qǐng)教專家級(jí)程序員才能得到最棒的結(jié)果。
由于某些管理層辨別不了程序員之間的優(yōu)劣,所以有能力的人就會(huì)發(fā)現(xiàn)他們做的貢獻(xiàn)更大但是得到的薪酬卻沒(méi)有更多——最重要的是,他們總是要做更多的工作以彌補(bǔ)拖后腿的那些家伙。而當(dāng)偉大的程序員提出建議以望改進(jìn)的時(shí)候,那些管理層則會(huì)覺(jué)得這是在對(duì)自己權(quán)威的挑戰(zhàn),而會(huì)選擇“除之而后快”。
這種情況舉不勝舉。這也是為什么很多優(yōu)秀人才不愿意待在這一行業(yè)的原因——特別是在有其他就業(yè)機(jī)會(huì)的情況下。而且做程序員很能鍛煉人,哪怕是最普通的,轉(zhuǎn)行之后也能干的風(fēng)生水起。
真正優(yōu)秀的程序員不喜歡隨便跳槽
找程序員很容易,但要想發(fā)現(xiàn)優(yōu)秀人才就很難了。劣質(zhì)的程序員似乎總是在找工作,而優(yōu)秀者,只要這家公司能發(fā)現(xiàn)他們,肯定會(huì)不惜一切代價(jià)留住他們,所以他們不會(huì)去頻繁找工作。而當(dāng)他們?nèi)フ夜ぷ鞯臅r(shí)候,大多規(guī)劃長(zhǎng)遠(yuǎn),所以會(huì)顯得很挑剔——這就是為什么很多公司都會(huì)不約而同地表示“沒(méi)有優(yōu)秀程序員可用”的原因——因?yàn)檎业降谋M是些“普通貨色”。
正如有句話說(shuō)得好,優(yōu)秀程序員的價(jià)值是普通程序員的幾倍,而劣質(zhì)程序員則是負(fù)值。要想將普通和劣質(zhì)的程序員改造成優(yōu)秀人才,其道路不可謂不艱辛,不可謂不險(xiǎn)阻,甚至幾乎是不可能的——自然也不值得任何初創(chuàng)公司在他們上面進(jìn)行投資了。
南通青鳥(niǎo)IT教育,專注于IT培訓(xùn)11年,給你不一樣的編程體驗(yàn)!