1. 雲南北大青鳥設計培訓告訴你如何才能成為一名優秀的java程序員
在當下「互聯網+」的經濟模式下,IT行業是步步高升,編程語言在其中是大放奇光異彩,java年歲雖長,但在IT行業中依然是中流砥柱,其應有范圍之廣,就業崗位之多,堪稱第一。所以學習java的人是越來越多,java程序員不在少數,如何成為優秀的java程序員才是你要追求的。
1.照計劃行事
Java程序員首先得明確自己今天一天的任務是什麼,然後相應的制定計劃,按照自己的計劃嚴格的實施。沒有計劃,一整天,東忙西忙,看似很忙,其實遠遠沒有制定計劃來的效果好。嚴格按照計劃實施,往往可以取得事半功倍的效果。大理北大青鳥老師建議,在開始一天的學習或者工作的時候,不妨先花幾分鍾制定一個計劃。
2.良好的自律能力、學習能力
Java程序員不論是在學習java還是在工作中都要有良好的自律能力。因為學習java,自學能力很重要,良好的自律能力在自學中就顯得尤為重要。畢竟,java程序員在走向工作崗位後,企業的最新技術跟學校所學的書本知識還是有差別,如果自己沒有把基礎掌握牢固,就很難適應企業的發展需求。你不學習新的java技能,也會被社會淘汰,所以良好的自律能力、學習能力,是個優秀的java程序員必備的。
3.勇於挑戰,追求創新
Java程序員很多時候的工作是枯燥無味的,反復又反復的。這時候你既得耐得住無聊又可以開始尋找新學習java的樂趣了。常常天馬行空想像的人往往會干出與眾不同的事,很多人都這樣說。學習java也是一樣,充分發揮你的想像力,不要拘泥於前人的格局,勇於挑戰前人的權威,追求創新。當然,你得建立在科學依據跟你所學的java知識上哦。創新能力有先天的因素,但也可以後天培養,多關注新鮮的實物,多嘗試,多思考。
成為優秀的java程序員,當然一口吃不成胖子,別渴望一夜之間變成java大神。不過,北大青鳥http://www.kmbdqn.cn/認為短期內快速成為java大神是有可能的,到北大青鳥,我們替你圓夢。
2. 程序員如何自己創業
30歲,對於每一個程序員來說都是尷尬的年齡,彷彿舞台上不知不覺間已經謝幕,而自己仍在獨舞;創業,對於每一個程序員來說都是曾經或者正在憧憬的夢想,可是夢想與成功之間難以逾越的距離卻也讓多少人望而卻步……以下是我為大家整理的程序員如何自己創業相關 文章 。
周鴻禕談程序員創業
很多人都嚮往著有一天自己創業,程序員更是如此。如果你想創業,那麼該怎樣創業、需要有哪些准備、自己還有什麼不足等等這些問題你考慮過嗎?本文就跟大家分享周鴻禕在接受某媒體采訪時給程序員上的創業課。
程序員創業的特別之處
關於程序員創業,我之所以願意談我的觀點,是因為我是程序員出身,也是從小公司做起來的,我自認為對待很多程序員個人包括共享軟體作者和一些小網站還是很好的。我希望和他們分享一些 經驗 和體會。
首先,我想說的是聰明人不一定能成功,很多程序員很聰明,但我一看就知道他們不會成功。因為我看到了一些問題,而且現在太多程序員存在很多誤解。因此,我希望把我的觀點告訴程序員。或許有一些程序員能夠清醒,某個人可能因為我的某一句話有了感覺,對他以後的成長產生了幫助,這就足夠了。
要知道,程序員總是以為自己優秀所以就能成功,其實不是。中國的程序員大部分是盲目的:看看一些論壇就能夠感覺到,要麼有一群人自我感覺極端的良好,以專家自居,要麼就是一群藍領埋怨公司和社會環境不行,待遇不好。
應該說,中國程序員創業的成功率也是很低的。放眼望去,中國互聯網成功的人士有幾個是真正寫過十年軟體的。事實上,現狀和我們所能聽到的媒體宣傳的 故事 很不一樣。
很多程序員的最高理想就是寫一個共享軟體,一年可以掙幾百萬。但我希望談的不是告訴程序員如何掙錢,掙錢很容易,而是要告訴程序員如何去創業。比如雖然FlashGet的作者收入很高,衣食無憂,但從創業的角度看,它並沒有以商業公司的方式創業成功。
程序員在創業方面的欠缺
首先,我看到中國程序員的合作心態非常缺乏,我認為這是中國程序員最大的問題,當然這是有很多原因的。
大家經常說這句話:態度決定一切。但事實上好程序員基本上都比較傲氣,因為程序員往往會覺得自己在做世界上一件十分偉大的事情,這就是驅動機器,修改一行代 碼,機器就能夠工作,可以產生各種不同的行為。這很容易會讓程序員產生一種錯覺,認為自己可以Control Everything。程序員的自信在編程上是非常需要的,但不是適合一切場合。如果我們不說這些,可能很多程序員到現在還不知道自己錯在哪裡,仍然認為 自己是King of the World。
事實上,程序員的能力只是控制了一個機器。但創業僅僅具備了和機器打交道這一種能力是絕 對不夠的,他還需要和合作夥伴、競爭對手、投資人、員工甚至整個社會環境打交道。很多程序員因為已經習慣了和機器打交道,不善於也不願意 其它 的工作。很多程序員會內心認為“營銷不是很簡單嘛,市場很簡單啊,管理也很簡單啊,”我認為這種心態是非常害人的。
程序員還是一個很固執的人群,他覺得自己是機器的統帥,因此不會靈活,不會妥協。我當時也喜歡寫程序,但我知道如果自己沉迷於寫程序,肯定沒戲,所以是逼著自己改變角色。
優秀的程序員不要自負
這兩天,我收到幾封程序員的來信。有一封信中大意說“我是個如此優秀的程序員,為什麼我就不能成功呢,請你指點。這里有我的blog地址,看完你就 會了解我了。”我想說的是:如果真的希望別人幫忙,就要把情況真實的說出來,而不是上來就說自己很優秀,這種語言就會讓別人覺得很不舒服,不是很好的交流 方式。我還真看了那個blog,但看完之後,覺得這個程序員就是一個空想狂。
可以說,很多程序員實際上是優秀帶來了自負,這種自負使得其不要說創業,可能在在公司中工作也會遇到問題。所以,我甚至認為程序員在創業方面遇到的困難比其它類型的人員更大。如果程序員希望主導一個創業,可能首先就要逼自己不是一個程序員。
程序員應持開放心態,尋求團隊合作
程序員首先要學會和別人合作。提到這點,很多程序員都會說“我正在帶著其他程序員寫程序啊,我會合作啊。”但這種合作是片面的,我所談的不僅僅是程序員和程序員之間的合作,而是包括了程序員和其它各種角色之間的合作。程序員相親,他們的語言比較能夠容易理解。但作為一個程序員,你能不能商業人員、銷售人員很好的合作呢。
我這些年還看到很多這樣的例子:程序員動不動就把目標定為比爾·蓋茨。其實,比爾蓋茨不應該成為程序員崇拜的目標對象,這會讓程序員迷失方向,因為微軟另外一個創始人保羅·艾倫才是真正的程序員。再看其它一些例子,Google的第20名 程序員都可以獲得五億美元。Adobe公司兩個創始人也是一個精通技術,一個對商業精通,這樣的搭配才能夠更好的成功。因此,對於很多程序員來說,一定要找准真正的榜樣,不要被外界的故事迷惑了頭腦。如果剖開一些故事的外表,你會發現國外很多成功的程序員,背後一定有一個很強大的商業感覺的人或者一個團隊。
程序員的商業感覺其實並 不是很好。即便有商業感覺,其實這只是一個靈感,一個創意,但要要做成、做大還需要一系列的管理、市場、運營,這些對於程序員是不可想像的。程序員要明 白,在自己不擅長的領域,找到一個可以彌補自己缺陷的合作團隊才是出路。加入一個創業團隊,可能個人佔10%,但因為更容易成功,而且團隊可以做100分 的事情。而如果只是一個人做,很可能就失敗了。
這方面,國外的程序員對自己的長短比較清楚。在矽谷,很多程序員技術上都很牛,但他們 都非常知道自己只是在技術這個領域水平比較高,出了這個領域,自己什麼都不是。正因為有了這種心態,他們特別懂得與人合作。我認為國外的程序員已經普遍意 識到了這點,他們很願意成為創業團隊中的一員而並非自己創業。
因此,程序員需要調整心態,不要把自己當作精英人物,要承認自己在編程方面是優秀的,但永遠有人比自己更優秀,對於其它的領域,很可能自己很無知。要知道,其實程序員的選擇其實是最少的,因此抱有開放的心態是最重要的。
程序員與創業要求還有哪些差距
我認為現在的很多程序員經驗過於不足,他沒有認真踏實做過很多工作就奢談創業。如果一個程序員沒有在編程方面深入過,沒有積累,也就是半瓶子醋。這 樣的程序員我接觸過很多,他們自己也不清楚問題出在哪裡,讓人感覺又愛又恨。我認為程序員既然要憑借自己的技術,那就一定要踏實,要能夠實現任何創意。
但現在一些程序員自己沒有商業意識,卻又很自負,不相信別人,不理解的事情就不做。我遇到過很多程序員,他們對公司做什麼方向都質疑。他 們希望自己先想清楚,可是一想就浪費了很長時間。很多程序員就可悲在這里,積累的不多,看不到方向,但他也不相信自己的公司和老闆,這是一個悖論,需要程 序員深刻反省。要知道,每個公司都有懂商業的人。
就這樣,一些程序員極端自負,另外有一些程序員碰了很多釘子之後,感覺很自卑,於是便認為國內軟體業不行,最後 出國 或者打工,很少有程序員能對自己能做公正的評價。
國內環境是否造成程序員浮躁的因素
我以前沒有仔細考慮過這點。但我想,不管怎樣,程序員需要先從自身找問題,因為大環境就是這樣了。我承認一個現實:程序員生存狀態並不是很好,但程序員很多報怨其實是一種不切實際的期望值和自身的缺陷產生的反差。
首先,產品沒有大小,只有市場的大小。很多人總是覺得這也小,那也看不上。認為公司做的產品很無聊,要做就要像某些人宣揚的那樣:做游戲一定要 做3D引擎,好像只有這樣才夠牛。這其實就是一種浮躁。很多程序員寫軟體總是很多bug,基礎知識也不牢固,沒有參加幾個項目,沒有寫過十萬行代碼,就奢 談做大項目,這有價值嗎?
而且我還發現有些程序員特別憤青,罵環境,罵老闆,其實這只能把自己的心態搞的很壞。很多人剛進公司時做的很差,雖然工資少,但他沒有想到給公司增加了很多bug,公司實際上是在給他出學費。論壇上大家都在討論哪裡活幹得少錢拿的多。甚至還有人列了一些黑名 單。這種做法的結果就是程序員自己將周圍環境搞的烏煙瘴氣了。
有的程序員還非常喜歡指點江山,指點公司。我個人覺得這不是不可以,但 指責別的公司對個人沒有什麼好處,因為存在就是合理的。如果看不到,恰恰證明是自己看不到。我看到很多程序員也寫blog,技術交流的我認為非常好,但有 些人是寫評論。我是覺得程序員不要做評論家,中國不缺評論家,最缺的是實幹家。
總之,程序員一般過於自我。總生活在自我的世界中,就不可能真正了解世界是什麼。我很早就意識到了這些問題,也努力的去客服。我的經驗就是看別人如何做的好,為什麼能夠做的好,什麼是我所不能理解。程序員要學會慢慢站在別人立場上看問題。
最後給希望創業的程序員一點建議
對程序員來說,現在要做的也很簡單,這就是需要大量的實踐,要慢慢培養對產品,對商業的感覺。我的建議說出來可能有些忠言逆耳。對絕大多數程序員來 說,自己一個人成功的機率是很小的,所以我認為加入一個創業的團隊可能更為合適。現在有很多初期創業的公司,也需要很多優秀的程序員加盟。如果有理想,可 以選擇加入一個團隊,也有相應的股份,這方面我可以充當一個橋梁。
看看前網路程序員是如何創業的?找合夥人已經OUT了!
“來吧,做我的CTO,給你股份,咱自己當老闆。”
因為同學的一句話,前網路研發工程師YK辭職創業。一群毛頭小子,技術能力過硬,但畢竟資源不足,經驗欠缺,不到半年,項目無疾而終。 互聯網創業 盛行的現在,一個好的技術抵得過一支團隊,更別說出身BAT了。
但很多人不知道的是,就是這一樣一支技術實力超強的團隊,最終竟然也輸在了人上——過於強調技術,沒有頭腦足夠清醒的團隊成員及時制止。這也是為什麼要選背景不同、經驗不同的一群人一起創業了。曾經和YK聊過很久,項目失敗的背後是他對創業更多的思考,特別是對於那些擁有好工作的人來說,拋下一切投身創業需要付出的成本太高,但如果只是給創業者打工,那還不如守著原有的工作,至少更體面、更有保障。
就在我以為他會重新安安穩穩工作的時候,卻意外的在創業大街再次見到了他。細聊起來才知道,他並非辭職重新開始創業,而是用自己擅長的技術加入到新的創業團隊中,以外部合夥人的身份幫助兩個不同方向的項目解決技術開發問題。這次來到大街,是專門和一支團隊開技術碰頭會的。
他的這個選擇意料之外,卻又情理之中。意料之外的是他居然理智的沒有辭職,情理之中的是他選擇了成為外部合夥人,用業余時間一邊做顧問、一邊寫代碼,實現了時間、能力價值的最大化。
其實,說到外部合夥人就不得不提智籌平台。去年3月,正是看到了毛大慶宣布 離職 但依舊擔任萬科外部合夥人的新聞後,智籌將“外部合夥”作為創業者&人才之間對接的一種新的合作關系。現在,創業者來智籌發布任務,除了能與互聯網高級人才建立長期顧問、短期兼職、駐場辦公、遠程協作等合作關系之外,也能通過部分現金+可回購股份的方式,與人才建立外部合夥關系。外部合夥人是一個沒有行政職位,但依舊為企業、團隊做貢獻的人。
對於創業團隊來說,外部合夥人解決了以下問題:
1.快速成長,度過難關。
按照原本的思路,YK服務的兩支團隊還陷在滿世界尋找CTO、找程序猿的泥沼中,但有了外部合夥人,更低的參與門檻吸引了更多人才願意加入,不僅解決了燃眉之急,更推動項目度過難關、快速前行。
2.滿足了人才的多樣性。
一個合夥人已經很難找了,更不用說基因不同、知識不同、經驗不同的一群人。外部合夥人大大降低了對人才的束縛,而這樣的一種合作模式,讓越來越多的人才願意加入到創業中來,組建這樣一支多樣化團隊更容易。
3.更快找到,成本更低。
外部合夥人是通過股權激勵撮合到一起的一群人,利用可回購股權讓人才把創業者的事當做自己的事,目標、利益一致,做事更用心、更高效。股權支付的方式又可以降低初創的資金壓力,創業者不用支付很高的現金,也能請到非常NB的人才來解決難題。
外部合夥人極大的緩解了創業找人難的窘境,但當創業者真正去尋找外部合夥人的時候,往往又會擔心外部合夥人的時間、效率怎麼保證?水平怎麼衡量?什麼人才適合做外部合夥人?
首先,時間自由是第一標准,至少是時間可控,能夠拿出足夠精力完成任務。否則,連時間都不能自由支配的外部合夥人也太不稱職了,CEO找你開會,你卻說你在公司加班,即耽誤了創業者的時間,又降低了自己的口碑。
其次,獨擋一面的能力絕對必不可少。做得了合夥人的,都是某方面十分擅長的專業人才,那麼做的了外部合夥人的,需要更高的水平。從一開始我就強調,外部合夥人一定是高級人才,不然沒資格幫助創業者解決問題,甚至指導方向。俗話說,沒有金剛鑽不攬瓷器活,想做外部合夥人,一定得先有過硬的水平。
第三個標準是認可股權模式。中國基金報曾發表評論稱,未來十年,如果你與股權無緣,可能無法實現財務自由。在如今樓市低迷、股市重挫的時候,股權投資卻異軍突起,特別是在大眾創業、萬眾創新的激勵下,全國創業氛圍濃厚,涌現了一大批優質有潛力的新興企業、互聯網企業。也許你不是土豪,沒有錢參與眾籌,而此時外部合夥人模式的出現,讓普通人也能參與,只不過是用能力和時間參與創業、解決任務,換取股權。
智籌在幫助創業團隊對接外部合夥人合作的過程中,通過實踐 總結 出了最適合做外部合夥人的群體:自由職業者、大企業主管級以上在職人才、工作室、外包團隊等等。這些人能夠站在實戰的高度,不只提供經驗分享,更能夠有針對的解決具體問題,融入到項目和團隊中。
對於很多創業小夥伴來講,找錢、找人是躲不開的兩座大山,有錢了當然可以請NB的人才加入,有人了事兒干好了錢自然不愁,先有雞還是先有蛋的問題永遠都在,找到一方的突破口自然事半功倍。這時,外部合夥人就是打破這一死循環的關鍵鑰匙,只是需要創業者用開放的心態接受、嘗試,畢竟改變原有習慣肯定難受,甚至懶得嘗試。但創業原本就是不破不立的事,只有打破舊有習慣,才能接受新鮮事物,才能有更多新的收獲。
從另一個角度來看,參與創業的門檻降低,意味著越來越多的人能夠將自己的智力換成股權,幫助推動創業的同時,也是對未來的投資。根據智籌平台的數據顯示,當 創業項目 獲得融資後,人才所持的可回購股權將會以最少3倍的價值兌現,這對於很多人來講也是不小的吸引力。外部合夥人模式,降低初創資金成本的同時,也讓越來越多的高級人才加入到創業中來,大大激發了創業活力,無論創業還是參與創業,用起來都是極好的。
3. 程序員的編程思想怎麼培養
1.明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能 鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
2.打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
(2)邏輯思維能力的培養 學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發 應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發 開發工具如 Java 等。 3)網路開發 對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
3. 注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
4.掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道 VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
5.多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
6.養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
7.上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。例如網站「編程課堂」(http://best.yeah.net/)主要以 VB 和 Delph;教學和交流為主,提供大量實用技巧;網站「現在時編程學園」(http://pshool.yeah.net/)是專門介紹C、VC、VB、Delphi 等的綜合編程網站;網站「 VB 編程樂園 」(http://www.vbeden.com/)提供內容豐富而且實用的編程技術文章、精選控制項、源代碼下載、計算機考試、相關軟體以及編程書籍推薦等等。
8.加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
4. 怎樣才能鍛煉出程序員的思維
要鍛煉出程序員的思維 首先要做到下面幾點
多家練習 才可熟能生巧
1、扎實的基礎
數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握它們,很難寫出高水平的程序。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。因此多讀一些計算機基礎理論方面的書籍是非常有必要的。
2、豐富的想像力
不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。開闊的思維對程序員來說很重要。
3、最簡單的是最好的
這也許是所有科學都遵循的一條准則,復雜的質能轉換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。
4、不鑽牛角尖
當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。
5、對答案的渴求
人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。
6、多與別人交流
三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。
7、良好的編程風格
注意養成良好的習慣,代碼的縮進編排,變數的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加註釋了,如果注釋和代碼不一致,那就更加糟糕。
8、韌性和毅力
這也許是「高手」和一般程序員最大的區別。高手們並不是天才,他們是在無數個日日夜夜中磨煉出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。
5. 我的夢想是成為一名出色的程序設計人員,想問問那些成功的朋友們,我要怎樣努力,謝謝大家!
我上班第一天我的老闆讓我做的第一件事
看兩篇文章:
程序員隨想
雷軍
我不是天生的程序員,也並非天生就喜歡電腦,上高中時也沒有想過將來會當程序員,接觸電腦純屬偶然--小時候的一個好朋友上大學時選擇了電腦專業,為了和這個朋友有更多的「共同語言」我便選擇了計算機系。在大學,我略窺電腦世界,開始為之「發燒」;畢業後,開始了一個程序員的職業生涯。
從開始寫程序到現在快十年了,寫過的程序不少。從這些年的風風雨雨中走過來,不能不有些體會。說到體會,最大的體會就是這條路太漫長。
一、一輩子有你 苦一點也願意
我沒有奢望大家把寫程序和文學創作相提並論,但其中的苦楚卻不是一個普通用戶能夠體味的。為了寫好一個程序,我們度過太多不眠之夜。有個朋友如此評價道,「寫程序簡直是在自殺,巨費精力巨費腦子巨累」。但還是有許多人不畏其苦,前仆後繼。
我剛接觸到電腦就發現電腦的妙處:電腦遠沒有人那麼復雜,如果你的程序寫得好,你就可以和電腦有著非常融洽的關系,就可以指揮電腦干你想乾的事,這個時候,你是十足的主宰。每每坐在電腦面前,你就如同在一個王國里巡行。
電腦里的世界很大,程序員是活在自己想像的王國里。你可以細微到電腦里的每一個位元組、每一個比特的東西。
這樣的日子簡直就是天堂般的日子,很多人都愛上了這樣的日子。
不少人認為程序員最多干到三十五歲就可以收山,腦子也差不多該歇歇了,並認為寫程序是年輕人的事情,到了一定年齡,估計沒什麼人再當程序員。
我剛畢業時,意氣風發,也想先吃點苦,到了三十歲就不幹了。年長一點後就發現了自己的無知。一個人大學畢業就二十一二歲,技術成熟一點後可能二十五,接著就是票子、妻子和房子等等諸多忙不完的事情。一切搞掂的時候,也許就是三十五歲。如果三十五歲就放棄的話,我們就不用選擇程序員的道路。
電腦進入我國時間不短,但真正大規模開始用,還是八五年PC登陸我國時候的事。因此國內真正寫電腦程序的人最長也就寫了十幾年(不知道是否還有這樣的人)。由於電腦應用在國內時間比較短,國內程序開發的主力以三十五歲以下的年輕人為主,但這並不表示程序員如同紅粉佳人般的容易衰老。美國和台灣地區的開發者以三四十歲的人為主。開始寫程序的時候,我們覺得沒有什麼不能做的(現在還能聽到這樣的豪言壯語),而且更要命的是,好象我們特別聰明,特別適合開發軟體,比老外強得多。當我們真正接觸那些傑出的國外開發人員的時候,發現他們太厲害了,都有十多年的開發經驗,絕對多數的產品出自這些有豐富開發經驗的程序員之手。
畢業後,編程不僅僅是愛好,而且成了一輩子的工作,可以肯定會干一輩子,雖然我沒有打算一生只干這一件事。用一生來編程是一件既容易又困難的事。如果碌碌無為,為交差寫點程序,這樣寫兩輩子的人都有。但如果想全身心地寫程序,寫十年都不是一件容易的事。現在我的不少朋友都洗手了,有時我也有這種想法,但一旦面對電腦,立刻頓悟:電腦還是自己最擅長乾的事,也是最順手的事。
二、我的未來不是夢
有的人刻苦學習編程技術,努力提高編程水平,並把高級程序員作為追求的目標,甚至是終身的奮斗目標。後來參與了真正的商品化軟體開發後,感到非常困惑和茫然。
當我上大學的時候,高級程序員也曾是我的目標。當時,我通過等級考試獲得了高級程序員證書,並在自己的名片上印上「高級程序員」的字樣。後來,我的水平提高了,似乎也成了大家認可的好程序員了。這個時候我卻開始茫然。我希望我的技術能得到別人的承認,當得到別人的承認後,我又能如何呢?後來我發現,無論成為多麼高級的程序員都沒用,關鍵是是否能夠出想法、出產品,你的勞動是否能被社會承認,是否能為社會創造財富。
我的未來是明確的,開發出高質量的適用社會的產品,為社會創造財富。
三、每一個程序都是藝術品
有人認為程序員沒有什麼了不起,不過是一種熟練工種而已;也有人把編程說成是藝術創作,捧上天。這兩種意見爭論比較激烈,甚至可以說針鋒相對。
我們換個工種來看,石匠應該是熟練工種,跟藝術似乎沾不上邊。;但正是這些石匠,給我們留下了數不勝數的文物古跡,如樂山大佛、莫高窟等等。應該說這此石匠給我們留下了無窮的文化財富。我認為編程的工作和石匠比較相似,是技術,也是藝術。
現代軟體工業已具相當規模,很多軟體的完成需要的是大兵團作戰。一名精通程序員接受編寫某一塊的任務後,往往只是寫代碼,發揮的餘地很小。在大項目中,很多程序員只能了解到和自己所編模塊相關的很局部的細節,另外還受到開發環境的限制,真的很難體會到自己在從事「藝術」創造,更多的時候是感到自己在從事重體力勞動。有的時候還擔心自己苦苦參與的這個項目究竟有沒有意義,是不是在同類產品中有競爭力,會不會開發出來以後就因為硬體的發展、操作系統的換代而過時......
編程是技術活,才有可能大規模進行,才會有軟體工程的理論。也正是編程具備藝術創作的特點,我們的生活才會有如此多的好軟體產品。寫一個程序需要付出腦力和體力,當我—我們—某個群體完成一個程序之後,在我們的眼裡,每一個程序就都是藝術品。
程序員應具備的素質
前言
程序員是一種技術工作,在IT的發展中有相當重要的地位,從底層硬體通訊協議的建立, 到數據傳輸層的處理,到操作系統的建設,到資料庫平台的建設,一直到應用層上各種數 據營銷平台的搭建,程序員在裡面都扮演著舉足輕重的角色並為IT事業的發展做出了巨大 的貢獻。
中國有很多精於編碼的人,但是中國軟體行業,尤其是網路應用開發方面誤區很大,很難形成有規模的軟體開發力量和產品能力,不但比美國差距甚遠,和印度相比也是頗有不 如。這些問題不是在於中國程序員的智商和工作努力狀況,也不是在於國家和民間對開發 的投入程度,而是很大程度上,有一些對技術,對程序開發,對項目設計方面的思想誤 區,這些誤區,導致了軟體行業的產品化能力不足,缺乏規模化和大型復用系統研發能 力,可以說,改變認識誤區,是解決軟體行業小作坊模式和個體英雄模式所帶來的局限性 的重要工作。
中國有很多小朋友,他們18,9歲或21,2歲,通過自學也寫了不少代碼,他們有的代碼寫的很漂亮,一些技術細節相當出眾,也很有鑽研精神,但是他們被一些錯誤的認識和觀點左右,缺乏對系統,對程序的整體理解能力,這些人,一個網上的朋友說得很好,他們實際 上只是一些Coding fans,壓根沒有資格稱為程序員,但是據我所知,不少小網路公司的 CTO就是這樣的coding fans,拿著嚇人的工資,做著嚇人的項目,項目的結局通常也很嚇人。
一、程序員基本素質
作一個真正合格的程序員,或者說就是可以真正合格完成一些代碼工作的程序員,應該具有的素質。
1:團隊精神和協作能力
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最 重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力量都是有 限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇跡,那些遍布全球 的為linux寫核心的高手們,沒有協作精神是不可想像的。獨行俠可以作一些賺錢的小軟 件發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺 乏這種素質的人就完全不合格了。
2:文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子,良好的文檔是正規研發流程中 非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級 程序員和系統分析員,這個比例還要高很多。
缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇 到極大的麻煩。
3:規范化,標准化的代碼編寫習慣
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮 進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和 糾錯,也有助於不同技術人員之間的協作。
有些coding fans叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自 己壓根不配自稱程序員。代碼具有良好的可讀性,是程序員基本的素質需求。
再看看整個linux的搭建,沒有規范化和標准化的代碼習慣,全球的研發協作是絕對不可 想像的。
4:需求理解能力
程序員需要理解一個模塊的需求,很多小朋友寫程序往往只關注一個功能需求,他們把性 能指標全部歸結到硬體,操作系統和開發環境上,而忽視了本身代碼的性能考慮,有人曾 經放言說寫一個廣告交換程序很簡單,這種人從來不知道在百萬甚至千萬數量級的訪問情 況下的性能指標是如何實現的,對於這樣的程序員,你給他深藍那套系統,他也做不出太 極鏈的並訪能力。性能需求指標中,穩定性,並訪支撐能力以及安全性都很重要,作為程 序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險 和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經 驗才有可能有心得。
5:復用性,模塊化思維能力
經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是重復寫 一些沒有任何新意的代碼,這其實是中國軟體人才最大浪費的地方,一些重復性工作變成 了熟練程序員的主要工作,而這些,其實是完全可以避免的。
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一 些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在, 是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避 免重復性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過程中都考慮到 這些問題,那麼程序員就不會在重復性的工作中耽誤太多時間,就會有更多時間和精力投 入到創新的代碼工作中去。
一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統裡面作為功能模塊 都能適合的很好,而現在我看到的是,很多小公司軟體一升級或改進就動輒全部代碼重 寫,大部分重復性工作無謂的浪費了時間和精力。
6:測試習慣
作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是並不是說有了專 職的測試工程師程序員就可以不進行自測;軟體研發作為一項工程而言,一個很重要的特 點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行 認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效 率和可靠性就有了最大的保證。
測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能在正常 調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測試任務, 實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定性測試,用 戶潛在的異常輸入情況下的測試,整體系統局部故障情況下該模塊受影響狀況的測試,頻 發的異常請求阻塞資源時的模塊穩定測試等等。當然並不是程序員要對自己的每段代碼都 需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整體項目中的地位和 各種性能需求,有針對性的進行相關測試並盡早發現和解決問題,當然這需要上面提到的 需求理解能力。
7:學習和總結的能力
程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年內具有 領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高 了。
但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一 會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目 的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂 中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提 高。
善於總結,也是學習能力的一種體現,每次完成一個研發任務,完成一段代碼,都應當有 目的的跟蹤該程序的應用狀況和用戶反饋,隨時總結,找到自己的不足,這樣逐步提高, 一個程序員才可能成長起來。
一個不具備成長性的程序員,即便眼前看是個高手,建議也不要選用,因為他落伍的時候 馬上就到了。
具備以上全部素質的人,應當說是夠格的程序員了,請注意以上的各種素質都不是由IQ決 定的,也不是大學某些課本里可以學習到的,需要的僅僅是程序員對自己工作的認識,是一種意識上的問題。
二、高級程序員/項目設計者還需具備的素質
那麼作為高級程序員,以至於系統分析員,也就是對於一個程序項目的設計者而言,除了應該具備上述全部素質之外,還需要具備以下素質:
第一,需求分析能力
對於程序員而言,理解需求就可以完成合格的代碼,但是對於研發項目的組織和管理者, 他們不但要理解客戶需求,更多時候還要自行制定一些需求,為什麼這么說呢?
一般而言,進行研發任務,也許是客戶提出需求,也許是市場和營銷部門提出的需求,這 時候對於研發部門,他們看到的不是一個完整的需求,通常而言,該需求僅僅是一些功能 上的要求,或者更正規些,可能獲得一個完整的用戶視圖;但是這都不夠,因為客戶由於 非技術因素多一些,他們可能很難提出完整和清晰,或者說專業性的性能需求,但是對於 項目組織者和規劃者,他必須能夠清醒認識到這些需求的存在並在完成需求分析報告的時 候適當的提出,同時要完整和清晰的體現在設計說明書裡面,以便於程序員編碼時不會失 去這些准則。
程序設計者必須正確理解用戶需求所處的環境,並針對性做出需求的分析,舉例而言,同 樣一個軟體通過ASP租用方式發布和通過License方式發布,性能需求可能就是有區別的, 前者強調的是更好的支撐能力和穩定性,而後者則可能更強調在各種平台下的普適性和安 裝使用的簡捷性。
第二,項目設計方法和流程處理能力
程序設計者必須能夠掌握不少於兩到三種的項目設計方法(比如自頂至下的設計方法,比如快速原型法等等),並能夠根據項目需求和資源搭配來選擇合適的設計方法進行項目的 整體設計。
設計方法上選擇不當,就會耽誤研發周期,浪費研發資源,甚至影響研發效果。
一個程序設計者還需要把很多功夫用在流程圖的設計和處理上,他需要做數據流圖以確立 數據詞典;他需要加工邏輯流圖以形成整體的系統處理流程。
一個流程有問題的系統,就算代碼多漂亮,每個模塊多精緻,也不會成為一個好的系統。 當然,做好流程分析並選擇好項目設計方法,都需要在需求分析能力上具有足夠的把 握。
第三,復用設計和模塊化分解能力
這個似乎又是老調重談,前面基本素質上不是已經說明了這個問題嗎?
作為一個從事模塊任務的程序員,他需要對他所面對的特定功能模塊的復用性進行考慮, 而作為一個系統分析人員,他要面對的問題復雜的多,需要對整體系統按照一種模塊化的 分析能力分解為很多可復用的功能模塊和函數,並針對每一模塊形成一個獨立的設計需 求。舉個例子,好比是汽車生產,最早每輛汽車都是獨立安裝的,每個部件都是量身定做 的,但是後來不一樣了,機器化大生產了,一個汽車廠開始通過流水線來生產汽車,獨立 部件開始具有一定的復用性,在後來標准化成為大趨勢,不同型號,品牌甚至不同廠商的 汽車部件也可以進行方便的換裝和升級,這時候,汽車生產的效率達到最大化。軟體工程 也是同樣的道理,一個成熟的軟體行業,在一些相關項目和系統中,不同的部件是可以隨 意換裝的,比如微軟的許多桌面軟體,在很多操作模塊(如打開文件,保存文件等等)都 是復用的同一套功能模塊,而這些介面又通過一些類庫提供給了桌面應用程序開發者方便 掛接,這就是復用化的模塊設計明顯的一個佐證。
將一個大型的,錯綜復雜的應用系統分解成一些相對獨立的,具有高度復用性的,並能僅 僅依靠幾個參數完成數據聯系的模塊組合,是作為高級程序員和系統分析員一項最重要的 工作,合適的項目設計方法,清晰的流程圖,是實現這一目標的重要保證。
第四,整體項目評估能力
作為系統設計人員,必須能夠從全局出發,對項目又整體的清醒認識,比如公司的資源配 置是否合理和到位,比如工程進度安排是否能最大化體現效率又不至於無法按期完成。評 估項目整體和各個模塊的工作量,評估項目所需的資源,評估項目可能遇到的困難,都需 要大量的經驗積累,換言之,這是一種不斷總結的累計才能達到的境界。在西方一些軟體 系統設計的帶頭人都是很年長的,比如4,50歲,甚至更老,他們在編碼方面已經遠遠不 如年輕人那樣活絡,但是就項目評估而言,他們幾十年的經驗積累就是最重要和寶貴的財 富。中國缺這么一代程序員,主要還不是缺那種年紀的程序員,而是那種年紀的程序員基 本上都是研究單位作出來的,都不是從專業的產品化軟體研發作出來的,他們沒有能積累 那種產品化研發的經驗,這也是沒有辦法的事情。
第五,團隊組織管理能力
完成一個項目工程,需要團隊的齊心協力,作為項目設計者或研發的主管人,就應當有能 力最大化發揮團隊的整體力量,技術管理由於其專業性質,不大同於一般的人事管理,因為這裡面設計了一些技術性的指標和因素。
首先是工作的量化,沒有量化就很難做到合適的績效考核,而程序量化又不是簡單的代碼 行數可以計算的,因此要求技術管理人員需要能真正評估一個模塊的復雜性和工作量。
其次是對團隊協作模式的調整,一般而言,程序開發的協作通常分為小組進行,小組有主 程序員方式的,也有民主方式的,根據程序員之間的能力水平差距,以及根據項目研發的 需求,選擇合適的組隊方式,並能將責權和成員的工作任務緊密結合,這樣才能最大發揮 組隊的效率。
一個代碼水平高的人,未必能成為一個合格的項目研發主管,這方面的能力欠缺往往是容 易被忽視的。
綜上可以看到,作為一個主管研發的負責人,一個項目設計者,所需要具備的素質和能力 並不是程序代碼編寫的能力,當然一般情況下,一個程序員通過不斷的總結提高達到了這種素質的時候,他所具有的代碼編寫能力也已經相當不簡單了,但是請注意這裡面的因果 關系,一個高水平的項目設計者通常已經是代碼編寫相當優秀的人了,但是並不是一個代 碼相當優秀的程序員就可以勝任項目設計的工作,這裡面存在的也不是智商和課本的問 題,還是在於一個程序員在積累經驗,逐步提升的時候沒有意識到應當思考哪方面的東 西,沒有有意識的就項目的組織和復用設計進行揣摩,沒有經常性的文檔習慣和總結習 慣,不改變這些,我們的合格的項目設計者還是非常欠缺。
另外,為防止有無聊的人和我較真,補充一點,本文針對目標是作商業化的軟體項目和工程,那些科研機構的編程高手,比如演算法高手,比如圖象處理高手,他們的工作是研究課題而非直接完成商業軟體(當然最終間接成為商業產品,比如微軟研究院在作的研究課 題),因此他們強調的素質可能是另外的東西,這些人(專家),並不能說是程序員,不能用程序員的標准去衡量。
三、軟體項目研發的設計流程
最後補充一點東西,一個軟體項目研發的設計流程是怎樣的呢?以通常標準的設計方法為例,(不過筆者喜歡快速原型法)。
第一個步驟是市場調研
技術和市場要結合才能體現最大價值。
第二個步驟是需求分析
這個階段需要出三樣東西,用戶視圖,數據詞典和用戶操作手冊。
用戶視圖是該軟體用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這裡麵包含了 很多操作方面的流程和條件。
數據詞典是指明數據邏輯關系並加以整理的東東,完成了數據詞典,資料庫的設計就完成 了一半多。
用戶操作手冊是指明了操作流程的說明書。
請注意,用戶操作流程和用戶視圖是由需求決定的,因此應該在軟體設計之前完成,完成 這些,就為程序研發提供了約束和准繩,很遺憾太多公司都不是這樣做的,因果顛倒,順 序不分,開發工作和實際需求往往因此產生隔閡脫節的現象。
需求分析,除了以上工作,筆者以為作為項目設計者應當完整的做出項目的性能需求說明 書,因為往往性能需求只有懂技術的人才可能理解,這就需要技術專家和需求方(客戶或 公司市場部門)能夠有真正的溝通和了解。
第三個步驟是概要設計
將系統功能模塊初步劃分,並給出合理的研發流程和資源要求。 作為快速原型設計方法,完成概要設計就可以進入編碼階段了,通常採用這種方法是因為 涉及的研發任務屬於新領域,技術主管人員一上來無法給出明確的詳細設計說明書,但是 並不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼後,根據評測結果和 經驗教訓的總結,還要重新進行詳細設計的步驟。
第四個步驟是詳細設計
這是考驗技術專家設計思維的重要關卡,詳細設計說明書應當把 具體的模塊以最』干凈』的方式(黑箱結構)提供給編碼者,使得系統整體模塊化達到最 大;一份好的詳細設計說明書,可以使編碼的復雜性減低到最低,實際上,嚴格的講詳細 設計說明書應當把每個函數的每個參數的定義都精精細細的提供出來,從需求分析到概要 設計到完成詳細設計說明書,一個軟體項目就應當說完成了一半了。換言之,一個大型軟 件系統在完成了一半的時候,其實還沒有開始一行代碼工作。
那些把作軟體的程序員簡單理解為寫代碼的,就從根子上犯了錯誤了。
第五個步驟是編碼
在規范化的研發流程中,編碼工作在整個項目流程里最多不會超過1/ 2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會極大提 高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的問題就可 能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研發過程中都 出現過。編碼時的相互溝通和應急的解決手段都是相當重要的,對於程序員而言,bug永 遠存在,你必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不發補丁的時候 嗎?從來沒有!
第六個步驟是測試
測試有很多種:
按照測試執行方,可以分為內部測試和外部測試
按照測試范圍,可以分為模塊測試和整體聯調
按照測試條件,可以分為正常操作情況測試和異常情況測試
按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試
以上都很好理解,不再解釋。
總之,測試同樣是項目研發中一個相當重要的步驟,對於一個大型軟體,3個月到1年的外 部測試都是正常的,因為永遠都會又不可預料的問題存在。
完成測試後,完成驗收並完成最後的一些幫助文檔,整體項目才算告一段落,當然日後少 不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟體的運營 狀況並持續修補升級,知道這個軟體被徹底淘汰為止。
寫這些步驟算不上賣弄什麼,因為實話講我手邊是一本《軟體工程》,在大學里這是計算 機專業的必修課程,但是我知道很多程序員似乎從來都只是熱衷於什麼《30天精通VC》之 類的,他們有些和我一樣游擊隊出身,沒有正規學過這個專業,還有一些則早就在混夠學 分後就把這些真正有用的東西還給了老師。
網上現在也很浮躁,一些coding fans亂嚷嚷,混淆視聽,實際上真正的技術專家很少在 網上亂發帖子的,如筆者這樣不知天高地厚的,其實實在是算不上什麼高手,只不過看不 慣這種對技術,對程序員的誤解和胡說,只好挺身而出,做撥亂反正之言,也希望那些還 沉迷於一些錯誤人士的coding fans們能認真想想,走到正途上,畢竟那些聰明的頭腦還 遠遠沒有發揮應有的價值。
6. 身處互聯網公司,中年程序員該如何不被淘汰
身處互聯網公司,中年程序員該如何不被淘汰?
在許多人眼裡程序員是一份較為辛苦的工作,盡管說工資比較高,可是壓力也特別的大,必須長期熬夜和加班加點,因此許多程序員看起來都較為蒼老,而好多人也由於工作壓力太大而提前的掉發。程序員而言都是有年紀困境的,特別是現在的社會發展趨勢的速率非常快,加上互聯網技術的升級換代非常快,因此程序員這一職位的人員流動也特別快。
三、要勇敢的改行。
無論在哪個行業,如果遇到了年紀困境,就需要勇敢地邁進下一個人生道路,程序員都是一樣,只需勇敢的向前走,勇於趣味性的行業,那麼就沒有必要擔憂年紀困境。
7. 你覺得如何才能成為一名不可替代的程序員
必須要長時間的堅持學習,以及長時間的堅持努力工作,比如可以經常性的去閱讀相關的書籍和經常的去找一些學習的資料來去進行學習,當然也可以將自己寫的程序進行分享,重要的是一定要選擇長期的堅持下去,只有長時間的堅持才有可能讓自己變得更優秀。
想要成為一名優秀的程序員,那麼就必須要長時間的堅持學習,因為程序員本身就需要大量的知識。每一個人的人生都是非常短暫的,每一個人雖然都有著自己的方向,不過想要去堅持下來的人卻非常的少,因此在我們的職業生涯當中我們作為一名優秀的程序員就必須要長時間的去堅持學習,只有學習才能夠提高自己,才能夠讓自己的職業生涯延長,能夠在自己職業生涯發展的過程之中擊敗那些在半路就選擇頹廢的,才能夠擊敗那些雖然跑的很遠可是跑著跑著就慢慢放棄的人。
想要成為一名不可被替代的程序員,就必須要努力的提高自己,要讓自己具有很多的知識,這樣才能夠去讓自己得到更多自己想要的東西。
8. 如何才能修煉成一名不可替代的程序員,避免裁員危機
程序員,就是從事程序開發、程序設計、程序維護的專業人士。
作為一種專業性極強的技術性專業,程序員的工作難度非常高,只有專業技能水平高超的人才能在這個領域獲得良好的發展前景。……那些實力不足的人,只能被最終淘汰。
因此,要想在程序員這一行里成為不可替代的人,避免自己被淘汰出局的情況,就必須具備以下幾方面能力:
1,高人一籌的專業技能。
在職場上,要想確保自身生存,就必須具備一項專業技能。……要想確保自己不被淘汰,就必須具備高人一籌的專業技能水平。
因此,要想讓自己成為不可替代的程序員,要想讓自己避免被淘汰的情況,就必須確保自己的專業技能水平高人一籌。
2,強大的羅輯思維能力。
程序,是一個邏輯性極強的系統。
一個程序的各個部分之間、各項功能之間,都存在著極強的關聯,也擁有著非常強的邏輯關系。
因此,要想編寫出性能優異的程序,就必須擁有極強的邏輯思維能力。……這是確保自己擁有更強實力、確保自己不被淘汰的重要能力。
3,高超的數學水平。
程序的表象,是一段代碼。而其核心,則是數學模型,是具體的演算法。……只有具備高超的數學水平,才有能力編寫出演算法精妙、邏輯嚴謹的程序來。……這是自己具備更高水準的關鍵因素。也是自己高人一籌,不可替代的關鍵因素。
4,精通至少一門編程語言。
編程語言是程序員在編程時所用的工具。……只有熟練掌握手中的工具,才能讓自己編寫出優秀的軟體。……編程語言有很多種,一個程序員不可能面面俱到。……但是一個合格的程序員必須掌握至少一門編程語言,這就是自己工作時最得力的工具。……運用這個工具,自己就可以編寫出優秀的軟體,就可以獲得更好的業績,最終成為不可替代的優秀人才了。……自己也就不可能被淘汰了……
9. 程序員提升個人能力的方法有哪些
一個人想要提升能力的方法有很多種,程序員在工作過程中華提升個人能力是非常關鍵的。對於程序員來說,不僅需要提升個人能力,提高自己對項目開發的實踐能力也是非常關鍵的。那麼程序員應該從哪些方面提高自己的能力呢?下面北大青鳥為大家介紹程序員提升個人能力的方法。
1、了解自己的興趣傾向
首先最重要的就是了解自己對什麼行業感興趣,自己想要在哪裡領域中進行發展。其實最重要的還是要了解自己對什麼事情更加感興趣,在學習過程中,興趣是非常重要的,它能讓你在遇到問題的時候積極解決問題,並且不斷的堅持學習。
2、個人的工作經驗
選擇決定這發展,你是想進行前端還是後端,是在大公司發展還是小公司發展,主要針對於用戶還是商業,偏向於設計方法還是決策方面。在考慮個人能力提升的時候,昆明IT培訓建議最好根據自身之前的工作經驗進行考慮。
3、個人的優勢和劣勢
正確認識自己的長處和短處是一個自我認識的過程,這是很多人希望能夠在對話中進行認識和准確定位的。在選擇就業的過程中,如果能夠很好的展示出自己的優勢,能夠具備更大的競爭力,但是在展示自己優點的同時,還需要認識到自己的缺點,雲南IT培訓認為只有清晰的認識自己,才能在工作中避免和不斷的提升自己。
4、個人成長規劃
事實上,每個人都需要有一個明確的願景,即其短暫的職業生涯、其增長道路、明確了解自己想要找到的方向、規劃或自我定位,這是需要非常清楚的,但是雲南電腦培訓認為隨著個人規劃的不斷明確,自己的目標也會更加清晰。
10. 程序員如何提升自己的核心競爭力
首先需要在一個技術領域深耕,只有一個領域的知識真正吃透,才能有效地共享到別的領域,構成知識領域的森林,相近領域逐步橫向拓展