㈠ 搞編程的我是個演算法渣,怎麼樣能很快的提升演算法水平有什麼必要的或者非常基礎的演算法需要掌握
找任何語言的網友總結的基礎演算法教程,網上有大量,參照代碼從程序的角度去理解(語言是工具,思想是核心,不要告訴我你換了種語言就不懂演算法)
往後有時間再慢慢補一下數學,畢竟演算法基礎還是數理,再慢慢提升演算法思想吧。
我這里說的是邏輯演算法很容易理解,但如果數據結構之類的演算法,就需要一定的數學知識了
其實一般程序員剛工作時都不會涉及非常復雜的演算法的,除非你後期做到主程或核心功能開發吧,否則不同的語言別人寫好的第三方類庫其實也提供了很多演算法的現成方案,懂套用就可以了。
㈡ 目前大一,在學C++,應該怎樣提高自己的編程能力
我本人一直從事C,VC++,VS等方面的軟體開發工作。
基礎,很重要。計算機硬體結構,數據結構,資料庫,編譯原理,C,java語言,軟體工程,操作系統,高數等等。怎樣就算合格?絕不是考試及格就行。我看過很多高校的考試題,即使得一百分,你最多是剛入門的水準。這些是必修。
2,結合理論,做深入的編程研究
這一部分是所謂的實踐。紙上得來終覺淺。計算機的摩爾定律,每五年更新一次。所以,你們老師講的那一套,原理大致對,但現實,已經改變了。
如:CPU,也許你學的是X86的基本,但從Pentium至I5,I7。主板中增加的GPU/VPU,多線程,南北橋等,也許你聽了就暈的各種名詞。
各種IDE軟體安裝,如VS2019,JAVA等。別小看安裝,十有八,九不會做。
軟體開發,做界面UI,各科通訊,文件操作,MFC控制項應用,Process及Thread,定時器,RTOS如何使用等等。
3,進階,學習《設計模式》,架構,演算法,做一個綜合類APP。
推薦學習《設計模式》,可你你進階。架構可學習理論。說實話,讓剛畢業的大學生搞架構,是一個大大的Joke。你很自信,用人單位絕不認可你那一套,沒有實戰,何談架構?
演算法,學校也開相關課程,但僅理論。如此公共化的理論,用人單位還需要你開發么?所以,看明白就行了。
做一個集多線程多頁面UI,演算法,網路通信,基於SQL的數據遠程交換等於一體的APP,我認為你基本就可畢業了。當然,後期可跟老師做一些工程也是可以的,但千萬要與市場結合。
總結:學校以基礎為主,兼顧理論與實踐的結合,注重與當下技術的結合,這是用人單位所真正需要的人才。 好高騖遠,只知道幾個新名詞,永遠也進入不到核心開發層。在用人單位,基礎不行的人的命運,就是直接被開掉,沒人願意給你從頭講起!
看你的問題,你是想提高自己,不想落在所謂大佬們的後面!我給你的建議,既然已經在學c++,那就先把它學好,基礎打牢,基礎包括編程語言基礎,編程能力基礎!編程能力基礎非常重要,在別人看來可能非常無聊,也沒有成就感,新手如何練習,最簡單的方法就是去買本演算法習題集,把裡面基本功打好,學會分析需求,需求再如何轉換成詳細設計,多思想總結,反復練習,出山就是架構師思維,今後做項目,擼起袖子就可以開干,什麼編程語言都是個把兩個星期就熟了!不需要眼紅別人做項目,我覺得你剛開始去做,也是給人打下手,反而不利於你進步,並且這些項目也不見得多有水平,況且帶你做項目的人水平也不見得高!說實話,我見過好些在大學里跟老師做項目的,無非就是多了解了些工具,多見了些平台,還留下了一堆不好的編程習慣!這些項目的含金量不一定比好大學的課程設計高,比如華科自動化的c語言課程設計,難度高,感覺好多不入流的程序員,工作幾了,也不見得能完成!
總之,在學校里,學習技術,多重基礎技術能力,輕業務應用,畢業了能幹啥,也說不準!
我現在大二,二本學校計科專業。我談一談我自己的學習吧。
大學選計算機也是出於一種莫名的吸引,我之前對計算機沒有過任何的了解(除了打 游戲 ),對於專業很大一部分同學來說基礎是比較差的,專業課學習也比較吃力。
然後自己開始零零散散學習Java,先是自己找網課看,然後多練,多練,多練。這真的是唯一的捷徑。有很多東西你可能第一遍看不懂,寫不來。不用管,你就寫三遍,五遍,十遍,二十遍,邊寫邊理解,最後一定不會太差。
我也處於成長的階段,按照這樣的方法,我相信現在的水平和我們學校同年級同專業的相比應該算排在前列的了。加油吧!
你好,一個具有八年編程經驗的工程師來回答你的提問,關於大一學習C++,一些學生在跟著做項目,你怎樣提高自己的編程能力?我將根據自己的 學習和工作經驗 , 在程序語言學習、我自己的編程經歷和對大學生學習編程的建議 三個方面作答:
一、程序語言學習過程
根據我自身的學習經驗,我將編程語言的學習進程 分為 4步 :
1.基礎知識學習
這部分需要根據書本或者老師的講解,理解一種程序設計語言的基 本語法和功能 ,這個階段過去一般能夠讀懂程序的片段 ;
2.看以及修改別人的代碼
經過第一階段後你可以讀懂基本的語法,想要進步快就直接看別人寫的程序,雖然這一步很枯燥,但是 成長必須經歷 的,在理解別人的代碼基礎上進行修改,查看修改後的運行狀態,這一步能夠讓你從會讀代碼片段到會 思考程序的設計 ;
3.獨立進行程序設計
找一些功能需求,哪怕是一個小項目或者課程實驗,盡量獨立完成!遇到不會的要自己思考,實在解決不了再去查資料解決,這一步能夠讓 你真正會編程序;
4.自己主動設計架構和需求
到了這一步你能真正的理解,程序語言只是一個工具,真正難的在於項目,而非語言的限制,去學習 軟體架構的設計 吧,尋求如何更好的把軟體做的更漂亮。
二、自身的學習經驗
我自己在大一的時候只是學習了C語言,甚至計算機二級都是考了兩次才過,當時最大的問題在於 語言的學習只在課本之中 ,沒有現實的需求,到了大二以後,逐漸做了各種比賽和課程實驗,慢慢對語言有了更深刻的認識,到了大四後就可以脫離課本獨自設計軟體程序了,但這離工作後公司的項目需求還差的很遠,我們經常說的一句話叫做, 軟體寫出來很容易,寫好卻是很難的一件事 。
三、對大學生編程的建議
1.興趣是一切學習的推動力,要培養自己編程的興趣,真正的是 為了喜歡而做事對一輩子都是受益的 ;
2.書本知識一定要學好, 打好基礎 ,是一切的前提;
3.不局限於書本,打好基礎後一定要 多練習 ,既然語言是工具,那麼用的越多你就越熟悉它;
4.養成 歸納和總結思考的習慣 ,定期歸納總結自己的知識和技能,我相信這個習慣可以堅持一輩子。
最後,針對你的問題,大一剛開始,先不要著急做項目, 一定先打好基礎 ,記住 多看、多學、多問、多練習 ,但這不是安逸的理由,基礎打好以後,立即爭取機會,向其他同學那樣加 入項目團隊,多參加比賽 ,爭取所有能夠鍛煉你的機會!在現實的世界裡大展你的所學,祝你學有所成!
以上是我的個人經歷和經驗總結,希望對你有幫助!
作為一個大一的學生,其實不用過於著急,只要你規劃好你大學四年的一個學習提高計劃,未來你也就是大佬。
提高編程技術的唯一辦法就是實踐我們不管是看過再多的書,分析了再多的源代碼,你不去自己寫一下代碼,很難知道其中實現的一些原理,為什麼這樣實現?相比其他實現方式有什麼好處?
所以,「實踐是檢驗真理的唯一標准」這句話到哪裡都很適用。
雖然我們說需要實踐,但是怎麼實踐?可能對於大一的同學來說,這個也是一個搞不清答案的問題。所以,我們需要整理一個粗略的學習計劃,按照這個計劃,我們一步一步來豐滿自己的學習內容。
學習計劃
學習計劃的話,我只能簡單分享一下我的一些想法。
首先,我們大學的課程還是要學好的。可能有人會覺得,大學學的東西在未來的工作中不一定會用得到,還不如多學一些實際應用的知識。
我可以很負責任的告訴你,這種想法是錯誤的。大學學習的所有東西都是基礎,而基礎一定是很枯燥的。但是,在經濟學中我們學到過:經濟基礎決定上層建築,計算機的基礎也是一樣的。你未來成就的高低,很多就在於你的基礎是否扎實。所以,珍惜大學這段能否全心全意且無憂無慮學習的時光吧。
在大一的時候, 除了基礎的學習以外,自然我們還是要更多的豐富自己,畢竟單靠基礎什麼也做不了。所以,大一的時候,我們就在編程的基礎知識上也下點功夫,學習一下語法、資料庫、簡單的架構和演算法。
邊學習的過程中,可以邊通過實踐來練習自己的能力。我曾經在大學的時候做過兩個練習,也可以分享給同學們(不知道會不會過時)。
一個是計算器,別看計算器的功能很簡單,但是裡面能夠玩出很多的花樣,可能最開始你需要幾百行的代碼才能夠做出來,隨著你知識的積累,可能最後幾十行代碼就實現了。標準的計算器實現以後,就可以考慮提升難度,做做支持科學計數法的計算器。當然,如果你想挑戰自己,還可以將科學計數法中的演算法自己來實現。
第二個就是音樂播放器了,這個就不多說了,當然,做播放器的話,可以去找一些開源的插件,不必什麼都從頭開始,最終只是實現播放功能而已(我大學時候也做過一個)。
「力扣」也是一個不錯的網站,這裡面有很多練習題,可以在這里鍛煉自己的代碼能力。
到了大二, 自然就不能只是單純的謝謝代碼了,我們要從設計模式、架構、通訊協議等各個方面來優化自己,其中就還需要學習使用各種類型的中間件。而這些方面的知識點其實是非常多的,很多東西沒有放到實際的環境中,其實很難能夠體會到原理。所以,我們還是先學習理論,啃書的同時,可以自己假設一些環境,來做做練習。
雖然自己假設的內容可能和實際差距非常遠,這個沒有關系,錯了再改正,其實印象會更加深刻。
這個時間,可以多看看別人的代碼,開源社區裡面有很多可以學習的內容。例如:你看到了領域驅動設計,光看書的話,估計真的是雲里霧里的。這時候就去找別人寫的代碼來看看,一句一句的Debug理解,再回來看書的時候,你就50%以上都能夠懂了。
當然,學到合適的時候,就可以考慮學以致用了,找找兼職,不求賺錢(但也別白做,雖然你是學生,但付出勞動得到回報不可恥),但求練習自己的能力。
到了大三, 其實大二的那些內容可能很多你並沒有完成,沒有關系,很多的知識直到你工作多少年以後,可能都還在繼續學習。我們沒有完成,但是依舊可以進行下一步了,就是定目標。經過大一大二的這些練習,在開源社區的活躍,你未來想從事哪個方向的編程就需要定一下了,因為各個領域所需要的知識點是不同的。
如果你要做電商,那就了解一下電商領域的各種知識,什麼是電子商務,什麼是供應鏈。如果你對行業內的應用程序感興趣,那可以了解一下財務相關知識,管理相關知識。
然後就是,大三可以說是你全心學習的最後一個階段,可以考慮為未來做些打算,參加軟考拿點證書等等。
大四了 ,就沒有什麼好再說的了,路都在自己的腳下,怎麼走出輝煌也就看自己了。
大一主要是提高語言編程能力,除此之外,還需要學習數據結構與演算法,資料庫,計算機網路,操作系統。所以現在也不要急於求成,你需要學習的還有很多。現在大一能做項目的,要不就是實力確實很強,要不就是寫寫項目中的一些基礎代碼。提高自己的編程能力的方法就是coding coding coding!
1 leetcode或者牛客等刷題平台刷題編程學習沒有捷徑可走,唯一有效的方法就是不停的寫代碼,編譯器寫代碼,記事本寫代碼,手機寫代碼,草稿紙寫代碼,只要有想法就寫出來,然後等有編譯器環境了不停的調試,只要經過反復IDE調試練習,才能提高自己的編程能力。語法只有不斷的使用才能更加熟練。
2參加比賽如:ACM比賽,CCF,中國高校計算機大賽。這些比賽是高校等計算機組織和機構舉辦的比賽。計算機類競賽有著非常多的優勢,比如有機會進國家隊或者取得不錯的加分和保送資格。而且對於理工科學生大都需要極端就編程能力,信息類學科的競賽更是離不開編程能力。學習編程對培養邏輯思維很有效,對其它學科也很有幫助。
3 項目,跟實驗室老闆做一些項目。別管自己能力有多菜,只要有機會就一定要抓住。因為作為計算機專業學生,以後無論保研復試,還是找工作都離不開編程能力的考察,所以有一些項目,不僅可以豐富自己的簡歷,更重要的是能夠提升自己的編程能力。
4 參加互聯網公司的比賽,比如華為軟體大賽,中興軟體精英挑戰賽,阿里天池比賽。只有參加比賽才知道自己水多深,如何提高自己的代碼能力才是王道。互聯網公司的實戰比賽跟上面的大學生計算機能力比賽有些區別,這里更貼合實際問題,用一些互聯網項目的實際問題,考察學生的代碼編程能力。
實驗室一同學,參加了阿里的天池比賽,並取得了不錯的成績,其實這個同學跟大牛組隊,算是抱住了大腿。後來在找工作的時候,公司因為這個同學簡歷上的這個比賽獎項,給了這個同學SP offer,比正常價多出快10萬的年薪。你說他香不香?
總結:作為計算機專業的學生,一定要練好總結的拿手絕活-編程能力。無論找工作還是保研,只有出色的代碼能力才能贏得別人的肯定,而提高編程能力的方法就是不停的動手寫代碼。
既然你是計算機專業,目光就要放遠點,不要著急別人在做什麼。編程是最基本的工具,本身是不難的,職業學校也有軟體編程專業。對於計算機專業學生,未來職業願景,一是核心演算法設計師,二是軟體架構設計師,這兩個職位如果沒有良好的專業背景是不能很好勝任的。所以本科階段要努力打好專業基礎和專業核心課程。專業基礎包括離散數學、數據結構、人工智慧基礎等。專業核心包括計算機組成原理、操作系統、編譯原理、機器學習等。編程實踐在這些課里都有機會,甚至對自己編程能力的提升不亞於去做一個具體的項目,當然有機會去做項目更好,沒有也沒關系。還有軟體工程課程也很重要,要做軟體架構師,這門課程也很重要。另外,高層次軟體從業者必須具備較強的邏輯思維能力和數學功底,比如現在最熱的機器學習演算法設計,必須具有良好的線性代數、概率與數理統計、高等數學等數學基礎。大學四年最重要的是打牢基礎!
作為一名計算機專業的科研教育工作者,我來回答一下這個問題。
對於大一的同學來說,要想提升自身的編程能力應該首先從夯實基礎開始,編程能力的提升需要一個系統的過程,這個過程要系統學習包括數據結構、演算法設計、操作系統、資料庫、計算機網路等相關知識,而這些課程作為計算機專業的核心課程,後續都會陸續接觸到。
大一期間學習編程要重視三件事,其一是重視編程語法的學習,理解編程語法當中的抽象概念,比如C++語言就是一個典型的面向對象編程語言,自身的抽象程度還是非常高的,所以理解這些抽象概念是第一步。要想理解這些抽象概念一定要有大量的輸入,也就是要閱讀大量的學習資料和開發案例代碼,同時完成自己的總結歸納,從而形成自己的編程思想。
其二是重視實驗,學習編程語言一定要邊用邊學,實驗對於學習編程語言的促進作用是非常明顯的,通過實驗也能夠為眾多抽象概念建立起畫面感。在進行實驗的過程中,既要重視實驗的數量,同時也要重視實驗的質量,實驗要有層次,要重視綜合性實驗,這對提升編程能力還是比較重要的。
其三是重視交流和實踐,對於大一的同學來說,除了課堂學習時間之外,要想為自己營造更多的交流和實踐機會,可以通常積極參加專業比賽,或者是參加老師的課題組來實現。按照 歷史 經驗來看,參加專業比賽對於提升編程能力的幫助作用還是比較明顯的,也能夠開闊自身的視野。
如果有互聯網、大數據、人工智慧等方面的問題,或者是考研方面的問題,都可以私信我!
對於編程的能力提升,需要有扎實的基礎,編程語言的理論知識和編程的熟練度是否已經非常的熟悉,如果說編程語言還不是太熟悉,那麼建議把理論知識再去學習一下,多動手做一些編程的實驗,寫一些小功能的代碼來提高自己的代碼水平熟練度
如果說對代碼的理論知識非常了解,對於寫代碼的熟練度也很高,那麼快速提升編程能力的方法,就是在項目的實戰中提升自己,在一個項目中可以了解到構建一個項目的完整流程,包括最初的架構設計,功能的代碼實現,代碼的優化調試,單元測試,性能測試,覆蓋測試等等。可以在互聯網公司實習一段時間看看開發的流程,編寫一些系統功能優化的代碼,或者直接去github上面尋找優秀的開源代碼,可以做一些優化的修改,功能的添加等等,這些都可以提高自己的編程能力
你好,我是一名軟體工程師,也是編程的培訓講師,這里給你分享一些經驗,希望可以幫助到你。
首先,看到別人做項目了,自己不要急,最好還是把理論理解清楚。
其次,理論基本理解的基礎上,可以在網上尋找幾個相關的案例代碼進行分析,閱讀別人的代碼。
最後,通過外包也好,老師介紹也好,積極參與實踐,前面不要想著賺多少錢,學點經驗才是王道。記得,幾年前在西華師范大學職教的時候,一位領導說找幾個學生把繫上的網站重新修改一下,給學生拿點補貼,居然有學生嫌補貼太少不願意做。
㈢ 目前大一,在學C++,應該如何提高自己的編程能力呢
對於大一的同學來說,要想提升自身的編程能力應該首先從high實基礎開始,編程能力的提升需要一個系統的過程,這個過程要系統學習包括數據結構、演算法設計、操作系統、資料庫、計算機網路等相關知識,而這些課程作為計算機專業的核心課程,後續都會陸續接觸到。
其三是重視交流和實踐,對於大一的同學來說,除了課堂學習時間之外,要想為自己營造更多的交流和實踐機會,可以通常積極參加專業比賽,或者是參加老師的課題組來實現。按照歷史經驗來看,參加專業比賽對於提升編程能力的幫助作用還是比較明顯的,也能夠開闊自身的視野。我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智慧領域,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
㈣ 如何提高編程的思維邏輯能力
想提高編程的思維能力就要把握好編程思維的這四點:
把握好「理解問題——找出路徑」的高效思維過程,它由「分解—抽象—模式識別—演算法」這四個步驟。
1、分解,簡單來說,就是「把復雜的大問題,拆解成更可執行、更好理解的小步驟」,它能鍛煉我們拆解復雜問題的能力。
2、「抽象思維」能力,它能鍛煉我們聚焦重點,忽略無用信息,並抽取關鍵信息的能力。
3、模式識別,就是「如何找出相似的模式,並高效率解決細分問題」,它能極大鍛煉我們規律整合的能力。
4、演算法,就是根據之前一系列對於問題的理解,設計一步一步的解決路徑,並解決整個問題。
反復訓練提升這 4 項重要的思維模式,建立一種真正「抗打」的認知思維和學習能力,酒客快速提高了!
㈤ 如何提升自己的java編程能力
1. 扎實的基礎。數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握他們,很難寫出高水平的程序。據我的觀察,學計算機專業的人比學其他專業的人更能寫出高質量的軟體。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。
2. 豐富的想像力。不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉及其他的學科,比如天文、物理、數學等等。
3. 最簡單的是最好的。這也許是所有科學都遵循的一條准則,如此復雜的質能互換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。
4. 不鑽牛角尖。當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩游戲,而且是那種極暴力的打鬥類游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。
5. 對答案的渴求。人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。
6. 多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多和同事或從事這行的朋友同學交流,看看別人對同一問題的看法,會給你很大的啟發。
7. 良好的編程風格。注意養成良好的習慣,代碼的縮進編排,變數的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加註釋了,如果注釋和代碼不一致,那就更加糟糕。
8. 韌性和毅力。這也許是"高手"和一般程序員最大的區別。A good programming is 99% sweat and 1% coffee。高手們並不是天才,他們是在無數個日日夜夜中磨練出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。所以抄寫也是一種加強記憶的良好方法!
㈥ 濡備綍闈犺嚜瀛︽彁鍗囪嚜宸辯殑緙栫▼鑳藉姏錛
鍦ㄥ綋浠婁俊鎮鎶鏈楂橀熷彂灞曠殑鏃朵唬錛岀紪紼嬫垚涓轟簡璁稿氫漢鎵榪芥眰鐨勬妧鑳戒箣涓銆傜劧鑰岋紝鎴愪負涓鍚嶅嚭鑹茬殑紼嬪簭鍛樺苟涓嶆槸鏄撲簨錛岄渶瑕佷笉鏂瀛︿範銆佸疄璺靛拰鎺㈢儲銆傞偅涔堝備綍闈犺嚜瀛︽彁鍗囪嚜宸辯殑緙栫▼鑳藉姏錛熸帴涓嬫潵鎴戜滑灝辨潵鍏蜂綋浜嗚В涓涓嬪惂銆
涓浜虹粡楠岋細閫氳繃鑷瀛︽彁鍗囪嚜宸辯殑緙栫▼鑳藉姏闇瑕佷粯鍑哄ぇ閲忕殑鏃墮棿鍜岀簿鍔涳紝榪橀渶瑕佸叿澶囪嚜寰嬪拰鑰愬績銆備絾鏄錛屾垚涓轟竴鍚嶅嚭鑹茬殑紼嬪簭鍛樺彲浠ヤ負鑷宸卞壋閫犳洿澶氱殑鏈轟細鍜屽彂灞曠┖闂達紝涔熷彲浠ヤ負紺句細鍒涢犳洿澶氱殑浠峰煎拰璐$尞銆傚洜姝わ紝鎴戜滑闇瑕佷笉鏂瀛︿範鍜屽疄璺碉紝榪芥眰鍗撹秺錛屾垚涓轟竴鍚嶄紭縐鐨勭紪紼嬮珮鎵嬨