# 这位被苹果点赞的学生开发者，接触编程还不到一年 ｜ WWDC23 学生挑战赛获奖者专访

- 作者：张成晨
- 发布时间：2023-06-07 17:28
- 分类：公司
- 原文：https://www.ifanr.com/1551410

![](https://s3.ifanr.com/wp-content/uploads/2023/06/zhang3.jpeg)

世界上有好学的编程语言吗？

杨昊伦自觉不是一个很有编程天赋的人，他就读于帕萨迪纳艺术中心设计学院，从小受到苹果的影响，渴望打造创作⽣产⼒应⽤，释放⼈们与⽣俱来的创造⼒。

然而，编程是一道难以忽视的门槛。他曾经尝试入门 Python、Javascript 和 C++，打下所有初学者都知道的那句 Hello World，但对于开发这件事，总是不得其门而入。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/yang1.jpg)

▲ 杨昊伦.



在接触 Swift和 SwiftUI 以后，杨昊伦察觉到了机会的降临：创造⼀个完整的 app 离自己前所未有地近。

Swift 编程语言，是苹果在 2014 年发布的开源编程语言，直观的语法对新手十分友好。杨昊伦甚至称它是「这个星球上最易学的编程语言」。

杨昊伦通过官方渠道和第三方平台学习 Swift 和 SwiftUI，平时做些简单的 app 向家⼈朋友分享 Beta 版，并在今年第⼀次参与了 Swift 学生挑战赛，成为了近四百分之一。

Swift 学生挑战赛，是苹果为长期支持学生开发者而推出的赛事，往往在 WWDC 前揭晓结果。今年全球共有 375 名获奖者，爱范儿采访到了其中的 5 位中国学生。

他们身上有着闪光的共性。Swift 终究是一门讲究程序思维的编程语言，需要毅力、热爱和创意灌注，才能成为开发者的工具，让想法生长出美好的果实。

### 为什么不能成为一名程序员

将兴趣变成实践，往往需要一个按下开关的契机。

鲁晟远的 iOS 开发旅程，正式开始于高二时。在此之前，他⾃学 Photoshop，上手设计app用户界面，但那些始终只是不能用的「原型」。让它们「活」过来的目标，暂且被封存下来。

这一年，苹果举办了 WWDC 2018。熬夜观看的鲁晟远，被⼤会上播放的视频「Source Code」感动到了。里面的苹果开发者眼神发光，家人谈起他们的语气充满骄傲，让人下意识地相信，他们真的想用手中的代码改变世界。

后来被科学老师邀请参加高中生科学工程竞赛时，鲁晟远突然就意识到，机会来了：自己为什么不能成为一名程序员呢？

![](https://s3.ifanr.com/wp-content/uploads/2023/06/lu.jpg)

▲ 鲁晟远.



他从最基础的 Swift 语法学起，将之前一款边玩边学化学的 app 原型真正做了出来，并且带着它入围了美国州级别竞赛。

身为开发者的兴奋感，转折了人生的十字路口。本来打算学艺术的鲁晟远，申请大学时改成了计算机，现在就读于加州⼤学尔湾分校的计算机科学与商业管理。

其他几位获奖者编程之路的开头，也存在着遥远的相似性。

北京邮电大学⽹络空间安全专业的何正浩，小学三四年级就跟着视频教程学习了中文编程语言，尚显稚嫩的作品被微机课老师展示给全班同学。屏幕共享的瞬间，他被极大地鼓舞到了，不知不觉中在这条道路上越走越远。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/he.jpg)

▲ 何正浩.



高中时，为了参加信息学奥林匹克竞赛，何正浩学习了 C++；高考之后，他又开始学习 iOS 开发，希望做出能在 App Store 上架的、人人触手可及的软件，甚至成为一名自由的独立开发者，让小时候那种与创造有关的成就感重现。

中央财经大学国际经济与贸易专业的戴藏龙，高中时对开发产生了兴趣，并关注到了 Swift 语⾔，阅读了它的开发者文档，但碍于学业压力，大二才选修了 Python，大三又开始自学 Swift，让心中的热情不再束之高阁。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/dai.jpg)

▲ 戴藏龙.



上海商学院日语专业的张祎宁，则是一个相对的非典型案例，从初学者到获奖者的过程里，她遭遇了各种偶然的小插曲。似乎缺少了任何一个，都无法打出这个完美结局。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/zhang.jpeg)

▲ 张祎宁.



去年 9 月，张祎宁在去食堂买饭的路上，碰到了 iOS Club 社团的招新，这是她第一次接触 Swift。计算机系的男友也鼓励她学习编程，在她的 Mac 下载了 Swift Playgrounds，打赌她一定可以入门。

Swift Playgrounds 是适用于 iPad 和 Mac 的一款 app，帮助初学者以互动有趣的方式来学习 Swift 编程语言。张祎宁很喜欢其中轻松有趣的关卡设置。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/ground.jpg)

▲ Swift Playgrounds.



> 谁都能通过 Swift Playgrounds 对编程感兴趣！它更像是一个闯关的游戏。不同的是，你在闯关的过程当中，就可以掌握一些编程的基础知识。

张祎宁之前从没想过自己会学习编程，但在接触 Swift 之后，她觉得学习编程和学习⽇语、英语等世界上的所有语言⼀样，学了日语才能和日本人交流，学了编程才能和计算机交流。

她这次的获奖作品，灵感同样来得有些玄学。今年二三月份的一个晚上，还没有任何想法、焦虑难以描摹的张祎宁，突然梦到了一个场景：在林中湖泊边上垂钓时，钓上来的各种鱼类，自动生成了漂亮的图鉴。

张祎宁是云南人，从小就很向往海边，但大学考到上海之后才第一次参观水族馆。她从梦境延伸出去，最终做出了「Who am I？」这个画风独特的作品。玩家需要代⼊未知海洋生物的身份，在和 NPC 的对谈中，认识海洋⽣物多样性，并解开身份之谜。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/who1.jpg)

▲ Who am I.



游戏里还埋藏着不少巧思。她设计了左右移动，模仿小鱼摆动尾鳍向前游动的样子；她也按照梦境里的模样，让玩家遇到的海洋生物都会自动生成漂亮的图鉴，还为它们写好了与种群特点相符的性格与台词。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/who2.jpg)

▲ Who am I.



作品完成本身，已经克服了张祎宁的「分母心态」——不是专业相关，又是编程小白，灵感也姗姗来迟，有很大的概率成为陪跑。后来，这一切都不重要了。离截止时间大概20分钟，她成功提交了作品。回首来路，张祎宁只想为自己喝彩。

以上 5 位获奖者里，有 3 位是非科班出身，其中 1 位接触编程还不到 1 年。

在每个人的时间线上，契机来得或早或晚，但线与线产生了交缠，让他们在同一场 Swift 学生挑战赛顶峰相见。

### 想法本身并不能够解决任何问题

想法从来不会凭空出现，哪怕张祎宁调侃自己的 app 是梦到的，那也是日有所思夜有所梦，抓住灵感后努力发散，凭借技术让它落地生根。

其他几位获奖者为 Swift 学生挑战赛提交的 app，基本也都是从自身需求出发的。

鲁晟远的「大学申请宝」，功能就体现在名字上，解决让许多美国留学生叫苦不迭的问题。他曾在 B 站发布过一期视频，记录的就是自己与 22 所学校相爱相杀的大学申请季。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/lu1.jpg)

▲大学申请宝.



基于机器学习的大学申请宝，可以智能地选出适合申请的大学名单，并将它们分类成冲刺、匹配和保底校，救留学生们于水火，不再依赖于中介。

何正浩的参赛作品「Scheduled」，则是一个教育类 app。他在大学的操作系统课里学到了调度算法，但文字的呈现方式太过抽象，他决定亲自动手，将它做得直观。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/he1.jpg)

▲ Scheduled.



Schedule 的本意是调度，Scheduled 便是一个模拟操作系统调度的互动类工具，通过生动的视觉呈现，以及深入浅出的名词解释，让非专业用户也能了解一些专业知识，比如操作系统如何在处理器有限的情况下，给各个程序分配计算资源。

类似地，戴藏龙也从专业知识入手，做出了记账应用「DebitCredit」，它的直译为「借贷」，指的不是借款与贷款，而是复式记账法里的借方和贷方。这是⼀种强大、灵活的记账方法，也是当今世界记账方法的事实标准，但使用起来需要一定的会计学知识。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/dai1.jpg)

▲ DebitCredit.



戴藏龙希望通过「DebitCredit」，简化复式记账法，让每个人都能够在没有会计知识的情况下，用它管理自己的财务，看懂公司的财务报表，在投资与工作里受益。

杨昊伦的「Redesigner」，巧妙地结合了交互设计与编程语言，是⼀个帮助开发者学习 UI 设计基础的交互式指南，以「SixD」的名字，上架了 iPad 的 App Store。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/hao1.jpg)

▲ Redesigner.



想法来自杨昊伦的观察：许多开发者的 app 功能强大，但它们的 UI 设计有待提升。「SixD」能够帮助这些开发者，创作出兼具好设计的 app。

除了热爱与坚持之外，他们观察生活的敏锐和别出心裁的想法，同样令人印象深刻。

编程语言，其实就是实践想法的工具，Swift 学生挑战赛，评比的也是如何把想法用 Swift 变成现实的过程。它考验的不只是编程能力，还有创意、设计和解决问题的能力。

所以，除了提交 app 之外，参赛者还会被问到一些问题，包括在生活中有没有通过 Swift 帮别人解决问题、以前有没有 app 上架 App Store 等等。

其实在参加 Swift 学生挑战赛之前，不少获奖者确实已经有了成型的 app，同样是从真实存在的需求获取灵感，或者说日常生活里，本就埋藏着形形色色等待被解决的需求。

今年 5 月 2 日，赶着劳动节出游的热潮，何正浩的 app「Numpkin」上架了 App Store，它的功能是管理团体活动账单。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/he2.jpg)

▲ Numpkin.



灵感缘起于高考后第二天的一场同学聚会。当时，何正浩代付了各项支出，他来回切换备忘录和计算器，计算向每位同学收取多少钱，但因为大家参与的项目不同，复杂的计算过程让他很是头疼，驱使着他开发出一个管理多人支出的 app。

爱好游戏的戴藏龙，则在 2022 年开发出名为「披萨小助手」的 app。这是一款专为《原神》设计的工具，帮助玩家追踪体力等游戏数据，同年 6 月在 App Store 上架。目前，它下载超过了 30 万次，日活用户超过 3 万人。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/dai2.jpeg)

▲ 披萨小助手.



不过，程序员圈经常流行一句话：「不要重复造轮子。」说的是自己觉得没有被解决的需求，可能前人已经解决过了，明知道自己不可能比前辈做得更好，却仍然坚持要做。

这些学生开发者，都不害怕造轮子的情况。在他们看来，当不断追问自己要做什么，其实很难和他人发生完全的碰撞，在产品逻辑、受众群体、细分需求等方面，总会有所差异。

所以，他们既不天真地觉得有完全的原创，充分做好市场调研，又能从自身的需求出发，保持创作的独立性。他们相信，其实并没有那么多轮子，就算有也能造出更好的轮子。

> 只有一个点子，并不能够解决任何问题，也并不意味着任何事情。

杨昊伦所说的这句话，也是其他同学的共识。更重要的事情是，亲自动手将点子实现。

### 理解代码的最好方式是动手去做

Swift 是相对简单的编程语言，但要把它学到真正上手，并非不费吹灰之力。没有绝对好学的编程语言，也不存在和自然语言很接近的编程语言，哪怕是 Swift。

几位获奖者都十分擅长自学，以及利用身边的一切资源，视频、文档、书籍、博客、官方教程、开发者社区、社团俱乐部……哪里能够解决问题，就往哪里而去。

纸上得来终觉浅，绝知此事要躬行。什么是学习编程的最好方式？他们有着一个共同的答案：实践。

在杨昊伦看来，Swift 是「这个星球上最易学的编程语言」，因为它的语法十分易懂，同时有非常丰富的学习素材，能够给到足够的正反馈。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/daima.jpg)

▲ Swift 的基础知识.



正是因为这样，才更应该去做。哪怕你只学会了循环、函数等基础概念，也能够直接进入 SwiftUI，开始写一个真正的 app，甚至看到它在 iPad 上真正运行起来。

> 很多时候，我们并不需要精通 Swift 才能完成⼀个 app 的开发，先去试着开发⼀个简单的 app，不仅能带来更多成就感，很多概念也在开发和查漏补缺中不知不觉地熟悉了。

戴藏龙最开始没有 Mac，就用 iPad 完成了斯坦福 SwiftUI 慕课课程的学习，因为 iPad 也能运行 Swift Playgrounds。

当时，他配了一块键盘，左边摆着 windows 笔记本，右边放着 iPad 撸代码。

> iPad 完全可以胜任学习编程，你并不需要拥有⼀台 Mac 才能开始。

![](https://s3.ifanr.com/wp-content/uploads/2023/06/swift1-2.jpeg)

iPad 也是鲁晟远的重要工具，他刚开始在 Swift Playgrounds 学习时，每天放学回家就打开它完成⼀个章程。

等到掌握了一定基础，他迫不及待地想写「真的」app，于是查找 YouTube 上的教程照葫芦画瓢。

鲁晟远的第⼀个 app 只有⼀个按钮，按一下屏幕变黑，再按⼀下变白。虽然它十分简单，但看着 app 被装在手机上，鲁晟远依然清晰地感觉到，一种难以言表的兴奋涌上心头。

> 我做梦都想成为开发者，现在我突然就成了。

编程没有那么遥远，但也没有那么容易，不必被想象吓到，也不要沉迷案头知识而放弃前进。

苹果在开发者教育上有着这样的理念：Everyone can code。一旦真的开始实践，我们会慢慢感觉到编程的美妙。所以动手去做吧，就像鲁晟远对新手的建议那样：

> 踏出第⼀步是令⼈恐惧的，但⿎励自己试⼀试是非常重要的。也许找⼀个悠闲的下午，打开苹果的教程，试着写几行。我相信任何⼈都可以理解⼀些简单的代码。
