① 如何成長為一個真正合格的程序員
優秀程序員都是很努力的
一個真正合格的程序員,除了要有扎實的理論基礎和代碼能力,還要有諸多的綜合素質。除非你只是一個純粹的碼農,除非你只是想做一點平淡的代碼工作,否則如果你想有更好的發展,那就必須「學習」。從我自己的發展經歷來講,其實我只是一個半路出家的程序員,我沒上過高中,只是師范畢業,學的還不是計算機,而是美術專業,從參加工作那天起開始自學計算機,花了半年學會了VB程序設計,寫了第一個vb程序,一個校園的自動播音系統,實現了校園鈴聲、升旗、課間操等定時音樂的自動播放,免費提供給學校使用,給學校帶來極大方便,從此我愛上了編程。後來為了宣傳單位的形象開始自學ASP腳本語言,一個月時間寫出了第一個ASP網站,在這個過程中學習了網頁前端布局,知道了前端可以有JS控制,知道了域名是什麼,知道了http協議,知道了WEB服務的發布。從那時起,我覺得網站建設就是一個商機,從此開啟了我的網站建設之路。其實也就是程序員發展之路,至此,我在這條路上一發不可收拾。
在這期間我開始接一些網站建設的活兒,一開始,在網上搜索一些開源的代碼進行修改,滿足客戶需求,但是很快發現一些問題,大多數代碼都是預先掛了一些廣告在裡面,如果對程序不熟悉,等你網站發布出來,你就只能看到滿山的網站,客戶當然就不滿意了,最後你還不知道這些廣告從哪裡冒出來的,甚至有些網站留了很多漏洞和後門,讓你防不勝防。所以,想想還是自己寫一套CMS系統,我只自己使用,只放在自己的伺服器上,這樣的話安全性高了很多,至少被攻擊的幾率少了多,也不擔心莫名其妙冒出來的廣告。於是,我開發了第一套產品,屬於我自己的CMS,期間我可以說學到了更多的知識,累積了不少的產品開發經驗。所以這里我總結一條,要成為一個合格程序員,最好完整的做一個項目吧。哪怕是項目的前端不懂,資料庫不懂,逼迫自己去學習,去了解,最終產品雖然不夠完善,至少你了解一個項目需要什麼,和什麼技術有關聯,這樣對你自己所擅長的東西就很有幫助。
不斷學習,與時俱進。我喜歡一句話叫萬變不離其宗。雖然程序語言有很多,但是基本原理還是相通的。我做了第一個ASP的CMS以後,很快發現ASP的程序網站已經不能適應項目開發的需求,需要更加高效的腳本語言來實現更多的功能。這個時候php就成了我首先研究的語言,因為我發現很多第三方開放的APi提供的都是PHP的,這讓我們使用更多其他第三方功能的時候開發會更加方便快捷,所以我花了一個周,學習了基本語法和函數,我發現從ASP遷移到PHP其實是很簡單的事情,只是語法不同,程序結構也是一樣的,條件格式、邏輯判斷、條件分支、循環處理也都差不多。經過學習很快掌握了這個語言,開始了項目開發之路。可見不斷的學習,也就是自我成長的一個重要的過程。
良好的思維能力,這是一個程序員必須具備的技能。思維能力就是一個能夠讓代碼在你頭腦中執行一遍的能力,也就是說你在寫代碼的時候你的腦海里就能呈現出代碼運行以後的結果,呈現給用戶的界面,把抽象的邏輯代碼轉成具體形象的能力。良好的思維還體現在,一個程序的處理其實都離不開計算機運行的本質,那就是數據輸入(數據從哪裡來),到數據處理(獲取的數據需要怎麼加工處理或者轉換為另一種形式),最後到數據輸出(給用戶呈現一個結果,圖像的、文字的、視頻的、聲音的或者是多媒體的)。程序整體是這個理念,分解到很多細小的模塊也是這樣,所以只要有這些核心理念,你的思維能力就不會有問題。
通過我的學習和發展,我總結了,要讓自己成長為合格程序員,離不開學習,離不開項目實踐,離不開思維的創新,更離不開努力勤奮和汗水,願有志青年都想有所成,學有所收,成就自我!
② 要做程序員需要學會什麼
要做程序員需要學會什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
③ 如何成為一個程序員
想要從零開始成為程序員,先不要著急的去學習,而是先要去了解程序員。
1.隨便在招聘網站搜索就會發現程序員會分有很多類型,那你就需要確定自己將來想要發展的方向,自己的職業規劃是什麼?
2.通過搜索可以看到,剛剛起步的程序員工資並不是很高而且學習階段也會比較忙,那這個時候你是不是靠考慮一下如何兼顧生活和工作?工資如何支配合理等問題(沒有經驗限制的工作相對較低)
PHP程序員崗位要求
關於學習建議你這樣試試看:
學習的方式基本可分為兩個類型,一個是碎片化的學習,一個是系統進修。
你可以從網路上各機構大量的視頻或者書籍得到相關的學習資料。從大量的資料中,發現真正的干貨,從而不斷學習,這屬於碎片化的自習。由於自學周期比較長,還有不少小夥伴選擇是一邊工作賺取生活費,一邊再利用閑暇時間學習,當然如果你的精力充沛,這也是一個好辦法。
如果要報培訓班, 一定要找正規的培訓機構學習,不然容易被坑。培訓機構裡面的課程都是現在工作中需要用到的,時間短,基本上是可以讓你快速上手工作的。但是要把所有的知識點都消化就沒那麼快了,所以需要自己私下更加的努力,鞏固學習。
注意事項:
1. 自學要注意的是:自學入門時會很枯燥,不要兩天打魚三天曬網!!!切記
2. 在培訓機構里學習要注意的是:勤加練習、主動自學、有問題提,不懂的盡管問老師(把交的錢發揮到極致),不然之後再有問題就沒有這么好的機會能夠直接得到老師的指點了。
最後,祝願想要成為程序員的小夥伴都能心想事成哦(*^▽^*)~
④ 一個優秀的程序員需要具備哪些技能
1、超凡的學習能力。在軟體技術領域,技術的更新日新月異,所以作為程序員必須學習不斷涌現的技術,掌握盡可能多的技能。優秀的開發人員是渴望學習的人。善於學習的人才能在這一領域立於不敗之地。也是程序員必備的條件之一。 2、堅持到底,善始善終。其實開發軟體是一件非常辛苦的工作,所以一旦認定目標,就要朝向最終目標努力努力再努力,始終朝向最終目標。這其實也是非常重要的能力。特別是在與一些人面談工作時,你要尋找的一件事情就是在小組已經交付的產品上他實際參與的工作。具備這種能力是作為一個優秀程序員的必備條件。 3、有團隊合作精神,能善於和別人相處。一般開發工作都是以小組進行的,所以一定要與小組成員友好相處,軟體開發是小組成員協調努力的結果。不要把功勞歸結為某個人,同時也不要把錯誤看作是別人的錯誤。 4、有預見性,知道未知因素。看到別人看不到的未知因素,並且提前做好預備工作,這說明你至少是個有經驗的程序員。你的前途可以說是一片光明。 5、充滿熱情,努力工作。作為一個優秀的程序員是充滿熱情和努力工作的,他們具有很強的組織性,而且講究方法,他們有能力將事情結構化。此外,大多數程序員勤奮工作的熱情是令人難以置信的。他們嘔心瀝血,不眠不休就是為了最後的勝利,如果你也具備這種精神,那麼你就算半個合格的程序員。 6、認真負責,少犯錯誤。軟體很可能會因為一個細小的錯誤而不能正常運行,所以說不要在軟體中放入錯誤,優秀的程序員不在他們的代碼中放入錯誤。盡量精準的設計,會讓你的工作事半功倍。 7、踏實的工作態度。低承諾,高實現。。
⑤ 怎麼做一個好的程序員
1. 學會看代碼
大多數程序員都只願意用自己寫的代碼,但高手一般可以輕易調用別人寫的代碼。表面看上去是工作習慣不同,
但實際上是能力上的差別。看代碼要比寫代碼難很多倍。
2. 復習
程序員一般都很忙, 手上有永遠也做不完的活兒。但在某些公司里,
你只是在反復做同樣的事。偶爾放下手上的活兒,留下一部分時間來分析自己的弱點,更改壞習慣,看新書, 或學習新語言。
3. 做個人項目
工作中的編程一般只能讓你熟悉一部分技術, 導致漏洞的形成。這就好像你長期一個人在自己後院練習投籃, 但第一次打比賽才(在慘敗中)發些原來還需要傳球,
防守, 強籃板這些概念。
Facebook喜歡僱傭所謂的 「full stack programmer」,就是一個人從設計,到交互,到html,css,javascript,
server,sql, 架構,和數據統計都能做。成為full stack programmer最好的方式就是不斷做個人項目。
4. 問答網站
問問題和回答問題都是很好的學習方式。 有的時候寫出一個好問題, 比寫出解答次問題所需要的代碼還難。寫問題可以幫你整理自己的思維邏輯。
5. 加入一個好團隊
最好的進步方式就是跟比自己強的人一起做事。高手都願意聚在一起,所以很多會選擇去優秀的早期創業公司。
⑥ 如何成為一個程序員
如果想做一個程序員,在沒有基礎的情況下,買書自學是一個辦法。但是大多數人會因為沒有相關的基礎知識,導致看書看得一知半解,因為有不同的語言,不同的開發環境,在你不了解的時候,買的書不一定合適。
比較速成的辦法還是去報名一個培訓班,系統的學習一下基礎知識,然後選擇一個發展方向,再具體的針對性的買點書籍來學習。
程序員是一個不停學習的崗位,你需要每天除了工作以外,花一定的時間了解新的技術或正在使用的技術的原理,這樣才能一直提高,不然,可能會被淘汰。在你了解代碼以後,你還需要了解邏輯,就等於你要熟悉你所從事的這個領域及行業。
注意事項:
不管任何行業和任何工作,概念的理解都是成功的關鍵。除非你有強大的概念基礎,否則就不可能成為一名優秀的程序員。
核心概念的理解有助於你用最佳的方式設計和實施解決方案。如果你覺得你現在還沒有好好掌握關於核心計算機科學和編程語言的特定概念,那麼現在回過頭去重新學習這些基礎知識猶未晚矣。
⑦ 作為一名優秀的程序員,要具備哪些基本功
學習程式設計不必苛求一定要從某一種語言入手,可以選擇自己比較容易接受的一種進行學習。從中主要學習的是編程本身的思想,學習的是用程式設計的眼光來看待問題。或許,學習的效果不能馬上看到,但是可以學到扎實的基本功,而這對於將來的進一步發展是有很大好處的。這些基本功包括:
一、強化邏輯分析和建立數學模型的能力
編程的目的是什麽?是要解決現實中的問題。而現實中的問題是用自然語言描述的,目前的電腦對其無法理解。我們要做的就是必須用電腦能理解的方式將問題「告訴」電腦。也就需要我們對現實問題進行邏輯分析,建立合適的數學模型,然後以程式和資料的形式輸入電腦,讓電腦幫我們來分析解決。一個簡單的例子就是電腦對於顏色的處理辦法:用R、G、B三色分量來各表示一種顏色,對於顏色的處理被轉化為對R、G、B三個整數的處理。我們只要改變這三個整數,就可以將其改變成另外一種?色。對於其他的現實問題,我們也要像這樣使其可以被電腦所「理解」。這是編程所要解決的第一步,否則就根本沒有程可編。這是建立在「經驗」基礎上的,是要在學習過程中逐步積累的。
二、資料結構和演演算法知識
程式設計發展到現在,已經有了一套比較普遍、完整的數學模型(我們稱之為資料結構)和對應這些數學模型的處理方法(也就是演演算法)。目前的程式就是以此為基礎的。在程式師中間流傳著一句經驗之談:「好的資料結構是程式的一半。」其重要性可見一斑。作為一個程式師,如果不知道資料結構中堆疊、佇列、鏈表、樹,不知道演演算法中的查找、排序、樹的遍歷、遞回,這簡直是不可想像的。我們所說的「編程的思想」也就具體表現為這兩點。所以,資料結構和演演算法知識是學習程式設計過程中必須掌握的重點,這樣在以後的程式開發過程中就可以覺得得心應手。
三、豐富的實踐經驗
程式設計本身就是一門實踐性很強的學科。一個只存在於紙上的程式如同沒有翅膀的鳥永遠不能飛翔在現實的天空。任由代碼寫得再巧妙,風格再優美,也只是一張紙上的一連串字元而已。就好比是一份作文練習,或許寫得很好,但是不交給老師去批閱,和一張白紙又有什?區別呢?在這里,程式就是作文,而電腦就是老師。只有把「作文」交給「老師」,通過調試程式才能印證自己的構想是否正確,或者看到什麽缺陷。當然也少不了要多和同行交流,尤其是隨著互聯網的普及,在網上我們也可以看到別人編寫的例子和根源程式,作?現代的程式師,這也是千萬不可錯過的好機會。
最後,作為一個程式師還有一點小要求:那就是身體素質要好,能熬夜才行。
⑧ 一個優秀的程序員需要養成哪些良好的習慣
怎麼樣才能成為一個優秀的程序員?這是一個頗為奇怪的問題。怎樣才是一個優秀的軟體開發人員,在今天,你該怎樣發展你的職業生涯?以下是DevStore總結的優秀程序員必備十大習慣。按照這些技巧和規則,你可以改善你的現狀,由一個普通的程序員,成為一名優秀的程序員。
學會學習
就算是你有了10年以上的程序員經歷,你也得要不斷地學習,因為你在計算機這個充滿一創造力的領域,每天都會有很多很多的新事物出現。你需要跟上時代的步伐。你需要去了解新的程序語言,以及了解正在發展中的程序語言,以及一些編程框架。還需要去閱讀一些業內的新聞,並到一些熱門的社區去參與在線的討論,這樣你才能明白和了解整個軟體開發的趨勢。
掌握多種語言
程序語言總是有其最適合的領域。當你面對需要解決的問題時,你需要找到一個最適合的語言來解決這些問題。比如,如果你需要性能,可能C/C++是首選,如果你需要跨平台,可能Java是首選,如果你要寫一個Web上的開發程序,那麼PHP,ASP,Ajax,JSP可能會是你的選擇,如果你要處理一些文本並和別的應用交互,可能Perl, Python會是最好的。所以,花一些時間去探索一下其它你並熟悉的程序語言,能讓你的眼界變寬,因為你被武裝得更好,你思考問題也就更為全面,這對於自己和項目都會有好的幫助。
理性面對不同的操作系統或技術
程序員們總是有自己心目中無可比擬的技術和操作系統。只有一部分優秀的程序員明白不同操作系統的優勢和長處和短處,這樣,在系統選型的時候,才能做到真正的客觀和公正,而不會讓情緒影響到自己。同樣,語言也是一樣,有太多的程序員總是喜歡糾纏於語言的對比,如:Java和Perl。哪個剛剛出道的程序員沒有爭論去類似的話題呢?比如VC++和Delphi等等。爭論這些東西只能表明自己的膚淺和浮燥。優秀的程序並不會執著於這些,而是能夠理性的分析和理心地面對,從而才能客觀地做出正確的選擇。
別把自己框在單一的開發環境中
再一次,正如上面所述,每個程序員都有自己忠愛的工具和技術,有的喜歡使用像VC++一樣的圖形界面的調試器,而我更喜歡GDB命令行方面的調式器。等等等等。程序員在使用什麼樣的工具上的爭論還少嗎?到處都是啊。使用什麼樣的工具本來無所謂,只要你能更好更快地達到你的目的。但是有一點是優秀程序員都應該了解的——那就是應該去嘗試一下別的工作環境。沒有比較,你永遠不知道誰好誰不好,你也永遠不知道你所不知道的。
使用版本管理工具管理你的代碼
千萬不要告訴我你不知道源碼的版本管理,如果你的團隊開發的源代碼並沒有版本管理系統,那麼我要告訴你,你的軟體開發還處於石器時代。趕快使用一個版式本管理工具吧。使用什麼樣的版本管理工具依賴於你的團隊的大小和地理分布,你也許正在使用最有效率或最沒有效率的工具來管理你的源代碼。但一個優秀的程序員總是會使用一款源碼版本管理工具來管理自己的代碼。
做一個優秀的團隊成員
除非你喜歡獨奏,除非你是孤膽英雄。但我想告訴你,今天,可能沒有一個成熟的軟體是你一個人能做的到的,你可能是你團隊中最牛的大拿,但這並不意味著你就是好的團隊成員。你的能力只有放到一個團隊中才能施展開來。你在和你的團隊成員交流中有禮貌嗎?你是否經常和他們溝通,並且大家都喜歡和你在一起討論問題?想一想一個足球隊吧,你是這個隊中好的成員嗎?當別人看到你在場上的跑動時,當別人看到你的傳球和接球和搶斷時,你的團員成員能因為你的動作受到鼓舞嗎?
把你的工作變成文檔
這一條目當然包括了在代碼中寫注釋,但那還僅僅不夠,你還需要做得更多。有良好的注釋風格的代碼是一個文檔的基礎,他能夠讓你和你的團隊容易的明白你的意圖和想法。寫下文檔,並不僅僅是怕我們忘了當時的想法,而且還是一種團隊的離線交流的方法,更是一種知識傳遞的方法。記錄下你所知道的一切會是一個好的習慣。因為,我相信你不希望別人總是在你最忙的時候來打斷你問問題,或是你在休假的時候接到公司的電話來詢問你問題。而你自己如果老是守著自己的東西,其結果只可能是讓你自己長時間地深陷在這塊東西內,而你就更本不可以去做更多的事情。包括向上的晉升。你可能以為「教會徒弟能餓死師父」,但我告訴你,你的保守會讓你失去更多更好的東西,請你相信我,我絕不是在這里聳人聽聞。
注意備份和安全
可能你覺得這是一個「廢話」,你已明白了備份的重要性。但是,我還是要在這里提出,丟失東西是我們人生中的一部份,你總是會丟東西,這點你永遠無法避免。比如:你的筆記本電腦被人偷了,你的硬碟損壞了,你的電腦中病毒了,你的系統被人入侵了,甚至整個大樓被燒了,等等,等等。所以,做好備份工作是非常非常重要的事情,硬碟是不可信的,所以定期的刻錄光碟或是磁帶可能會是一個好的方法,網路也是不可信的,所以小心病毒和黑客,不但使用軟體方面的安全策略,你更需要一個健全的管理制度。此外,盡量的讓你的數據放在不同的地方,並做好定期(每日,每周,每月)的備份策略。
設計要足夠靈活
可能你的需求只會要求你實現一個死的東西,但是,你作為一個優秀的程序,你應該隨時在思考這個死的東西是否可以有靈活的一面,比如把一些參數變成可以配置的,把一些公用的東西形成你的函數庫以便以後重用,是否提供插件方面的功能?你的模塊是否要以像積木一樣隨意組合?如果要有修改的話,你的設計是否能夠馬上應付?當然,靈活的設計可能並不是要你去重新發明輪子,你應該盡可能是使用標准化的東西。所謂靈話的設計就是要讓讓考慮更多需求之外的東西,把需求中這一類的問題都考慮到,而不是只處理需求中所說的那一特定的東西。比如說,需要需要的屏幕解析度是800×600,那麼你的設計能否靈活於其他的解析度?程序設計總是需要我們去處理不同的環境,以及未來的趨勢。我們需要用動態的眼光去思考問題,而不是刻舟求劍。也許有一天,你今天寫的程序就要移植到別的環境中去,那個時候你就能真正明白什麼是靈活的設計了。
不要搬起石頭砸自己的腳
程序員總是有一種不好的習慣,那就是總是想趕快地完成自己手上的工作。但情況卻往往事已願違。越是想做得快,就越是容易出問題,越是想做得快,就越是容易遺漏問題,最終,程序改過來改過去,按下葫蘆起了瓢,最後花費的時間和精力反而更多。欲速而不達。優秀程序員的習慣是前面多花一些時間多作一些調查,試驗一下不同的解決方案,如果時間允許,一個好的習慣是,每4個小時的編程,需要一個小時的休息,然後又是4個小時的編碼。當然,這因人而異,但其目的就是讓你時常回頭看看,讓你想一想這樣三個問題:1)是否這么做是對的?2)是否這么做考慮到了所有的情況?3)是否有更好的方法?想好了再說,時常回頭看看走過的路,時常總結一下過去事,會對你有很大的幫助。