從小白到C++職場精英成就平凡之路?(一)

本文轉(zhuǎn)自云棲社區(qū)涂宗勛,結(jié)合程序員的發(fā)展歷程和經(jīng)驗總結(jié)而作本文。內(nèi)容有點長,但如果你是真的以后想從事程序員這個職業(yè),那么就還是抽點時間認(rèn)認(rèn)真真看完吧。相信衣赶,不論你是編程初學(xué)者碘箍,還是剛步入程序員崗位货邓,對于你規(guī)則以后自己的職業(yè)大有裨益。

我的程序員成長之路

程序員的成長經(jīng)歷往往很相似四濒,大部分的人走過了最前面相同的一段路换况,而有的人則走得更遠(yuǎn)职辨「甓總結(jié)自己這些年來的歷程舒裤,這也許能讓年輕的程序員少走一些彎路,成長得更快觉吭;或許更好一些惭每,能讓大家從中得到一些啟發(fā),早日進(jìn)入優(yōu)秀程序員的階段亏栈,實現(xiàn)夢想,釋放激情宏赘。


第一階段绒北,最初是在學(xué)校里學(xué)習(xí)計算機基礎(chǔ)知識,學(xué)習(xí)經(jīng)典的程序設(shè)計語言察署,編寫測試用的小程序闷游。這個過程可以說是對計算機和程序設(shè)計的入門階段。這個階段主要是培養(yǎng)了自己對計算機軟件的興趣贴汪,打下了良好的計算機基礎(chǔ)知識脐往。

第二階段,而后參加工作扳埂,從事計算機軟件開發(fā)工作业簿。按照工作要求,一邊學(xué)習(xí)阳懂,一邊編程梅尤,終于可以讓自己的程序投入運行了。在這個階段我突然感覺到了自己的價值岩调,感覺到了軟件的神奇巷燥,并且自己編寫的軟件成為了實用產(chǎn)品。這個階段實現(xiàn)了學(xué)習(xí)到生產(chǎn)的過渡号枕。

第三階段缰揪,隨著工作的增加,開始編寫各種程序葱淳,開發(fā)各種系統(tǒng)钝腺,這時候忙于編程知識的積累和應(yīng)用。應(yīng)該說在這個階段自我感覺很充實赞厕,好像有做不完的事拍屑,程序設(shè)計水平還處在語言級階段。

第四階段坑傅,隨著積累了一定編程技巧之后僵驰,我開始想這樣的問題:我是不是最好的程序員?我能否編寫出最好的程序?這個過程是一個反思的階段蒜茴。我對自己的要求是:不但要會編程序星爪,而且要編好程序,從關(guān)注程序數(shù)量開始轉(zhuǎn)向關(guān)注程序質(zhì)量粉私。

第五階段顽腾,開始在提高自己的軟件開發(fā)水平上做文章。經(jīng)過各種系統(tǒng)開發(fā)诺核,尤其是大型系統(tǒng)的開發(fā)抄肖,發(fā)現(xiàn)了軟件中有許多功能是重復(fù)的。因此窖杀,有一段時間把精力花在編制各種庫函數(shù)上漓摩,通過不同系統(tǒng)調(diào)用相同的函數(shù),以便減少重復(fù)開發(fā)入客,實現(xiàn)功能共享管毙。當(dāng)時比較得意的是庫函數(shù)不是我一個人在調(diào)用,而是整個項目小組都在調(diào)用桌硫,甚至不同的系統(tǒng)也能調(diào)用夭咬,從而體會到編寫庫函數(shù)特別有價值。這個階段的標(biāo)志是庫函數(shù)铆隘,程序員水平上升到庫函數(shù)那一級卓舵。

第六階段,到了庫函數(shù)那一級后膀钠,很快就發(fā)現(xiàn)边器,單單實現(xiàn)程序函數(shù)級的調(diào)用是遠(yuǎn)遠(yuǎn)不夠的。當(dāng)你做了很多項目托修,包括大項目和小項目忘巧,尤其是做過跨行業(yè)的項目之后,你就會把庫函數(shù)的共享思想用于項目開發(fā)睦刃。你就會想這樣一個問題:為什么不同項目不能有相同的架構(gòu)砚嘴?如果有相同的架構(gòu),那么開發(fā)就有了相對的標(biāo)準(zhǔn)涩拙,我們就有可能通過配置的方法實現(xiàn)相同架構(gòu)的系統(tǒng)际长。于是我提出了IASG(交互式軟件自動生成器)思想,并在C語言和其他一些語言中實現(xiàn)了IASG實例兴泥。記得最快的一次是編寫一個系統(tǒng)(公安部門的自行車信息管理系統(tǒng)工育,主要用于丟失自行車信息登記)只用了3個小時(從需求到安裝盤)。這個事情對我影響很大搓彻。我在這個階段上升了一個很大的臺階如绸,從程序上升到軟件嘱朽。核心思想就從庫函數(shù)共享上升到軟件共享。具體過程是建立一個通用的系統(tǒng)架構(gòu)怔接,架構(gòu)中有許多共同的功能搪泳,例如,參數(shù)設(shè)置扼脐、用戶權(quán)限管理岸军、庫表管理等。另外還提供信息建立查詢開發(fā)模板瓦侮,通過配置和特殊功能的編制就能很快完成了一個系統(tǒng)的開發(fā)〖柙蓿現(xiàn)在想起來IASG距離我已經(jīng)有20年了。

第七階段肚吏,到了IASG階段后方妖,我發(fā)現(xiàn)無論技術(shù)如何提高,都無法改變開發(fā)落后于需求的現(xiàn)實须喂。通俗地說就是:程序員水平再高,僅僅是拉車水平高趁蕊,但是坞生,應(yīng)該在什么路上拉車程序員并不知道。如果這條路是一條光明的路掷伙,則程序員越拉越有勁是己,有前途;如果這是一條死胡同任柜,則程序員白費工夫卒废;如果這是一條漫長的路,前途不明宙地,則程序員可能要累倒在路上∷と希現(xiàn)實中程序員水平低、收入低宅粥;系統(tǒng)需求不明確参袱,系統(tǒng)開發(fā)周期一拖再拖;系統(tǒng)重復(fù)開發(fā)多秽梅,信息甚至不能在一個企業(yè)內(nèi)實現(xiàn)共享抹蚀,更不用說在企業(yè)之間、行業(yè)之間實現(xiàn)共享了企垦;各種企業(yè)級的軟件ERP环壤、CRM、BI層出不窮钞诡,也沒有哪個能滿足中國的市場郑现;各種新技術(shù)湃崩、新概念不斷出現(xiàn),卻沒有哪種技術(shù)或概念能真正發(fā)揮其內(nèi)在價值懂酱,最終還是處于被學(xué)習(xí)竹习、被運用的階段。

這個過程是程序員脫離技術(shù)本身列牺,開始思索整陌、開始求源的階段。在這個階段的程序員的思想有了質(zhì)的飛躍瞎领。以前光拉車不看路泌辫,現(xiàn)在要抬頭看路了。

第八階段九默,有了抬頭看路的想法震放,于是我踏上尋路征程。我首先弄明白了我們腳下的路是什么樣的驼修,為什么這條路那么不平坦殿遂、不寬廣。從軟件生命周期來看乙各,軟件主要由用戶需求發(fā)起墨礁,用戶需求是軟件生存的根本理由。由于企業(yè)耳峦、用戶的不同而導(dǎo)致不同的需求——大量的無序的需求恩静,這種需求驅(qū)動方式必然造成了我前面介紹的各種現(xiàn)象。這個階段是尋找根源的階段蹲坷。只要我們找到了根源驶乾,就可以有機會解決問題。這個過程相對來說比較困難循签,這不僅需要編程技術(shù)级乐,還需要很多方面的知識。若要了解這個根源县匠,就迫使你學(xué)習(xí)和積累更多程序以外的知識唇牧。

第九階段,當(dāng)我找到軟件是需求驅(qū)動方式之后聚唐,就開始考慮什么是用戶需求丐重?用戶為什么要提出這些需求?我們可以更深入地分析用戶需求產(chǎn)生的根源杆查,我們能否讓無序需求變成有序需求呢扮惦?當(dāng)然針對這些問題我們都進(jìn)行了深入分析,其過程也很難在這里展開說明亲桦。我只能說崖蜜,最后結(jié)論是用戶的需求來源于企業(yè)的經(jīng)營浊仆。很多人思考問題還是就需求而論,并沒有站在企業(yè)經(jīng)營角度去考慮問題豫领。千萬不要小看這個變化抡柿,這個變化最終會產(chǎn)生一個理論。于是我們盡可能地站在企業(yè)經(jīng)營角度看待企業(yè)經(jīng)營方式等恐、企業(yè)管理洲劣、企業(yè)信息化等。但是课蔬,我們最終要解決企業(yè)經(jīng)營這個概念問題囱稽,如果我們都不能明確企業(yè)經(jīng)營這個概念,或者我們不能科學(xué)地定義企業(yè)經(jīng)營這個概念二跋,那一切基于企業(yè)經(jīng)營的各種具體現(xiàn)象就如同無本之源一樣無序泛濫战惊。就像ERP、CRM等所謂企業(yè)信息化產(chǎn)品一樣扎即,由于沒有一個企業(yè)經(jīng)營定義的支撐镀首,只能就企業(yè)經(jīng)營的某個方面提出解決方案坟比。這些產(chǎn)品不缺乏需求的支持媳握,缺乏的是最基本的企業(yè)經(jīng)營定義的支持士袄。而這個概念就是EOM。

EOM是從定義企業(yè)經(jīng)營角度入手襟锐,把我們今后要開展的各種研究和開發(fā)活動都放在一個理論可支持的基礎(chǔ)上撤逢。只有定義了企業(yè)經(jīng)營之后膛锭,我們才有可能分析我們需要什么軟件粮坞,我們的軟件采用什么技術(shù)才能實現(xiàn)企業(yè)經(jīng)營的目標(biāo)。而程序員則通過EOM了解到企業(yè)經(jīng)營需要什么樣的軟件初狰,這個軟件有多大的價值莫杈,這個軟件采用什么技術(shù)才能實現(xiàn),自己要提高哪方面的技術(shù)水平才能獲得更大的價值奢入。

這個過程就是EOM階段筝闹,通過EOM了解軟件的根源和有價值的軟件所在,進(jìn)而選擇自己未來的方向腥光。

第十階段关顷,當(dāng)我建立了EOM之后,便開始了EOM實現(xiàn)階段武福。這個實現(xiàn)階段分為兩部分议双,通過這兩部分的結(jié)合,我們就可以逐步看到EOM軟件產(chǎn)品的實例捉片,看到EOM的真正價值平痰。

第一部分是EOM的業(yè)務(wù)實現(xiàn)汞舱。當(dāng)我們明確了EOM之后,就可以根據(jù)EOM來重新規(guī)劃企業(yè)信息化的整體架構(gòu)宗雇,可以細(xì)分這個架構(gòu)中的各種平臺產(chǎn)品昂芜、通用產(chǎn)品、專業(yè)產(chǎn)品赔蒲,可以細(xì)分出這個架構(gòu)實現(xiàn)的各種技術(shù)架構(gòu)和實現(xiàn)手段泌神,可以細(xì)分出這個架構(gòu)中的各種標(biāo)準(zhǔn)功能和標(biāo)準(zhǔn)信息。通過這樣的分析嘹履,我們的程序員就可以根據(jù)自己的特長和愛好以及價值的判斷來選擇其中的軟件產(chǎn)品和技術(shù)腻扇。在明確目標(biāo)和方向的情形下,通過自己的努力砾嫉,不斷提高自己的各種技能水平幼苛,讓自己的價值和企業(yè)經(jīng)營價值有機地結(jié)合在一起,從而實現(xiàn)自己的理想焕刮。

第二部分是EOM的技術(shù)實現(xiàn)舶沿。有了EOM并根據(jù)EOM理論構(gòu)建企業(yè)信息化的架構(gòu)后,我們就必須從技術(shù)上實現(xiàn)這個架構(gòu)配并,否則這個架構(gòu)將永遠(yuǎn)停留在理論階段括荡,不具有可行性。我們可以采用現(xiàn)有的各種技術(shù)來實現(xiàn)這個架構(gòu)溉旋,但是畸冲,現(xiàn)有的技術(shù)都是基于原有的業(yè)務(wù)需求而建立和發(fā)展的,它適用于原來的應(yīng)用對象观腊。目前的EOM是一個全新的企業(yè)經(jīng)營理念邑闲,因此,我們必須建立一種新的軟件架構(gòu)來適應(yīng)和最好地實現(xiàn)這個理念梧油。幸運的是苫耸,我們找到了稱作NSS(New Software Structure)軟件新架構(gòu)的技術(shù),該技術(shù)體現(xiàn)了適應(yīng)企業(yè)經(jīng)營發(fā)展方向儡陨,將軟件合理分層褪子,用最新的軟件技術(shù)按照架構(gòu)的方式規(guī)范軟件開發(fā)的模式,可以實現(xiàn)最大范圍的功能共享骗村,實現(xiàn)軟件的可擴展性嫌褪。

這個階段可以讓程序員在軟件產(chǎn)品業(yè)務(wù)設(shè)計或軟件產(chǎn)品技術(shù)實現(xiàn)上等多個方面進(jìn)行深入鉆研,并且成為領(lǐng)域?qū)<遗吖伞_@和我們平時涉及的簡單的需求分析和簡單的技術(shù)實現(xiàn)有著本質(zhì)區(qū)別笼痛。

從我的程序員經(jīng)歷可以看出,程序員的成長是無止境的信轿,只要有的放矢地努力晃痴,就會一步步登高向上残吩。我認(rèn)為程序員成長經(jīng)歷主要有三大階段,即通用技術(shù)階段倘核、市場階段泣侮、專業(yè)技術(shù)階段。

1)通用技術(shù)階段是程序員專注編程水平提高的階段紧唱,也就是說“只拉車不看路”階段活尊。這個程序員能做的事情那個程序員也能做,程序員的替代性很強漏益,程序員市場價值相對較低蛹锰,程序員只關(guān)注編程技術(shù)本身。

2)市場階段是程序員跳離技術(shù)層面開始考慮為什么要開發(fā)這個軟件绰疤,這個軟件有什么價值的階段铜犬,通過求軟件之源來重新認(rèn)知自己的方向。

3)專用技術(shù)階段是程序員認(rèn)知了這個軟件和技術(shù)有很大的市場價值轻庆,全身心投入到這個領(lǐng)域中去癣猾,并在這個領(lǐng)域成為專家的階段。程序員不但要懂技術(shù)余爆,更要懂得客戶業(yè)務(wù)纷宇,不同的程序員的技術(shù)和業(yè)務(wù)變得沒有可比性,這種稀缺性造就了程序員極大的價值蛾方。

這三個階段其實就是三個過程像捶,每一個過程都是一次飛躍。程序員知道自己可以飛多高桩砰,依靠的是程序員的學(xué)習(xí)和眼界拓春;而程序員能飛到哪里,那就要靠程序員自身的努力五芝。一個程序員可以沒有能力痘儡,但是不可以沒有眼界辕万。

如果你對C語言C++感興趣枢步,那么歡迎加入學(xué)習(xí)群【785290829】,獲取全套免費C/C++企業(yè)實戰(zhàn)級課程資源(素材+源碼+視頻)大禮包渐尿。

第一部分 入門篇

1.1 程序員的夢想——中國的比爾·蓋茨

作為一個IT行業(yè)職員醉途,我經(jīng)歷過一個普通程序員成長的過程,同時也接觸過許多不同層次的程序員砖茸。他們或在我身邊匆匆而過隘擎,或與我共同工作,或在我可以關(guān)注的范圍內(nèi)成長著凉夯。他們的喜怒和哀樂货葬、挫折和成功采幌、幻想和現(xiàn)實、希望和失望震桶,無不與我心共振休傍。我知道這個行業(yè)從業(yè)人員的夢想,也知道這個行業(yè)的殘酷蹲姐。無數(shù)人懷著希望而來磨取,卻抱著無奈離去。我早就有和他們共語的愿望柴墩,希望通過這個主題和他們交流程序員所關(guān)注的各種問題忙厌,希望我的經(jīng)驗有助于他們的成長,同時我也想談?wù)凟OM對程序員的真正價值的影響江咳,以及如何實現(xiàn)“成?榷じ譴摹閉飧齔絳蛟鋇淖罡咼蝸搿?

什么是程序員逢净?什么人能稱得上是程序員?會編程序的人都是程序員嘛歼指!這個問題看似簡單汹胃,但仔細(xì)想一下,也很難回答东臀。其實在中國着饥,關(guān)于程序員的稱呼有很多種近似的叫法,例如“開發(fā)人員”惰赋、“編程人員”宰掉、“計算機人員”等。只是現(xiàn)在分工越來越細(xì)赁濒、專業(yè)化程度不斷提高的情況下轨奄,程序員這個詞才逐漸地流行起來。

程序員一般只掌握單一的程序設(shè)計語言拒炎,比如編寫匯編程序的程序人員挪拟,編寫C語言程序的程序人員,編寫Unix击你、XENIX玉组、AIX、SCO丁侄、HPunix等Unix類的shell程序的程序人員惯雳,編寫與數(shù)據(jù)庫打交道的proc c程序人員,編寫C++程序的程序人員鸿摇,編寫面向?qū)ο蟮腣FP石景、VB、Delphi、PB的程序人員潮孽,編寫Web程序的HTML揪荣、CGI、ASP往史、PHP的程序人員变逃,編寫C#、Java的程序人員怠堪。這些程序語言有些保留了下來揽乱,有的則被時代無情地淘汰了。同樣是程序員粟矿,如果不能適應(yīng)語言的發(fā)展也避免不了被淘汰的命運凰棉。

我自己認(rèn)為的程序員與其他職業(yè)人員之間的區(qū)別:

1)因為比爾·蓋茨是編程序的,所以似乎每個程序設(shè)計人員都有一個“比爾·蓋茨”夢想:比爾·蓋茨能做的陌粹,我也許能做到撒犀,即使做不到,做到一半也是不錯的掏秩。這個潛在的意識是程序員最大的財富或舞,許多程序人成了為理想、有抱負(fù)的人蒙幻。我想很多人選擇IT大都是與此有關(guān)吧映凳。

2)工作成果完全由自己把握,隨時編隨時運行隨時出結(jié)果邮破。這種自我感覺是很多職業(yè)都不具備的诈豌。因此,程序員有很強的自信心抒和。而且這種自信心往往可以使得程序員產(chǎn)生自己開公司的念頭矫渔。

3)有很高的預(yù)期價值。軟件通過使用創(chuàng)造了價值摧莽,程序員通過制作產(chǎn)生了軟件庙洼。因此,程序員往往把軟件的價值看做自己的價值镊辕,例如一個軟件賣了5萬元油够,程序員就會把自己的勞動價值估算在5萬元以上;如果這個軟件有100個潛在的市場丑蛤,那么程序員就會把這個價值升值到5×100=500萬以上叠聋。所以在程序員這個群體中撕阎,很多人都相信自己未來能夠獲得更多的收入受裹。

當(dāng)然,程序員也有其他一些特點,例如:有的程序員喜歡晚上干活棉饶,白天睡覺厦章;有的喜歡鉆研,連續(xù)加班照藻;有的頭腦靈活袜啃,動手能力強;有的喜歡追逐最新技術(shù)幸缕,變成別人公司的代言人等群发。

我注意到了有這樣一點,那就是現(xiàn)在的程序員已經(jīng)失去了神秘感发乔,以往給人以仰目而視的形象正逐步走下神壇熟妓。

這是程序員職業(yè)發(fā)展的必由之路,抑或是再正常不過的社會現(xiàn)象栏尚?

1.2 談?wù)劤绦騿T的基礎(chǔ)知識

對于程序員需要具備哪些最基礎(chǔ)的知識和技能這個問題起愈,不少剛從大專院校畢業(yè)出來的新入職員工,甚至是從事過一段時間編程工作的程序員译仗,都是比較模糊的抬虽。只有認(rèn)真掌握一些基礎(chǔ)的知識和技能,才能走上程序員這條大道纵菌。

說句實在話阐污,我在從事編程工作很長一段時間內(nèi)都沒有關(guān)注這個問題,基本上是邊編邊學(xué)咱圆,邊學(xué)邊編疤剑,從學(xué)習(xí)中積累,從編程中積累闷堡。除了和同事進(jìn)行工作上交流之外隘膘,學(xué)習(xí)材料很少,基本上是一個人在戰(zhàn)斗杠览,也不知道自己是不是成為了合格的程序員弯菊。也許是受那個年代所限,當(dāng)時的程序員人數(shù)很少踱阿,因此同行間沒有什么競爭管钳,有了位置就不怕失去。要是放在現(xiàn)在软舌,真的很后怕才漆。

回到正題,我認(rèn)為程序員在最初階段要從流程佛点、語法醇滥、調(diào)用三個層次要求自己黎比。

1.流程

這是對程序員最基本的要求,這個層次就是要求程序員能夠把一個最簡單的程序編輯鸳玩、編譯阅虫、運行成功,強調(diào)的是掌握編程的環(huán)境和流程不跟。

在這個層次上又分三個方面的要求:

(1)計算機基礎(chǔ)知識

我見過許多程序員新手颓帝,他們都自稱學(xué)過計算機基礎(chǔ)知識。但實際情況是窝革,學(xué)而不致用购城,學(xué)的概念太多,自己卻理不出頭緒虐译,和實際工作對不上號工猜。有的甚至認(rèn)為自己忘了,什么都不知道菱蔬。但是我要提醒新手的是篷帅,盡管基礎(chǔ)知識十分豐富,但是有關(guān)編程的一些基礎(chǔ)知識和概念是必須掌握的拴泌。

1)操作系統(tǒng)

什么是操作系統(tǒng)魏身?你所編寫的程序在什么操作系統(tǒng)上運行?目前主要有Windows類蚪腐、Unix類箭昵、Linux類操作系統(tǒng)。每種操作系統(tǒng)對編程的影響是不同的回季。

2)計算機家制、內(nèi)存、硬盤

這些概念對編程來說也是最基礎(chǔ)的泡一,例如計算機分為PC機颤殴、小型機、大型機鼻忠。在PC機上編程和小型機上編程是有差別的撑教。程序設(shè)計語言安裝時也要注意內(nèi)存大小和硬盤大小沙郭。

3)目錄、文件

這些是最基礎(chǔ)的概念了力细!一定要掌握和理解懦鼠。因為你編寫的程序就是一種文件锋玲,而且要放置在指定目錄下翁涤。

4)程序設(shè)計語言形庭、程序、編輯埋酬、源程序哨啃、編譯烧栋、可執(zhí)行程序、運行

這些概念也是最基礎(chǔ)的棘催。不同的程序設(shè)計語言對編程具有很大的影響劲弦。

目前主流的程序設(shè)計語言有Java耳标、C#醇坝、C語言等。

(2)編程環(huán)境

作為程序員一定要知道自己的編程環(huán)境是什么:

1)了解所要使用的計算機

2)操作系統(tǒng)安裝

3)程序設(shè)計語言安裝要求環(huán)境

4)程序設(shè)計語言安裝盤

5)安裝程序設(shè)計語言

PC機和小型機有很大的不同次坡,使用PC機的程序員一定對5個部分要全部掌握呼猪,使用小型機的程序員只需要了解程序設(shè)計語言是否安裝好了。

(3)編程流程

PC機開發(fā)程序的一般流程:

運行開發(fā)環(huán)境→建立項目→建立源程序→編寫源程序→編譯項目(源程序)執(zhí)行可執(zhí)行程序→查看運行結(jié)果砸琅。

小型機開發(fā)程序的一般流程(以C語言為例)

編寫源程序→編譯→運行→查看結(jié)果宋距。

程序員要驗證自己是否掌握了這個層次,建議編寫一個最簡單的顯示“helloworld症脂!”的程序谚赎。如果程序員能白手起家,能運行自己編寫的程序并能顯示“hello world!”則可以通過了诱篷。

2.語法

這是對程序員的基礎(chǔ)要求壶唤。這個層次建立在上一層的基礎(chǔ)上,應(yīng)該掌握程序中最基本的語法棕所、運算闸盔、基本功能。

主要掌握:進(jìn)入程序參數(shù)琳省、退出程序命令迎吵、賦值語句、條件語句针贬、循環(huán)語句击费、引用、字符串操作桦他、算術(shù)運算荡灾、文件操作等。

對于人機交互程序主要掌握:窗口瞬铸、標(biāo)示控件批幌、文本框控件、命令按鈕控件嗓节、列表控件荧缘、下拉框控件、表格控件等拦宣。掌握對控件屬性賦值截粗、對屬性的讀取信姓、增加事件、對事件的調(diào)用等绸罗。

3.調(diào)用

這是對程序員的一般要求意推。這個層次建立在上一層次的基礎(chǔ)上,應(yīng)該掌握程序中對數(shù)據(jù)庫珊蟀、庫函數(shù)菊值、動態(tài)鏈接庫等外部環(huán)境的調(diào)用。相應(yīng)的概念也要掌握育灸。

另外腻窒,程序員還要具備查詢語法和尋求幫助的技能。

這里還談不上程序員水平問題磅崭,需要強調(diào)的是儿子,以上是程序員必須掌握的,是最低的要求砸喻。由于開發(fā)環(huán)境不斷在變化柔逼,程序設(shè)計語言也不斷在升級,作為程序員就應(yīng)該扎實地掌握這些方法割岛,做到心中有數(shù)愉适,以不變應(yīng)萬變。

1.3 語言選擇與就業(yè)方向

程序設(shè)計語言與就業(yè)之間的關(guān)系現(xiàn)在變得非常強烈和敏感蜂桶,這是我始料未及的儡毕。記得當(dāng)年自己在學(xué)校里學(xué)習(xí)程序設(shè)計語言,自己從沒有選擇程序語言的概念扑媚⊙澹基本上是學(xué)校規(guī)定學(xué)什么,自己就學(xué)什么疆股,從未考慮到這些學(xué)習(xí)將對今后分配工作產(chǎn)生的影響费坊。這可能是由于在當(dāng)時的社會環(huán)境下,不愁就業(yè)的狀況所造成的旬痹。沒有了就業(yè)的壓力附井,學(xué)生可以安心學(xué)習(xí)一些基礎(chǔ)性的課程,可以學(xué)習(xí)很多經(jīng)典的程序設(shè)計語言两残,看到語言發(fā)展的軌跡永毅,從而對一種程序語言打下良好基礎(chǔ)。當(dāng)然人弓,很多學(xué)生并沒有把程序語言學(xué)好的主觀意識沼死,只是想做學(xué)習(xí)的“奴隸”,而不是為自己真正掌握生存技能服務(wù)的崔赌。若跟這樣的學(xué)生交流好好學(xué)習(xí)意蛀,那就是浪費時間耸别。

而今,社會已經(jīng)發(fā)生翻天覆地的變化县钥。程序員從高高在上的“稀缺人才”地位開始下降秀姐。這期間的變化令人感慨和無奈。不得不承認(rèn)若贮,我們已經(jīng)進(jìn)入了市場經(jīng)濟社會省有,而且是一個充滿競爭的市場經(jīng)濟社會。面對市場和競爭兜看,我們必須拿出滿足市場需求的商品:我們的編程能力锥咸。編程能力有兩個方面的含義狭瞎,一是編程語言细移,二是編程本身能力。所以熊锭,如何選擇我們的編程語言是首要問題弧轧。而編程技術(shù)的提高則需要時間積累和項目積累。

當(dāng)我們能夠樹立市場觀念和就業(yè)意識時碗殷,我們對程序設(shè)計語言的選擇就變得相對簡單了精绎。就這個問題我想提出自己的一些建議供各位參考。

1.就業(yè)方向

程序員就業(yè)范圍應(yīng)該很廣锌妻。有的是軟件工廠式的編程工作代乃,有的是項目開發(fā)的編程工作,有的是用戶單位維護(hù)類的開發(fā)工作仿粹,有的是后臺編程工作搁吓,有的是前端編程工作,有的是編制網(wǎng)站工作吭历,有的是軟件培訓(xùn)工作堕仔,有的是與硬件相關(guān)的匯編級編程工作,有的是數(shù)據(jù)庫類編程和管理工作晌区。隨著軟件專業(yè)化分工的加快摩骨,分工會越來越細(xì),就業(yè)種類也會越來越多朗若。面對各種就業(yè)種類如何選擇恼五,這是一個仁者見仁智者見智的問題。只有先定下就業(yè)方向哭懈,然后再根據(jù)就業(yè)方向所要求的必須掌握的語言來確定自己要學(xué)的語言灾馒。

例如,你想去做后臺的編程工作银伟,你就可能會選擇C語言你虹、數(shù)據(jù)庫等绘搞。

如果你想去編寫網(wǎng)站,你就會在C#傅物、Java夯辖、PHP中進(jìn)行選擇。

如果你想去做底層與硬件有關(guān)的編程董饰,你就可以學(xué)習(xí)匯編和專業(yè)的單片機語言蒿褂。

2.市場狀況

當(dāng)你自己不知如何選擇的時候,可以從“唯利是圖”角度出發(fā)卒暂,看看在程序員這個行業(yè)當(dāng)中啄栓,做什么職業(yè)收入最高。你可以通過百度搜索的方式反復(fù)比較也祠,獲知收入相對較高的職業(yè)昙楚,然后根據(jù)這個職業(yè)要求選擇所需的編程語言。

你當(dāng)然可以從“技術(shù)至上”的角度出發(fā)诈嘿,你可以通過百度搜索的方式了解當(dāng)前哪種語言最流行堪旧,因為流行的程序往往體現(xiàn)出這種語言未來可持續(xù)發(fā)展,當(dāng)你選擇了流行的語言的時候奖亚,這就意味著軟件市場對這種語言的程序員需求是比較大的淳梦,因此,就業(yè)的概率相對較高昔字。但是爆袍,正是需求增加,在供過于求的情況下作郭,競爭就會加劇陨囊,如果你沒有表現(xiàn)出更多的能力的話,就很難在競爭中勝出所坯。

當(dāng)然谆扎,你也可以從“反向思維”選擇相對冷門的職業(yè),由于是相對冷門的職業(yè)芹助,競爭就會有所減弱堂湖,就業(yè)的概率同樣會大大增加。

3.社會資源

就已經(jīng)參加工作的人來說状土,就業(yè)還取決于個人的社會資源无蜂,假如你有足夠的社會資源,你就可能想到哪里就到哪里蒙谓。這種個別的現(xiàn)象不在我討論的范圍之內(nèi)斥季。其他的個人的社會資源如學(xué)校、家庭、朋友酣倾、朋友的朋友舵揭,其他求職中介和求職渠道,都是你求職的重要因素躁锡。例如午绳,你的朋友正好在一家軟件公司,而這家軟件公司正好要招聘你這種程序員映之,求職往往會很快成功拦焚。因此,將目光放在你的社會資源上杠输,看看他們能夠觸及的單位赎败,然后去了解這些單位對程序設(shè)計語言的要求,再進(jìn)行語言的準(zhǔn)備蠢甲,我感到這樣做還是非常有必要的僵刮。

4.個人基礎(chǔ)

當(dāng)然,你通過各方面考量最終選擇了就業(yè)方向峡钓,也就確定了你的程序設(shè)計語言妓笙。你可能在學(xué)校學(xué)過這個語言若河,也可能沒有學(xué)過能岩。對于你來說都要有一個重新學(xué)習(xí)的階段。這個學(xué)習(xí)階段和大學(xué)里無憂無慮的學(xué)習(xí)有著本質(zhì)區(qū)別萧福,這可是關(guān)系到你能否被用人單位錄用拉鹃,關(guān)系到你今后的生存,關(guān)系到你今后的職業(yè)生涯規(guī)劃鲫忍。因此膏燕,你不但要把用人單位所需要的程序設(shè)計語言學(xué)好,而且要把相關(guān)的其他語言學(xué)好悟民,以及相關(guān)的計算機基礎(chǔ)知識學(xué)好坝辫。這樣才能把你的個人編程基礎(chǔ)夯實∩淇鳎可以說基礎(chǔ)是必需的近忙。

另外要有的放矢,了解用人單位所采用的語言智润、開發(fā)項目等情況及舍,只有這樣,自己在應(yīng)聘的時候才會更有把握窟绷。

我們可能因為語言而獲得就業(yè)锯玛,我們也可能因為語言失去工作。關(guān)鍵是我們每時每刻要注重語言的發(fā)展趨勢兼蜈,注重用人單位的語言發(fā)展趨勢攘残。語言的學(xué)習(xí)可以伴隨程序員終身拙友。從我的經(jīng)驗來看,要想進(jìn)入程序員這個行業(yè)歼郭,主流的程序語言都是應(yīng)該了解和掌握的献宫,至于掌握的深度可以根據(jù)就業(yè)的要求深淺不一。因為語言的掌握是無止境的实撒,人們不可能為掌握而花費太多的時間和精力姊途。就目前而言,學(xué)習(xí).NET知态、Java捷兰,學(xué)習(xí)任何可用于網(wǎng)絡(luò)應(yīng)用軟件開發(fā)的程序語言都是非常有前途的,因為基于網(wǎng)絡(luò)负敏、互聯(lián)網(wǎng)贡茅、手機(包括移動設(shè)備)的軟件將是未來軟件的主流。

現(xiàn)在我們因為語言而生存其做,未來能否讓語言因為我們而驕傲顶考?

1.4 新手如何學(xué)習(xí)一門新的語言

學(xué)習(xí)程序設(shè)計語言是程序員的看家功夫。許多程序員邊編邊學(xué)妖泄,沒有止境驹沿,可以說是“活到老學(xué)到老”。在語言面前蹈胡,程序員永遠(yuǎn)是學(xué)生渊季。然而,程序設(shè)計語言是一項不斷發(fā)展的技術(shù)罚渐,從機器語言到匯編語言却汉,從低級語言到高級語言,從面向過程語言到面向?qū)ο笳Z言荷并,從C/S語言到B/S語言合砂,從非跨平臺語言到跨平臺跨系統(tǒng)語言,從純語言到開發(fā)平臺工具源织,真的是目不暇接翩伪。這些革命性的技術(shù)浪潮推動著程序員不斷學(xué)習(xí)新的語言以適應(yīng)其發(fā)展,否則程序員將被淘汰雀鹃。

學(xué)習(xí)新的語言有兩類人員幻工,一類是從來沒有程序設(shè)計語言基礎(chǔ)的、沒有編過程序的人黎茎;另一類是已經(jīng)掌握了一門或一門以上語言囊颅,正想要學(xué)習(xí)更高版本語言或新的語言的人。對于第一類的人我且稱為新手。

新手要學(xué)習(xí)一門程序語言踢代,若是將新手比作一張白紙盲憎,可以畫出最新最美的圖畫,同樣也可以畫得亂七八糟沒有美感胳挎。新手的第一門語言對其今后的影響是巨大的饼疙,如果學(xué)得好,則自信心大增慕爬,對今后的發(fā)展非常有利窑眯;如果學(xué)得不好,學(xué)不下去医窿,則對其職業(yè)生涯打擊很大磅甩。新手面對眾多的語言往往無從下手,第一姥卢,不知道學(xué)哪種語言為好卷要;第二,不知道如何學(xué)習(xí)独榴;第三僧叉,不知道能不能學(xué)好!

我認(rèn)為棺榔,就目前而言瓶堕,先學(xué)習(xí)Java、C#掷豺,今后再想學(xué)習(xí)應(yīng)用于后臺的C語言都是不錯的選擇捞烟。

針對第三點,我認(rèn)為只要想學(xué)当船,有職業(yè)壓力,沒有學(xué)不好的默辨,只有學(xué)不到最好的德频。

關(guān)于第二點搂根,我的建議應(yīng)特別注重兩個要點:一是基礎(chǔ)冰肴,二是動手能力。學(xué)語言首先要看書踩娘,然后要動手表谊。那些認(rèn)為光看書就能學(xué)會語言的想法是很幼稚的钞护,而那種光注重編程而不注重讀書的人,將來一定是動手能力強而編程水平低的爆办。

1)新手不要急于求成难咕,要把時間放長一點,先把基礎(chǔ)知識學(xué)好,基礎(chǔ)越扎實余佃,今后編程水平就越有可能提高暮刃。看書至少要花三個月時間爆土。

主要選擇計算機原理椭懊、程序設(shè)計原理以及所學(xué)語言相關(guān)(最好是入門類,不要刻意地選擇哪本步势,對初學(xué)者來說氧猬,任意一本都是好的)的三類書籍。

2)由于看書過程中肯定會遇到很多不懂的概念坏瘩,而且各種概念之間的關(guān)系也不容易理解和掌握狂窑,所以許多新手望而生畏,堅持不下去桑腮。這個時候一定要學(xué)會堅持泉哈,堅持讀下去,反復(fù)讀下去破讨,對實在不懂的概念要注意收集丛晦,將其牢記在心。這個時候最好不要找人去解答提陶,而是把所有的書籍反復(fù)看完3遍之后烫沙,再去找人解答,這樣就可以加深對這個問題的理解隙笆,而且解答者也愿意回答锌蓄。如果一有問題就去問,一是解答者容易失去耐心撑柔,二是自己對問題沒有印象瘸爽,容易產(chǎn)生依賴性。

3)有了一定基礎(chǔ)知識之后铅忿,就要自己想辦法安裝編程環(huán)境剪决。安裝編程環(huán)境的要點可參照1.2節(jié)中有關(guān)“流程”的闡述,這里就不再贅述檀训。

4)開發(fā)環(huán)境安裝完成后柑潦,新手就可以編寫顯示“hello world!”程序了峻凫。

編寫這個程序目的主要是學(xué)習(xí)主程序的作用渗鬼、主程序的參數(shù)入口、簡單的賦值語句荧琼、顯示功能調(diào)用和退出程序語句譬胎。通過完成這個程序差牛,新手就可以對編寫程序流程有一個切身體會。

5)接下來可以學(xué)習(xí)算術(shù)運算編程银择。試一試算術(shù)表達(dá)式編寫多糠,可以簡單地編寫一個計算器示例;也可以編寫一個顯示日歷的復(fù)雜程序(若輸入年份浩考,則顯示這個年份的日歷)夹孔。在這個階段主要是學(xué)習(xí)函數(shù)以及函數(shù)的調(diào)用、算術(shù)運算析孽、條件語句搭伤、循環(huán)語句、顯示功能等袜瞬,這些都是編程的基礎(chǔ)怜俐。

6)完成算術(shù)運算的學(xué)習(xí)后,可以編寫更復(fù)雜的完整的程序了邓尤。例如可以編寫一個學(xué)生信息管理程序拍鲤。其功能為:接受一個學(xué)生信息(例如,學(xué)號汞扎、學(xué)生姓名季稳、班級、年齡)并把它保存在計算機中澈魄,同時提供增加景鼠、刪除、修改痹扇、查詢功能铛漓。信息保存形式可以是文本文件,也可以是數(shù)據(jù)庫鲫构。

這個階段主要是學(xué)習(xí)變量浓恶、數(shù)據(jù)存放、文件操作芬迄、數(shù)據(jù)庫操作问顷、程序完整性等,這也是編程的基礎(chǔ)禀梳。

7)完成上述學(xué)習(xí)之后,程序員要學(xué)會回頭梳理自己編寫的程序肠骆,梳理自己已經(jīng)學(xué)過的概念算途。可以對自己以前的程序進(jìn)行修改蚀腿,培養(yǎng)不斷提高自己編程水平的意識嘴瓤。

8)在這些過程中若遇到問題扫外,先看幫助。幫助不行廓脆,最好是找懂行的人詢問筛谚,不要自己鉆牛角尖,浪費時間停忿。上網(wǎng)查詢也可以驾讲,但是不如詢問別人直接∠福看書是不能解決問題的吮铭,切記!

9)在這些都完成之后颅停,程序員可以有目的地針對自己將要開發(fā)的內(nèi)容進(jìn)行相應(yīng)的技術(shù)學(xué)習(xí)和準(zhǔn)備了谓晌。

10)編寫程序的時間估計需要2~3個月。一般而言癞揉,一個新手學(xué)習(xí)一門語言需要半年左右的時間纸肉。有的可能要少一點,有的可能會多一點喊熟。但是柏肪,無論如何,最終的結(jié)果是程序員對語言有了初步的了解逊移,可以用語言編寫簡單的程序了预吆。

1.5 理性看待考證熱

在當(dāng)今這個社會,經(jīng)常會出現(xiàn)各種所謂的熱門現(xiàn)象胳泉。這說明目前的社會相對浮躁拐叉,而IT行業(yè)也同樣不能避免。IT證書可謂名目繁多扇商,應(yīng)該有幾十種凤瘦。IT證書(認(rèn)證證書)大體可分兩類:一類是各大企業(yè)的認(rèn)證,如微軟案铺、IBM蔬芥、SUN、CISCO等認(rèn)證考試控汉,這類考試主要是考核考生的專業(yè)技能和特殊技術(shù)的水平笔诵;另一類是國家認(rèn)可的考試認(rèn)證:如全國計算機等級考試(NCRE)和全國計算機應(yīng)用技術(shù)等級考試(NIT),考核的是考生綜合的或某一領(lǐng)域的標(biāo)準(zhǔn)要求達(dá)到的程度姑子。其實幾乎所有的程序員都知道乎婿,程序員的能力是一種綜合能力,其動手能力的成效是其能力的主要方面街佑。若認(rèn)為單靠考試就可以反映出考生的實際能力谢翎,那簡直就是一個笑話捍靠。

證書的出現(xiàn)說明社會對任職資格的追求,反映出社會對無序現(xiàn)象的一種規(guī)范要求森逮,反映出對“持證上崗”的認(rèn)同榨婆。社會資格的本質(zhì)是對人們之間競爭的一種限制。為了突破這種限制褒侧,獲得在競爭中的優(yōu)勢良风,人們便千方百計地獲取這種社會資格。于是社會上便出現(xiàn)了三類群體璃搜,一類是發(fā)放證書的拖吼,一類是獲取證書的,一類是招聘中認(rèn)可證書的这吻。由于這三類群體都能從中獲得直接的或間接的證書經(jīng)濟利益吊档,于是,證書不火也難唾糯。當(dāng)證書火到一定程度的時候怠硼,其原本內(nèi)在的職能就慢慢地被異化了。人們不是為證明證書持有人的能力而設(shè)立考試移怯,而是為了獲取考試帶來的經(jīng)濟利益而設(shè)立各種證書香璃,于是證書的價值就貶值了。

但是舟误,我們很多考生并沒有深入地看到證書背后真正的內(nèi)容葡秒,他們認(rèn)為用人單位需要證書,沒有證書就不能被錄取嵌溢。社會上大量流傳著未經(jīng)證實的證書和高薪之間的關(guān)系眯牧,更使某些證書神乎其神。因此赖草,他們在證書方面花了大量的時間和金錢学少,為了證書而證書,能考多少證書就考多少證書秧骑。為的是在應(yīng)聘時遞交的簡歷上可以附上厚厚的各種證書版确。

就我本人而言,我好像沒有考過什么證書乎折,工作依然很順利绒疗。這雖然和我成長所處的年代有關(guān),但更重要的是我可能更關(guān)注自己能力的提高骂澄。如果自己的能力水平能夠達(dá)到用人單位滿意的要求忌堂,我相信即使你沒有那些證書,用人單位也會考慮錄取你的酗洒。我也相信有些用人單位的人力資源部門會按規(guī)定辦事士修,沒有證書不予錄取狀況也是存在的。這個時候樱衷,你自己就要權(quán)衡了棋嘲,是進(jìn)入按能力看人的企業(yè)求得發(fā)展呢,還是進(jìn)入憑證書看人的企業(yè)求得發(fā)展呢矩桂?

我對證書方面的建議:

1)如果不占用自己大量的時間和金錢沸移,能考多少證書就考多少證書。把考證書當(dāng)做消遣和對知識的復(fù)習(xí)侄榴。

2)如果需要對國家證書和企業(yè)證書進(jìn)行選擇時雹锣,在沒有針對性的情況下,選擇國家證書癞蚕。

3)如果自己對某類公司或某類崗位有意向的時候蕊爵,最好打聽其是否有剛性的證書要求,若有桦山,則要不惜時間和金錢去獲得這個證書攒射。若沒有剛性的要求,僅僅是一種參考恒水,那就要根據(jù)個人情況会放,例如時間和金錢方面的條件,進(jìn)行取舍钉凌。

4)在已經(jīng)有足夠證書的情況下咧最,不要見一個證書就去考一個證書。盡量把時間放在自己的學(xué)習(xí)上和能力提升上御雕。把時間和金錢節(jié)約下來做更重要的事矢沿。

5)不要和別人攀比證書多與少。因為每個人就業(yè)方向和機會都是不相同的饮笛。

6)沒事的時候咨察,可花點時間跟蹤流行證書的情況,以便自己及時掌握證書最新情況福青,早作打算摄狱。

7)工作之后,也有可能因為你考了相關(guān)證書无午,可能會對你的薪水媒役、崗位產(chǎn)生有利的影響;也可能對你跳槽有所幫助宪迟。這些在現(xiàn)實生活中也是可能出現(xiàn)的情況酣衷。

總之,我們要理性地對待考證熱次泽,我們不贊成為考證而考證穿仪,我們也不贊成能考證而不考證席爽。我們贊成那種實用主義的態(tài)度:當(dāng)我們剛性地需要考證的時候,我們就準(zhǔn)備考試啊片,爭取獲得證書只锻。當(dāng)證書僅作參考的時候,我們能考就考紫谷,不考則把時間和精力花在自己的能力提升上面齐饮。

在國內(nèi),證書的泛濫早已使證書失去了原有的價值笤昨。但是祖驱,我們應(yīng)學(xué)會內(nèi)外兼修,也不妨在提升自己內(nèi)在能力的同時學(xué)會打扮自己瞒窒,讓自己更加漂亮一些捺僻,讓別人更欣賞自己。

1.6 選擇大公司還是小公司

很多人在第一次求職的時候幾乎都會遇到“到大公司還是到小公司”的問題根竿。他們認(rèn)為大公司的薪水高陵像、工作穩(wěn)定、技術(shù)水平高寇壳、升遷機會多醒颖,但是,大公司要求高壳炎,競爭激烈泞歉,自己怕進(jìn)不了;而小公司薪水相對低一些匿辩,工作穩(wěn)定性較差腰耙,技術(shù)水平參差不齊,升遷機會不多铲球,但是挺庞,錄取率相對較高。這可能是各種求職中的一個常見話題稼病。這個選擇應(yīng)該是因人而異选侨,幾乎沒有什么正確答案。所以然走,我們看到過選擇大公司的人獲得了成功援制,也看到過選擇小公司的人獲得了成功,相反的情況我們同樣也見到過芍瑞。

作為程序員的求職晨仑,我想還是具有職業(yè)特殊性的。程序員職業(yè)和一般的職業(yè)有很大的不同,程序員職業(yè)有其鮮明的特點:1)個人勞動洪己;2)產(chǎn)品可復(fù)制妥凳。這兩個特點注定了程序員有很大個人發(fā)展的空間。

1.個人勞動

表明其工作主要和勞動者自身有關(guān)码泛。無論是程序員獨自承擔(dān)一個編程項目猾封,還是在一個項目中承擔(dān)部分編程工作,都可以歸結(jié)為個人勞動噪珊。不像有的職業(yè)需要昂貴的勞動設(shè)備,依賴昂貴的設(shè)備齐莲,例如:煉鋼工人必須要有煉鋼廠的煉鋼爐痢站;也不像有的職業(yè)需要其他人聯(lián)合勞動,例如选酗,流水線上的裝配工阵难;也不像其他職業(yè)有嚴(yán)格操作規(guī)范和工作流程,例如芒填,制藥廠必須按照制藥的配方生產(chǎn)藥品呜叫。

程序員只要有臺計算機(其價格可以忽略不計)就可以工作了,而且在工作時是一個人在工作(工作前后以及項目的銜接可以忽略不計)殿衰。其編程過程完全取決于程序員個人的技術(shù)水平發(fā)揮朱庆。

2.產(chǎn)品可復(fù)制

絕大部分企業(yè)生產(chǎn)出的是實物產(chǎn)品,每個產(chǎn)品都需要投入一定的原材料闷祥,價值很大限度上與其原材料的成本有關(guān)娱颊。勞動者生產(chǎn)一件產(chǎn)品,其最大的價值就限制在這個產(chǎn)品的售價之內(nèi)了凯砍。

而程序員生產(chǎn)的產(chǎn)品是軟件箱硕,軟件最大的特點是可復(fù)制性,而且可復(fù)制得不計其數(shù)悟衩。因此剧罩,程序員生產(chǎn)軟件的價值就是軟件拷貝數(shù)。當(dāng)拷貝數(shù)不斷增加的時候座泳,程序員生產(chǎn)的軟件價值就在不斷增大惠昔。一個軟件最大的價值等于其單價乘上可能的用戶數(shù)。如果這個用戶數(shù)是成千上萬的時候钳榨,程序員的一個勞動價值可達(dá)到一個天文數(shù)字舰罚。所以,世界上成功的軟件企業(yè)薛耻,正是這種可復(fù)制性的受益者营罢。

程序員的這兩個職業(yè)特點表明程序員的發(fā)展空間很大。程序員不管是在大公司還是在小公司都能獲得成功。只要這個公司能生產(chǎn)和銷售出可復(fù)制的軟件饲漾,程序員都能夠獲得比職業(yè)高得多的收益蝙搔。關(guān)鍵是程序員是否具備編制這些軟件的技術(shù),這些軟件能否被大量復(fù)制(定制軟件價格高也行)考传。

比爾·蓋茨正是成功通過編制軟件而將微軟發(fā)展成為一個軟件帝國的吃型。在現(xiàn)實生活中,也有一些成功的程序員自己當(dāng)上了軟件公司的老板。不成功的也有很多腹忽,但是川背,其中的原因不在此,我會在后面的內(nèi)容中加以分析赐写。

通過以上分析,當(dāng)程序員面對“選擇大公司還是小公司”的時候膜赃,我建議:

1)在程序員趨向于安穩(wěn)工作的情況下挺邀,而且具有大公司所要求的學(xué)歷、經(jīng)驗跳座、證書端铛、能力的時候,應(yīng)該首選大公司疲眷。這些大公司指的是國內(nèi)外著名企業(yè)禾蚕,有的甚至是地區(qū)內(nèi)著名企業(yè)。進(jìn)入大公司后咪橙,可以保證收入高夕膀,崗位穩(wěn)定。

2)在程序員技術(shù)水平一般的情況下美侦,想進(jìn)大公司也可能是一個夢想产舞,那只好選擇小公司了。小公司的好處是起點低菠剩、機會多易猫,缺點是收入低、開發(fā)不規(guī)范具壮。

3)對于有理想和抱負(fù)的程序員准颓,我建議先進(jìn)小公司,然后再進(jìn)大公司棺妓。小公司專業(yè)化分工比較粗糙攘已,有的甚至一個人就會負(fù)責(zé)一個項目,對人的鍛煉機會很多怜跑,程序員既可以學(xué)到編程样勃,又可以學(xué)到設(shè)計和項目管理吠勘,往往會成為一個“全能型”的程序員,這對程序員以后的發(fā)展有很大的好處峡眶。但是剧防,程序員在完成編程積累之后,應(yīng)該轉(zhuǎn)向到大公司發(fā)展辫樱,學(xué)習(xí)大公司的軟件開發(fā)流程峭拘、團隊意識、大項目的開發(fā)經(jīng)驗狮暑、規(guī)范和管理鸡挠、企業(yè)間的合作以及技術(shù)交流和運用等。

4)我們知道軟件能否復(fù)用是軟件小公司發(fā)展的關(guān)鍵心例。因此宵凌,我們在面對軟件小公司的招聘的時候,我們應(yīng)當(dāng)對公司在軟件行業(yè)應(yīng)用的范圍止后,以及軟件的客戶數(shù)有所了解,以判斷小公司的成長性溜腐。當(dāng)小公司成長性很高的時候译株,你的選擇應(yīng)該是正確的,當(dāng)小公司成長性很低的時候挺益,你若選擇歉糜,就有可能不正確。

5)那些缺乏遠(yuǎn)大理想的程序員望众,只是把軟件當(dāng)做普通工作匪补,求得平均工資和正常收入的程序員,最好能找到一些工作較為穩(wěn)定的部門烂翰,以保證有一個穩(wěn)定收入夯缺。這些人即使進(jìn)入大公司、小公司甘耿,都可能面臨解雇的危險踊兜。最好的情況就是處在一個崗位多年不動,工資多年不漲的局面佳恬。

對于有理想的程序員來說捏境,無論進(jìn)入大公司還是小公司,都是一個積累過程毁葱,都是一個鍛煉自己的天地垫言。對于普通的程序員來說,進(jìn)入大公司則實現(xiàn)夢想更容易些倾剿,進(jìn)入小公司則可能存在諸多困難筷频。只是前者取決于自己,而后者取決于別人。而關(guān)注公司成長性則是兩者都要重視的截驮,畢竟這和自己的當(dāng)前和未來收入密切相關(guān)笑陈。

總之,我想說程序員是一個很特殊的職業(yè)葵袭,它給每個程序員造就了一飛沖天的可能涵妥。關(guān)鍵是程序員自己是否有這個想法,能不能在進(jìn)入各種公司之后坡锡,積累和提高自己的技術(shù)水平蓬网,為一飛沖天做好準(zhǔn)備。

1.7 新手面試常見問題和對策

招聘面試是一個用人單位(面試官)與招聘者之間的博弈鹉勒,不同的應(yīng)聘者帆锋、不同的用人單位、不同的面試官會產(chǎn)生不同的面試過程和不同的面試結(jié)果禽额。因此锯厢,如何應(yīng)對面試是很難有什么正確答案的。但是脯倒,大量面試沉淀下來的各種成功的經(jīng)驗和失敗的教訓(xùn)卻是我們可以參考的实辑。

在日常生活當(dāng)中,常常有朋友和同事找到我藻丢,向我詢問他們學(xué)計算機專業(yè)的孩子在面試時要注意些什么剪撬。也有一些軟件公司因為和我比較熟悉,請我在業(yè)余的時候為他們招聘人員把把關(guān)悠反,提提意見残黑。在單位的時候,有時候也會帶上實習(xí)生斋否,也會面臨培養(yǎng)新員工的問題梨水。因此,我見到新手的機會相對比較多一些如叼,加之自己也是從新手走過來的冰木,所以對新手相對了解一些×。可以說我身兼了被招聘者和招聘者兩種角色踊沸。客觀了解和分析這兩者的面試心理可以讓我們面試時心態(tài)更從容和平和一點社证。

作為新手逼龟,主要是一些剛畢業(yè)的大學(xué)生,他們很少有編程經(jīng)歷追葡,很少有人能把學(xué)的東西與現(xiàn)實對上號腺律。但是他們求職心切奕短,急需通過錄用來證明自己的社會價值,證明自己的獨立生活能力匀钧,因此翎碑,他們在應(yīng)聘中一直處于弱勢地位。

作為面試官之斯,肩負(fù)著企業(yè)招聘員工的重任日杈,知道企業(yè)招人的急迫性和招人的標(biāo)準(zhǔn),當(dāng)應(yīng)聘者眾多的時候佑刷,其招聘要求應(yīng)更加嚴(yán)格莉擒;當(dāng)應(yīng)聘者不多的時候,要求就可能放寬瘫絮。他們擁有招與不招的大權(quán)涨冀。在招聘中處于強勢地位。

新手在面試時常見有以下幾個問題:

1.簡歷灌水

新手在求職時麦萤,往往會投寄和遞交簡歷鹿鳖。這些簡歷對用人單位了解應(yīng)聘者的意義重大,這是用人單位對其第一印象∽秤ǎ現(xiàn)實中有很多簡歷言過其實栓辜,例如:“精通C#、Java語言”垛孔,其實遠(yuǎn)遠(yuǎn)達(dá)不到精通的水平∈└遥“開發(fā)過某某項目”周荐,實際上僅僅是參與過這個項目,在項目中作用微乎其微僵娃。這樣言過其實的部分往往會在“掌握語言”概作、“編程水平”、“英語水平”默怨、“項目能力”讯榕、“團隊精神”、“學(xué)習(xí)經(jīng)歷”匙睹、“學(xué)習(xí)成績”有所體現(xiàn)愚屁。有的人明明沒有學(xué)過C#,但是他敢于寫上自己精通C#痕檬。

灌水的直接結(jié)果就是應(yīng)聘者在面試時霎槐,顯得很尷尬,顯得很不誠實梦谜。例如用人單位急聘C#程序員丘跌,看到簡歷上精通C#之后袭景,必然會在面試時問及C#編程情況,在某些情況下闭树,還會出一些C#編程試題耸棒。如果這個新手并不精通或根本不會C#,其結(jié)果就可想而知了报辱。

很多新手認(rèn)為与殃,你不寫夸大一點,你可能連面試的機會都得不到捏肢。但是奈籽,到了面試,一切都會暴露的鸵赫。我認(rèn)為衣屏,在簡歷上誠實地寫清自己的各種情況和水平,這可能更容易得到用人單位的認(rèn)可辩棒。如果自己掌握的東西不夠的話狼忱,還是應(yīng)該把應(yīng)該掌握的東西在應(yīng)聘之前多掌握一些,把真實的自己展示在用人單位面前一睁。

大家知道钻弄,在招聘程序員的時候,面試官中一定會有一個懂程序的高手(用人單位的高手)者吁,而這些人自信心很強窘俺,具有好斗的潛意識。你說強复凳,他就要讓你把強說出來瘤泪,好讓他表現(xiàn)自己。所以這個職業(yè)特點注定你不能太夸大自己育八。

2.恐懼心理

由于新手處于弱勢地位对途,其恐懼心理很嚴(yán)重,有的大學(xué)生社會實踐比較少髓棋,連起碼的見面禮節(jié)和打招呼都忘了实檀。有的人在介紹自己的時候話不成句,聲音極小按声,連面試官都聽不清楚膳犹,尤其是被問到程序方面問題的時候,更是緊張得詞不達(dá)意儒喊。幾乎所有新人都有恐懼心理镣奋,只是恐懼程度有高有低罷了』忱ⅲ恐懼心理使應(yīng)聘者留給面試官的印象不好侨颈,他會認(rèn)為你社會經(jīng)驗比較少余赢,溝通力差,還是一個學(xué)生哈垢。

可以通過時間和經(jīng)歷來克服恐懼心理妻柒,新手平時要注意這方面的改進(jìn),講話聲音盡量大一些耘分,說話要盡可能多举塔,話與話之間盡量連貫,在說話時求泰,眼光要盡量看著聽者央渣。新手可以找一些同學(xué)、老師渴频、家人當(dāng)做面試官練練兵芽丹,一次不行二次,二次不行三次卜朗,多練幾次就會好得多拔第。

3.表現(xiàn)欲強

程序員中也有一些表現(xiàn)欲強的人,這類人動手能力相對強一些场钉,對新技術(shù)有追逐的愛好蚊俺,有的也做過一些項目,自己也賺過一些錢逛万,有的認(rèn)為自己已經(jīng)會編程了泳猬,有的認(rèn)為自己已經(jīng)是高手了,他們在面試時表現(xiàn)出了那種過于自信的談吐宇植。有的甚至?xí)柮嬖嚬僦啦恢滥硞€東西暂殖,這往往讓面試官感到不快。因為在企業(yè)工作的程序員或項目經(jīng)理都知道技術(shù)水平的提高是沒有止境的当纱,否則,他們也不會來招聘新人踩窖。他們既要看到應(yīng)聘者的能力坡氯,又要看到應(yīng)聘者表現(xiàn)能力的方式。他們認(rèn)為洋腮,那些過高看待自己的人往往在團隊合作上容易出現(xiàn)問題箫柳。而且夸夸其談的人往往和那些沒有真實能力的人畫上等號。

面試時啥供,缺乏能力的時候悯恍,要表現(xiàn)出能力;缺乏風(fēng)度的時候伙狐,要表現(xiàn)出風(fēng)度涮毫,應(yīng)聘者瞬欧,切記不要班門弄斧,弄斧可能傷到自己的腳罢防,如果想要表現(xiàn)自己的話艘虎,可以在同學(xué)、家人咒吐、陌生人面前盡情的表現(xiàn)野建,雖然這些表現(xiàn)可能不會影響你的應(yīng)聘。

不過恬叹,有的企業(yè)不把表現(xiàn)欲很強的人錄用為程序員候生,而是把其錄用為軟件銷售人員,這種情況在現(xiàn)實生活中也真的出現(xiàn)過绽昼。

4.準(zhǔn)備不足

很多企業(yè)和單位在招聘的時候?qū)φ衅笉徫缓腿藛T要求都是很明確的唯鸭。但是,有的應(yīng)聘者往往對此沒有針對性绪励、重點性的準(zhǔn)備肿孵。例如,某用人單位要招聘有金融軟件開發(fā)經(jīng)驗疏魏、熟練使用C#語言的程序員停做,很顯然用人單位是要做金融方面程序的,而且缺少C#程序員大莫。應(yīng)聘者應(yīng)該針對金融方面的知識和C#語言兩大方面多做準(zhǔn)備蛉腌,如果你有金融軟件開發(fā)經(jīng)歷,那就要在面試時突出這個方面的內(nèi)容只厘,如果沒有烙丛,你最好多準(zhǔn)備金融方面的知識,談?wù)剬鹑跇I(yè)務(wù)的理解和自己的看法羔味,表明你對金融軟件的了解程度河咽。同理,在C#方面赋元,也要針對C#在金融軟件方面常用到的技術(shù)做些準(zhǔn)備忘蟹。這樣有的放矢地回答面試官的問題,總比擺出一副叫我做什么我就做什么的架勢要好得多搁凸。

許多新手對用人單位的性質(zhì)媚值、員工人數(shù)、工資狀況护糖、同業(yè)中排名褥芒、產(chǎn)品方向、單位特點嫡良、發(fā)展趨勢锰扶、可能筆試献酗、面試的內(nèi)容都無準(zhǔn)備,便匆匆應(yīng)聘少辣,其結(jié)果是可想而知的凌摄。機會總是留給那些有準(zhǔn)備的人。

5.性格內(nèi)向

由于編程是一種個人勞動漓帅,很多學(xué)程序的學(xué)生很自然地沉浸于個人世界里锨亏,與外界交往和交流并不主動和積極。表現(xiàn)在與人打交道上很內(nèi)向忙干,少言寡語器予,給人看上去很“老實”的感覺。這些人往往對自己很自信捐迫,卻又埋怨別人不理解自己的能力乾翔。在面試時,往往和面試官形成一問一答那種很機械的場景施戴,嚴(yán)重缺乏主動性反浓,從而給面試官留下一種很不自信的印象。除了女人找對象要找“老實人”之外赞哗,很少有軟件企業(yè)要招那種性格極端內(nèi)向的程序員的雷则。

在當(dāng)今項目規(guī)模越來越大,項目內(nèi)部越來越需要協(xié)調(diào)肪笋、交流和合作月劈,軟件開發(fā)更需要團隊精神來支持。無論是交流意識藤乙、交流方式都是優(yōu)秀程序員必須具備的猜揪。所以在面試的時候,要避免一問一答坛梁,要主動地在重點問題上談?wù)勛约旱目捶ê拖敕ǘ悖鲃雍兔嬖嚬龠M(jìn)行溝通,這樣面試官自然會對你另眼相看划咐,我們不排除的用人單位喜歡雇用性格內(nèi)向的程序員毅人,但那畢竟是少數(shù)。

6.邏輯不清

程序員最重要特征之一就是邏輯性尖殃,凡事要講邏輯、講條理划煮,有條理才能成為程序送丰。但是,面試時也常常遇到一些應(yīng)聘者答非所問弛秋。如果你要問他多高器躏,他絕不會回答他1米70俐载,而是可能回答“今天上午我才趕來面試的”且预。你要問他常用的排序方法有幾個厌丑,他絕不會回答有3個娱两,第1個是什么塞椎,第2個是什么鼓择,第3個是什么冬念,而是回答讓你不知道他在說些什么鸭巴,也許其中有那么個排序的名詞伏蚊。對于那些沒有什么正確答案的問題馅巷,那更是能回答得云里霧里膛虫,聽不出其中的頭緒〉鲡可以說這種人說話和思維缺乏邏輯稍刀,能把一個簡單事情復(fù)雜化,能把一個真實事情虛無化敞曹。

這種人在理解別人的話的能力方面账月,在處理問題的能力方面,在邏輯方面都很欠缺澳迫。如果不加以注意和改進(jìn)局齿,那么進(jìn)入了程序員這個行業(yè)后,自己痛苦纲刀,同時別人也會跟著痛苦项炼。了解這些后,應(yīng)聘者在面試時示绊,一定要集中精力锭部,要充分理解面試官提問的真正意圖,回答簡明而有條理面褐,不懂也不要胡亂說拌禾。只有這樣面試官才會認(rèn)可你是做程序員的材料。

7.潛力不明

用人單位招收程序員一般有兩種類型展哭,一類是招來即用的湃窍,一類是培訓(xùn)后使用的。對于前者匪傍,用人單位招的是和自己項目開發(fā)最接近的程序員您市,比如之前做過此類項目最好(挖同行的人員),招人的標(biāo)準(zhǔn)很明確役衡,能干則要茵休,不能干就不要。針對第二類,主要是看應(yīng)聘者的各方面素質(zhì)榕莺,看看是否通過培訓(xùn)后能逐步成為單位的有用之才俐芯,所以標(biāo)準(zhǔn)比較寬泛,無論是應(yīng)聘者還是招聘者都有很大的選擇范圍钉鸯。很多應(yīng)聘者并不了解這些吧史,在面試的時候,沒有主動地表現(xiàn)自己各個方面的素質(zhì)唠雕,表明自己是一個有素質(zhì)和潛質(zhì)的員工贸营,以獲得面試官的認(rèn)可。

有一點要特別說明及塘,應(yīng)聘者千萬不要過度地表現(xiàn)自己的學(xué)習(xí)欲望莽使,說一些“到單位之后,我會好好學(xué)習(xí)的”之類的話笙僚,認(rèn)為用人單位是一個學(xué)校芳肌,只要當(dāng)一個好學(xué)生就可以了。用人單位要的不是一個學(xué)生肋层,不會提供一個免費培訓(xùn)基地亿笤,而是讓你為它創(chuàng)造財富的。面試官特別不喜歡那些已經(jīng)走出校門而思想還沒有走出校門的應(yīng)聘者栋猖。你不如說“我到了單位后净薛,將多做工作,為單位創(chuàng)造財富貢獻(xiàn)自己微薄之力”之類的話蒲拉,這反而更能讓面試官認(rèn)同肃拜。

應(yīng)聘者的語音語調(diào)、著裝打扮雌团、遞交材料方式燃领、等候面試、介紹自己的分寸锦援、對用人單位的關(guān)注度猛蔽、對自己未來的企盼、對自己可成長性闡述灵寺、對自己不懂問題的回答等面試中的細(xì)節(jié)曼库,都可能是面試官對你產(chǎn)生印象的一個因素。這些因素的綜合形成了面試官對你的素質(zhì)的判斷略板。

面試官可以理解你現(xiàn)在編程技術(shù)達(dá)不到所要求的水平毁枯,但是不能容忍今后你達(dá)不到所要求的水平。關(guān)鍵是讓面試官看到你的潛質(zhì)叮称。

總之种玛,新手在面試時胀糜,要準(zhǔn)備充分,要端正自己的心態(tài)蒂誉,即不要過分地表現(xiàn)自己,也不要恐懼猶豫距帅,說話要條理清楚右锨,注意面試中的各個細(xì)節(jié),盡可能地向面試官展示自己良好的職業(yè)素質(zhì)碌秸,展示自己未來的發(fā)展?jié)摿ι芤疲@樣面試官就可能對你有一個良好的印象,有助于獲得這個就業(yè)機會讥电。

面試只是應(yīng)聘者素質(zhì)的集中反映蹂窖。素質(zhì)的形成可以是在面試之前,也可以是在面試之后恩敌。只要我們注重培養(yǎng)和提高自己的素質(zhì)瞬测,我們就可以在任何時候面對任何的面試。

1.8 薪水的苦惱

上班了纠炮!拿工資了!從學(xué)生轉(zhuǎn)變成社會的勞動者月趟,這是人生階段的一個重要轉(zhuǎn)折標(biāo)志。當(dāng)拿到自己的薪水之后恢口,是喜悅孝宗、是滿足、是苦惱耕肩、是無奈因妇,每個人的感覺都是不一樣的,我記得自己第一次領(lǐng)到上班的工資不到10元錢猿诸,興奮異常婚被,忙著請客慶賀。而今一個新手拿著2000多元的薪水估計也不會欣喜到哪里去两芳。

程序員注重自己的收入與其他所有勞動者一樣摔寨,注重自己的收入是天經(jīng)地義的事情。只要是為了謀生而工作的(為了其他目的怖辆,如愛好是复、興趣、自我實現(xiàn)等而工作的竖螃,不在我們談?wù)撝校┦缋龋紩⒅刈约旱氖杖搿缀鯖]有一個人會認(rèn)為自己的收入高特咆,所有的人都希望自己的收入越高越好季惩。這個原因主要是人對金錢的追求是無止境的录粱。

現(xiàn)實中程序員對自己的薪水還是有很多苦惱的。

1.從宏觀上看收入

從宏觀上看画拾,由于程序員所處的行業(yè)或企業(yè)不同啥繁,其收入的差距確實存在。所以青抛,當(dāng)程序員看到在其他行業(yè)工作的同學(xué)所拿到的工資時旗闽,就會感嘆自己拿的工資太少。我初步估算了一下蜜另,新進(jìn)軟件公司的大學(xué)生的工資收入一般是當(dāng)?shù)刈畹凸べY的2倍左右适室。

2.從企業(yè)內(nèi)部看收入

在一個企業(yè)內(nèi)部,由于各個部門或職位分工不同举瑰,其工資也存在較大差異捣辆,而且在不同的行業(yè)中這種差距也比較明顯。

作為軟件公司的程序員一般是公司收入最低的階層此迅,而作為用戶單位的程序員的收入一般處于單位平均工資的中等水平汽畴。總之程序員的平均收入水平是不高的邮屁。而程序員本身也因工齡整袁、技術(shù)能力、項目的不同而收入不同佑吝,有的程序員升任到了設(shè)計師坐昙、項目經(jīng)理,其收入也能是普通程序員的5~10倍芋忿。這種眼前工資的差異也會讓新進(jìn)公司的程序員心中有所不平炸客,尤其是看到和自己一樣工作,甚至能力不如自己的同事戈钢,拿著比自己高的工資痹仙,這種心態(tài)尤其強烈。

3.從話語權(quán)看收入

程序員除了感到收入低之外殉了,還會對自己的薪水制定沒有話語權(quán)感到沮喪开仰,而且也會為獎金有無,分配問題激動薪铜,還會為收入不能滿足各種生活支出而感到無奈众弓。大凡與收入掛鉤的事都會讓人苦惱不已。

現(xiàn)實隔箍,現(xiàn)實谓娃,還是現(xiàn)實。程序員不但要學(xué)習(xí)技術(shù)蜒滩,還要學(xué)習(xí)適應(yīng)社會滨达,增加自己的社會知識和經(jīng)驗奶稠。我們無法掌控薪水的多少,薪水不是靠我們想出來的捡遍,就像發(fā)財不是靠做夢就能實現(xiàn)的道理一樣锌订。所以我們要學(xué)會“自己不能左右的事不要多想”,多做些自己能把控的事画株,例如瀑志,有想象的時間不如把自己的工作做好,把自己的學(xué)習(xí)忙好污秆,把自己周圍的人際關(guān)系搞好。

從另一個角度來看昧甘,新進(jìn)公司的程序員至少在3個月到半年時間內(nèi)還是處于學(xué)習(xí)和適應(yīng)階段良拼,還沒有能力為公司創(chuàng)造利潤。從市場經(jīng)濟的“等價交換”原則來看充边,程序員此時對公司來說是負(fù)效益的庸推。而那種只要上班就必須給我工資的想法是一種很天真的想法。在這段時期浇冰,如果程序員能想通這個道理贬媒,就不會為薪水煩惱了。

建議程序員換一種阿Q的心態(tài)肘习,畢竟自己要比那些沒找到工作的強呀际乘。

有了好的心態(tài),我們可能更加現(xiàn)實漂佩,可能更加有利于我們在這個社會的成長脖含。今天的薪水也許很低,但是必須承認(rèn)我們的水平也很低投蝉;我們眼前雖然有收入比我們高得多的程序員养葵,但是總有一天我們也會達(dá)到他們的收入水平。如果我們能認(rèn)識到這點瘩缆,抓住一切時間去學(xué)習(xí)关拒、工作、提高自己的工作能力和技術(shù)能力庸娱,提高自己的社會生存能力着绊,我們可能就會縮短自己的成熟時間,我們也可能縮短新手的低薪水的時間涌韩,而增加自己的高薪水時間畔柔。

程序員的能力是最重要的,而能力需要得到程序員的理想支持臣樱。在程序員這個職業(yè)中靶擦,心有多高腮考,薪水就會有多高。

1.9 求書玄捕、求網(wǎng)還是求人

我們已經(jīng)知道了新手如何學(xué)習(xí)一門新的語言踩蔚,那么對于已經(jīng)掌握一種或一種以上的程序員如何學(xué)習(xí)一門新的語言呢?由于程序員已經(jīng)有一定語言基礎(chǔ)枚粘,形成了自己的一套學(xué)習(xí)方法和思維定式馅闽,所以這個問題還是和新手學(xué)語言有些差別的。

在現(xiàn)實生活中馍迄,我發(fā)現(xiàn)不少程序員因為工作的需要而學(xué)習(xí)新的編程語言福也。他們心懷恐懼,不知道自己能否學(xué)好攀圈,而且學(xué)習(xí)方法非常傳統(tǒng)暴凑,像新手一樣:首先去買本這方面的書(或者借本書,或者網(wǎng)上閱讀)赘来,看完以后再動手现喳。但是,我不知道他們是怎么看書的犬辰,是從頭到尾地看嗦篱?還是挑選著看?他們關(guān)注書中的什么內(nèi)容幌缝?第二種情況是程序員動手能力特別強灸促,先把語言安裝起來,先編起來再說涵卵,但是他們不知道這個過程有多長腿宰,何時是終點。無論哪一類程序員缘厢,當(dāng)你向他討教如何學(xué)習(xí)一門新語言時吃度,大都是仁者見仁,智者見智贴硫,而且?guī)缀鯖]有人能從頭到尾說清楚椿每。若不信,讀者可以自己回答這個問題英遭。

其實间护,程序員學(xué)新語言是有講究的。學(xué)習(xí)與自己現(xiàn)在使用的不同類型的語言難度最大挖诸,相同類型的語言難度就小些汁尺。當(dāng)掌握過程語言(如C語言)的人去新學(xué)面向?qū)ο蟮恼Z言(如C++)時,難度就非常大多律,因為這兩種語言的思想是完全不同的痴突,用過去的定勢去思考新的語言搂蜓,那種痛苦是難以言表的。例如VB程序員去學(xué)VFP辽装、PB等同是C/S類開發(fā)程序相對就容易得多帮碰。又例如,VB程序員去學(xué)ASP就很困難拾积,因為一個是C/S殉挽,一個是B/S,雖然語法上相差不大拓巧,但是架構(gòu)差距很大斯碌,很難馬上適應(yīng)。所以肛度,學(xué)習(xí)新的語言输拇,第一個要分析這個語言的類型自己是否已經(jīng)掌握,如果已經(jīng)掌握贤斜,那么學(xué)習(xí)的時間會很短,一般在一個星期到半個月就行了逛裤;如果沒有學(xué)過瘩绒,則學(xué)習(xí)時間會很長,一般要2~3個月或者更長带族,而且非常痛苦锁荔。

對程序員而言,學(xué)習(xí)新的語言蝙砌,第一阳堕,建議不買什么資料,買了資料也不要花時間一字一句地去看择克。主要的學(xué)習(xí)手段就是動手編程序恬总,通過在編寫范例程序的過程中學(xué)習(xí)!第二肚邢,一定要找到一個懂這種語言的人壹堰,如果能夠找到人問的話,一定要找人去問骡湖。這個時候和新手找人問是完全不同的贱纠,因為新手會聽不懂別人所說的一些基本概念,這會引起高手的不耐煩响蕴。第三谆焊,程序員千萬不要自己去“刻苦鉆研”,因為浦夷,程序員有一定的語言基礎(chǔ)辖试,心中只要記住“流程”辜王、“語法”、“調(diào)用”(見1.2節(jié))就可以了剃执。

程序員在掌握編程的流程之后誓禁,可以通過編寫以下三個程序:

1)顯示“helloworld!”程序肾档。

2)打印日歷程序摹恰。

3)“學(xué)生學(xué)籍信息”處理程序。

來掌握新語言中的語法和調(diào)用方法怒见。當(dāng)然程序員自己也可以選擇編寫自己的程序以達(dá)到學(xué)習(xí)目的俗慈。

與新手不同的是:

1)要特別注意語言的語法差別。一般來說遣耍,語言的語法差別很小闺阱,但是很令人討厭。程序員學(xué)過之后往往會混淆不同語言的語法舵变。例如酣溃,有的語句是以分號為結(jié)束符的,有的語言中的語句是以回車符為結(jié)束符的纪隙。如果混淆了赊豌,你就會一會兒加分號,一會兒不加分號的绵咱。尤其當(dāng)程序員對原先語言特別精通時碘饼,這種操作慣性是很大的,因此也特別煩人悲伶。

2)要特別注重程序的調(diào)試方法艾恼。因為除語言本身之外,如何調(diào)試也可能不太相同麸锉。調(diào)試對于程序員來說太重要了钠绍,必須加以關(guān)注。

3)要特別注重程序運行環(huán)境花沉。程序編出來了五慈,生成exe可執(zhí)行文件了,但這并不意味著程序就能執(zhí)行了主穗。例如泻拦,用C語言編寫的程序一般是不需要額外環(huán)境的,直接運行就可以了忽媒;用VFP編寫的程序争拐,則需要系統(tǒng)中安裝VFP系統(tǒng)DLL,因此,VFP程序要做安裝盤架曹;C#則需要更多的環(huán)境才能執(zhí)行等隘冲。

4)要特別注重程序中的各種調(diào)用。由于新學(xué)的語言往往功能更強绑雄,涉及調(diào)用功能更多展辞,程序員要關(guān)注新語言如何調(diào)用的問題,調(diào)用也是今后程序編寫的最重要的內(nèi)容万牺。

程序員按照這種方法去學(xué)習(xí)新的語言罗珍,剛開始一定會感到寸步難行,可能會遇到很多困難脚粟。但是覆旱,我相信只要程序員知道整個學(xué)習(xí)的流程,知道下一步工作的目標(biāo),他的進(jìn)步會越來越快。我最不希望看到程序員在學(xué)習(xí)上表現(xiàn)出自發(fā)诸老、盲目、恐懼的精神狀態(tài)噪沙。

1.10 新手看高手

入門之前,很多程序員心里有一個高手情結(jié)吐根。通過書籍正歼、媒體、傳說渲染佑惠,他們認(rèn)為IT行業(yè)是一個高手林立的行業(yè),好像這些高手創(chuàng)造了這個行業(yè)的奇跡齐疙。這些高手可能是國外的膜楷,也可能是中國的。這個高手可能是一個具體的人贞奋,也可能抽象于某些著名軟件背后看不見的程序員赌厅。只知其名,不聞其聲轿塔,這個時候的高手是一種無所不能的神特愿,一種虛幻,是令程序員崇拜的偶像勾缭。

到了工作崗位之后揍障,這種高手情結(jié)更加嚴(yán)重,由于新手發(fā)現(xiàn)自身技術(shù)水平有限俩由,而內(nèi)心想盡快擺脫這種狀況毒嫡,使得很多新手對高手感覺更加恐懼和渴望。我發(fā)現(xiàn)在IT行業(yè)中幻梯,中國程序員認(rèn)為外國的程序員是高手兜畸;網(wǎng)下的程序員認(rèn)為網(wǎng)上的是高手努释;搞硬件的人認(rèn)為搞軟件的是高手,搞軟件的認(rèn)為搞硬件是高手咬摇;搞應(yīng)用程序的認(rèn)為搞系統(tǒng)的是高手伐蒂;搞界面設(shè)計的認(rèn)為程序員是高手,程序員認(rèn)為搞界面設(shè)計的是高手肛鹏;年輕的人認(rèn)為年長的是高手逸邦,年長的認(rèn)為年輕的是高手;企業(yè)內(nèi)的程序員認(rèn)為企業(yè)的外部程序員是高手龄坪;客戶單位內(nèi)部的程序員認(rèn)為軟件公司是高手昭雌,軟件公司的程序員認(rèn)為客戶單位內(nèi)部的程序員是高手等。所有這些高手都是建立在程序員本身對某個領(lǐng)域無知或掌握不精的基礎(chǔ)上健田。因此烛卧,高手的多少是和程序員的水平成反比的,如果程序員水平高妓局,那他眼中的高手就會少总放;如果水平低,那他的眼中的高手就會多好爬。所以局雄,不同程序員對待高手的標(biāo)準(zhǔn)應(yīng)該是不同的。

高手情結(jié)是新手的正常心理現(xiàn)象存炮,它反映了程序員對未知領(lǐng)域的向往炬搭,說明程序員還有遠(yuǎn)大的理想,還有激情穆桂,還有奮斗的目標(biāo)宫盔。關(guān)于高手,我想新手應(yīng)該關(guān)注以下幾個方面享完。

1.向身邊的高手學(xué)習(xí)

身邊的高手灼芭,一般是新手的第一個師傅,也就是第一個培養(yǎng)他的那個人般又。這個人對新手來說是一個決定其技術(shù)命運的人彼绷。程序員很多人可以忘記,但是第一份工作茴迁,第一次帶他的人是很難忘記的寄悯。假定這個師傅帶他的時間有一年以上,我想從這個程序員身上一定能夠看到其師傅的某些影子堕义。比如說热某,這個師傅喜歡的語言,這個師傅喜歡的編程格式等,都能在新手身上找到昔馋。

作為新手來說筹吐,除了要向他的師傅學(xué)習(xí)之外,也要把身邊的同事看做高手秘遏,要向他們學(xué)習(xí)丘薛,只要單位或團隊范圍內(nèi)有比自己強的,不管這個人是早于自己進(jìn)入這個單位一天邦危,哪怕只是一個函數(shù)洋侨、一個語句、一個調(diào)用倦蚪、一個算法都值得去討教和學(xué)習(xí)希坚。這個時候?qū)W習(xí)是很實在的,是能解決具體問題的陵且。

向身邊的高手學(xué)習(xí)裁僧,就是要充分利用身邊的優(yōu)勢,可以面對面地接受別人的技術(shù)傳授慕购。新手千萬不要顧及面子聊疲,或不好意思,或怕麻煩別人沪悲,能請教的就趕快請教获洲,學(xué)習(xí)是硬道理。向別人請教不僅僅是去弄懂某個問題或解決某個問題殿如,更重要的是培養(yǎng)與人溝通和建立良好人際關(guān)系的習(xí)慣贡珊。

新手千萬不要有那種有人會主動幫助自己的幻想,一方面是大家工作都很忙涉馁,另一方面很多程序員不習(xí)慣于主動幫助新手门岔。

要注意身邊的高手并不是所有問題都能解答的,遇到這種情況谨胞,新手不要吃驚固歪,很多“偽高手”就是在這個時候被揭開其偽裝的蒜鸡。對于他們胯努,新手要懷有寬容的心態(tài),應(yīng)坦然面對逢防,不要深究叶沛,這個人不能解答,那就去請教另一個人忘朝。新手要記住灰署,你請教的不是高手,而是解決問題。因此溉箕,向其請教的人是否是高手并不重要晦墙。

新手千萬不要太迷信不可觸及的高手,因為迷信了也沒有用肴茄,而且也不會對你的實際工作有什么幫助晌畅,而應(yīng)該把對那些高手崇拜的時間和精力用在身邊的工作上,這可能更有成效寡痰。只有當(dāng)自己有了一定進(jìn)步之后抗楔,確定了自己發(fā)展方向之后,我們才有本錢和資格向外部高手學(xué)習(xí)拦坠。

2.學(xué)習(xí)高手的技術(shù)

(1)軟件制作流程

我記得很多新手并不會安裝操作系統(tǒng)连躏、不會安裝開發(fā)環(huán)境、不會配置網(wǎng)絡(luò)贞滨、不會新建項目入热、不會新建程序、不會編寫程序疲迂、不會運行程序才顿、不會調(diào)試程序、不會制作安裝盤等尤蒿。即使會也只是知其然郑气,而不知其所以然。而一般的程序員對此駕輕就熟腰池,而且沒有太多變化尾组,相對機械,新手死記硬背就行了示弓。因此讳侨,新手首先要把編程的流程搞清楚。把流程搞清楚之后奏属,我們就可以把精力放在編寫程序上了跨跨。

(2)語言的掌握

在程序的編寫方面,新手常常遇到的就是語法問題囱皿,如語句使用不當(dāng)勇婴、變量問題、格式問題嘱腥、備注問題耕渴、命名問題、函數(shù)調(diào)用問題齿兔、參數(shù)問題等橱脸,這些問題就不那么簡單了础米,不同的程序員會給出不同的解決方案。當(dāng)解決這些問題之后添诉,只能說是新手剛剛學(xué)會編程的工具而已屁桑,接下來就要學(xué)習(xí)如何運用這些工具來開發(fā)項目了。

(3)開發(fā)項目

這個時候新手就會遇到需求問題栏赴、功能問題掏颊、處理流程問題、數(shù)據(jù)結(jié)構(gòu)問題艾帐、算法問題乌叶、可靠性問題、邊界處理問題等柒爸,針對這些問題准浴,不同的程序員更是有不同的觀點和看法,所以捎稚,新手要多聽不同的解決方案乐横,通過比較來加深對這些問題的認(rèn)識。

(4)高級技術(shù)

以上就是滿足開發(fā)的基本要求了今野,但是葡公,能運行的程序并不是一個好程序,只是站在一個項目的角度上來看技術(shù)条霜,也不是最好的技術(shù)催什。因此,新手要更進(jìn)一步提高自己的技術(shù)水平宰睡,還要在程序的架構(gòu)蒲凶、接口、參數(shù)拆内、共享旋圆、安全、效率麸恍、交互等與程序密切相關(guān)的問題上進(jìn)行探討和研究灵巧,而在這方面有所建樹的程序員已經(jīng)不多見了。所以抹沪,新手要多留意刻肄,自己也要多積累,在這些方面多下工夫采够。

3.學(xué)習(xí)高手的方法

具體的問題是永遠(yuǎn)解決不完的肄方,尤其是編程冰垄。遇到的問題可以說是千奇百怪蹬癌,無所不有权她,因此,新手不能把全部的精力放在學(xué)習(xí)解決問題上逝薪。新手要在學(xué)習(xí)具體問題的解決方法前提下隅要,更要學(xué)習(xí)高手們是如何解決這類問題的。通過方法的學(xué)習(xí)董济,可以使新手有很大的進(jìn)步步清。例如,高手向新手講解一個具體程序的調(diào)試方法虏肾。新手除了掌握這個程序的調(diào)試方法之外廓啊,還要學(xué)會跳出具體程序,掌握好調(diào)試基本流程封豪、主要調(diào)試命令和注意事項谴轮。只有這樣,當(dāng)新手再次遇到調(diào)試問題的時候吹埠,就可以不用再找高手指導(dǎo)了第步,可以用這種方法自己來處理了。

高手的另一特點就是站得高缘琅,看得遠(yuǎn)粘都,一般新手的問題,他們都很輕松擺平刷袍,所以翩隧,新手也要在平時看問題時,盡量地跳到具體問題之外呻纹,站在更高的層次上看待具體問題鸽心。

4.學(xué)習(xí)高手的激情

高手除了技術(shù)水平高、工作方法好之外居暖,還有一點是新手要學(xué)習(xí)的顽频,那就是他們的激情、堅持太闺、專注糯景。高手之所以是高手,一定付出比常人更多的勞動和辛苦省骂。而這種付出并不像工作那樣是強制的蟀淮,往往是他們心甘情愿的,而且樂在其中钞澳。新手可能對老程序員沒日沒夜地連續(xù)工作感到不可思議怠惶,但是一旦他們也這樣做了,他們同樣也會感受到那種付出后獲得成功的喜悅轧粟。

在遇到困難的時候策治,新手要向高手學(xué)習(xí)那種永不放棄的精神脓魏,不戰(zhàn)勝困難就絕不罷休。高手之所以是一個高手通惫,那是在某個領(lǐng)域茂翔,他能比別人有更大發(fā)言權(quán),因為他比別人更了解這個領(lǐng)域的客觀規(guī)律履腋,這個規(guī)律是他長期專注和研究的結(jié)果珊燎。因此,新手遇到各種問題時遵湖,要沉下心來悔政,注意觀察問題中的細(xì)節(jié),不放過任何疑點延旧。只有這樣卓箫,新手對問題的理解就會比別人更加深入。

5.不迷信高手

其實垄潮,現(xiàn)實中并不存在完美的高手烹卒,高手總會存在這樣或那樣的缺陷。新手不要對高手一味盲從弯洗,編程好旅急,不一定界面設(shè)計好;編程好牡整,不一定設(shè)計好藐吮。所以,新手要有自己判斷是非的能力逃贝。例如谣辞,高手讓新手按照某種要求編寫程序,而這種要求本身就可能存在問題沐扳。當(dāng)新手發(fā)現(xiàn)這個問題時泥从,就應(yīng)該停止編程,找出問題的原因所在沪摄,最好能找出解決方法躯嫉,向高手說明情況,爭取高手的理解和支持杨拐。這樣高手就能看到新手的進(jìn)步祈餐。而新手也可以在自己發(fā)現(xiàn)的新方法的過程中找到自我價值。

雖然我們是新手哄陶,但是帆阳,面對高手我們無須恐懼,我們會發(fā)現(xiàn)屋吨,隨著時間推移蜒谤,自己看到的高手會越來越少山宾。這說明自己的技術(shù)水平在不斷提高,當(dāng)有一天有人開始請教你問題的時候芭逝,盡管你不處在高手的最前列,但是渊胸,你已經(jīng)步入了高手行列旬盯。其實,面對高手就是面對未來的自己翎猛。

1.11 新手應(yīng)該具備的基本素質(zhì)

新手走過的路胖翰,我們都走過了,別人走過的路切厘,我們也看過了萨咳。回首往事疫稿,我們有過很多經(jīng)驗和教訓(xùn)培他,但是,幾乎沒有人會刻意告知我們應(yīng)該怎么成長遗座,更沒有人專門對我們進(jìn)行素質(zhì)上的要求和引導(dǎo)舀凛。直到今天我們才知道我們的成長是自發(fā)的。它完全取決于我們的工作環(huán)境和內(nèi)容途蒋,取決于我們遇到的人和開發(fā)的項目猛遍。假如我們能夠回到從前,我們一定會在年輕的時候更加注重培養(yǎng)自己的素質(zhì)号坡,讓我們成長得更好更快懊烤。我將與程序員有關(guān)的素質(zhì)方面的要求進(jìn)行了一個系統(tǒng)性的歸納,希望這些會對程序員有所啟發(fā)宽堆。如果你對C語言C++感興趣腌紧,那么歡迎加入學(xué)習(xí)群【785290829】,獲取全套免費C/C++企業(yè)實戰(zhàn)級課程資源(素材+源碼+視頻)和編譯大禮包畜隶!

1.激情

激情是程序員的職業(yè)標(biāo)志寄啼,在很多情況下,激情具有遞減規(guī)律代箭。也就是說新手的激情最高墩划,越到最后激情越低,甚至麻木和消失嗡综。而成功的程序員幾乎都是充滿激情的乙帮,他們能將激情始終保留在身邊。我們要對年輕的程序員說极景,請保持你們的激情察净,無論你們在工作中遇到多大的不滿驾茴、委屈、挫折氢卡、失望都不要喪失你們的激情锈至,只要你們有了激情,你們才能東山再起译秦,才能勇往直前峡捡,才能達(dá)到事業(yè)的頂峰。

2.學(xué)習(xí)

無論是新手還是優(yōu)秀程序員筑悴,無論是程序員還是其他職業(yè)人員都應(yīng)該注重學(xué)習(xí)们拙,人只有在學(xué)習(xí)中才能增加自己的知識,才能將更多知識用于自己的工作阁吝。針對程序員這個職業(yè)砚婆,由于其涉及軟件技術(shù)、項目管理突勇、用戶的業(yè)務(wù)知識等方方面面装盯,而且這些方面的知識還在不停地變化和更新,所以只有學(xué)習(xí)才跟得上職業(yè)發(fā)展的要求甲馋。剛開始的時候验夯,我們發(fā)現(xiàn)若不學(xué)習(xí),那就什么都不會摔刁,我們只好學(xué)習(xí)挥转。后來,我們發(fā)現(xiàn)即使學(xué)習(xí)了绑谣,還是有很多東西不會。當(dāng)我們把學(xué)習(xí)看做一種常態(tài)的時候壤玫,我們就會不斷獲得新知識欲间,這樣才會適應(yīng)職業(yè)要求。

3.基礎(chǔ)

“萬丈高樓平地起”她渴,這充分說明了基礎(chǔ)的重要性沉唠。程序員在開始的時候,并沒有感覺到基礎(chǔ)的重要性纱扭,但是隨著程序員不斷成長,這種基礎(chǔ)的制約現(xiàn)象就會很明顯鄙币。很多程序員總是感覺自己的進(jìn)步不大,進(jìn)步不快,不知道自己的問題出在什么地方激率。其實招盲,很多最根本的問題是大學(xué)生的基礎(chǔ)問題。因為很多大學(xué)生在學(xué)校的時候顶籽,并不知道所學(xué)的基礎(chǔ)知識用在什么地方,有什么看得見的重要性久脯。很少有人會對基礎(chǔ)知識有真正的理解。到了工作單位之后摧找,一些程序員在編程的時候,復(fù)制網(wǎng)上的程序综苔,還是知其然不知其所以然如筛,基礎(chǔ)越來越差杨刨。不單是知識基礎(chǔ)惠勒,其他基礎(chǔ)也很重要箩绍,例如能岩,一些新手開始不愿意學(xué)習(xí)盲打吼和,不肯在開始學(xué)打字的時候練習(xí)盲打,基礎(chǔ)沒打好侠姑,結(jié)果若干年后,只會一個手指頭按鍵盤安吁,被人們笑談為“一指殘”。程序員要有基礎(chǔ)意識妇智,要把現(xiàn)有的取得的成績當(dāng)做基礎(chǔ)罗捎,只有把現(xiàn)有的基礎(chǔ)打牢,這樣才能向上更好地發(fā)展桨菜。

4.好勝

沒有一個程序員沒有好勝之心的倒得。但是泻红,好勝有強有弱,有的程序員大有舍我其誰的氣概霞掺,有的程序員則不露聲色暗下工夫比高低谊路,有的則看不出來是否好勝,一副好壞與己無關(guān)的樣子菩彬。有的因能力而好勝缠劝,有的因面子而好勝。作為程序員好勝是必需的惨恭,因為程序員是一種智慧勞動,要比就是比智慧。只有通過智慧的競爭噩茄,智慧才能精彩,程序才能更加漂亮获黔,軟件才能向前發(fā)展块饺。好勝意味著要比同們做得更好岛心,好勝意味著遇到困難必須克服干旁,好勝意味著自己要比自己原先做得更好。我們要的是好勝的結(jié)果冲泥,我們不需要的是好勝的表現(xiàn)。其實漫试,不要刻意表現(xiàn)你的能力歧匈,你的成果足以表現(xiàn)你的能力了。

5.動腦

軟件本質(zhì)上是一種智力的產(chǎn)物斟冕,這個智力并非天生就有的,它和程序員的技術(shù)能力孤里、理論基礎(chǔ)候引、思維方式稻励、知識范圍父阻、周圍影響等因素密切相關(guān)。只有通過對這些因素進(jìn)行收集望抽、存儲加矛、加工、處理煤篙,進(jìn)行各種各樣排列組合斟览,形成各種解決方案,然后在這些方案中進(jìn)行擇優(yōu)判斷辑奈,才能得出最后的解決問題的辦法苛茂。程序員除了動腦還要通過打鍵盤編寫程序,所以程序員還有一個動手的工作鸠窗。很多程序員習(xí)慣于邊想邊編妓羊,久而久之就養(yǎng)成了動手習(xí)慣。從成長的眼光來看稍计,程序員應(yīng)更加注重開動腦筋躁绸,而且要把其和動手編程分離開。這樣養(yǎng)成動腦的習(xí)慣之后臣嚣,對編寫程序有很大的幫助净刮。一般而言,動腦的時間越長硅则,動手的時間越短淹父,程序員技術(shù)水平就可能越高。

6.外向

程序員性格對成長有很大的影響抢埋,無論是原來外向還是內(nèi)向性格的程序員弹灭,只要從事這個職業(yè),只要和計算機打交道揪垄,其性格都會有點向內(nèi)向方面轉(zhuǎn)變的趨勢,我們看到不少程序員不善于和另人交談逻翁,怕見人饥努,甚至從內(nèi)心里不愿意和別人交談。這樣的自我封閉其實對自己并無益處八回,我認(rèn)為程序員性格要外向一些酷愧,要樂于和別人交流驾诈,要主動和另人交流,和別人交流并不一定要限于技術(shù)溶浴,用戶的需求乍迄、公司成長情況甚至對方個人生活等方方面面都可以進(jìn)行交流。這些外向的性格可以讓程序員見識更多的人士败,見識更多的領(lǐng)導(dǎo)闯两,見識更多的高手,見識過動去不敢見識的人谅将。這樣可以積累更多的社會關(guān)系漾狼。

7.技能

程序員的技術(shù)能力是程序員生存下來的基礎(chǔ),而技能從某些方面來說是首要的饥臂⊙吩辏可以說程序員就是技術(shù)的代名詞。有了好的技能你就能更好地開展自己的工作隅熙,有了好的技能你就有了和別人交流的內(nèi)容稽煤,有了好的技能就可能讓自己獲得更高一層的技能。因此囚戚,程序員要重視自己的技能學(xué)習(xí)和提高念脯,要在技術(shù)上體現(xiàn)自己的能力,要通過技術(shù)能力去影響或幫助自己的同伴弯淘。只有這樣绿店,程序員的最基本的價值才能真正體現(xiàn)出來。很多程序員到了一定階段放松了對技術(shù)的追求庐橙,技術(shù)平平假勿,只能滿足現(xiàn)有工作,這就愧對程序員這個稱號了态鳖。

8.團隊

程序員可以一個人編程序转培,但是,一個人只能編寫一些程序或小規(guī)模的程序浆竭。有一些程序員一個人完成了整個系統(tǒng)開發(fā)浸须,其技術(shù)水平固然值得稱賀,但是邦泄,如果他認(rèn)為軟件可以一個人擺平删窒,這就會影響到其向更高水平發(fā)展。隨著軟件業(yè)發(fā)展顺囊,軟件的規(guī)模也在變大肌索,軟件制作的專業(yè)化程度變得越來越高,一個人即使有這個能力開發(fā)一個完整的系統(tǒng)特碳,最好也不要一個人去完成诚亚,只有通過團隊的分工協(xié)作晕换,軟件制作才能走向正道。如果程序員一開始就能注重團隊意識站宗,一開始就認(rèn)為自己僅僅是團隊的一分子闸准,一開始就注重與其他團員的溝通和協(xié)作,這樣程序員一定能融入團隊中梢灭,而團隊的巨大作用是每個程序員個人作用所不可比擬的夷家。程序員不要只是享受自己獨自編程的快樂,而是要享受整個團隊編程的快樂或辖。

9.興趣

程序員的工作內(nèi)容看起來似乎只是一行行代碼瘾英。代碼的編寫來自于程序員頭腦的指令,而程序員頭腦中的指令并不是來源于程序設(shè)計語言颂暇,而是來源于各種需求缺谴、各種問題的分析方法和處理方法。因此耳鸯,程序員要編好程序湿蛔,不僅要對程序語言感興趣,而且要對所有和編程序相關(guān)的事物感興趣县爬,甚至對看上去與編程無關(guān)的東西也要感興趣阳啥。我們成長后才知道各種事物都是相通的,有些東西會潛移默化地影響到你的分析方法和處理方式中财喳。所以察迟,程序員不要只關(guān)心編程,這樣只會成為“書呆子”耳高。我們?nèi)粘I钪锌措娨曉俊⒙犘侣劇⑸暇W(wǎng)聊天泌枪、社交活動等都應(yīng)放在興趣之中概荷。只有廣泛的興趣才能體會到你最愛的興趣。

10.謙和

我喜歡程序員有一種謙和的精神碌燕,尤其是那些有本領(lǐng)驕傲的程序員的謙和误证。我們常常看到一些得意于自己的程序修壕、自己的項目愈捅、自己的收入、自己的職位而忘形的程序員叠殷,他們無視別人的意見和建議改鲫,有的甚至自傲,看不起其他程序員林束。但是像棘,要知道藝無止境,假定軟件領(lǐng)域擁有頂峰壶冒,而謙和正是通向這個頂峰的一個階梯缕题。更何況軟件領(lǐng)域沒有頂峰,更需要我們的謙和來表明自己不拘泥現(xiàn)有的成就胖腾,我們還有更高更遠(yuǎn)的理想烟零。

11.求新

我們常說軟件技術(shù)發(fā)展太快,跟不上就會被淘汰咸作∠前ⅲ回顧幾十年來的軟件技術(shù)發(fā)展就可以明白這一點。求新本質(zhì)就是注重時代的變化记罚、跟上時代的變化墅诡。因此,對程序員來說桐智,要有求新的意識末早,不要排斥新生事物。要通過網(wǎng)絡(luò)和各種媒體注意各種新技術(shù)的產(chǎn)生说庭,對于與自己工作相關(guān)或感興趣的技術(shù)要花點時間進(jìn)行跟蹤然磷,要了解這些新東西的新方面,要學(xué)會新舊對比刊驴,對自己必須掌握的新技術(shù)要毫不猶豫地花時間拿下姿搜。求新會讓程序員時刻感到壓力,但是求新又讓程序員能看到自己未來成長的方向捆憎。

12.主動

主動絕對是程序員的一個良好素質(zhì)舅柜。我和許多年輕的程序員打過交道,有主動型的與被動型之分攻礼,大凡學(xué)習(xí)上主動业踢,工作上主動,甚至是勞動上主動的人礁扮,大都會得到同事的喜愛知举,都會得到更多的回報。而那些雖然聽話太伊,但是“不說不動”的人雇锡,因為缺乏主動意識,只能被動聽從別人的安排僚焦。別人給什么锰提,自己就吃什么,就像一只填鴨,當(dāng)哪天沒有人給你填食的時候立肘,結(jié)果就可想而知了边坤。“會哭的孩子有奶吃谅年〖胙鳎”這是很有道理的一句話。

13.吃苦

現(xiàn)在的程序員和我們那個年代的程序員有很大的不同融蹂,他們很多都是獨生子女旺订,家庭嬌慣比我們那個年代多了很多,而且絕對的自我超燃。因此区拳,他們眼高手低,怕吃苦意乓,不能吃苦樱调。對于程序員來說,連續(xù)工作是一種很常態(tài)的事洽瞬。有的吃不了程序員的苦本涕,因苦而選擇離開。我們不能說吃苦是一件好事伙窃,但是菩颖,一個人能吃苦說明這個人不怕困難,有堅韌不拔的意志为障。這對程序員成長是很有幫助的晦闰。想想當(dāng)年,自己要是怕吃苦鳍怨,可能也不會有今天的成果呻右。當(dāng)一個人沒有苦吃的時候,說明這個人真的沒有發(fā)展機會了鞋喇。而且吃苦的人更能感到甜的味道声滥。

一個人的素質(zhì)是其成長的基礎(chǔ),良好的素質(zhì)一定是后天培養(yǎng)的侦香,是后天自我約束和完善形成的落塑,這種約束和完善的內(nèi)在要求使得他在做任何事的時候趨于合情、合理罐韩,容易獲得進(jìn)步和成功憾赁。同時,一個人良好的素質(zhì)可以給外界一個良好的形象散吵,而外界因此會給這個人更多的關(guān)注和鼓勵龙考,外界的影響反過來又促使這個人進(jìn)一步提高素質(zhì)蟆肆。相同的時間和相同的環(huán)境,不同的人因其素質(zhì)的不同會有很大的不同晦款。因此炎功,如果我們在入門階段能夠重視自己的素質(zhì)的培養(yǎng),知道自己在什么方面需要改進(jìn)和提高柬赐,程序員一定會少走彎路亡问,成長更加順利官紫,而其中的良好素質(zhì)將影響程序員的一生肛宋。

很多程序員對以上方面也有所了解,也知道應(yīng)該怎么做束世。但是酝陈,涉及自身時,說歸說毁涉,做歸做沉帮。如果是這樣的話,缺乏自己約束的程序員也只能“自發(fā)”地成長了贫堰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穆壕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子其屏,更是在濱河造成了極大的恐慌喇勋,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偎行,死亡現(xiàn)場離奇詭異川背,居然都是意外死亡,警方通過查閱死者的電腦和手機蛤袒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門熄云,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妙真,你說我怎么就攤上這事缴允。” “怎么了珍德?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵练般,是天一觀的道長。 經(jīng)常有香客問我菱阵,道長踢俄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任晴及,我火速辦了婚禮都办,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己琳钉,他們只是感情好势木,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著歌懒,像睡著了一般啦桌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上及皂,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天甫男,我揣著相機與錄音,去河邊找鬼验烧。 笑死板驳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的碍拆。 我是一名探鬼主播若治,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼感混!你這毒婦竟也來了端幼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤弧满,失蹤者是張志新(化名)和其女友劉穎婆跑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谱秽,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡洽蛀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疟赊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郊供。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖近哟,靈堂內(nèi)的尸體忽然破棺而出驮审,到底是詐尸還是另有隱情,我是刑警寧澤吉执,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布疯淫,位于F島的核電站,受9級特大地震影響戳玫,放射性物質(zhì)發(fā)生泄漏熙掺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一咕宿、第九天 我趴在偏房一處隱蔽的房頂上張望币绩。 院中可真熱鬧蜡秽,春花似錦、人聲如沸缆镣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽董瞻。三九已至寞蚌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钠糊,已是汗流浹背挟秤。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眠蚂,地道東北人煞聪。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像逝慧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子啄糙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容