來自 Stepik 的愛:Hyperskill 教育平台

我想和你談談為什麼我們修理管道的次數比寫論文的次數還要多,關於教授程式設計的不同方法,以及我們如何嘗試將其中一種方法應用到我們的新產品 Hyperskill 中。

如果您不喜歡冗長的介紹,請直接跳到程式設計的段落。 但會少一些樂趣。

來自 Stepik 的愛:Hyperskill 教育平台

抒情題外話

讓我們想像一下一位年輕的瑪莎女士。 今天瑪莎本來打算安靜地洗點水果看電影,但運氣不好:突然她發現廚房的水槽被堵住了。 目前尚不清楚如何處理這個問題。 你可以無限期地推遲這個問題,但現在有空閒時間,所以瑪莎決定立即處理這個問題。 常識表明有兩種選擇:a) 打電話給水管工 b) 自己處理。 這位年輕女士選擇了第二個選項,並開始研究 YouTube 上的說明。 根據用戶 Vasya_the_plumber 的建議,瑪莎查看了水槽下方,看到了一條由多個部件組成的蜿蜒塑膠管。 女孩小心翼翼地擰開水槽底部的一塊,但什麼也沒發現。 下一段管道被一種未知物質緊緊堵塞,即使是在桌子上找到的叉子也無法應對堵塞。 網路上的專家給出了令人失望的預測:該部分必須更改。 瑪莎在地圖上找到了最近的商店,帶著那根倒楣的煙鬥,買了同樣的一根,只是新的。 根據賣家的建議,瑪莎還買了一個新的過濾器來預防。 任務完成:水槽再次正常工作,同時它的主角學到了以下內容:

  • 您可以自行擰鬆並擰緊水槽下方的管道;
  • 最近的水管店距離馬西娜的公寓一公里半。

很有可能,瑪莎甚至沒有註意到自己學到了多少新東西,學到了多少新東西,因為她擔心自己以後的舒適度,同時又看電影、洗蘋果。 下次再出現類似的問題時,女孩解決起來會快很多倍。 事實上,瑪莎不僅讓世界恢復了正常狀態,也讓世界恢復了正常狀態。 她學習了 歸納地,即在特殊情況下,並且 以實踐為導向,就是透過做事而不是事先詳細地研究它。

一切都可能有不同的結果。 假設瑪莎晚上坐在椅子上,突然意識到她在精神上和身體上都沒有做好水槽堵塞的準備。 她很快就進入了水管工學院,學習水槽、管道和可能的連接的類型、管道問題的分類以及可能的解決方案。 瑪莎晚上不睡覺,背誦術語和名字。 也許她甚至正在撰寫一篇關於理論管道科學的博士論文,其中討論了橡膠墊圈。 最後,收到證書後,瑪莎自豪地環視廚房,充滿信心,現在即使是水槽上最輕微的問題也將在彈指間解決。 在這種情況下,女孩學習了 演繹地,從一般轉向具體,更重視 理論.

那麼哪種方法最好呢? 對於水槽和堵塞的情況 - 第一個,原因如下:

  1. 如果只有工作水槽很重要,那麼僅了解與該特定區域相關的內容就足夠了。 當瑪莎意識到自己缺乏知識時,她一定會想辦法學習更多。
  2. 百科知識在現實情況下可能無法被激活,因為習慣還沒有養成。 為了了解動作的順序,有意義的不是閱讀它們,而是執行它們。

讓我們別管可憐的瑪莎,繼續學習過程。

程式設計:學還是做?

我們習慣於認為,為了在不熟悉的領域發展並成為專家,我們首先需要上大學或至少參加課程。 我們定期聽取他們的意見並執行任務。 當我們手中擁有令人垂涎的文憑或證書時,我們立刻就迷失了,因為我們仍然不明白為什麼我們需要這麼多資訊以及具體如何應用它。 如果您的下一個計劃是撰寫科學論文並與他們一起參加會議,那麼這沒有問題。 否則,就值得努力提高技能,也就是說,不斷地做特定的事情,嘗試並犯錯誤,以便長期記住什麼是最好不要做的。

程式設計是「強硬的手」或「鑽石眼」與廣闊的前景並行不悖的領域之一。 如果你與經驗豐富的開發人員交談,你會聽到一些勇敢的故事,其中一個人從小學習數學/物理/教學,然後厭倦了並轉移到後端。 也會有沒有受過高等教育的程式設計師! 首先,開發人員看重的不是證書或文憑,而是編寫的程式、腳本和網站的數量和品質。

“但是等等!”,你反對道,“聽起來很漂亮——拿去做吧!” 如果我以前沒有程式設計過,我就很難自己寫程式! 對我來說,了解在哪裡編寫、如何使用程式語言與編譯器進行基本對話非常重要。 這不像在谷歌上找到水管工的電話號碼。”

這也有一個痛苦的事實。 一個不熟悉的方面導致另一個方面,進而導致第三個方面,很快這個過程就變成了魔術師的表演,他不斷地拉出綁著的手帕,卻無法將它們從高頂帽子中取出。 說實話,這個過程並不愉快;到了第五塊“手帕”,無知的深度似乎已經接近馬裡亞納海溝了。 另一種選擇是關於 5 種類型的變數、10 種類型的循環和 3 個潛在有用的庫的相同講座。 可悲的是。

超級技能:我們建造、建造、最終建造

這個問題我們思考了很久。 我們部落格上最後一篇文章的日期充分說明了我們思考了多久。 經過所有爭論並嘗試在 Stepik 上整合新方法,我們最終得到了...一個不同的網站。 作為 JetBrains Academy 的一部分,您可能已經聽說過它。 我們稱之為 Hyperskill,內建基於專案的學習,將 Java 知識庫連結到它,並獲得了 EduTools 團隊的支持。 現在還有更多細節。

來自 Stepik 的愛:Hyperskill 教育平台

具體目標。 我們提供項目“菜單”,即您可以在我們的幫助下編寫的程式。 其中有井字棋、個人助理、區塊鏈、搜尋引擎等。 項目由5-6個階段組成; 每個階段的結果都是一個完成的程序。 “既然第一階段已經解決了,為什麼還需要其他階段?” 謝謝你的提問。 每一步,程式都會變得更加實用或更快。 起初程式碼需要 10 行,但最終可能甚至無法容納 500 行。

有點理論。 如果對程式設計一無所知,就不可能坐下來寫 Hello World。 因此,在專案的每個階段,您都會看到必須掌握哪些理論基礎知識,最重要的是,從哪裡獲得它們。 基礎知識也位於「知識圖譜」部分的 Hyperskill 中。 如果計畫的第一階段不要求學生從文件中讀取數據,那麼他們可能無法繼續。 他們稍後會自己學習,用於一般發展,或者他們在下一階段需要它。

來自 Stepik 的愛:Hyperskill 教育平台

知識圖譜。 它向您展示您已經學習過哪些主題以及它們之間的相互關係。 打開任何可愛的上衣。 您可以瀏覽一下,但我們建議您完成一些小任務,以確保這些資訊適合您的頭腦。 首先,該平台將為您提供測試,然後它將為您提供一些程式設計任務。 如果程式碼編譯並通​​過測試,將其與參考解決方案進行比較,有時這有助於找到更優化的實作方式。 或確保您的解決方案已經非常出色。

沒有額外的東西。 我們正在等待“綠色”用戶和經驗豐富的開發人員。 如果你已經寫過程序,沒關係,我們不會強迫你加2+2或重新翻一行。 為了立即達到所需的水平,在註冊時,請註明您已經熟悉的內容並選擇更難的項目。 不要害怕高估自己:如果發生任何事情,你總是可以回到知識圖譜中被遺忘的主題。

來自 Stepik 的愛:Hyperskill 教育平台

工具類 在網站的特殊視窗中編寫小段程式碼固然很棒,但真正的程式設計是從在開發環境中工作開始的(I整合 D才有發展 E環境)。 經驗豐富的程式設計師不僅知道如何編寫程式碼,還知道如何設計圖形介面、將不同的檔案組裝到專案中、使用額外的開發工具,而 IDE 會負責其中的一些流程。 為什麼不在學習程式設計的同時學習這些技能呢? 這就是 JetBrains 發揮作用的地方,它是帶有預先安裝 EduTools 插件的 IntelliJ IDEA Community Educational 特殊版本。 在這樣的 IDE 中,您可以參加培訓課程,檢查已解決的問題,如果您忘記了某些內容,您也可以查看專案提示。 如果這是您第一次聽到“插件”或“IDE”這個詞,請不要擔心:我們會告訴您它是什麼以及如何以最小的痛苦將其安裝到您的電腦或筆記型電腦上。 了解理論,然後進入 IDE 並在那裡完成專案的下一階段。

截止日期。 他們一個也沒有! 我們是誰來敲你的頭並告訴你以什麼速度編寫程式? 當您喜歡編寫程式碼並想要完成它時,您可以在今天或明天完成它。 為了自己的樂趣而開發。

錯誤。 每個人都承認它們,你在專案的某個階段也承認它們,然後這個階段就不會通過自動測試。 好吧,你必須自己找出問題所在。 我們可以告訴你錯誤在哪裡,但這能教你如何仔細寫程式碼嗎? 閱讀 IDEA 的提示或有關 Bug 的理論主題,當程序最終起作用時,多巴胺的激增很可能很快就會到來。

一個明確的結果。 那麼,你已經完成初稿,下一步是什麼了? 享受你的勞動成果吧! 與朋友一起玩井字棋,同時吹噓自己的成功。 將專案上傳到 GitHub 以向未來的雇主展示,您自己編寫描述,並在其中表明您應用的知識。 4-5 個複雜的項目,現在,適合初級開發人員的適度組合已準備就緒。

成長的機會。 假設您查看 Hyperskill,但沒有看到任何重要主題或有用的項目。 讓我們來了解一下! 如果您的背景比知識圖譜更廣泛、更豐富,請透過以下形式給我們寫信 貢獻。 我們的團隊將與您分享我們自己的提示和技巧,因此我們很樂意幫助您將您的知識轉化為不同年齡和水平的用戶可以理解的有用內容。 也許我們甚至會付錢,但這還不確定。

歡迎: hi.hyperskill.org 進來看看、嘗試、建議、讚美和批評。 我們也在學習教你。

來源: www.habr.com

添加評論