這位被蘋果點贊的學生開發者,接觸編程還不到一年 | WWDC23 學生挑戰賽獲獎者專訪

2023-06-07     愛范兒

原標題:這位被蘋果點贊的學生開發者,接觸編程還不到一年 | WWDC23 學生挑戰賽獲獎者專訪

世界上有好學的程式語言嗎?

楊昊倫自覺不是一個很有編程天賦的人,他就讀於帕薩迪納藝術中心設計學院,從小受到蘋果的影響,渴望打造創作⽣產⼒應⽤,釋放⼈們與⽣俱來的創造⼒。

然而,編程是一道難以忽視的門檻。他曾經嘗試入門 Python、Java 和 C++,打下所有初學者都知道的那句 Hello World,但對於開發這件事,總是不得其門而入。

楊昊倫.

在接觸 Swift 和 SwiftUI 以後,楊昊倫察覺到了機會的降臨:創造⼀個完整的 app 離自己前所未有地近。

Swift 程式語言,是蘋果在 2014 年發布的開源程式語言,直觀的語法對新手十分友好。楊昊倫甚至稱它是「這個星球上最易學的程式語言」。

楊昊倫通過官方渠道和第三方平台學習 Swift 和 SwiftUI,平時做些簡單的 app 向家⼈朋友分享 Beta 版,並在今年第⼀次參與了 Swift 學生挑戰賽,成為了近四百分之一。

Swift 學生挑戰賽,是蘋果為長期支持學生開發者而推出的賽事,往往在 WWDC 前揭曉結果。今年全球共有 375 名獲獎者,愛范兒採訪到了其中的 5 位中國學生。

他們身上有著閃光的共性。Swift 終究是一門講究程序思維的程式語言,需要毅力、熱愛和創意灌注,才能成為開發者的工具,讓想法生長出美好的果實。

為什麼不能成為一名程式設計師

將興趣變成實踐,往往需要一個按下開關的契機。

魯晟遠的 iOS 開發旅程,正式開始於高二時。在此之前,他⾃學 Photoshop,上手設計 app 用戶介面,但那些始終只是不能用的「原型」。讓它們「活」過來的目標,暫且被封存下來。

這一年,蘋果舉辦了 WWDC 2018。熬夜觀看的魯晟遠,被⼤會上播放的視頻「Source Code」感動到了。裡面的蘋果開發者眼神發光,家人談起他們的語氣充滿驕傲,讓人下意識地相信,他們真的想用手中的代碼改變世界。

後來被科學老師邀請參加高中生科學工程競賽時,魯晟遠突然就意識到,機會來了:自己為什麼不能成為一名程式設計師呢?

魯晟遠.

他從最基礎的 Swift 語法學起,將之前一款邊玩邊學化學的 app 原型真正做了出來,並且帶著它入圍了美國州級別競賽。

身為開發者的興奮感,轉折了人生的十字路口。本來打算學藝術的魯晟遠,申請大學時改成了計算機,現在就讀於加州⼤學爾灣分校的計算機科學與商業管理。

其他幾位獲獎者編程之路的開頭,也存在著遙遠的相似性。

北京郵電大學⽹絡空間安全專業的何正浩,小學三四年級就跟著視頻教程學習了中文程式語言,尚顯稚嫩的作品被微機課老師展示給全班同學。螢幕共享的瞬間,他被極大地鼓舞到了,不知不覺中在這條道路上越走越遠。

何正浩.

高中時,為了參加信息學奧林匹克競賽,何正浩學習了 C++;高考之後,他又開始學習 iOS 開發,希望做出能在 App Store 上架的、人人觸手可及的軟體,甚至成為一名自由的獨立開發者,讓小時候那種與創造有關的成就感重現。

中央財經大學國際經濟與貿易專業的戴藏龍,高中時對開發產生了興趣,並關注到了 Swift 語⾔,閱讀了它的開發者文檔,但礙於學業壓力,大二才選修了 Python,大三又開始自學 Swift,讓心中的熱情不再束之高閣。

戴藏龍.

上海商學院日語專業的張禕寧,則是一個相對的非典型案例,從初學者到獲獎者的過程里,她遭遇了各種偶然的小插曲。似乎缺少了任何一個,都無法打出這個完美結局。

張禕寧.

去年 9 月,張禕寧在去食堂買飯的路上,碰到了 iOS Club 社團的招新,這是她第一次接觸 Swift。計算機系的男友也鼓勵她學習編程,在她的 Mac 下載了 Swift Playgrounds,打賭她一定可以入門。

Swift Playgrounds 是適用於 iPad 和 Mac 的一款 app,幫助初學者以互動有趣的方式來學習 Swift 程式語言。張禕寧很喜歡其中輕鬆有趣的關卡設置。

Swift Playgrounds.

誰都能通過 Swift Playgrounds 對編程感興趣!它更像是一個闖關的遊戲。不同的是,你在闖關的過程當中,就可以掌握一些編程的基礎知識。

誰都能通過 Swift Playgrounds 對編程感興趣!它更像是一個闖關的遊戲。不同的是,你在闖關的過程當中,就可以掌握一些編程的基礎知識。

張禕寧之前從沒想過自己會學習編程,但在接觸 Swift 之後,她覺得學習編程和學習⽇語、英語等世界上的所有語言⼀樣,學了日語才能和日本人交流,學了編程才能和計算機交流。

她這次的獲獎作品,靈感同樣來得有些玄學。今年二三月份的一個晚上,還沒有任何想法、焦慮難以描摹的張禕寧,突然夢到了一個場景:在林中湖泊邊上垂釣時,釣上來的各種魚類,自動生成了漂亮的圖鑑。

張禕寧是雲南人,從小就很嚮往海邊,但大學考到上海之後才第一次參觀水族館。她從夢境延伸出去,最終做出了「Who am I?」這個畫風獨特的作品。玩家需要代⼊未知海洋生物的身份,在和 NPC 的對談中,認識海洋⽣物多樣性,並解開身份之謎。

Who am I.

遊戲里還埋藏著不少巧思。她設計了左右移動,模仿小魚擺動尾鰭向前遊動的樣子;她也按照夢境里的模樣,讓玩家遇到的海洋生物都會自動生成漂亮的圖鑑,還為它們寫好了與種群特點相符的性格與台詞。

Who am I.

作品完成本身,已經克服了張禕寧的「分母心態」——不是專業相關,又是編程小白,靈感也姍姍來遲,有很大的機率成為陪跑。後來,這一切都不重要了。離截止時間大概 20 分鐘,她成功提交了作品。回首來路,張禕寧只想為自己喝彩。

以上 5 位獲獎者里,有 3 位是非科班出身,其中 1 位接觸編程還不到 1 年。

在每個人的時間線上,契機來得或早或晚,但線與線產生了交纏,讓他們在同一場 Swift 學生挑戰賽頂峰相見。

想法本身並不能夠解決任何問題

想法從來不會憑空出現,哪怕張禕寧調侃自己的 app 是夢到的,那也是日有所思夜有所夢,抓住靈感後努力發散,憑藉技術讓它落地生根。

其他幾位獲獎者為 Swift 學生挑戰賽提交的 app,基本也都是從自身需求出發的。

魯晟遠的「大學申請寶」,功能就體現在名字上,解決讓許多美國留學生叫苦不迭的問題。他曾在 B 站發布過一期視頻,記錄的就是自己與 22 所學校相愛相殺的大學申請季。

大學申請寶.

基於機器學習的大學申請寶,可以智能地選出適合申請的大學名單,並將它們分類成衝刺、匹配和保底校,救留學生們於水火,不再依賴於中介。

何正浩的參賽作品「Scheduled」,則是一個教育類 app。他在大學的作業系統課里學到了調度算法,但文字的呈現方式太過抽象,他決定親自動手,將它做得直觀。

Scheduled.

Schedule 的本意是調度,Scheduled 便是一個模擬作業系統調度的互動類工具,通過生動的視覺呈現,以及深入淺出的名詞解釋,讓非專業用戶也能了解一些專業知識,比如作業系統如何在處理器有限的情況下,給各個程序分配計算資源。

類似地,戴藏龍也從專業知識入手,做出了記帳應用「DebitCredit」,它的直譯為「借貸」,指的不是借款與貸款,而是複式記帳法里的借方和貸方。這是⼀種強大、靈活的記帳方法,也是當今世界記帳方法的事實標準,但使用起來需要一定的會計學知識。

DebitCredit.

戴藏龍希望通過「DebitCredit」,簡化複式記帳法,讓每個人都能夠在沒有會計知識的情況下,用它管理自己的財務,看懂公司的財務報表,在投資與工作里受益。

楊昊倫的「Redesigner」,巧妙地結合了互動設計與程式語言,是⼀個幫助開發者學習 UI 設計基礎的交互式指南,以「SixD」的名字,上架了 iPad 的 App Store。

Redesigner.

想法來自楊昊倫的觀察:許多開發者的 app 功能強大,但它們的 UI 設計有待提升。「SixD」能夠幫助這些開發者,創作出兼具好設計的 app。

除了熱愛與堅持之外,他們觀察生活的敏銳和別出心裁的想法,同樣令人印象深刻。

程式語言,其實就是實踐想法的工具,Swift 學生挑戰賽,評比的也是如何把想法用 Swift 變成現實的過程。它考驗的不只是編程能力,還有創意、設計和解決問題的能力。

所以,除了提交 app 之外,參賽者還會被問到一些問題,包括在生活中有沒有通過 Swift 幫別人解決問題、以前有沒有 app 上架 App Store 等等。

其實在參加 Swift 學生挑戰賽之前,不少獲獎者確實已經有了成型的 app,同樣是從真實存在的需求獲取靈感,或者說日常生活里,本就埋藏著形形色色等待被解決的需求。

今年 5 月 2 日,趕著勞動節出遊的熱潮,何正浩的 app「Numpkin」上架了 App Store,它的功能是管理團體活動帳單。

Numpkin.

靈感緣起於高考後第二天的一場同學聚會。當時,何正浩代付了各項支出,他來回切換備忘錄和計算器,計算向每位同學收取多少錢,但因為大家參與的項目不同,複雜的計算過程讓他很是頭疼,驅使著他開發出一個管理多人支出的 app。

愛好遊戲的戴藏龍,則在 2022 年開發出名為「披薩小助手」的 app。這是一款專為《原神》設計的工具,幫助玩家追蹤體力等遊戲數據,同年 6 月在 App Store 上架。目前,它下載超過了 30 萬次,日活用戶超過 3 萬人。

披薩小助手.

不過,程式設計師圈經常流行一句話:「不要重複造輪子。」說的是自己覺得沒有被解決的需求,可能前人已經解決過了,明知道自己不可能比前輩做得更好,卻仍然堅持要做。

這些學生開發者,都不害怕造輪子的情況。在他們看來,當不斷追問自己要做什麼,其實很難和他人發生完全的碰撞,在產品邏輯、受眾群體、細分需求等方面,總會有所差異。

所以,他們既不天真地覺得有完全的原創,充分做好市場調研,又能從自身的需求出發,保持創作的獨立性。他們相信,其實並沒有那麼多輪子,就算有也能造出更好的輪子。

只有一個點子,並不能夠解決任何問題,也並不意味著任何事情。

只有一個點子,並不能夠解決任何問題,也並不意味著任何事情。

楊昊倫所說的這句話,也是其他同學的共識。更重要的事情是,親自動手將點子實現。

理解代碼的最好方式是動手去做

Swift 是相對簡單的程式語言,但要把它學到真正上手,並非不費吹灰之力。沒有絕對好學的程式語言,也不存在和自然語言很接近的程式語言,哪怕是 Swift。

幾位獲獎者都十分擅長自學,以及利用身邊的一切資源,視頻、文檔、書籍、博客、官方教程、開發者社區、社團俱樂部…… 哪裡能夠解決問題,就往哪裡而去。

紙上得來終覺淺,絕知此事要躬行。什麼是學習編程的最好方式?他們有著一個共同的答案:實踐。

在楊昊倫看來,Swift 是「這個星球上最易學的程式語言」,因為它的語法十分易懂,同時有非常豐富的學習素材,能夠給到足夠的正反饋。

Swift 的基礎知識.

正是因為這樣,才更應該去做。哪怕你只學會了循環、函數等基礎概念,也能夠直接進入 SwiftUI,開始寫一個真正的 app,甚至看到它在 iPad 上真正運行起來。

很多時候,我們並不需要精通 Swift 才能完成⼀個 app 的開發,先去試著開發⼀個簡單的 app,不僅能帶來更多成就感,很多概念也在開發和查漏補缺中不知不覺地熟悉了。

很多時候,我們並不需要精通 Swift 才能完成⼀個 app 的開發,先去試著開發⼀個簡單的 app,不僅能帶來更多成就感,很多概念也在開發和查漏補缺中不知不覺地熟悉了。

戴藏龍最開始沒有 Mac,就用 iPad 完成了史丹福 SwiftUI 慕課課程的學習,因為 iPad 也能運行 Swift Playgrounds。

當時,他配了一塊鍵盤,左邊擺著 windows 筆記本,右邊放著 iPad 擼代碼。

iPad 完全可以勝任學習編程,你並不需要擁有⼀台 Mac 才能開始。

iPad 完全可以勝任學習編程,你並不需要擁有⼀台 Mac 才能開始。

iPad 也是魯晟遠的重要工具,他剛開始在 Swift Playgrounds 學習時,每天放學回家就打開它完成⼀個章程。

等到掌握了一定基礎,他迫不及待地想寫「真的」app,於是查找 YouTube 上的教程照葫蘆畫瓢。

魯晟遠的第⼀個 app 只有⼀個按鈕,按一下螢幕變黑,再按⼀下變白。雖然它十分簡單,但看著 app 被裝在手機上,魯晟遠依然清晰地感覺到,一種難以言表的興奮湧上心頭。

我做夢都想成為開發者,現在我突然就成了。

我做夢都想成為開發者,現在我突然就成了。

編程沒有那麼遙遠,但也沒有那麼容易,不必被想像嚇到,也不要沉迷案頭知識而放棄前進。

蘋果在開發者教育上有著這樣的理念:Everyone can code。一旦真的開始實踐,我們會慢慢感覺到編程的美妙。所以動手去做吧,就像魯晟遠對新手的建議那樣:

踏出第⼀步是令⼈恐懼的,但⿎勵自己試⼀試是非常重要的。也許找⼀個悠閒的下午,打開蘋果的教程,試著寫幾行。我相信任何⼈都可以理解⼀些簡單的代碼。

踏出第⼀步是令⼈恐懼的,但⿎勵自己試⼀試是非常重要的。也許找⼀個悠閒的下午,打開蘋果的教程,試著寫幾行。我相信任何⼈都可以理解⼀些簡單的代碼。

利若秋霜,辟除凶殃。 工作郵箱:[email protected]

#歡迎關注愛范兒官方微信公眾號:愛范兒(微信號:ifanr),更多精彩內容第一時間為您奉上。

| · ·

文章來源: https://twgreatdaily.com/zh-tw/1441c55939d11a649d37301aa599b459.html