導航:首頁 > 程序命令 > 程序員的三大忌

程序員的三大忌

發布時間:2024-12-05 08:46:37

Ⅰ 學習編程先學什麼

學習編程首先從C語言開始。雖然,對於一個初學者來說,用一些控制項堆砌成一個小軟體會有一些成就感,但是,基礎才是最重要的。C語言對於數據類型的描敘,遠比VB更全面、明白,而這些正是編程中的根本。

學習編程的相關書籍推薦

1、《c primer plus》

《C Primer Plus》是C語言的經典教材。本書以豐富多樣的程序為例,講解C語言的知識要點和注意事項。每章末尾設計了大量復習題和編程練習,幫助讀者鞏固所學知識和提高實際編程能力。附錄給出了各章復習題的參考答案和豐富的參考資料。適合希望系統學習C語言的讀者,也適用於精通其他編程語言並希望進一步掌握和鞏固C編程技術的程序員

Ⅱ 怎麼編程

學編程,決不可心浮氣燥。任何實踐都是……

我認為有些人的觀點錯了。錯得一塌糊塗。
對於這個問題,我的基本觀點是:任何實踐都是理論的載體或表現形式。而理論也是由實踐上升而來
的。兩者是辨證的。今天,我們只關注它的前一部分:任何實踐都是理論的載體和表現形式。
我不是想故弄玄虛,但真理的外表看上去往往就是這么奇形怪狀、難以理解。讓我來給你解釋一下
吧。
比如:戰爭是軍事理論的實踐,也是它的表現形式。戰爭的勝負取決於指揮者軍事理論的掌握程度(別
給我舉趙括這類「紙上談兵」的反例,他們根本算不上掌握了軍事理論,充其量只算是「背」下了軍事
理論。「掌握」和「倒背如流」這是兩個概念。)

1、VC、VB、Delphi …… ,你該學哪個?
具體到編程而言,我要告訴你:任何一種計算機語言,都是計算機科學理論的載體或表現形式。C++很
神嗎?java很酷嗎?它們差距很遠嗎?是的。但從理論的層面上講,它們沒有區別,都是「面向對象」
理論的一個具體形式而已。
現在的程序員們被發行編譯軟體(通常我們將其稱為「系統軟體」)的商家不斷推出的產品搞得眼花繚
亂,頭痛欲裂。不斷地跟在新語言後面跑,這條路還沒跑到頭,那邊的「新路」又鳴鑼開張了,於是再
跟著跑……漸漸地有些人開始感嘆:學海無涯、學無止境,或什麼「程序員是青春飯,過了三十別想
干」……
在此我不得不嘆息:中國的教育真是一種「形而上學」的教育。早在高中時代我們就學過「辨證唯物主
義」的基本理論:做事情要抓主要矛盾。這一條恐怕誰都知道,卻鮮見誰能在實踐中把這一理論運用得
「爐火純青」的。把這一理論運用到編程上來講就是:
理論是主要矛盾,語言是次要矛盾,學會了理論,再具體到學一種語言時,你只不過是在進行某種消遣
而已。
現在學VC的普遍看不起學VB的或學Delphi的。但如果一個用Delphi的人,在需要寫web程序時,用
TCP/IP做了一個構架,嵌入到應用程序中;而另一個用VC的人卻只會把一個又一個的組件拖來拉去的做
些個「例子程序」的翻版。你說他們兩個誰歷害?Delphi和VC誰歷害?
真應了這樣一段話,問:紐約好還是上海好?答:有錢哪兒都好,沒錢哪兒都不好。上海的富人並不比
紐約的富人少多少的優越感,而紐約的乞丐也不比上海的乞丐多多少幸福感。
現在你還會說學VC的人就一定比學Delphi的人水平高、「錢景」好嗎?

2、「淺薄」絕不該是中國程序員的性格特徵!!!
想問一句:中國程序員這么多,你們真地把基礎理論學好了嗎?別用你現有的編程經歷告訴我:編程不
需要數學,不需要數據結構,不需要編譯原理…… ……說話得負責任,您知道嗎?我之所以發表這篇
文章,就是因為再也看不下去這種在中國編程界漫延的歪理邪說了!邪教害死的是人的個體,你們害死
的是中國軟體業的未來!如果再讓這種理論繼續毒害編程新手的思想,中國將在計算機領域失去民族的
尊嚴!!!
請問,操作系統、編譯軟體、資料庫系統…… 這些被稱為「系統軟體」的東東,中國有幾樣拿得出手
的產品?也許是我孤陋寡聞,據我所知:我們國家一件像樣的也沒有。
不錯,我們是有一些網站的股票在西方上市了,我們是有一些人被國外公司請去做高級職員了,我們也
有一些人把西方的官方網站給黑了……但是,我們用的編譯工具是誰的產品?我們微機里裝得是誰做出
的操作系統?我們的程序跑在誰的晶元上?
愛之深,恨之切。我愛的是中國,但我痛恨不是中國,而是在中國編程界普遍流行的「淺薄」和「自以
為是」,這是我們民族軟體業的一顆毒瘤!
是的,現在編程方面快速入門的書滿天飛,讓程序員的門檻越來越低。我這個外行就得益於這個「低門
檻」,跑了進來。但進來後,我們就不能再這樣淺薄下去了——我的兄弟們!
用他國提供的工具做幾個網站,寫幾個應用程序,弄出幾個病毒…… 是振興不了民族軟體業的。順便
說一句:我尊敬求伯君,但我不認為金山公司和其系列產品配得上被稱為「民族軟體業」的大旗,相對
這個稱號,它差得太遠了。
…… ……
寫flash軟體的人會認為用flash做動畫的人比他歷害嗎?Adobe公司真的認為考取Adobe證書的人是「人
才」嗎?MSCE、MSCD…… 通過這類考試得到微軟徽章的人,在微軟眼裡是「人才」還是「義務推銷
員」?持這類證書以及其他一些大軟體公司認證的人,你們還在以為自己是「中國軟體業的精英」而感
嘆「懷才不遇」、工資太少嗎?
醒醒吧,朋友。別再用編程不需要理論的話來自欺欺人了,別再用自己的淺薄來教導別人像自己一樣淺
薄了。我想問問那些稱數學、數據結構等基礎課程對編程沒用的人:
請你們搞清一個概念:是這些理論「沒用」,還是你們「沒用到」;是你們「沒用到」,還是你們的水
平根本「用不到」;是你們「不需要用」,還是你們根本「不會用」?
舉個例子,操作系統中的工作調度,若工作優先權相同,用什麼方法進行調度?當然是「先到先做」—
—這就是數據結構中「隊列」的應用。你們說「用不到」,只怕是因為到目前為止還沒機會接觸這類
「高端編程」的挑戰吧?這樣的話,那就算了,掙你的錢去,但別再來這里誤人子弟,吹噓什麼優秀的
程序員不需要理論。
是誰說系統軟體發展的黃金時代已經過去了?Linux不就是在MS操作系統雄霸多年的情況下一舉成名的
嗎?中國難道就找不到這樣一個機會? 不,如果我們的程序員克服了現在的浮燥與急功近利,我們一
樣可以在「系統軟體」這一軟體業的「高端」樹立自己的品牌!所以請看下面——

3、年輕人應該有宏偉的志向。
用別人的產品做自己的東西,你永遠只是個「高級客戶」,成不了真正的開發者。不管你用他國的系統
軟體開發出多少好的產品,掙了多少錢,只要人家一升級、或一推出新產品,你口袋裡的銀子連同最後
一條小褲叉也會被剝奪得一干二凈。你,只不過是一個高級打工仔。
我希望打算進入編程界的朋友們,特別是現在還很年輕的朋友,能有一個比較高的志向。更希望已經進
到這行的朋友們能有以「振興民族軟體業」為己任,力爭成為中國軟體業的「旗手」。
我不贊同方東興把微軟罵得一無是處。更不贊同年輕人學他那樣,一賭氣而拒絕用微軟的產品,拒絕
Windows、拒絕VC 、拒絕IE ……
我認為方東興只是個狹隘的民族主義者。他看到了中國軟體業民族的一面,卻不願承認我們落後的一
面。毫無根據的「自尊」等於自取滅亡。清朝末年,我們的科技並不落後於西方多少,但我們過分「自
尊」的「大國思想」卻使我們失去了向其他國家學習的機會。當我們嘲笑西方人的藍眼睛、大鼻子的時
候,他們的堅船利炮,卻把我們「央央大國」的皇帝、太後打得滿世界逃難。慈禧太後被打得滿地找牙
的時候,不得不說出「量中華之物力,博與國之歡欣」的齷齪話,此時,她「大國皇太後」的自尊何在
呢?前面自尊過了頭,事後必遭報應。這報應一持續,就是幾百年,直到現在。難道我們還要繼續閉門
造車,再走老路嗎?
我們現在承認微軟比我們強,向微軟學習,並不等於我們永遠要跟在他後面跑!在我們低下頭的時候,
我們就應該想到,何時能再抬起這顆高貴的頭顱!!!而且是「一定」!!!!!自尊不是錯,錯是錯
在「太盲目」——妄自尊大,你就要和慈禧一樣被打得滿地找牙。做為一個大國,一個明智的民族,我
們不能諱疾忌醫。
年輕人,志當存高遠。相信我,當你以民族振興為己任的時候,封王稱帝、富貴榮華,都只不過是千秋
偉業的一個副產品。在這個尊重知識、崇尚科學的年代,志向高遠的人,永遠不必擔心自己的「錢
途」。
不必諱言,我承認我當初進入編程領域不完全出於興趣,也有「錢途」方面的考慮。但就好像當年參加
八路的戰士當中,有些只是報著能吃上軍糧或打鬼子報家仇的思想入伍的,但後來卻學習了馬列,提高
了覺悟,轉為以興國救民為目標一樣,當我一步步深入到這行以後,當我決定考研並慢慢提高了認識以
後,我的目的變了。我覺得應該有個更高的人生目標,更高志向和追求來支持我的行動。這個目標就
是:為民族軟體業盡一把自己的力。
真心希望你與我同行。

4、幾點建議:
建議大家耐下心來先學好理論,然後再選擇具體的工具或語言。不過,在所有這一切開始以前,先打好
C語言和匯編基礎。
能不能得道,就看你在見到別人做出一些花里胡哨的東西時,是不是能堅定信心、耐住寂寞、抵禦誘惑
了。
一個和我一起學習C語言的人,學完就直接開始玩VC,而我則潛下心來學了些C++和理論方面的東西。早
早地,他就能仿照書上用VC做些界面似的東西在我面前炫耀,可後來,當我基礎理論的學習告一段落,
做個圖書管理程序賣了800大洋時,他還只是停留在做「例子程序」的水平上。現在我們談論起編程,
深度早已不可同日而語了。他起跑領先,卻落在了後面。
我不敢自以為是,只是想用這個親身經歷告訴大家:學編程,決不可心浮氣燥。
5、結束語
我的話觸到許多人的痛處,而且由於寫時心中氣憤難平,有些出言不遜,可能要遭人罵了。不過,既然
寫了,就不怕罵。因為:以上所言全是忠告,識不識貨,就看您的眼光了

Ⅲ 如何正確對待需求的變更

軟體需求是軟體項目最難把握的問題,同時又是關系項目成敗的關鍵因素,因此對於需求分析和需求變更的處理十分重要。 軟體需求變更會給項目帶來巨大的風險,會導致項目的成本費用增加、開發周期延長、產品質量下降及團隊工作效率下降等不良後果,因而需求變更在軟體開發項目中應該盡量避免。然而由於政府對特定軟體的相關要求、用戶部門市場戰略的調整、工業界的發展等因素都可能帶來需求的變更,而這些因素往往不可避免。在軟體開發過程中如果只有一條真理的話,那一定是:需求的變化是永恆的,需求不可能是完備的。因而,對於需求變更應該正確的對待,盡量將其負面影響降低到最低。 2、減少需求變更 正如前文所說,需求變更往往是不可避免的。通常是項目負責人員花費了大量的氣力避免需求變更,可最後需求變更總是會出現。但是這並不意味著項目開發人員不應該做這方面的工作,項目開發人員對於需求變更的正確態度應該和軟體測試的態度一樣,在需求並更發生之前盡量減少需求變更,以將需求變更帶來的風險降低到最低。項目開發人員切忌在項目設計之前試圖消除需求變更,這樣做往往費力不討好。 相比於需求開發人員而言,客戶可能對需求變更認識不足,認為他們出錢,程序員或軟體開發公司就要為它服務,因此客戶對需求變更往往將需求變更視為兒戲,隨個人喜好隨意變更需求。因此,在需求人員同用戶代表或用戶部門主管人員接觸時,就應該向他們挑明態度,和他們協商好,特別是應該讓他們清楚軟體的定價應該與軟體的功能相關,以及需求隨意變更所帶來的風險的承擔者應該由客戶和項目開發者共同承擔。通過這樣做,讓客戶在需求分析之前就盡量對他們所需要的功能有個整體的了解和確定的思路,而不是等到程序員開始編碼了,才提出以前原本在需求分析時就可以提出的需求。 讓客戶明白減少需求變更的重要性後,需求分析人員應該採取合適的方法同客戶交流,幫助他們明確他們的需求。需求分析人員和客戶的關系不應該僅僅是記錄人員和需求提供者,他們的關系應該更多的是戰略合作夥伴關系。雖然需求分析人員和客戶存在著服務商和顧客的關系,但是他們有著一個共同的目標:開發出適合客戶需求的軟體,因此需求分析人員除了記錄客戶提出的需求以外,還應和用戶討論,提出一些建議,使用合適的工具幫助客戶提出需求。在需求分析時,盡量多的召集需求研討會,邀請開發人員和客戶共同協商探討,在研討會上允許任意的提出需求,並將這些需求整理成檔後由客戶代表和需求分析人員共同商議可選的功能,這樣能夠盡量使得需求完備。在需求開發時,開發人員採用原型的方法啟發客戶思考功能需求也不失為一個好辦法。 雖然需求不可能是完備的,但是在項目開始設計時盡量使得需求完備還是應該的,也是值得的。 3、規範文檔 需求文檔作為客戶和開發人員的介面在整個項目開發過程中起著舉足輕重的作用。需求文檔應該按照一定的格式和規范書寫,而且應該具備完整性、一致性、基線控制、歷史記錄等特性。文檔書寫完畢以後應該交給客戶審閱,在客戶滿意的基礎上確定基線。一個完整規范的需求文檔不僅能夠有助於設計人員和編碼人員完成項目開發,更重要的是它作為一個階段性的成果可以供軟體需求變更時參考。 需求變更發生後,也應該生成相應的文檔,並且這些文檔的書寫也應該採用規范的形式書寫。需求變更文檔也應該包含基線以供下一次修改參考,還應包含歷史記錄以供開發人員和客戶清楚當前的文檔內容的新舊以及歷史文檔的情況,以備以後查看。 4、設計良好的體系結構 開發軟體就如同建造一座房屋,軟體體系結構則如同建房屋時的規劃。兩層高的家庭住宅和幾十層高的商業大廈建造時的規劃必然不同,同樣,大型軟體和小軟體採用的體系結構也必然有所區別。因此,設計一個合理的體系結構對於項目的成敗也是十分關鍵的。 體系結構的建立一般位於需求分析結束之後,軟體設計之前。軟體體系結構的設計是從結構的角度對整個系統進行分析,選擇合適的構件,安排構件間的相互作用以及他們之間的約束,形成一個系統框架以滿足用戶需求。在設計軟體體系結構時,不僅應該想到如何完成滿足現在已經提出的用戶需求,同時也應適當地考慮到需求的變更。 採用有彈性和可擴展的軟體體系結構設計可以有效地降低需求變更引起的風險和維護代價,能夠在項目范圍未發生變化的前提下很好地適應需求的變化。體系結構的靈活和可擴展性設計使得開發者可以在這種體系結構上面進行各個功能層的組合和分離,也可以將各個功能層分布在各個不同的伺服器上共同提供服務,因而能夠快速的對需求變更作出響應,並且對已經開發好的系統產生盡可能少的影響。 體系結構的設計除了考慮到體系結構的靈活性和可擴展性以外,還應盡量採用鬆散耦合的結構,使得結構中的各個構件之間的關聯程度盡可能的少,這樣就能在需求發生變更時一個構件的變化對另一個構件產生盡可能少的影響。 現有的軟體體系結構很多,包括管道-過濾器結構、B/S結構(含C/S結構)、解釋器/虛擬機結構、黑板系統以及基於中間件技術的體系結構。在設計體系結構時,首先應該選出適合項目需求的系統結構,然後在從中挑選出那些擴展性比較好,構件之間耦合性比較小的體系結構。基於中間件技術的體系結構就是擴展性比較好的體系結構。採用中間件技術,中間件作為用戶界面和操作系統以及網路的連接點,向上為用戶提供服務,向下屏蔽操作系統和網路的細節。這種分層的思想能夠很好的適應操作系統和網路的變化,可擴展性十分的好。同時,可以在中間件中給出容易改變的介面或是為系統將來改變預留介面來實現功能上的需求變更。當然可擴展性比較好的體系結構遠不止基於中間件技術的體系結構這一種,具體的選擇和運用應該由設計人員根據實際需要考慮。 5、採用面向對象思想 需求是不穩定的,因而沒有不變的需求,然而需求之中卻有穩定的東西,這就是對象。世界都是由對象組成的,而對象都是持久的,例如動物、植物已經有相當長的時間。雖然對象也在變化,動物、植物也在不斷的進化。但對象在一個相當長的時期內都存在,動植物的存在時間肯定比任何一家企業長久。面向對象的開發方法的精髓就是從企業的不穩定需求中分析出企業的穩定對象,以企業對象為基礎來組織需求、構架系統。這樣得出的系統就會比傳統的系統要穩定得多,因為企業的模式一旦變化,只需要將穩定的企業對象重新組織就行了。 面向對象(OO)技術的三大特徵保證了採用OO技術可以建立易於改變和加強可重用性的軟體系統。封裝可以把問題影響的范圍縮小,外部的變化要求對系統的影響可以限定到某個類層次或某些類層次中,從而改變系統的一部分相對簡單;繼承可以使改變基於原有技術基礎,很大程度上減少重復開發工作;多態的應用可以使開發和設計人員在相對統一的介面下更改系統的實現細節,從而改變系統的行為。 顯然,OO技術是一種增強軟體可維護性、健壯性以及保持設計穩定性的一種分析和設計方法,可以在一定程度上快速對需求變更進行反應,並可相對減少需求變更需要的成本。因此,在系統開發過程中應該盡量的採用面向對象的思維方式來構建系統和開發系統。 6、需求變更控制 正如前文所言,需求變更不可避免的會發生,那麼當需求變更發生後項目開發人員應該如何應對呢? 一般來講,需求的變更通常意味著需求的增加,需求的減少相對很少,而且處理也比較容易。當客戶提出新需求的時候,項目開發人員應該分析這些新需求對項目現階段帶來的風險,得出雙方實現變更需求的需要的成本,包括時間、人力、資源等等方面,再與客戶商討是否有必要進行變更和如何在最小代價下實現變更。 當客戶確實希望進行需求變更時,可以讓開發人員開發一個快速原型,讓用戶體驗一下,以確保客戶確確實實的希望添加這些需求。在客戶和項目開發人員共同確定了需求變更後,項目開發人員應該與客戶簽訂一份新的合同。 當客戶提出需求變更並且簽訂了合同後或是開發人員根據市場和國家政策作出的需求變更得到確證後,項目開發人員應該決定何時實施這些變更。對於那些對系統影響不大和一些優先權十分高的需求變更可以立即在項目中實施,而對於那些對於整個系統現階段的開發影響很大,而且又不是十分緊急的需求可以放在下一個版本中進行。無論是立即實施還是放在下一個版本中,都應該給新的需求一個充足的開發和測試時間,保證產品質量。 結論 在面對需求變更時,除了通過減少需求變更和規範文檔,從分析和設計的角度通過採用合理的分析和設計方法適應需求變更以外,還應該改變我們設計的意識和對需求變更的理解,做好對需求變更的控制和管理,做到對需求變更的靈活應對,在一定程度上降低維護代價和提高用戶滿意度。

Ⅳ 學java,要注意什麼

如果想學好java最好注意以下五點:1、做學習計劃並保持自律:在我們學習Java的過程中,盡量減少干擾,把自己的全部注意力集中在Java上。無論你注意力的持續時間是多久,都應該將全部精力放在Java上。千鋒教育就有線上免費Java線上公開課。【更系統全面的學習資料,點擊查看】 2、通過編碼來學習:很多新手在學習Java時都會經歷一個階段,那就是看書、看視頻,一段時間後感覺自己都會了,但是真的要寫代碼卻怎麼都寫不出來,這種情況除了多編碼外,沒有其他方法了。3、手寫代碼:在電腦上敲代碼也很好,當然不反對這種學習方式。但在我們在手寫代碼的時候,會激活機械記憶,能幫助你更好地記住東西。此外,在面試中,很多公司的筆試都會讓你在紙上寫代碼。所以在學習過程中這是初學者一定要具備的專業技能了。4、工作產出:可以將你自己寫的一些代碼、小項目等發布在公共論壇上,雖然有時候他們給出很嚴厲的評價,但也能進一步指出你的不足,從而加以改正。5、堅持編碼:一定要堅持編碼,從小項目做起,然後慢慢擴大你的項目范圍。如果想了解Java更多相關知識,建議到千鋒教育了解一下。千鋒教育目前在18個城市擁有22個校區,年培養優質人才20000餘人,與國內20000餘家企業建立人才輸送合作關系,院校合作超600所。【千鋒IT培訓機構,熱門IT課程試聽名額限時領取】

Ⅳ 機器編程被研究出來了,程序員是不是都要失業了

機器編程被研究出來了,程序員是不是都要失業了?

在 2018 年英特爾研究院和麻省理工學院聯合發布的《機器編程的三大支柱》論文中,「機器編程」一詞首次出現在人們的視野。它融合了機器學習、形式化方法、編程語言、編譯器、計算機系統等多個領域。通俗地說,機器編程就是通過機器學習和自動化方法,設計出可以自己編寫軟體的軟體,即教系統自己編程。除了上文所說,機器編程可以補充跨架構專業編程人員的缺口之外,它還能解決軟體開發和維護上的一大痛點問題:Bug 。機器編程的核心原則是:人類向機器表達他(她)的意圖,機器去自動創建完成該意圖所需的所有軟體。

功能如此優越的機器編程在未來是否會讓部分程序員失業?這種擔憂並不難理解,畢竟如果機器編程可以實現自動化構建程序,那原來做這件事的人該怎麼辦?Justin 其實經常被問到這個問題,但 Justin 始終認為,機器編程如果成功,那未來只會創造數千萬甚至數億個就業機會,而非取代專業程序員使其失業。他的理由很簡單,有兩個方面:

因此, Justin 一直堅持一個觀念:自動化不僅不會取代任何現有的程序員,反而會為全新類型的程序員創造非常大的平台,讓他們可以毫無顧忌地發揮想像力。或許這些程序員的編程技能會稍遜色,但強大的創造性會彌補這個不足,只要有能力表達他們的想法,那麼機器和系統會幫他們把這些想法綜合起來做出軟體。

閱讀全文

與程序員的三大忌相關的資料

熱點內容
java創建線程池 瀏覽:749
pc軟體自動更新源碼 瀏覽:679
演算法類題目選題畢業設計 瀏覽:799
u盤圖片文件夾沒了 瀏覽:627
華登區塊狗伺服器ip地址 瀏覽:438
正常壓縮機排氣溫度 瀏覽:295
台灣數據加密系統 瀏覽:518
用伺服器帶寬掛機用什麼軟體 瀏覽:913
ug編程面試都問什麼問題 瀏覽:350
linuxread驅動 瀏覽:245
中國皇帝pdf 瀏覽:740
壓縮圖片英雄聯盟 瀏覽:640
單片機c語言指針 瀏覽:468
xshell退會命令 瀏覽:848
數控斜面編程舉例 瀏覽:238
java位元組數計算 瀏覽:717
手機視頻文件分文件夾 瀏覽:630
vivos9e文件加密 瀏覽:701
智慧雲伺服器如何設置 瀏覽:105
命令行msvc編譯器 瀏覽:831