一、學以致用

基於實踐的Java學習

有人一心愛 CodeGym,也有人一心討厭它。但即使是 CodeGym 最惡毒的批評者也會欣然同意它擁有數量驚人的任務。而之所以有這麼多,是因為所有的 CodeGym 培訓都是以實踐為基礎的

編程是一種技能。沒有人說,“我知道如何編程”。每個程序員都說,“我會編程”。這是一項動手能力,就像游泳或下棋一樣。而你只能通過不斷的練習來培養技能。

這就是為什麼整個 CodeGym 課程是一系列難度越來越大的任務。你從非常簡單、原始的任務開始,然後以最困難、最有趣的任務結束。每個級別的難度都會增加一點。這正是引導您實現成為程序員的目標的途徑。


2.任務類型

CodeGym 上有一大堆不同類型的任務等著您。讓我們列出主要的:

根據示例編寫代碼的任務

這是最簡單的練習。這些任務的目的是練習您編寫代碼的能力。要解決該任務,您需要編寫示例代碼中存在的代碼。這非常有用,但很快就會變得乏味。幾乎沒有這樣的任務了:我們用 CodeGym 學生更感興趣的任務代替了它們。

此類任務的卡片標有字母 T:

任務類型

編寫程序的任務

這些是課程中最重要的任務。它們的難度級別差異很大:從最簡單的任務到您需要考慮很多的任務。

這些任務的目標是編寫滿足指定條件和要求的程序。大多數任務都屬於這一類。為了方便 CodeGym 學生,我們根據難度級別標記這些任務:EASYMEDIUMHARDEPIC

EPIC 任務通常基於您尚未解鎖的課程中的未來學習材料。他們很受 CodeGym 學生的歡迎,他們覺得這門課程對他們來說太簡單了。其他人可以簡單地跳過這些任務​​,等他們已經熟悉了相關理論後再回來做。

編寫程序的任務

項目

普通任務的缺點是它們很小。正如他們所說,完成並被遺忘。因此,很難使它們變得非常有趣。但是大型程序很難測試:實現它的方法太多了。

這就是 CodeGym 引入的項目任務——大任務分為 10-30 個普通子任務。您按順序執行所有子任務,最終得到一個大型程序。

在多線程和集合任務的每個級別結束時,都有一個大型項目任務,分為 20 個子任務。還有另外6個遊戲任務,​​也是項目。整個課程總共有27個項目任務。

測驗

很長一段時間,CodeGym 沒有測試或小測驗。CodeGym 的創建者認為,通過測試會在人們中產生“知識錯覺”。人們並不真正知道如何編程,但他們完全相信否則,因為他們通過了測試。這樣的人停止學習,因為“他們已經知道一切”。

隨後,添加了測驗,讓 CodeGym 學生能夠輕鬆找出他們學習中的差距。對於程序員來說,了解他們在職業中日常工作的細微差別是很有用的。

測驗Java

影片

最後,最後一類任務是觀看視頻。CodeGym 課程中包含許多與 IT 行業相關的有用且有趣的視頻。


3.任務狀態

CodeGym 上的每個任務都有一個特殊的狀態。當您解決任務時,狀態會發生變化。

每個 CodeGym 任務都與一節課相關聯。最初,您將無法訪問任何任務,這意味著您將無法解決它們。

鎖定

當您打開下一課時,該課中的所有任務都可以解決,即它們的狀態變為“可用”。

可用的

如果您至少提交過一次驗證任務,則其狀態會從“可用”變為“進行中”。

進行中

最後,當您成功滿足所有要求並且驗證器接受您的提交時,任務的狀態將變為“已完成”。

完全的

訂閱 Premium Pro 的用戶還有 3 天的時間嘗試為該任務編寫其他解決方案。在這個額外的時間窗口到期後,任務將進入“已關閉”狀態,並且此狀態將不再改變。關閉


4.網頁IDE

為了讓您更輕鬆地解決任務,我們編寫了一個特殊的小部件:WebIDE。它看起來大約是這樣的:

WebIDE

在左側,您會看到解決方案必須滿足的任務條件和要求。在中心,我們有編輯器,您需要在其中編寫代碼。您的程序顯示了一些文本,您可以在底部的窗格中看到這些文本。

在頂部你會看到這些按鈕:

  • 驗證:提交您的解決方案進行測試。
  • 幫助:在 CodeGym 社區中詢問有關您的解決方案的問題。
  • 討論:與其他用戶討論任務。
  • 重置:重置您的解決方案,即重新開始。
  • 運行:啟動程序而不提交驗證(您的驗證計數器不會增加)。
  • 代碼分析:獲取有關解決方案代碼風格的建議

五、要求

在 CodeGym 的早期,當您驗證每項任務時,您會得到一個簡單的結果:是或否。該程序要么通過了所有測試,要么沒有通過。超級簡單,但不是超級有用。

隨著人們的學習,了解他們做錯了什麼以及如何開始做對是非常重要的。因此,如果服務器不接受您的解決方案,那麼您會問,它有什麼問題嗎?

要得到這個問題的答案,您需要有人深入研究您的解決方案、分析它並告訴您它有什麼問題。這將花費很長時間並且成本很高。即時任務驗證的美妙之處在於,您可以在凌晨 2 點坐下來學習,一切都會像其他任何時間一樣工作。

這就是我們在 CodeGym 上重寫所有任務的原因。現在每個任務不僅有任務條件,還有 5-10 個充實條件的要求列表。最重要的是,每個需求都被單獨驗證。

這意味著當您今天提交一個任務進行驗證時,您將得到一個擴展的響應:在每個任務要求旁邊,您將看到一個特殊的圖標,指示您的程序是否滿足此要求。例子:

要求

當您處理需要編寫多個類或方法的任務時,這種方法極大地簡化了生活。您將始終能夠看到您正確編寫了哪些方法或類,哪些沒有。


六、建議

是否有可能以某種方式使任務變得更好?如果在每次檢查後,您都被告知程序中到底出了什麼問題,並得到有關如何修復它的提示,那不是很好嗎?是的,那會很酷!好吧,你猜怎麼著?我們在 CodeGym 上就是這麼做的 🙂

我們通過檢查每個任務要求來發現許多常見錯誤。如果您的程序犯了驗證器知道的錯誤,那麼它會提出建議——提示您如何修復您的解決方案,使其滿足所有要求。

想想看。現在 CodeGym 上大約有 1200 個任務,總共有大約 10,000 個需求。每個要求都有一些相關的建議。有些要求有幾十個。CodeGym 的驗證器已準備好為用戶解決方案提出超過 50,000 條建議。

此外,所有這一切都是在您的解決方案得到驗證時發生的,在大多數情況下,這需要不到一秒鐘的時間。沒有人能做到這一點。這是一個真正的虛擬導師。

建議