學程式設計,有人苦苦堅持卻半途而廢,有人是邊玩邊學反而學有所成?

2021-03-26 09:11:33

前言

記得前幾年剛接觸程式語言的時候,我每天都要逼著自己去學習2個小時以上的程式設計,那時候還在上大學,喜歡玩遊戲,看著室友們都去玩遊戲了自己卻在背語法、看書、看視訊,心裡就癢癢的,尤其是自己學了較長一段時間之後,自己的程式設計能力依然很差,一上手做專案就舉足無措,油然而生出一種想放棄的念頭。

後來問了問同系的學霸級別的學長,他們告訴了我一個既能加強程式設計學習、又能滿足我玩遊戲的慾望的方法——玩程式設計遊戲。

這個法子確實挺管用的,不僅沒有讓我在學習的道路上半途而廢,而且還增強了我用程式設計解決問題的能力。

今天來給大家分享10個比較有意思的遊戲程式設計學習平臺,希望能幫到大家。


一、CodinGame | 遊戲化程式設計教學平臺

CodinGame雖然和遊戲有關但是並不是遊戲開發,只是簡單的遊戲模式,每一個練習背後的邏輯,都與一個實際的遊戲相連,讓你能夠獲得實時視覺反饋,你完成練習之後也能獲得實際的獎勵。該平臺的目標使用者是具備一定程式設計基礎的人,當然同時也為資深程式設計師提供了相應級別的進階練習。

CodinGame遊戲之CODE VS ZOMBIES

對於每一個練習,你都可以從超過20種程式語言中選擇自己喜歡的語言,例如Python、Ruby、Java、Scala等。公司的目標使用者是已經知道一些程式設計基礎的人,但也為資深程式設計師提供了相匹配的挑戰。

尤其是,程式設計師之間近期開始流行多人遊戲模式。在多人遊戲模式下,你可以學習人工智慧的基礎知識,與其他人進行對決,看看到底是誰的程式碼效率更高。

CodinGame遊戲之CODERS STRIKE BACK

CoinGame支援23種不同的程式語言,其中的每一個遊戲練習都可以選擇自己熟悉的語言。在CodinGame平臺,每一個練習都是基於瀏覽器的,會提供一個網路整合式開發環境,讓你不重新整理網頁就可以實時編譯程式碼,並實時看到遊戲的變化。目前,CodinGame已經吸引到了23萬使用者註冊。

傳送門:www.codingame.com


二、CodeCombat | 由易到難的遊戲,由淺入深的學習

CodeCombat 是一個免費的程式碼學習遊戲網站 (一個公益開源的專案),目前已經支援 Python、Javascript、CoffeeScript、Clojure、Lua、Io 等程式語言的學習,並且網站介面也已被翻譯了包括簡繁體中文在內的幾十種語言。

遊戲的每一關設計的都很巧妙,初期是一些基礎知識的學習,讓你對函數結構有個初步的認識,後面的關卡越來越難,判斷、迴圈語句也會逐漸加入,需要自己更多的創造性,通過語法、介面編寫出複雜的函數才能過關,玩家在不知不覺也就具備了程式設計的思維。根據 XIao 的試玩後表示:「連英文苦手程式碼小白的我也能愉快地玩耍一晚上」,因此,估計大家即便無基礎也都可以輕鬆上手的。

當然,由於 CodeCombat 是開源的,如果你本身已是開發高手,那麼除了挑戰一些高難度的多人遊戲關卡之外,也可以完全參與到專案本身的開發中去,譬如程式碼編寫、關卡設計、Bug測試、文字翻譯等等,給 CodeCombat 這個公益專案做貢獻。

傳送門:https://koudashijie.com/china-bridge?redirect=/


三、Check iO | Python學習者推薦

CheckiO 是面向初學者和高階程式設計師的編碼遊戲,使用 Python 和 JavaScript 解決棘手的挑戰和有趣的任務,從而提高你的編碼技能,尤其是Python學習者尤為推薦。

有網友說:「語法看了一大堆,教學也學了一大堆,就想著做專案,但是發現根本動不了手,反覆總結自己發現雖然看懂了語法,記住了方法,但是自己腦子裡還是沒有程式設計思維,也對敲程式碼不熟悉......但在Check io 上學了一段時間之後受益匪淺,不僅自己動手解決了問題,而且還能學習到別人的程式設計思維,尤其是同樣的問題,自己寫了很長的程式碼,而大神卻只用了幾行就解決了。」

傳送門:https://checkio.org/


四、Codewars | 程式設計打怪升級平臺

CodeWars 是一個通過程式設計挑戰平臺,提供了:C、C++、C#、Java、JavaScript、PHP、Clojure、CoffeeScript、Elixir、Haskell、Python、Ruby、TypeScript等程式語言的挑戰。

相比於其他平臺,Codewars 給出的問題更加貼合實際工作與生活,很多題都會給出題目背景,更有代入感。一些 kyu(Codewars中用來標記題目難度的指標) 較小的題目,還是有一些挑戰的,很多題目可能要寫一兩天提交十多次才能過,不過寫三四百行然後 AC 的感覺真的很棒。很多題目來自遊戲,經常打遊戲碰到這些題目會會心一笑。

傳送門 :https://www.codewars.com/


五、SCREEPS|面向程式設計師的MMO沙盒遊戲                      

Screeps 是一款面向程式設計愛好者的 MMO(大型多人線上)RTS(即時戰略)遊戲,其中的核心機制是對你的單位AI 進行程式設計。該遊戲擁有一個成熟的策略遊戲的所有屬性,在其中你通過編寫 Java 程式碼來控制你的殖民地,與其他玩家一起在一個持久的世界中全天執行。

你的殖民地可以收穫資源,建立單位,征服領土,與其他殖民地進行貿易。當你征服了更多的領土,你在遊戲世界中的影響力就會增加,你的能力也會隨之擴大。但是要注意,多個玩家瞄準同一個區域可能會導致衝突!

Screeps看起來還是很有意思的,但是依然美中不足。Screeps雖然是開源的,可以隨便下載,但是遊戲的伺服器端卻是收費的,所以只能玩免費的部分,僅限於初始教學及訓練場(沙盒模式),並且遊戲內容無法儲存,如果你想遊玩遊戲內容的話,那你只能去購買本體。

所以要不要入坑,你可以試玩一下免費部分之後再決定。

傳送門:https://screeps.com/


 

為了感謝每一個觀看我文章的人,給你們準備一點小東西,用得上的話儘管拿走。

有Python標準庫資料(中文)+Python所有方面知識點彙總導圖+史上最全的Python電子書+9999份實用PPT模板+Python入門視訊教學。

加我微信pykf20,全部免費贈送,備註一下「領資料」即可。

 


六、Vim-Adventures

Vim作為一款神級編輯器,卻有非常陡峭的學習曲線。網上大部分的教學很多仍然以背指令為基礎,很容易讓人望而卻步。理解Vim的指令並不難,難點在於掌握Vim需要大量的重複練習。初學Vim的人很難有大量使用Vim操作的環境,或沒有安全的可以進行編輯的文字,或無法忍受初學Vim時相對下降的編輯效率,從而很快就放棄了Vim。

Vim-Adventures是一款基於Vim操作的網頁版遊戲,通過一些遊戲行為能潛移默化地熟練Vim的基本操作,最終形成肌肉記憶。同時Vim-Adventure給予了玩家一個安全的、可大量重複練習的環境,從而在短時間內獲得使用Vim的快感,最終能夠體會到Vim的強大。

Vim-Adventures的難度梯度還是比較平緩的,前幾關都能夠很簡單的完成。但是隨著遊戲的進行,挑戰難度會逐漸增大。


七、Playcodemonkey | 線上少兒程式設計

CodeMonkey是一個線上的交到孩子任何程式設計的遊戲類產品,針對的是9歲以上的兒童教育。

在遊戲中,有一隻想要吃到香蕉的小猴子,孩子通過編寫程式碼,幫助虛擬中的猴子小夥伴獲得它心愛的香蕉。剛開始,遊戲會為孩子提供簡單的程式語言,例如「step 15」,引導孩子操作猴子前進或者後退15步吃到香蕉。而之後關卡難度會越來越大,例如一次性獲得多個香蕉,轉彎操作,與烏龜小朋友一起合作跨過湍流的小溪,打敗老鼠爭奪香蕉。不同難度的關卡,對應程式設計學習中不同的難點,例如邏輯迴圈等等。

如果你有瓜娃子且想讓他學學程式設計的話,可以試試這個。

傳送門:https://app.playcodemonkey.cn/


八、Elevator saga 

Elevator Saga是一個益智遊戲,用Java來控制建築裡的電梯。很多人一直的上上下下,你需要儘可能快的讓他們到達他們的目的地。這個遊戲測試你的演演算法書寫能力,同時也測試JS的函數,陣列和事件處理。

傳送門:http://play.elevatorsaga.com/


九、Git-game

現在講解 Git 的文章很多,有 Git 的基本用法、設計原理、流程管理等諸多教學。在學過了這些知識之後,有沒有興趣,通過一個專門設計的 Git 命令列的遊戲,來看看你對 Git 的理解和運用到了什麼程度呢?

那麼Git-game就是一個很不錯的遊戲,裡面關卡很多,通過Git命令找到線索、解開謎題,能走到哪就看你的本事了。

傳送門 :https://github.com/git-game/git-game


十、Hacker | 測試你的駭客能力

hacker.org 挑戰賽是一系列的拼圖、敲磚塊、測試和智力題,用來測試你的駭客能力。要通過這一系列的考驗,你需要破解加密、寫出精巧的程式碼,揭開重重迷霧。

聽說有某些道友在上面連續4天廢寢忘食,就為了用Python解救出一個傻傻的機器人......

不說了,在下要去玩學習(遊戲)了。

傳送門:https://www.hacker.org/


各位友友,我的網路硬碟資料是越堆越多了,尤其是Python的資料我已經用不到了,現準備拿出來分享給大家,有需要的直接拿走。

需要的話可以加我微訊號pykf20,全部免費拿走,備註一下"領資料",方便我知道你的來意和最快速度給你東西,細品下圖: