當前位置:首頁 » 編程軟體 » 編程進步

編程進步

發布時間: 2023-07-23 14:38:18

Ⅰ 程序員如何提高自己的編程技巧

可讀性:函數命名隨意,實現邏輯混亂,代碼格式不統一。。。
可靠性:程序運行很難穩定,bug百出。。。
維護性:代碼邏輯沒有層次,混成一團,很難維護改進
移植性、重用性:許多人寫的代碼,只能各自使用,很少有能共享的功能性代碼
高效性:很少從演算法、資源佔用、執行效率等角度去考慮,經常導致伺服器負載過重
那麼我們改進時,就可以從以上幾點出發。
總結了一下自己以前的經驗,主要有以下幾點:
提高自己的程序語言基礎。對於許多新手程序員來說,只是簡單的學會了該語言,知道一些簡單的用法。但是實際編程的時候,許多寫法、用法不標准。舉一個很常見的例子:許多人剛剛學c++,java等面向對象編程的語言時,雖然知道了類、知道了類一般都有「多態」的特性,但是他們還是經常會用「類型判斷」去判斷某個對象是屬於哪個類的實例、然後強制轉換、再調用方法。卻完全忽略可以用多態來避免這種醜陋的實現!
熟悉語言規范。如果不知道自己所學的語言還有規范,那麼建議你現在去查找。說個簡單的規范,Java的類名要取得有意義、首字母要大寫。再比如:一個函數只實現一個功能。再比如一個復雜的:連續的if else條件判斷最好不要超過10個。
培養自己嚴謹的邏輯思維能力。我們寫程序,至少都會在腦海里走一遍程序的流程。如果流程走通最後卻出現bug,那麼就是流程的某個細節我們沒有考慮到!有的時候,我們總是自認為自己已經考慮的非常全面了,其實不然。同樣舉一個例子:對一個集合,寫個for循環按照一定的條件刪除裡面的元素。其實這裡面隱藏了一個「集合在動態變化」的陷阱。比如說,將第一個元素刪除了,如果集合的數據結構是將第二個元素移動到第一個元素上,那麼,第二個元素就遍歷不到了。所以,有時候,我們看似很簡單,覺得邏輯非常正確的代碼,可能就潛伏著陷阱。
熟悉所用語言的API。學一門語言,其實不只是學語法,學語義。更重要的是學基本的API類庫。因為你實際編程的時候,自己所寫的代碼其實很少,大部分都是用的別人的API,將許多API的功能穿起來,才是自己實現的功能。用好的API,能增加代碼質量、提高代碼可讀性、減少代碼bug、減少工作量。就比如說堆棧這個數據結構,程序員基本都知道,但是大部分人可能都不能實現一個正確的堆棧API。
熟悉了解一些數據結構、演算法。平常寫程序時,或多或少都要接觸一些常用的數據結構,比如說鏈表、map等,了解它們的原理對於那些沒學過數據結構的人來說很重要。很多時候,一個簡單的功能被實現的超級復雜的原因就是沒有使用簡單清晰的數據結構。
掌握一些編程思想、設計模式,這會讓你的代碼更加具有結構性、條理更加清晰!比如說,面向介面的編程思想,能讓你的代碼易於修改、易於擴展。如果更進一步,站在架構的角度去考慮。
多看高手代碼,讀一些優秀的開源代碼,看一些經典的書籍。比如說《Effective C++》、《Effective Java》、lucene的源碼。這些會讓你提升巨大,只有了解到高手眼中的世界,才能有成為高手的可能!
代碼重構。多回顧之前寫的代碼,進行一個系統性的整理。因為我們起初開發,不是面面都能想到,許多新東西是不可避免的,這就意味著可能會導致一些邏輯混亂。在開發完成後,多回顧回顧,尋找能改進之處,這也是一種進步。
即時缺少高屋建瓴的能力,我們也應該多從全局的角度去考慮整個工程的代碼的層次、模塊、架構等問題點。可以嘗試著進行功能點拆分、介面交互設計等工作。
為自己的代碼添加測試用例。可能因為懶惰,許多程序員基本都不會為自己的代碼添加測試用例,這其實是一個不好的習慣。即時是有測試人員的團隊,添加測試用例對你的好處也是顯而易見的。
至於從團隊的角度,可以考慮建立以下幾點:完整的規范、執行流程、review機制和輔助工具。由於本篇文章主要針對的是個人,就不展開。工具方面,可以考慮開源的ReviewBoard。
個人的代碼質量提上來,團隊的水平才能提上來,公司的效率才能提升。其實最主要的是,個人的層次、境界才能提升!

Ⅱ 提高C語言編程能力

如何提高C語言的編程能力:

學習C語言,譚浩強的《C程序設計》是一部非常好的C語言書籍,學習程序設計是一個非常漫長的過程,不要著急,一本書多看兩遍三遍,學會交叉學習法,在學習C的過程中,可以看看數據結構,編譯原理,操作系統等書籍,對編成都是很有幫助的。最開始學習的時候,先不要編一些比較大的程序,多編一些小程序,比如數組運算,字元組合等等,指針是C語言的精華,是比較復雜的部分。看到你的情況,編了一個學習系統,對語言的駕馭能力還是很不錯的,我相信你,你一定能學習好C語言的。

C++的學習方法或建議

C++是C語言的擴展,學習的難度比較大一些,也是目前學習難度最大的一門語言,相對與C來講,增加了一些新特性,繼承,對象,模板,多態,STL(標准模板庫),充分掌握這門語言需要四年的時間,

C++學習經典:
1.把C++當成一門新的語言學習。
2.看《Thinking In C++》,不要看《C++變成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學者所以就不看;
4.不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是集成開發環境,而我們要學的是一門語言;
5.不要放過任何一個看上去很簡單的小編程問題——他們往往並不那麼簡單,或者可以引伸出很多知識點;
6.會用Visual C++,並不說明你會C++;
7.學class並不難,template、STL、generic programming也不過如此——難的是長期堅持實踐和不遺餘力的博覽群書;
8.如果不是天才的話,想學編程就不要想玩游戲——你以為你做到了,其實你的C++水平並沒有和你通關的能力一起變高——其實可以時刻記住:學C++是為了編游戲的;
9.看Visual C++的書,是學不了C++語言的;
10.浮躁的人容易說:XX語言不行了,應該學YY;——是你自己不行了吧!?
11.浮躁的人容易問:我到底該學什麼;——別問,學就對了;
12.浮躁的人容易問:XX有錢途嗎;——建議你去搶銀行;
13.浮躁的人容易說:我要中文版!我英文不行!——不行?學呀!
14.浮躁的人容易問:XX和YY哪個好;——告訴你吧,都好——只要你學就行;
15.浮躁的人分兩種:a)只觀望而不學的人;b)只學而不堅持的人;
16.把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡;
17.C++不僅僅是支持面向對象的程序設計語言;
18.學習編程最好的方法之一就是閱讀源代碼;
19.在任何時刻都不要認為自己手中的書已經足夠了;
20.請閱讀《The Standard C++ Bible》(中文版:標准C++寶典),掌握C++標准;
21.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看;
22.別指望看第一遍書就能記住和掌握什麼——請看第二遍、第三遍;
23.請看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成開發環境的搖籃上,要學會控制集成開發環境,還要學會用命令行方式處理程序;
25.和別人一起討論有意義的C++知識點,而不是爭吵XX行不行或者YY與ZZ哪個好;
26.請看《程序設計實踐》,並嚴格的按照其要求去做;
27.不要因為C和C++中有一些語法和關鍵字看上去相同,就認為它們的意義和作用完全一樣;
28.C++絕不是所謂的C的「擴充」——如果C++一開始就起名叫Z語言,你一定不會把C和Z語言聯系得那麼緊密;
29.請不要認為學過XX語言再改學C++會有什麼問題——你只不過又在學一門全新的語言而已;
30.讀完了《Inside The C++ Object Model》以後再來認定自己是不是已經學會了C++;
31.學習編程的秘訣是:編程,編程,再編程;
32.請留意下列書籍:《C++面向對象高效編程(C++ Effective Object-Oriented Software Construction)》《面向對象軟體構造(Object-Oriented Software Construction)》《設計模式(Design Patterns)》《The Art of Computer Programming》;
33.記住:面向對象技術不只是C++專有的;
34.請把書上的程序例子親手輸入到電腦上實踐,即使配套光碟中有源代碼;
35.把在書中看到的有意義的例子擴充;
36.請重視C++中的異常處理技術,並將其切實的運用到自己的程序中;
37.經常回顧自己以前寫過的程序,並嘗試重寫,把自己學到的新知識運用進去;
38.不要漏掉書中任何一個練習題——請全部做完並記錄下解題思路;
39.C++語言和C++的集成開發環境要同時學習和掌握;
40.既然決定了學C++,就請堅持學下去,因為學習程序設計語言的目的是掌握程序設計技術,而程序設計技術是跨語言的;
41.就讓C++語言的各種平台和開發環境去激烈的競爭吧,我們要以學習C++語言本身為主;
42.當你寫C++程序寫到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快將餘下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯誤並重新設計和編寫(參見43);
43.別心急,設計C++的class確實不容易;自己程序中的class和自己的class設計水平是在不斷的編程實踐中完善和發展的;
44.決不要因為程序「很小」就不遵循某些你不熟練的規則——好習慣是培養出來的,而不是一次記住的;
45.每學到一個C++難點的時候,嘗試著對別人講解這個知識點並讓他理解——你能講清楚才說明你真的理解了;
46.記錄下在和別人交流時發現的自己忽視或不理解的知識點;
47.請不斷地對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成Version 100.XX;
48.保存好你寫過的所有的程序——那是你最好的積累之一;
49.請不要做浮躁的人;
50.請熱愛C++!
----------------------------------------------------------------------

補充:
對c++學習的一點感想,希望對初學者能有些幫助

1.如果你以前從來沒有接觸過c++,那麼選擇的第一本c++教程就顯得尤為重要,我認為你可以參照以下的標准進行選擇:

a.對標准c++進行講解,畢竟c++比從前發生了很大的變化。
b.要求全面,但不要很深,這要有助於你對於c++有一個全面的認識,打好基礎,並且易懂的教材還能加快學習的進度,讓自己保持一種成就感。
c.要有完整的範例來講解每一個知識點如何運用,請注意這里所說的完整,並不是一個個代碼片斷。因為由於你以前從未接觸過用c++進行編程,完整的代碼可以使你有一個整體的概念,並且能夠很快去進行大量的實踐,因為變編程是從模仿開始,完整的代碼恰恰告訴你了一個完整的步驟。不必自己去揣測。
d.推薦:《c++ primer plus》

2.當你有了一定的基礎以後,就要選擇一些書來迅速提高自己。這類書的特點是不僅僅教你如何去運用,而且要叫你如何去思考,並且你讀起來也不是那麼輕松。它意味深遠,並不是你讀一遍就能掌握的。
推薦:《thinking in c++》《effective c++》《more effective c++》 《c++ programming language》...《c++ 沉思錄》

3.接下來就是對第二步所介紹的書籍進行反復的閱讀,並且進行實踐。由於這些書一位深遠,每個人基於自己的基礎都會有不同的收獲,例如如果你的基礎還沒有達到某一高度,那麼你就對一些精深的技術視而不見,不信?你可以試試,看看當自己有了一定提高之後再來讀從前的一本書,你會發現許多新的東西。
---------------------------------------------------------------------------
我向你推薦一些C++經典書籍:

c++程序設計教程
c++編程思想
c++大學教程
c++程序設計語言
數據結構演算法與應用c++語言描述
c++標准模板庫------自修教程與參考手冊
泛型編程與STL
深度探索c++對象模型
設計模式---可復用面向對象軟體的基礎
重構---改善既有代碼的設計
Essential c++
Effective c++
More Effctive c++
C++ primer

前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。

其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。

業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%,
我是一名大三的學生,我也正在學習C++這門語言,一年多的時間,學習的感覺真的很累的,希望能和你成為朋友!

我的QQ:261174630

最後祝你在學習編程的道路上走的更好更遠,祝你學有所成!!

Ⅲ 怎樣才能提高編程技術

1. 扎實的基礎。數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握他們,很難寫出高水平的程序。學計算機專業的人比學其他專業的人更能寫出高質量的軟體。程序人人都會寫,但當發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使再精通OOP,遇到一些基本演算法的時候可能也會束手無策。

2. 豐富的想像力。不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。另外,多看科幻電影也是一個很好的途徑。

3. 最簡單的是最好的。這也許是所有科學都遵循的一條准則,如此復雜的質能互換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。

4. 不鑽牛角尖。當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當遇到難題的時候會去玩游戲,而且是那種極暴力的打鬥類游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,會發現那些難題現在竟然可以迎刃而解。

5. 對答案的渴求。人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要堅定信念,一定要找到問題的答案,才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。

6. 多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會有很大的啟發。

7. 良好的編程風格。注意養成良好的習慣,代碼的縮進編排,變數的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使代碼更容易理解,而如果代碼已經清楚地表達了思想,就不必再加註釋了,如果注釋和代碼不一致,那就更加糟糕。

8. 韌性和毅力。這也許是"高手"和一般程序員最大的區別。A good programming is 99% sweat and 1% coffee。高手們並不是天才,他們是在無數個日日夜夜中磨練出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個 10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。

Ⅳ 目前大一,在學C++,編程能力如何快速提高

我認為,大學生在提高自己編程能力的過程當中最好是進行練習,只有練習才能夠獲得一個很好的提高,其實任何的技術都是經過熟練的操作之後才能夠達到目的的,沒有足夠的練習是不能夠熟練操作的,這其實是每一個人都懂得道理。

一、理論知識必須要扎實

其實各位都非常清楚,在學習任何技能的過程當中都是需要學習理論知識的,只有理論知識比較扎實,才能夠繼續去實際練習,沒有理論的支撐是不會有太大的進一步的理論的支撐,其實就是讓每一個人在學習技能的過程當中能夠不斷的進行思考和總結,思考和總結對於快速提升來說是非常關鍵的。

在目前的這個社會當中,其實編程能力是一個學計算機的學生最基本的一個技能,而且學計算機的學生在學習編程的過程當中,必須要進行很多的練習以及基礎理論要很扎實才能夠獲得一個很好的進步。我認為在練習的過程當中還應該去看一些網課,因為網課上的老師所講的內容是更加通俗易懂的,而且能夠更好的進行知識的傳授。

Ⅳ 逆向編程很差,如何快速進步

我也算是學逆向很久的老菜鳥了,當初很是羨慕那些大神級別的操作,總是幻想自己什麼時候能到那種地步,眼高手低好高騖遠……
但是說到快速進步,也不是沒有辦法,就是夯實入門知識點。
正所謂萬事開頭難,不能盲目的去學,更不能分崩離析的去學。
1、知識點方面
逆向設計到的知識點很雜,但是需要精通的沒多少,如果你把時間放在無關緊要的知識點上就無疑會浪費太多的時間,有的知識點需要完全掌握,有的知識點只需要了解即可。
2、老師方面
另外就是老師的原因了,一個好的老師需要具備兩點要素。
一是經驗得豐富,這樣可以節省你很多探索學習的時間。
二是想像力豐富,說到想像力真的是很重要,一個思維的轉換,一個角度的挪移,都會在啥時間解決一些棘手的問題。
3、學習方式方面
一、看書。這個方式推薦有閱讀習慣的人,缺點是內容枯燥,沒有互動,產生的問題只能自己去領悟。
二、網上學習。相對比看書這種方式優點是 圖文並茂,但受老師的影響較大,好的老師會讓你精進很多,技術不到位的老師,會讓你越看越不耐煩。不知所雲!
三、實地培訓,實地培訓就跟你上學的時候差不多了啦,一切按照計劃走,有問題可以隨時跟老師溝通,就是要有足夠的時間完成學業,大概三到六個月吧。

PS:切忌,一定要學好入門的知識點,不然到了以後會越來越茫然!!!入門是最重要的!!!!
希望對你有所幫助!

熱點內容
台式機忘記開機密碼怎麼辦 發布:2025-02-06 11:58:01 瀏覽:868
android刷新按鈕 發布:2025-02-06 11:57:17 瀏覽:585
存儲過程有輸入參數和輸出參數 發布:2025-02-06 11:55:32 瀏覽:96
成績評選演算法 發布:2025-02-06 11:42:51 瀏覽:994
資料庫測試數據 發布:2025-02-06 11:31:05 瀏覽:821
球頭軸編程 發布:2025-02-06 11:29:36 瀏覽:280
為什麼安卓系統不能收縮許可權 發布:2025-02-06 11:27:58 瀏覽:730
演算法4視頻 發布:2025-02-06 11:19:20 瀏覽:934
51內置音效卡需要什麼主機配置 發布:2025-02-06 11:18:33 瀏覽:838
防針刺傷的物品配置有哪些 發布:2025-02-06 11:11:25 瀏覽:670