出版時間:2011-5-5 出版社:機械工業(yè)出版社華章公司 作者:N216(倪燕農),張磊,吉陽 頁數:260
Tag標簽:無
前言
只要在編程序就應該稱為程序員。若以這個標準來衡量,我可能是國內從事編程工作時間最長的程序員之一。幾十年前我是一名程序員,幾十年后的今天我依然是一名程序員,未來幾十年我還會是一名程序員?! ?008年我提出了EOM(EnterpriseOperatingModel,企業(yè)經營模型)理論,并把EOM系列文章發(fā)表到博客園網站上。也許是EOM對普通的程序員來說顯得過于抽象,若沒有豐富的工作經歷和一定的編程技術,一般人會很難理解,因此網上反應平平。2009年年末,為了讓普通程序員能夠了解EOM,于是我從程序員關心的熱門話題開始,由淺入深地發(fā)表了幾十篇博文,最終讓大家看到了EOM是程序員成長中的一個重要結果,它與程序員的成長密切相關。沒想到這些文章一發(fā)布到網上就引起網友熱議,無論是點擊率、回帖數,還是作者與網友之間的辯論,激烈程度都很高,而且轉載甚多。我的朋友、同事、家人甚至出版社見此狀況都極力建議我將這些寫成書,讓更多的程序員能夠分享這種成長?! ∮谑俏以?010年5月正式和出版社簽約,開始進行本書的撰寫工作。在寫作的過程中,我和我的合作者對網上發(fā)表過的文章進行了整理,并根據本書的編寫大綱增加了很多新文章,把這些文章按照程序員的成長階段劃分為入門篇、成長篇、成熟篇和優(yōu)秀篇,從而形成了程序員成長的一個完整的“路線圖”。在這個過程中我重新回憶了我成長的各個階段,每個階段的故事依然讓我感到鮮活、感動和難忘。我努力去發(fā)現程序員最關注的問題,努力去分析這個問題后面的原因,努力去給出解決問題的建議。我想我的努力會給讀者帶來不一般的體會?! ”緯m用于各層次的程序員:有剛出校門尋找工作的新手,有在工作崗位年限不長的程序員,有工作多年的項目經理、技術高手,有在編程事業(yè)中表現突出的優(yōu)秀人物。各層次的程序員都可以從中找到自己想要的看點,例如:新手想知道如何找工作、如何面試、工資待遇、掌握什么語言、編程的前途如何等一些經驗和觀點;成長期中的程序員關注的是如何面對加班、如何提高自己的編程能力、如何確定自己的編程水平等;優(yōu)秀的程序員可能關注優(yōu)秀程序員應該具備哪些素質、哪些技術水平,如何證實其優(yōu)秀,軟件發(fā)展方向是什么,自己事業(yè)的未來發(fā)展方向是什么,如何實現自己的價值等?! ∶總€程序員的成長之路各不相同,但都會經歷大大小小的成功和坎坷,很多人在這個過程中會迷茫、會不知所措。希望本書能成為程序員成長的“路標”,打破那種程序員只看技術類書籍就能提高、就能成長的狹隘想法。希望程序員能多了解其他程序員成長的經歷,這些經歷不僅指技術上的,而且是指在心理上的、職場上的、事業(yè)上的和夢想上的。程序員可以從中學到很多成功的經驗,避免常見的問題,使得他們能夠更快、更全面地成長起來,更好地在這個職業(yè)中有所發(fā)展?! ≡诖耍乙兄x合作者張磊、吉陽兩位同事,感謝我的朋友、同事、編輯、家人,謝謝他們給我的每一次鼓勵。他們中有很多人都是我的文章的首批讀者,在我寫作的過程中給予了許多有益的建議。沒有他們的鼓勵和支持我可能無法完成這項工作。我還要特別感謝遠在英國的女兒倪好,她的鼓勵如同我給予她的鼓勵一樣,本書將是我送給她的一件禮物,希望這份禮物伴隨她快樂成長?! 〕吮緯?,我還打算在近期編寫有關軟件設計師、項目經理、EOM、NSS等方面的系列書籍。我想通過這些系列書籍與那些有志促進我國軟件業(yè)發(fā)展的各位同仁分享自己的經驗和觀點?! ∮捎谄邢蓿掝}廣度和深度也不可能拓展太多,請有興趣的讀者訪問我的博客,參與討論程序員以及軟件業(yè)相關話題。
內容概要
《程序員成長路線圖:從入門到優(yōu)秀》作者回憶和總結了自己幾十年的程序員成長經歷,對當前程序員關心的熱點、重點、難點問題給出了自己的看法和建議。通過對程序員的成長階段進行劃分,使得各個階段的程序員都可以“按圖索驥”,解決自己所遇到的問題。同時,《程序員成長路線圖:從入門到優(yōu)秀》也能夠幫助程序員了解什么是程序員的價值,如何成為優(yōu)秀程序員,如何實現自身的價值等,從而給程序員提供向上進步的動力。《程序員成長路線圖:從入門到優(yōu)秀》既不是純技術文章,也不是純個人傳記,而是采用隨筆形式,通過問題提出、分析、解答的形式,并輔以個人成長的經,作者對程序員成長的實踐與理解?!冻绦騿T成長路線圖:從入門到優(yōu)秀》以技術成長和心理成長為兩條主線,通過這兩方面的結合,展示了程序員應如何實現自己的價值。同時《程序員成長路線圖:從入門到優(yōu)秀》還涉及了“企業(yè)經營模型”,據此針對程序員介紹了一些企業(yè)經營模型的知識,使得程序員能夠看到更高層面的未來。 《程序員成長路線圖:從入門到優(yōu)秀》適合閱讀的對象包括程序員、軟件設計師、軟件項目經理、軟件公司(企業(yè)內部科技部門)職員、國家政府機關等相關企業(yè)信息化部門職員。
作者簡介
N216(原名:倪燕農),目前在某國有銀行省分行信息科技部工作,從事項目開發(fā)和管理工作。1982年畢業(yè)于東南大學軟件專業(yè),曾在江蘇無線電廠、某國有銀行長期從事計算機軟件開發(fā)和管理工作。他擅長匯編語言、C、VFP、VB、C#等開發(fā)語言,從事過操作系統級程序開發(fā)、各種應用系統開發(fā),特別擅長開發(fā)管理信息系統。1990之前他曾在省級及國家級公開刊物上發(fā)表過7篇論文。主持開發(fā)過幾十個大小項目,開發(fā)過公安人口信息系統、報表中心系統等大型軟件系統,涉及公安、金融等多個行業(yè)。他提出了IASG(交互式軟件自動生成器)、EOM(企業(yè)經營模型)、NSS(軟件新構架)等創(chuàng)新概念。目前他計劃編寫有關軟件設計師、軟件項目經理、軟件公司、企業(yè)信息化管理、EOM專著等系列叢書?! 埨冢厴I(yè)于南京郵電學院,碩士研究生,現在某國有銀行省級分行信息科技部任助理技術經理,曾負責開發(fā)過國際結算部MIS系統?! 〖枺厴I(yè)于東南大學,現工作于某國有銀行省級分行信息科技部,曾負責開發(fā)計劃財務部MIS系統。
書籍目錄
前言引言:我的程序員成長之路第一部分 入門篇1.1 程序員的夢想--中國的比爾?蓋茨1.2 談談程序員的基礎知識1.3 語言選擇與就業(yè)方向1.4 新手如何學習一門新的語言1.5 理性看待考證熱1.6 選擇大公司還是小公司1.7 新手面試常見問題與對策1.8 薪水的苦惱1.9 求書、求網還是求人1.10 新手看高手1.11 新手應該具備的基本素質第二部分 成長篇2.1 加班,加班,加班2.2 大量編程帶來的快樂和煩惱2.3 需求總是變化,程序總在修改2.4 為什么程序員不愿寫文檔2.5 為什么編程者總是高估自己低估別人2.6 我?還是我們?2.7 為什么程序員被喻為“IT農民工”2.8 加薪的問題2.9 門門通還是精一門2.10 程序是給自己看的還是給別人看的2.11 程序越長水平越高嗎2.12 動手能力強與技術水平低2.13 調試高手和編程高手2.14 如何快速確定自身水平2.15 程序員應該掌握的實用編程技巧第三部分 成熟篇3.1 大項目或小項目都是程序員成熟之道3.2 “頂梁柱”與“螺絲釘”的不同3.3 如何對待新人3.4 有關程序員的性別、年齡、個性、編程方法的話題3.5 程序員的上升空間在哪里3.6 跳槽還是留守3.7 你能當老板嗎3.8 動手與動腦的關系3.9 編程語言有高低之分嗎3.10 面向過程和面向對象的編程3.11 功能和界面哪個更重要3.12 你考慮過程序的復用問題嗎3.13 談談程序的參數化3.14 漫談程序的效率和水平3.15 好的程序像一首詩3.16 如何計算程序員自身的價值3.17 程序員成熟的標志第四部分 優(yōu)秀篇4.1 成熟到優(yōu)秀的瓶頸問題4.2 夢想回歸4.3 激情!激情!激情!4.4 擺脫技術束縛,拓展業(yè)務視野4.5 預測趨勢,讓你的目光看得更遠4.6 有意識才會有行動--談談市場意識4.7 制作有價值的軟件才是中國程序員內在的目標4.8 從程序制作到架構制作4.9 從定制軟件到通用軟件4.10 何為EOM4.11 用EOM的眼光批判“我要做全國最好的標準權限組件和通告權限管理軟件”14.12 用EOM的眼光批判“我要做全國最好的標準權限組件和通告權限管理軟件”24.13 用EOM的眼光批判“我要做全國最好的標準權限組件和通告權限管理軟件”34.14 用EOM的眼光批判“我要做全國最好的標準權限組件和通告權限管理軟件”44.15 程序員的春天:EOM與程序員4.16 優(yōu)秀程序員應該具備哪些素質第五部分 附錄5.1 創(chuàng)新模型簡介5.2 項目簡介5.3 作者和網友之間的精彩回帖節(jié)選
章節(jié)摘錄
我的程序員成長之路 程序員的成長經歷往往很相似,大部分的人走過了最前面相同的一段路,而有的人則走得更遠??偨Y自己這些年來的歷程,這也許能讓年輕的程序員少走一些彎路,成長得更快;或許更好一些,能讓大家從中得到一些啟發(fā),早日進入優(yōu)秀程序員的階段,實現夢想,釋放激情。 第一階段,最初是在學校里學習計算機基礎知識,學習經典的程序設計語言,編寫測試用的小程序。這個過程可以說是對計算機和程序設計的入門階段。這個階段主要是培養(yǎng)了自己對計算機軟件的興趣,打下了良好的計算機基礎知識。 第二階段,而后參加工作,從事計算機軟件開發(fā)工作。按照工作要求,一邊學習,一邊編程,終于可以讓自己的程序投入運行了。在這個階段我突然感覺到了自己的價值,感覺到了軟件的神奇,并且自己編寫的軟件成為了實用產品。這個階段實現了學習到生產的過渡?! 〉谌A段,隨著工作的增加,開始編寫各種程序,開發(fā)各種系統,這時候忙于編程知識的積累和應用。應該說在這個階段自我感覺很充實,好像有做不完的事,程序設計水平還處在語言級階段?! 〉谒碾A段,隨著積累了一定編程技巧之后,我開始想這樣的問題:我是不是最好的程序員?我能否編寫出最好的程序?這個過程是一個反思的階段。我對自己的要求是:不但要會編程序,而且要編好程序,從關注程序數量開始轉向關注程序質量?! 〉谖咫A段,開始在提高自己的軟件開發(fā)水平上做文章。經過各種系統開發(fā),尤其是大型系統的開發(fā),發(fā)現了軟件中有許多功能是重復的。因此,有一段時間把精力花在編制各種庫函數上,通過不同系統調用相同的函數,以便減少重復開發(fā),實現功能共享。當時比較得意的是庫函數不是我一個人在調用,而是整個項目小組都在調用,甚至不同的系統也能調用,從而體會到編寫庫函數特別有價值。這個階段的標志是庫函數,程序員水平上升到庫函數那一級?! 〉诹A段,到了庫函數那一級后,很快就發(fā)現,單單實現程序函數級的調用是遠遠不夠的。當你做了很多項目,包括大項目和小項目,尤其是做過跨行業(yè)的項目之后,你就會把庫函數的共享思想用于項目開發(fā)。你就會想這樣一個問題:為什么不同項目不能有相同的架構?如果有相同的架構,那么開發(fā)就有了相對的標準,我們就有可能通過配置的方法實現相同架構的系統。于是我提出了IASG(交互式軟件自動生成器)思想,并在C語言和其他一些語言中實現了IASG實例。記得最快的一次是編寫一個系統(公安部門的自行車信息管理系統,主要用于丟失自行車信息登記)只用了3個小時(從需求到安裝盤)。這個事情對我影響很大。我在這個階段上升了一個很大的臺階,從程序上升到軟件。核心思想就從庫函數共享上升到軟件共享。具體過程是建立一個通用的系統架構,架構中有許多共同的功能,例如,參數設置、用戶權限管理、庫表管理等。另外還提供信息建立查詢開發(fā)模板,通過配置和特殊功能的編制就能很快完成了一個系統的開發(fā)。現在想起來IASG距離我已經有20年了?! 〉谄唠A段,到了IASG階段后,我發(fā)現無論技術如何提高,都無法改變開發(fā)落后于需求的現實。通俗地說就是:程序員水平再高,僅僅是拉車水平高,但是,應該在什么路上拉車程序員并不知道。如果這條路是一條光明的路,則程序員越拉越有勁,有前途;如果這是一條死胡同,則程序員白費工夫;如果這是一條漫長的路,前途不明,則程序員可能要累倒在路上。現實中程序員水平低、收入低;系統需求不明確,系統開發(fā)周期一拖再拖;系統重復開發(fā)多,信息甚至不能在一個企業(yè)內實現共享,更不用說在企業(yè)之間、行業(yè)之間實現共享了;各種企業(yè)級的軟件ERP、CRM、BI層出不窮,也沒有哪個能滿足中國的市場;各種新技術、新概念不斷出現,卻沒有哪種技術或概念能真正發(fā)揮其內在價值,最終還是處于被學習、被運用的階段。 這個過程是程序員脫離技術本身,開始思索、開始求源的階段。在這個階段的程序員的思想有了質的飛躍。以前光拉車不看路,現在要抬頭看路了。 第八階段,有了抬頭看路的想法,于是我踏上尋路征程。我首先弄明白了我們腳下的路是什么樣的,為什么這條路那么不平坦、不寬廣。從軟件生命周期來看,軟件主要由用戶需求發(fā)起,用戶需求是軟件生存的根本理由。由于企業(yè)、用戶的不同而導致不同的需求——大量的無序的需求,這種需求驅動方式必然造成了我前面介紹的各種現象。這個階段是尋找根源的階段。只要我們找到了根源,就可以有機會解決問題。這個過程相對來說比較困難,這不僅需要編程技術,還需要很多方面的知識。若要了解這個根源,就迫使你學習和積累更多程序以外的知識?! 〉诰烹A段,當我找到軟件是需求驅動方式之后,就開始考慮什么是用戶需求?用戶為什么要提出這些需求?我們可以更深入地分析用戶需求產生的根源,我們能否讓無序需求變成有序需求呢?當然針對這些問題我們都進行了深入分析,其過程也很難在這里展開說明。我只能說,最后結論是用戶的需求來源于企業(yè)的經營。很多人思考問題還是就需求而論,并沒有站在企業(yè)經營角度去考慮問題。千萬不要小看這個變化,這個變化最終會產生一個理論。于是我們盡可能地站在企業(yè)經營角度看待企業(yè)經營方式、企業(yè)管理、企業(yè)信息化等。但是,我們最終要解決企業(yè)經營這個概念問題,如果我們都不能明確企業(yè)經營這個概念,或者我們不能科學地定義企業(yè)經營這個概念,那一切基于企業(yè)經營的各種具體現象就如同無本之源一樣無序泛濫。就像ERP、CRM等所謂企業(yè)信息化產品一樣,由于沒有一個企業(yè)經營定義的支撐,只能就企業(yè)經營的某個方面提出解決方案。這些產品不缺乏需求的支持,缺乏的是最基本的企業(yè)經營定義的支持。而這個概念就是EOM?! OM是從定義企業(yè)經營角度入手,把我們今后要開展的各種研究和開發(fā)活動都放在一個理論可支持的基礎上。只有定義了企業(yè)經營之后,我們才有可能分析我們需要什么軟件,我們的軟件采用什么技術才能實現企業(yè)經營的目標。而程序員則通過EOM了解到企業(yè)經營需要什么樣的軟件,這個軟件有多大的價值,這個軟件采用什么技術才能實現,自己要提高哪方面的技術水平才能獲得更大的價值?! ∵@個過程就是EOM階段,通過EOM了解軟件的根源和有價值的軟件所在,進而選擇自己未來的方向?! 〉谑A段,當我建立了EOM之后,便開始了EOM實現階段。這個實現階段分為兩部分,通過這兩部分的結合,我們就可以逐步看到EOM軟件產品的實例,看到EOM的真正價值。 第一部分是EOM的業(yè)務實現。當我們明確了EOM之后,就可以根據EOM來重新規(guī)劃企業(yè)信息化的整體架構,可以細分這個架構中的各種平臺產品、通用產品、專業(yè)產品,可以細分出這個架構實現的各種技術架構和實現手段,可以細分出這個架構中的各種標準功能和標準信息。通過這樣的分析,我們的程序員就可以根據自己的特長和愛好以及價值的判斷來選擇其中的軟件產品和技術。在明確目標和方向的情形下,通過自己的努力,不斷提高自己的各種技能水平,讓自己的價值和企業(yè)經營價值有機地結合在一起,從而實現自己的理想。 第二部分是EOM的技術實現。有了EOM并根據EOM理論構建企業(yè)信息化的架構后,我們就必須從技術上實現這個架構,否則這個架構將永遠停留在理論階段,不具有可行性。我們可以采用現有的各種技術來實現這個架構,但是,現有的技術都是基于原有的業(yè)務需求而建立和發(fā)展的,它適用于原來的應用對象。目前的EOM是一個全新的企業(yè)經營理念,因此,我們必須建立一種新的軟件架構來適應和最好地實現這個理念。幸運的是,我們找到了稱作NSS(New Software Structure)軟件新架構的技術,該技術體現了適應企業(yè)經營發(fā)展方向,將軟件合理分層,用最新的軟件技術按照架構的方式規(guī)范軟件開發(fā)的模式,可以實現最大范圍的功能共享,實現軟件的可擴展性。 這個階段可以讓程序員在軟件產品業(yè)務設計或軟件產品技術實現上等多個方面進行深入鉆研,并且成為領域專家。這和我們平時涉及的簡單的需求分析和簡單的技術實現有著本質區(qū)別?! 奈业某绦騿T經歷可以看出,程序員的成長是無止境的,只要有的放矢地努力,就會一步步登高向上。我認為程序員成長經歷主要有三大階段,即通用技術階段、市場階段、專業(yè)技術階段?! ?)通用技術階段是程序員專注編程水平提高的階段,也就是說“只拉車不看路”階段。這個程序員能做的事情那個程序員也能做,程序員的替代性很強,程序員市場價值相對較低,程序員只關注編程技術本身?! ?)市場階段是程序員跳離技術層面開始考慮為什么要開發(fā)這個軟件,這個軟件有什么價值的階段,通過求軟件之源來重新認知自己的方向?! ?)專用技術階段是程序員認知了這個軟件和技術有很大的市場價值,全身心投入到這個領域中去,并在這個領域成為專家的階段。程序員不但要懂技術,更要懂得客戶業(yè)務,不同的程序員的技術和業(yè)務變得沒有可比性,這種稀缺性造就了程序員極大的價值?! ∵@三個階段其實就是三個過程,每一個過程都是一次飛躍。程序員知道自己可以飛多高,依靠的是程序員的學習和眼界;而程序員能飛到哪里,那就要靠程序員自身的努力。一個程序員可以沒有能力,但是不可以沒有眼界。 ……
編輯推薦
《程序員成長路線圖:從入門到優(yōu)秀》關注程序員的技術成長與心理成長,《程序員成長路線圖:從入門到優(yōu)秀》探討程序員關注的熱點、重點、難點問題,《程序員成長路線圖:從入門到優(yōu)秀》系統揭示程序員成長階段的各種問題,《程序員成長路線圖:從入門到優(yōu)秀》以隨筆形式、促膝交談的方式,易產生共鳴。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載