Apple:編碼世界需要“全民皆兵”

原文來自Medium,作者Kenn Franklin

原文鏈接:https://medium.com/@KennFranklin/apple-thinks-it-is-critically-important-that-everyone-learn-how-to-code-1d7f557a77e2


Apple認為讓每個人都學習如何編程十分有必要。即使學習編程可能不會對工作有直接幫助,但是通過學習編程,我們可以習得有用的技能,同時瞭解日常使用的產品與工具的工作原理和相關知識。

學習編程不僅僅是孩子們在學校應該做的事情,更是成人終身學習重要的一部分。

基於這種理念,Apple發起了一個名為“人人能編程(Everyone Can Code)”的項目,旨在幫助所有年齡段的學習者,不論老少,輕鬆學習編寫代碼的基礎知識。當然,這個項目是圍繞Apple的Swift編程語言設立的,而非C++或JavaScript。

這個項目始於一個精巧有趣的iPad App,Swift Playgrounds,以一種簡單的方式教授編碼基礎知識,即使是年幼的孩子也能輕鬆掌握。

自有了第一臺Apple II起,我對計算機的痴迷,從未因我的年齡增長而降低。我決定把Swift Playgrounds裡的項目都試一遍,看看這個App能不能教給我些新把戲,帶我暢遊新天地。

一切“從頭開始”

我對編程並不陌生,但是光一句“很久很久以前”,又有點過於輕描淡寫。我上中學時,在Apple II上用BASIC語言編寫過簡單的程序。但是距離我上次敲出簡單的幾行代碼,已經快二十年了。(上大學的時候我曾經參加過C++的課程。)

當我用這個App進行編程練習時,我根本不知道使用真正的現代編程開發環境會是什麼樣子的,也不知道使用Swift這樣的現代編程語言會是什麼樣子。

我並不能算是一個編程菜鳥,但我相信萬丈高樓平地起,是時候在iPad上下載一個Swift Playgrounds了……

“這款App設計得忒可愛!編程學起來真容易!”這款App顯然是為年幼的孩子量身定製。我可以不費吹灰之力跟隨動畫形象Byte去了解編程的基本概念。

但是,Swift Playgrounds剛開始的課程對我而言過於簡單了,我時不時地開始走神。如果我還是8歲,那麼我會對Swift Playgrounds的遊戲樂此不疲。但對於一個43歲的成年人而言,就有點小兒科了,好比坎特伯雷故事集的封皮中裝著本童話故事集。

儘管動畫中的指導Byte還是那個年紀,但無趣麻木的簡單遊戲可不會一直持續。

大多數成年人很快能掌握前幾節課程的內容。從嵌套語句學到For循環語句再到條件語句,才會遇到真正的邏輯難題。(如果這些術語使您感到困惑,別擔心,振作起來,Swift Playgrounds就是用來學習這些內容的)

這些邏輯難題並非遙不可及,不管用什麼方法,只要解決了問題,這款App都會讓你通關。同時,你還可以不斷對你的代碼進行修正解決問題。不過還是要動動腦筋再接再厲。

簡而言之,大約一個小時後,即使是成年人也會被Swift Playgrounds有趣的編碼難題完全吸引住。對於這款App來講,這是一場真正的勝利。父母和孩子可以一起參與,從中學到實用的東西。

全部通關之後

事實證明,在前幾節無聊的課程結束之後,Swift Playgrounds的內容會變得足夠有挑戰性和吸引力,成年人也會玩得不亦樂乎。

對編程一無所知的中年人如果每天晚上花一小時在這個App上學習,那麼幾個星期後就可以完成“學習編程1”和“學習編程2”的課程內容。

你從這些課程可以學到很多東西。在“學習編程2”的課程內容結束之後,一個人肯定已經理解了“編程”的涵義。

課程學習者將明白如何化繁為簡,然後這些簡單的任務是如何根據需求被重複並循環執行;人們也會理解程序運行的邏輯,比如“如果……,就……,否則……。”

利用這些任務來解決一個個邏輯難題,引導Byte在他的3D世界遨遊,很有意義,同時也能把編程概念好好牢記。

最終,你肯定不會滿足於只是引導Byte沿既定道路前進,你會開始修改並創造Byte的3D世界。如果你掌握了“學習編程3”的課程,你將會接觸到一些內容看起來就像真實的App開發一樣:座標、圖形放置以及觸發事件!

在這之後呢?儘管Swift Playgrounds教會你了一些概念並使用了真實的Swift框架,但這並非真正的編程。我們還是不會製作App,我們只不過是帶著Byte到處遊蕩解決一些難題。Swift沒有一個像collectGem()這樣的命令語句。(譯註:collectGem()是Apple編程遊戲中利用Swift命令語句幫助Byte抓寶石的語句)

Swift Playgrounds可以滿足你對編程的好奇,並讓你瞭解到程序是如何運行的,但它並不能教你如何開發App,哪怕是最基本的最簡單的。

你編寫的程序只能夠在App內部運行,甚至離開了遊戲頁面都不能運行!但是,如果你真想開發一個App,Apple提供了另外一整套課程。

縮小Xcode與Swift Playgrounds之間的差距

如果你希望利用新學習的循環或條件語句和功能開發一個App,那麼請你拿出iPad,打開Apple應用商店,然後點擊購買一臺Mac電腦。

的確,Apple真正的代碼編寫程序Xcode僅可在Mac上運行。Xcode是免費的,你只需從Mac應用商店下載即可。然後,在iBooks圖書商店購買一本書《使用Swift開發App入門教程》(Intro to App Development with Swift)。當你開始閱讀該電子書時,它會提示你下載一些項目文件,以便在閱讀本書時使用。

這就是傳統的編程指導類課程,非常無趣。讀書,加載示例代碼並要求你進行一些更改,進行小測驗以確保你掌握了這些概念……這是多年來“在家學習編程”之類課程的樣子。Apple在書本內容和項目文件的清晰度和互動性方面做得很出色。但與Swift Playgrounds相比,在Xcode上學習編程仍然是一項無聊且累人的任務。

如果Apple希望真正地激發人們,無論是兒童還是成人去編寫代碼而不只是學習“什麼是編程”,它需要縮小Xcode與Swift Playgrounds之間的差距。前者提供了以開發人員為中心的環境而後者則提供了豐富多彩的難題解決方案。

如果能有一個過渡學習,暫時先把Byte忘記,針對iPhone開發真實的App,可以引導學習者開發一個非常簡單的小費計算器。用戶輸入消費金額後選擇兩個按鈕之一(15%或20%)來計算小費。

這不是一款能在應用商店提交的App,但學過Swift Playgrounds課程的人都可以理解。同時,這個程序執行的是真實世界中的任務,而不是通過解決一個個相互獨立的難題為卡通人物指點迷津。

我剛剛是否提到你需要購買一臺Mac電腦?的確,Swift Playgrounds僅在iPad上可用而Xcode僅在Mac上可用這件事十分不合理。

為了學習編程還要進行一次如此高昂的消費實在是學習編程道路上的一個巨大障礙。而始作俑者剛剛在電視上投放了一個精彩的廣告。在廣告中,一個早慧的聰明少女正在用她的iPad來處理一切任務,並問道:“什麼是電腦?”

如果你是一個想要學習編程的成年人,請不要因為Swift Playgrounds對兒童用戶友好的特點而遲疑。Swift Playgrounds上的內容很快就會變得足夠複雜,讓你以一種物有所值且稱心如意的方式學會編程的核心概念。

但是,如果你想編寫實際可用的代碼,那麼你就必須真刀真槍地嘗試。你需要一臺下載了Xcode的Mac電腦,並在這臺電腦上運用你所學的Swift知識,或者你也可以嘗試將你所學的概念應用在更簡便的編程語言,例如JavaScript。

無論用哪種方式學習編程,你最終都將被困於令人望而卻步的“課本與示例代碼”舊式課程,彷彿又一次回到了高中。

Apple:編碼世界需要“全民皆兵”


分享到:


相關文章: