114培訓(xùn)網(wǎng)歡迎您來到少兒編程培訓(xùn)中心!

400-850-8622

全國統(tǒng)一學(xué)習(xí)專線 9:00-21:00

近年來關(guān)注在線練習(xí)編程的用戶越來越多,小編整理了關(guān)于為什么有的人學(xué)了那么久編程還是只會寫“Hello World”?,哪些比較好的在線編程網(wǎng)站?,在線求一個能在線練習(xí)java編程的網(wǎng)站,該網(wǎng)站能提供題目并判斷代碼是否正確的,如何學(xué)習(xí)編程,練習(xí)編程,打怪升級,在線練習(xí)編程、學(xué)算法的神器!??,供您參考

1.為什么有的人學(xué)了那么久編程還是只會寫“Hello World”?

二胖前幾天在公眾號后臺收到了一個讀者的留言,他有很多很多學(xué)習(xí)資料,但就是不知道學(xué)什么、也不知道該從何學(xué)起,學(xué)了很久還只會寫個Hello World。根據(jù)我的經(jīng)驗,除了這個問題,很多同學(xué)應(yīng)該還會遇到如下問題:為什么有的人學(xué)了很久很久編程,還是只會寫一些簡單的算法題?學(xué)了幾個月編程,還沒有寫出超過100行的小項目。好不容易看完了一本書,合上卻發(fā)現(xiàn)前面的內(nèi)容全忘了。我相信,很多學(xué)習(xí)編程的同學(xué)都想切實地做出一個項目,比如可以真正被使用的軟件。可是很多人搞來搞去,永遠(yuǎn)都只會寫控制臺程序,不是動態(tài)規(guī)劃就是貪心。以上現(xiàn)象你中招了嗎?不要怕,你不是一個人,我剛學(xué)編程那會兒也是這樣的。不僅是我,我相信還有很多同學(xué)是這樣,那到底是什么隱形的力量在阻止我們學(xué)會編程呢?我總結(jié)了以下幾個原因,如果你中招了,可以考慮參考一下解決方案哦。先問大家一個問題,學(xué)習(xí)編程的你有沒有刷過OJ(OJ指在線編程練習(xí))。我相信大部分人都有過刷題的經(jīng)歷或是現(xiàn)在正想開始刷題。我曾經(jīng)也是,一閑下來就迫不及待地打開一些刷題網(wǎng)站不停刷題,今天刷動態(tài)規(guī)劃,明天刷最短路......為了AC一道題,我曾一天都忘了吃飯。直到有一天,我突然發(fā)現(xiàn)了一個問題——我究竟為什么要刷題?不知道各位刷題是為了什么。提升編程能力?如果是這樣,那么問題來了...... 刷題真能提升編程能力嗎?如果能。那么問題又來了......什么是編程能力?你可能又會說:“會刷題!”噢!恍然大悟,原來刷題是為了提升編程能力,編程能力提升以后刷題就更容易了......這好像是個無解的問題 ......不知道各位有什么高見沒有,如果有,請務(wù)必留言告訴我,謝謝!集思廣益嘛。昨天有個讀者在公眾號后臺問我刷題的事情,我想她(沒錯,是個妹子)可能遇見了我當(dāng)年遇到過的問題——每日一題。她還問我是否需要多做題,好像她也不知道為什么要刷題,但是就是每日一題......好了,我來講下我對刷題的理解吧。我先講一個我和ACM的故事。首先解釋一下什么是ACM,ACM的英文全稱是 Contest,簡單來說就是一個*生程序設(shè)計競賽。計算機和軟件的同學(xué)肯定知道這個競賽,也有很多人參與。由于我是被調(diào)劑到計算機專業(yè)的,所以在*前對計算機的相關(guān)行業(yè)并不是特別了解。在我懵懵懂懂地入學(xué)時,學(xué)校有各種課外社團(tuán)宣講招新,其中有個社團(tuán)就是由ACM愛好者組成的。聽完那場宣講會我只有一個感覺:牛逼的人都參加ACM。對,我并不是因為愛好,只是覺得參加了ACM就比別人懂得多。這種心理就和高中參加課外補課班的感覺一樣,有種私下里偷學(xué)了很多知識,看誰都是傻逼的感覺。所以我報名參加了ACM,可能是因為我大一的時候編碼能力太弱,沒入選,也就和ACM失之交臂。我并不是因為當(dāng)初沒被選上參加ACM而“懷恨在心”,才在這里吐槽。我并不是吐槽ACM不好,其實參加ACM對提升思維能力是很有好處的。我想吐槽的是很多人無理由地參加ACM——從眾心理。很多人生怕別人參與了ACM就比自己學(xué)得多,所以別人做什么他就要做什么,就像人人都說機器學(xué)習(xí)牛逼,你就跟著去學(xué),結(jié)果什么都學(xué)不好。學(xué)習(xí)任何一個技能,要么是因為愛好,能從中獲得快感,要么能提升自己。學(xué)編程,刷題一定是要的,但一定不是盲目地刷。*遍刷題是將你學(xué)習(xí)的算法和數(shù)據(jù)結(jié)構(gòu)理論變成實踐,強化知識。刷題有助于我們將抽象的算法轉(zhuǎn)化為具象的代碼實現(xiàn),讓我們明白其中的原理。比如你用C++、Java或是Python把9大算法都實現(xiàn)一遍以后,你就知道其中的原理,之后就沒必要再繼續(xù)刷同類型的題了。我們需要培養(yǎng)自己的技術(shù)選型能力、方案選擇能力,具體是指:當(dāng)遇到實際業(yè)務(wù)和需求的時候,你需要知道在什么場景下使用什么樣的數(shù)據(jù)結(jié)構(gòu)和算法,然后通過查詢或調(diào)庫使用這些算法。技術(shù)是服務(wù)于業(yè)務(wù)的,編程是為了解決問題。當(dāng)然,以上言論都是我自己的理解,你可以有不同的看法,但是我不接受反駁。第二遍刷題是在你找工作面試的時候?qū)⒏鞣N算法寫給面試官看。為找工作刷題無可厚非。就像高考一樣,我們需要一套選拔的機制,面試中手寫代碼的過程就能直接體現(xiàn)一個人的代碼能力。為了拿到一個好的offer,你必須刷題,關(guān)于刷題的事情我也在我之前找工作的系列文章中提到過,感興趣的同學(xué)可以自行查看,此處就不過多套路。以上兩點就是我自己“刷題”方式,我*時就在這兩個時期全身心地投入刷題,其他時間我就做其他的事情了,做什么事情呢?后文我們繼續(xù)聊??偨Y(jié)一下就是,不管是編程還是任何其他*的學(xué)習(xí),我們一定要明白自己學(xué)習(xí)的意義,如果僅僅是因為從眾,而根本不知道自己為什么要做這件事情,那么還是先搞清楚自己為什么要做,否則很多時候都是在做無用功。死磕原理指的是什么?舉個簡單的例子。大家要是學(xué)過樹或圖的遍歷算法,肯定知道最基本的兩個遍歷方式:DFS和BFS(這里有北外的同學(xué)嗎?)其實就是深度優(yōu)先遍歷和廣度優(yōu)先遍歷。不明白沒關(guān)系,我先簡單解釋下。就拿最簡單的二叉樹舉例,下面是一個二叉樹。如果要從A點出發(fā)遍歷完所有的點。深度優(yōu)先遍歷就是“不撞南墻不回頭”,從A點一直往下走到盡頭才往回走,在發(fā)現(xiàn)新路后又繼續(xù)往下走,所以遍歷順序是:A-B-D-E-C-F-G。寬度優(yōu)先遍歷就是“先走完上一層再走下一層”,所以遍歷順序是:A-B-C-D-E-F-G。那么問題來了,死磕原理和二叉樹遍歷有毛關(guān)系?不瞞您說嘞,關(guān)系大著呢...我們把二叉樹比喻成一個知識體系。*層A代表了你所學(xué)的所有的專業(yè)知識。第二層代表*本科階段的各個科目,比如B有可能是Python課程,C有可能是算法和數(shù)據(jù)結(jié)構(gòu),當(dāng)然還有很多其他的科目,如高數(shù),英語等,我就不一一列舉了。試問大家一個問題,如果掛了幾科第二層的課程,能畢業(yè)嗎?好像是不能畢業(yè)的。那現(xiàn)在假設(shè)某個同學(xué)第二層的課程全部通過得以順利畢業(yè),他將進(jìn)入到研究生階段。這時候他會選擇一個“方向”繼續(xù)“深造”。請注意上面加粗的詞語。本科生階段是面向于“面”的教育,就是啥都教給大家;研究生階段是面向“點”的教育,是建立在本科階段對自己專業(yè)的整個體系有了初步了解后做出的選擇,他可能會選擇自己感興趣的方向繼續(xù)學(xué)習(xí)。所以,如果他選了B方向,那么他將繼續(xù)攻克D和E。和學(xué)習(xí)編程一樣,第二層就像是你肯定要學(xué)習(xí)的編程語言、算法、數(shù)據(jù)結(jié)構(gòu)等*,學(xué)好它們才能寫出一個靠譜的程序。再往后的第三層,是你可能在研究生階段主攻的機器學(xué)習(xí)、人工智能等知識,或是架構(gòu)方向、圖像處理等方向?!彼揽脑怼暗亩x漸漸清晰了:我們不要一個胡同走到黑,初學(xué)編程的時候,一定要多多了解各個*之間的聯(lián)系。人的精力是有限的,如果你一直在一門課上搞啊搞的,缺點有三:你很可能很久都寫不出來一個像樣的程序,自信心受到打擊;你可能會做很多無用功。一些*需要其他*的知識做鋪墊,而僅僅在一門課中閉門造車會浪費大量的時間;你可能會陷入造輪子的境地。那到底有什么好的方法可以學(xué)習(xí)編程嗎?有的!還是舉個例子,我們學(xué)數(shù)據(jù)結(jié)構(gòu)的時候不是有很多已經(jīng)封裝好了的數(shù)據(jù)結(jié)構(gòu)嗎?比如C++中的Vector,Python中的dict、list等,你們有看過它們是怎么實現(xiàn)的嗎?如果你看過Vector的實現(xiàn)方式,你肯定會感嘆它的動態(tài)擴展內(nèi)存有多么巧妙。你自己能把這個數(shù)據(jù)結(jié)構(gòu)寫出來嗎?注意,上面加粗的字,正是很多人編程學(xué)得慢的重要原因之一。什么知識都要強調(diào)自己能寫出來。我剛學(xué)數(shù)據(jù)結(jié)構(gòu)那會兒也是這樣想的,當(dāng)時我在心中定下一個宏大的目標(biāo),要自己實現(xiàn)課本上所有的數(shù)據(jù)結(jié)構(gòu)。所以我花了很長時間去寫一些現(xiàn)有的數(shù)據(jù)結(jié)構(gòu),也成功地寫出了一些,如平衡二叉樹、紅黑樹......可真的花費了我很多時間......我又陷入了沉思......可以直接用的東西,我為什么要去寫呢?初學(xué)的時候,我建議大家還是面向“面”去學(xué)習(xí),我們可以了解某個數(shù)據(jù)結(jié)構(gòu)的內(nèi)部原理,但先不要嘗試自己去實現(xiàn)。遇到一個場景,我們知道選擇什么樣的數(shù)據(jù)結(jié)構(gòu)去使用就好。然后學(xué)完原理之后,大家就可以學(xué)一些算法和一些小的框架了。不瞞您說,如果只是一味地學(xué)習(xí)編程語言語法和刷題是學(xué)不會編程的。一定要去看一些框架、做一個項目,然后運用你現(xiàn)在學(xué)習(xí)的這些知識,把它們?nèi)诤掀饋?。在實踐的過程中你會發(fā)現(xiàn)自己還欠缺很多其他的知識,這時你再去有針對性地學(xué)習(xí),知識轉(zhuǎn)化率才高。這個項目可以是一個Web,一個App,或者一個爬蟲系統(tǒng)。為了讓大家更理解,我舉個自己的例子吧,下文圖片有點多,但請大家耐心看完。當(dāng)時本科畢設(shè),女朋友的老師希望她做一個與高考志愿填報相關(guān)的調(diào)研。但是她無從下手,這種情況只有我上了。我的想法是用最直接的方式去展現(xiàn)高校錄取的變化規(guī)律,可以做一個展示高考錄取情況的數(shù)據(jù)分析網(wǎng)站,絕對亮瞎老師們的鈦合金......好像不對,絕對讓老師們目瞪口呆。然后我用兩周時間搞出了下面這個網(wǎng)站,是邊學(xué)邊搞的,不知道的東西就查。Web主頁:數(shù)據(jù)查詢功能:數(shù)據(jù)可視化與對比功能:這個項目運用到了哪些知識呢?爬蟲,我抓了上千萬條數(shù)據(jù),項目完成后我的爬蟲技術(shù)提高了很多。數(shù)據(jù)分析能力,為了進(jìn)行數(shù)據(jù)可視化,我又學(xué)習(xí)了echarts的使用。Web知識,可以通過PHP搞出一個網(wǎng)站。前端編碼能力,雖然我搞的網(wǎng)站有點丑,不過好歹在過程中理解了前端工程師的一些工作。數(shù)據(jù)庫,對數(shù)據(jù)庫的使用更加熟悉。同時,我知道了自己的不足之處,在做項目的過程中快速迭代,不斷更新自己的知識,得以進(jìn)步飛速。如果你永遠(yuǎn)刷題刷題刷題,估計等畢業(yè)了也還是只會刷題刷題刷題?!耙豢诔猿梢粋€胖子”的貪婪心理也是一個阻礙大家學(xué)習(xí)編程的絆腳石。還是舉個例子:我們學(xué)習(xí)一個框架或者學(xué)著做一個項目的時候,可能文檔或課程說明上會寫“學(xué)習(xí)本課程之前需要先會Java、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、操作系統(tǒng)等知識”。但你肯定不是全會啊,怎么辦?立馬放下這個項目去學(xué)習(xí)上述課程?這就是典型的“一口吃成一個胖子”的表現(xiàn)。我們做項目的時候不要怕自己這不會,那也不會。不會先上谷歌百度查一下,或者先直接參考別人的代碼,然后自己把問題記下來,后面再去深究。當(dāng)你成功做出*個項目后,你就會大受鼓舞,再去做第二個、第三個,然后就起飛了。萬事開頭難。一定要采取項目驅(qū)動式的學(xué)習(xí)方法,不管是編程還是其他科目,我們除了系統(tǒng)學(xué)習(xí),還一定要建立一條“發(fā)現(xiàn)問題,解決問題”的學(xué)習(xí)路徑。一開始做項目,不用自己去做,先找個別人的項目來看。如果找不到項目,出門右拐github。順便給大家推薦一篇我的知乎萬贊文章:這可能是我見過*的編程指南了!看完你會回來給我點贊的。以上~本文首發(fā)于專欄同名微信公眾號:逆襲的二胖。

2.哪些比較好的在線編程網(wǎng)站?

收到一封來自知友@蔡興煒 的私信,推薦一些在線編程測試的網(wǎng)站。于是就加個班好好寫一篇這樣的推薦,希望可以幫助到你,同時可以幫助到各位有需要的朋友。開始前先說一下:雖然會寫這篇推薦,但是仍然不希望大家平時用在線編程的網(wǎng)站?,F(xiàn)在在本地搭建一下編程環(huán)境都是很快的,搭建好本地環(huán)境也會更容易促進(jìn)學(xué)習(xí)編程。寫這篇文章的意義在于,或者說使用在線編程的網(wǎng)站的原因在于:(1)、一臺臨時電腦需要簡單測試一段代碼(2)、 網(wǎng)頁編寫代碼可以實時地看到效果(3)、煩了、膩了本地的編碼(4)、可以實時分享代碼 (5)、有的在線編程的編程語言網(wǎng)站都支持多種語言的編譯或解釋,具有較強的集成性 針對第三點,如果本地編碼沒有激情,是不是編輯器不好、顏色不好看、字體不好看呢,可以換一換好看的呀(專欄的一下四篇文章希望可以幫助到大家呢):關(guān)于編輯器(IDE):10個常用的代碼文本編輯器/IDE - 學(xué)習(xí)編程 - 知乎專欄關(guān)于字體: 更舒服的寫代碼[字體篇] - 學(xué)習(xí)編程 - 知乎專欄關(guān)于配色方案:代碼編輯器的配色方案 - 學(xué)習(xí)編程 - 知乎專欄關(guān)于插件:代碼編輯器的插件推薦 - 學(xué)習(xí)編程 - 知乎專欄更多功能用途大家取發(fā)掘吧,以下開始做一些推薦,歡迎評論補充、私信提問(說不定會寫文章的,這不就是活生生的例子嘛)( Text/Python/Ruby/Scheme/Tcl,寫完代碼提交之后會生成一個獨特的鏈接,你可以通過這個獨特的鏈接把這段代碼機器效果發(fā)給你的朋友團(tuán)隊等。有一點需要強調(diào)的是此網(wǎng)站不支持標(biāo)準(zhǔn)的輸入。( 、海量資源都可以幫助你提高自己的編程能力。( 理念來簡化開發(fā)人員的工作,Prefix-free就是開發(fā)者勿需寫CSS 前綴,由軟件來自動完成。你還可以將你的代碼保存到Github上和朋友或別人來分享你的作品。當(dāng)下該工具只支持Google Chrome,Safari和Firefox,但很明顯你很少用別的瀏覽器對吧?( 選擇右上角的閃電編程就可以進(jìn)入在線編程模式,此網(wǎng)站支持C#、C、C++、Clojure、Java、Go、Plain 、PHP、Python、VB.NET、Bash、Objective-C、MySQL、HTMLCSS,同時該網(wǎng)站包含大量的學(xué)習(xí)資源、學(xué)習(xí)路徑等等內(nèi)容。( 此網(wǎng)站支持PHP、Python、C#、F#、Java、shell、C、C++、nasm、Go、Lua、Perl、Ruby、Nodejs、Objective-C、Swift、Erlang、Rust、R、Scala、Haskell、D、Clojure、Groovy、Lisp、ocaml、、Racket、Nim等多種語言,與前面網(wǎng)站相比,此網(wǎng)站所持語言更加全面豐富。此網(wǎng)站可以滿足大部分編程的需求。(.com)(w3school.com.cn)(shiyanlou.com/)以上三個網(wǎng)站都支持在學(xué)習(xí)的同時有相應(yīng)的在線編程,你也可以直接用來做在線編程測試使用 并沒有提供傳統(tǒng)的編程教學(xué)視頻,也沒有任何“老師”進(jìn)行教學(xué),而是精心地將原本復(fù)雜的課程拆解成一個個非常簡單的小節(jié),通過各種提示來引導(dǎo)用戶學(xué)習(xí),譬如教會用戶怎樣計算出自己的名字的字?jǐn)?shù)長度。用戶在命令行中輸入正確的代碼,提交保存,即可以一關(guān)一關(guān)地完成整個學(xué)習(xí)過程。而且,由于是分段式的學(xué)習(xí),用戶可以很快地拿起學(xué)習(xí)然后放下,整個學(xué)習(xí)過程不會有太大的時間壓力( 在文末推薦一個與編程無關(guān)的網(wǎng)站給大家玩一玩,如果編程累了的時候,無聊發(fā)呆的時候可以點開玩一玩,放松一下心情:

3.在線求一個能在線練習(xí)java編程的網(wǎng)站,該網(wǎng)站能提供題目并判斷代碼是否正確的

木有這么方便的東西…… 如果你要練習(xí)前臺的話,W3CSchool倒是有相應(yīng)的功能,你寫了馬上就可以看到效果

4.如何學(xué)習(xí)編程,練習(xí)編程

編程是從你興趣開始, 現(xiàn)在興趣決定方向,有了方向在決定語言。你也百度一下, 80x86匯編小站, 看看 站長寫的下面這幾篇文章, 或者 你直接聯(lián)系 這個站長 跟他交流編程方面的事情。編程是什么,什么是編程?如何正確入門Windows系統(tǒng)下C/C++學(xué)習(xí)領(lǐng)域?掌握C/C++后,如何在Windows系統(tǒng)下開發(fā)有界面的程序?如何正確入門Windows系統(tǒng)下驅(qū)動開發(fā)領(lǐng)域?如何正確進(jìn)入基于x86-64Bit Windows系統(tǒng)商業(yè)軟件破解領(lǐng)域?如何正確的待匯編學(xué)習(xí)和反匯編學(xué)習(xí)?成為VC++程序員,我需要學(xué)會哪些東西?

5.打怪升級,在線練習(xí)編程、學(xué)算法的神器!

Codewars,在線練習(xí)編程的網(wǎng)站,實戰(zhàn)式編程挑戰(zhàn)平臺。 學(xué)編程的重點是要多敲代碼練習(xí)。練習(xí)編程的方式有很多種,常見的有寫習(xí)題、做項目、刷算法題目等。Codewars(代碼戰(zhàn)爭)是一個完全免費的在線練習(xí)編程的網(wǎng)站,網(wǎng)站提供了大量的編程小題目。區(qū)別于目前流行的算法刷題平臺 LeetCode,在這里,你可以使用多種編程語言,像打游戲升級一樣進(jìn)行挑戰(zhàn)。每個挑戰(zhàn)都非常地有趣,又叫做 Kata(形,即招式、套路,練習(xí)時必須按形進(jìn)行)。你可以選擇編程語言和目標(biāo),有針對性地練習(xí),系統(tǒng)會自動為你推薦合適的題目。打開題目,Codewars 網(wǎng)站提供了在線代碼編輯器,讓你可以隨時隨地進(jìn)行練習(xí)。在這里,你還可以學(xué)習(xí)其他同學(xué)的解題思路,并且和他們交流討論。系統(tǒng)支持自由選擇題目,你可以由易到難,也可以只做自己感興趣的題目。還可以針對某道題目,向其他同學(xué)發(fā)起 1 對 1 挑戰(zhàn),來比比誰的代碼更精妙!通過完成一個個挑戰(zhàn)題目,你能學(xué)到很多除了算法之外的知識,全方面地提升你的編程能力和工程思維。還能夠提升等級和榮譽值,沖擊排行榜,證明自己的實力!感興趣的同學(xué)一定要試一試! 項目地址:編程導(dǎo)航在 編程導(dǎo)航 中還能發(fā)現(xiàn)更多優(yōu)質(zhì)編程學(xué)習(xí)資源,歡迎分享給有需要的同學(xué)吧!

如果以上內(nèi)容沒有幫到您,歡迎電話聯(lián)系我們,或者聯(lián)系在線客服咨詢

溫馨提示:為不影響您的學(xué)業(yè),來校區(qū)前請先電話咨詢,方便我校安排相關(guān)的專業(yè)老師為您解答
相關(guān)資料
姓名不能為空
手機號格式錯誤