本文转载自新智元
自古英雄出少年!15岁00后开发者获WWDC 2019奖学金并受邀参会。WWDC奖学金用于奖励有才华的学生和STEM组织成员,并有机会参加WWDC大会。今年获奖学金的中国学生共有31名,其中最小的开发者于伟奇年仅15岁是一名初中生,获奖作品只用了两个周末时间写代码和文档。
15岁的时候你在做什么?
有的人在埋头读书;有的人约朋友玩网络游戏;有的人沉迷于交友软件;而有的人已经成为iOS App的开发者,成功获取苹果WWDC奖学金并受邀进入WWDC现场。
从2004年开始,苹果设立WWDC奖学金计划,以此来激励学生发挥想象力、尽情展示iOS编程才能和热情。
每一年,苹果公司的评审团会对作品的内容、创造力和技术含量进行判断,挑选至多350名学生,授予他们奖学金并邀请参与WWDC大会。获奖学生将有可能获得价值1599美元的大会门票,以及免费的差旅和住宿。
获得WWDC奖学金申请资格,必须具备以下条件:
- 13岁及以上,相关司法管辖区的相应最低年龄(例如,欧盟是16岁)
- 注册被认可的学术机构或官方家庭学校
- 在过去6个月内拥有中学毕业或同等学历毕业,等待获得认可的学术机构的录取
- 成为STEM组织的活跃成员。该组织可以是任何具有会员计划的组织,该计划在普通学校课程之外教授科学、技术、工程或数学,并且在法律上被认为是非营利组织
- 作品必须是由个人创建的Swift playground或由个人修改的模板。不会考虑小组作品或Xcode项目
- 作品必须使用Swift Playgrounds 2.2或Xcode 10.1构建并运行。如果它在Swift Playgrounds 2.2上运行,则必须进行优化以在所有型号的iPad Pro上正确显示
- 所有内容必须是英文的
- zip文件大小不超过25 MB
- 评论是线下的,所以Swift playground不应该依赖网络连接
- 需要一段500字的英文个人介绍
中国区共31名学生获奖,15岁少年于伟奇成最年轻开发者
在今年的350位获奖学生中,来自中国的学生共有31位。其中27位来自大陆;3位来自中国香港;1位来自中国台湾。而这31个人中最年轻的,是15岁的于伟奇。提起其他获奖选手,于伟奇不禁感叹:“都是大佬!”
于伟奇来自江苏省,目前就读于无锡外国语学校,念初三,爱好ACGN文化。在GitHub和Stack Overflow上的用户名叫做Captain Yukinoshita Hachiman,取自于日漫《Oregairu》,中文译作《我的青春恋爱喜剧果然有问题。》,也译作《果然我的青春戀愛喜劇搞錯了。》,是日本作家渡航所创作的轻小说,插画由ponkan⑧负责。
他能够成为一名苹果软件开发者并获得WWDC奖学金,要归功于小学时候读的《乔布斯传》,以及家长买来的一台iPad 2。后来,他了解到苹果每年都会举办WWDC,并且有一个奖学金激励计划,这引起了他极大的兴趣。
紧接着Swift的发布,勾起了他想要亲自动手写代码的欲望。于是开始通过书籍、网上的视频以及一些苹果大牛的博客,自学Swift。
初一下学期他软磨硬泡,终于说服家长买了一台苹果电脑,从一名爱好者变成了一名开发者。
于伟奇开发的第一个作品叫做BirthReminder,主要的功能是让用户管理自己喜爱的ACGN角色的生日,该App已上架App Store,地址:
https://itunes.apple.com/cn/app/birthreminder/id1375252429?mt=8
这款app操作也非常简单。其中内置了很多ACGN角色信息,用户可以手动输入二次元角色信息,也可以通过自带的“在线信息”来一键导入所喜欢的角色的信息,然后添加即可。该App还允许用户贡献本地的角色信息到“在线信息”中,帮助完善这个数据库。
BirthReminder同时支持iOS与watchOS,并提供多种扩展组件,如今日扩展(iOS)与复杂组件(watchOS)。
BirthReminder会在角色生日当天通过系统通知的方式来提醒用户,用于伟奇的话说:“妈妈再也不用担心我忘记老婆们的生日了 *:.。. o(≧▽≦)o .。.:*”。该App在App Store上获得了4.9的高分。
去年,他曾以一个物理学透镜相关的作品申请WWDC奖学金,但是该作品遗憾落选。今年,他凭借一款叫做Cryptography & Privacy的作品,成功入选WWDC奖学金。
于伟奇希望借此能够让人们对数据传输过程中,在线隐私的重要性引起更多关注。该项目已开源,代码托管在GitHub上:
https://github.com/CaptainYukinoshitaHachiman/Cryptography-and-Privacy
获奖并不难,作品只花了2个周末时间
Cryptography & Privacy向用户介绍了最基本的密码学知识,首先在过场动画中讨论了隐私的重要性,然后讲述了对称和非对称加密的概念,最后提供了一个真实的实践,要求用户在虚构的应用程序中实现“安全聊天”功能。
为了实现上述功能,使用了以下框架/技术:
- HTML5 CSS3 JavaScript
- UIKit
- Security
- CommonCrypto
- PlaygroundSupport
- Markup
Web技术实际上是使用Hype自动生成的,由此创建了过场动画。
UIKit用于创建实时视图。通过UIView的子类化做了自定义视图并做了一些自定义绘图。创建了一个实时视图,向用户显示消息的传输方式,以便获得更直观地体验。
Security和CommonCrypto用于实现加密内容。
显然,PlaygroundSupport用于控制playground book。但是这个playground远不止于此。通过使用PlaygroundSupport,这本playground book充分利用了永远在线的实时视图,这意味着它可以更加互动,因此可以提供更好的用户体验。
快捷工具栏中的完成也是自定义的,这为用户提供了一种干净的写代码方式。最后一页支持所有执行模式,这可以帮助用户跳过实时视图动画或减慢它,以便可以更好地理解。
最后,所有关于加密概念的内容都是用Markup编写的。
至于在作品上花费的精力,于伟奇称主要是一边要学习、一边又要搞开发,两边都不能落下。
由于他是住校生,工作日要在学校完成繁重的学业,所以只能在周末回家赶工。时间紧任务重,于伟奇花了两个周末时间,在deadline当天,通宵完成了所有代码和文档。
去学校后第一堂课就是英语考试,结果因为太累了考试中途睡着,只拿了第二名。
虽然第一次申请WWDC奖学金失败了,不过于伟奇并不认为获奖是一件困难的事情。
他认为一个playground作品,最重要的是“内容”,换句话说就是要有实际价值,单纯的炫技意义不大。
从他这次获奖的经历来看,横在他获奖道路上的最大障碍不是“题目太难”而是时间不够。
获得WWDC奖学金的经历,并没有降低父母对他“沉迷电脑”的不满,仍然成天抱怨他时间都花在了电脑上。他自己对此也有一个非常清醒的认识,并没有骄傲自满,而是认为今后需要学习更多的硬核知识。
给同龄人的一些建议
在接受媒体采访时,于伟奇对有兴趣学习苹果软件开发,以及希望能够拿到WWDC奖学金,获得进入WWDC现场机会的同龄人,给出了6点建议:
- 学习Swift语言,推荐没有编程经验的使用Playgrounds学习。有基础的也可以直接看The Swift Programming Language
- 学习iOS/macOS/watchOS/tvOS的开发框架。对于iOS,推荐观看斯坦福大学出品的公开课CS193p;历年WWDC的Session和官方文档Apple Developer Documentation也都是很好的资料
- 接触开源,尝试使用GitHub。这样不仅可以学习别人的项目,使用开源的第三方库从而避免造轮子,也可以分享自己的代码,或对其他人的项目进行贡献
- 对于希望获取WWDC奖学金的,可以通过历年WWDC Session了解Swift Playgrounds的相关开发方式。也可以阅读WWDC18奖学金指北。
- 多看大佬们的博客,如Apollonian Blog、GUANSHAN S DEV ZONE、Krzysztof ZabłockiBlog、objc.io Blog、SWIFT BY SUNDELL等
- 技术书籍推荐objc.io等的技术书籍。对Swift语言特别感兴趣的话,不妨去多了解一下Swift Evolution
对于未来,于伟奇也有很清晰的规划。他希望能够去美国学习计算机科学专业,并能够继续从事苹果软件开发,目前也正打算开发一个表情包管理app。
自古英雄出少年,这位少年已经站在了更高的起跑线上。