点击上方↑↑↑蓝字关注我们~

2019 Python开发者日」,购票请扫码咨询 ↑↑↑

作者 | 若名

出品 | AI科技大本营(ID:rgznai100)

当所有中国的高中生都在拼命为跨过高考这道窄门疲惫不堪时,美国的准高中毕业生们也开始申请大学,北京某国际学校的陶子进是其中一员,他的眼神中似乎看不出慌张感。

今年 18 岁的陶子进出生在美国芝加哥,11 岁的时候由于父亲工作的原因随全家回到北京生活。

回国后,在国际学校就读的他仍然成长在美国教育体系下,与国内的同龄人被淹没在繁重的学业压力下相比,陶子进在学习之余还坚持拉小提琴、下棋、击剑,成绩都还不错。

近两年他还喜欢上了编程,当国内的大部分同龄人还在死磕数学题时,他已经做了十几个编程小项目,除了兴趣使然,当然也受到了家庭影响。其父亲是一位连续创业者——涛思数据 CEO 陶建辉。说起陶子进学编程的经历,陶父认为主要是美国教育体系下成长的学生知识面很广,而国内的高中生除了准备高考的课程内容,没有时间和精力考虑太多。

随着对编程语言了解的更加深入,陶子进开始通过参赛来检验自己的编程水平。

在今年 2 月初结束的由大学生和高中生组队参加的MIT Battlecode 比赛上,600多个参赛队伍中,陶子进和四人团队在全球所有参赛队伍中拿到第 9 名,高中生团队中排名高居第 4。

(左一为陶子进,右边依次为队友 Alex、Drason,Tom 连线参加颁奖)

Battlecode 是一款即时策略游戏,参赛者通过两两对战决出胜负。每年的比赛目标任务都会有变化,今年双方需要编写 AI player,通过管理机器人资源并执行不同的攻击策略来摧毁对方的城堡。参赛者将需要学习使用 AI, pathfinding 插件,分布式算法和网络通信技术以使自己的 AI player 尽可能具有竞争力。 整个比赛历时一个月,前十六强在麻省理工学院进行比赛,奖金总额超过 50000 美元。它目前已成为发掘优秀程序员的选拔赛。

这是陶子进第二次参加 Battlecode 大赛,他称这是 MIT 最硬核的 AI 编程比赛,因为特别难做,经常要写程序到半夜,才有机会进入前 16 ,他们整个团队在最后一个星期的比赛中,有好几次到了凌晨 4 点还在编程。

对编程的激情离不开陶子开始学编程时做的小项目,积累更多经验后,才能在大赛中施展拳脚。就此,AI科技大本营与陶子进就参与 Battlecode 的过程和感受,高中生入门学编程的经验进行了交流,其背后也呈现出美国教育体系下学生成长路径的一个切面。

不可否认,纵然家庭环境对陶子进的成长非常关键,而成长在中国教育体系下的大部分高中生没有多少可比性,因为大多数人都没有其他选择。即便如此,至少在编程学习方法和路径上,陶子进的个人学习经验对国内高中生甚至大学生来说是具体、可执行的操作建议。也不止于编程,从他身上,你更应该看到那种超越国内大部分同龄人都还未拥有的广阔眼界和认知。

再战 Battlecode

AI科技大本营:为什么还要再次去挑战 Battlecode 比赛?

陶子进:去年打完以后就去看其他人写的 code,看到各种各样的比赛方法,学习后感觉今年有更好的改变,再加上今年我用的编程语言是 JavaScript,写得更快。另外,我近期也参加了华尔街对冲基金 TwoSigma 的 Halite AI 比赛,全球共有来自 100 多个国家的 4000 多个队伍参加, 我最终排位第 66,属于击败 Benchmark 的前 94 个队之一。在参赛的全球 500 多高中生中,排名第 5,在中国区参赛队中排名第 2。它比 Battlecode 比赛更简单,但是拿第一必须得用好多其他方法,我也积累了一些比赛经验。

AI科技大本营:比赛中主要使用了哪种编程语言?

陶子进:这是第二次参赛,团队的其他三个成员都是我同学。去年第一次参赛的成绩不太理想,当时总排名是前 32,在国际的选手中是前 16。我们第一年用的语言是 Java,今年用的是 Javascript,其他比赛队伍有使用 Java 的,Python 也是有的,但 JavaScript 其实更快。

AI科技大本营:你们在比赛中是如何编写算法来制定战略?取胜的关键点是什么?

陶子进:你要编写一种能够在引擎上运行的算法,然后结合比赛中的地图和已经给出的数据,来给出最好的策略,比如写的某个策略是你用来控制整张地图的,如果你获得更多的机器人资源,你就会比竞争对手更好,但如果你写的程序超过 20 毫秒都没有响应,那可能就会输掉比赛。比赛的第一周基本都是写 Foundation,这样后面写的策略都可以加进去,

每个队伍都有自己的策略,然后你要看他们的用的是哪种策略,因为这种比赛可能有 A、B 和 C 三种策略,你得先选一个好的,然后再看你对方在做什么,完了再改你自己的,但由于比赛时间有限,有些策略是没时间去做的,所以你要全局考虑进行应对。

AI科技大本营:拿到这么高的名次,你们团队还有哪些做得比较好的地方?

陶子进:我们经常会看别人以前的比赛,仔细研究为什么输了或者赢了,这会提醒我们在比赛中要做出改变,比如最后一次比赛中就用了观察到的新策略让我们进入了前 16。其次是我们写程序算是比较快的,比如要对 DFS(深度优先算法)很熟悉,马上能在几十秒内就写完,所以加新的策略很容易,没有花那么多时间在 Foundation 框架上。

AI科技大本营:比赛过程中遇到比较困难的地方有哪些?当时是怎么解决的?

陶子进:困难的就是 debug,因为这次比赛中没有明显给我们提示程序哪个地方出了错,所以还是耗了好多时间找到问题来解决。

AI科技大本营:比赛最刺激的经历是什么?

陶子进:赛程是 22 天,特别短。有意思的是你必须要选做什么,没有足够的时间找到最优解,必须得选要写 A 还是写 B,做数学计算,估计它的重要性。当然,最后我们团队拿到了第九名,主办方给了我们 1750 美元奖金。

AI科技大本营:团队止步第九名,哪里出现了失误?

陶子进:每一场比赛里面都是随机地图,你得做出很好的判断去适应这些地图,第二句和第三局(双淘汰机制)我们都没有做好。赢了我们的那个团队,其实平常我们是打败他们的,只是这一次他们有一点小幸运。

编程入门之道

AI科技大本营:你是从什么时候对编程感兴趣的?

陶子进:六年级的时候接触过编程,但当时并没有产生兴趣,真正开始学编程是在高中十年级的时候,最近两年,做的项目也更多了,对编程产生了更大兴趣。去年开始写程序的时候,是从 JavaScript 和 CSS 开始写的,逐渐开始对编程感兴趣,通过 JavaScript 还学了 Processing.js, Node.js。

AI科技大本营:主要通过哪些途径学习编程?

陶子进:主要是看网上的资源,一些在大学里开始学计算机的朋友给我推荐了一些网站,对我帮助挺大的。另外我自己有几本 CS 书和 Script 类的书,这两者还是有关系的。

AI科技大本营:有哪些可以推荐的学习网站?

陶子进:美国的 edX 课程(注:edX 是麻省理工和哈佛大学于 2012 年 4 月创建的大规模开放在线课堂平台),还有 freecodecamp, Github 和 MDN Web Docs 网站,比如我要做软件的话,就会从 Github 上找到我需要的库,我最基础的编程能力都是从这些网站学来的,不会的东西都是靠维基百科现搜。

AI科技大本营:除了参加编程比赛,你都做过哪些项目?

陶子进:现在大概做了十几个项目。去年 10 月,我和另一个人帮北京一所小学写了一个读英文书 ese 学习平台,帮助小学生学英语,平常记录他们读书的时间,通过这个平台可以检测学生是真的读,还是在玩游戏。

还有一个圣诞节做的“teachers appreciate week”的小程序,通过扫二维码,把祝福和感谢的话发送到大屏上,然后显示出来,后台统计有超过 400 人扫码。

很多小项目都是通过我自己在微信跟人聊,觉得好玩的才去写的。一个比较大的项目是 Polytomizator,这是一个 web 小程序,当你上传照片到这个网站上的时候,它可以几秒钟生成 Poly 艺术照,但如果你要用 Photoshop 处理照片的话,可能需要很长时间。它主要是用 JS 和 HTML 来做的。

还有一个是让人玩的 Cut-Bread 的小程序,它可以均匀切割面包、水果等事物,比如图片上有两个面包一个火腿,可以让你一刀切下去保证一半是火腿,一半是面包,我也不知道为什么,但这个小游戏已经有数千人玩过了。

更多项目可查看 GitHub 网站:

https://stonet2000.github.io/projects.html

AI科技大本营:让你不断去做这些项目的动力是什么?

陶子进:做这些项目很有成就感,因为都是很容易可视化的成果,这其实是比较好的。但如果一开始不是直接写程序,而是学离散数学这些理论知识,我觉得自己不会对编程产生兴趣,但我知道那些东西是需要学的。

AI科技大本营:这应该跟美国教育的风格相关。

陶子进:是,我有个老师之前教了一些基本的编程原则,教得很好,而且美国人的教法特别注重你自己要做点什么东西。

AI科技大本营:你爸妈都会编程,家庭环境的影响也是一部分?

陶子进:会有影响,会讲一些基本概念,但并没有具体辅导。

AI科技大本营:马上要读大学了,申请了哪些学校?准备读什么专业?

陶子进:申请了 MIT 等 10 所大学。因为我现在做了这么多 CS 项目,现在主要想学的是 CS,但也不一定说大学还想去做,我也不是特别知道我想干嘛,所以我特别想去美国,因为美国学校可以让你(自由)选择。

(本文为 AI大本营原创文章,转载请微信联系 1092722531

精彩推荐

「2019 Python开发者日」演讲议题全揭晓!这一次我们依然“只讲技术,拒绝空谈”10余位一线Python技术专家共同打造一场硬核技术大会。更有深度培训实操环节,为开发者们带来更多深度实战机会。更多详细信息请咨询13581782348(微信同号)。

推荐阅读:

  • 技术头条

  • 收藏指数爆表!CVPR 2018-2019几十篇优质论文解读大礼包! | 技术头条

  • 分析11年21部漫威电影,一览导演、主演、口碑票房最佳......

  • 靠找Bug赚了6,700,000元!他凭什么?

  • 30位90后霸榜! 福布斯: 比你年轻、比你有颜、比你有才华, 就是他们了!

  • 程序员深夜逆行被拦后崩溃欲自杀:老板在催我!女朋友在催我!

  • 微软 CTO 韦青:“程序员 35 岁就被淘汰”是个伪概念 | 人物志

  • OpenStack已死?恐怕你想多了 | 技术头条

❤点击“阅读原文”,查看历史精彩文章。

00后的AI开发者进阶之道:从入门到鏖战MIT编程大赛 | 人物志相关推荐

  1. 00 后的 AI 开发者进阶之道:从入门到鏖战 MIT 编程大赛 | 人物志

    作者 | 若名 责编 | 胡巍巍 出品 | AI科技大本营(ID:rgznai100) 当所有中国的高中生都在拼命为跨过高考这道窄门疲惫不堪时,美国的准高中毕业生们也开始申请大学,北京某国际学校的陶子 ...

  2. 00后抵达AI战场,初三学生研究与顶会投稿论文“撞题”用Python构建系统监测婴儿的母乳摄入量

    未来,连宝宝吃奶的情景都超出你的想象. 每吸一口母乳,都有定量记录.在人工智能技术的帮助下,只需要一个App,就可以很便捷的监测婴儿的母乳摄入量. 更超出你想象的是,这个App,来自几名00后.上海市 ...

  3. 泪目!上海00后小伙AI「复活」奶奶,100%还原音容笑貌,却引发巨大争议

    [导读]最近,00后小伙用AI技术和奶奶实现「对话」,数字生命要成为现实了吗? 你有没有特别想念的人?可能ta是你的亲人,也可能是你的伴侣. 无论ta是谁,在我们的回忆中永远有他们的一席之地,他们一辈 ...

  4. 20年的 .NET ,更需要 00 后的你

    .NET 20 周年, 在国内有一大批和 .NET 一起成长的开发者,有一大批在不同行业采用 .NET 作为解决方案的企业.或者你会经常听到很多的大神说他的 .NET 经历,也会听到 .NET &qu ...

  5. 00后写个暑假作业,被监控成这笔样

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 羿阁 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 乍一看, ...

  6. 小白如何逆袭为AI大牛?00后大学生凭借昇腾AI为粮食加工保驾护航

    作者 | 伍杏玲 出品 | CSDN 哈尔滨工程大学智能科学与工程学院2023级直博生 邵琦 守护粮食供应安全,用科技提升农业加工行业智能化水平,为国家粮食加工保驾护航. 你可能觉得这对普通人来说是& ...

  7. 00后当道,今秋开学的AI专业的本科生究竟学什么?

    500万AI人才缺口,必须从本科抓起!正值开学季,不少同学在刚刚过去的夏天,选择了心仪的专业,即将迈入大学校门.上个月,清华.南大.西交大等26所高校联合申请设立AI本科专业,国内第一批AI本科大学生 ...

  8. 00后的开发者都出现了,我们是甘于现实还是征战未来?

    2019年12月7日,DevRun Summit:Login 2020 将正式登陆"751 D·PARK北京时尚设计广场 79 罐.第一车间".无论80后.90后还是00后,只要是 ...

  9. 昇思MindSpore超级英雄榜发布!超300位开发者入选国内首个AI开源社区开发者进阶榜单...

    点击蓝字 MindSpore 关注我们 小说界有武侠英雄榜,游戏界有王者英雄榜,那么AI届的超级英雄榜,你了解多少呢?作为人工智能届的明珠昇思MindSpore,从2020年3月28日开源至今,已有4 ...

最新文章

  1. mount --bind
  2. XML配置文件的命名空间与Spring配置文件中的头
  3. 每日一皮:原型还可以啊,怎么上线后就这样了。。。
  4. What is corresponding Cron expression to fire in every X seconds, where X 60? --转载
  5. 表贴电阻尺寸与什么有关_PCB板上为什么要“贴黄金”?
  6. 深度学习笔记:windows+tensorflow 指定GPU占用内存(解决gpu爆炸问题)
  7. 华为服务器参数配置文件,最实用的华为配置基础手册.doc
  8. python 导入自己写的类_python中自己的类不能被导入
  9. 二分法求函数的零点(信息学奥赛一本通-T1241)
  10. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet
  11. java最广泛的运行环境_Java运行环境下载|Java SE Runtime Environment(Java运行环境)8.0.131 官方多语言正式版_ - 极光下载站...
  12. php关键技术,基于Apache+MySQL+PHP的关键技术分析
  13. 自动化测试中的测试执行自动化
  14. 数据分析五板斧与里面的屠龙刀(下)
  15. 巴特沃斯、切比雪夫、贝塞尔滤波器详解:(区别,特点,电路图)
  16. 使用超大电路集成的计算机,使用超大规模集成电路制造的计算机应该归属于()...
  17. 抽象代数的代码实现(6)自同构、正规子群、商群
  18. Mybatis查询oracle之clob类型
  19. Java调用有道翻译API包括APPID/密钥地址注册
  20. RAC环境scan ip详解

热门文章

  1. 原创jQuery移动设备弹出框插件——msgalert.js
  2. MSN 无法登录 错误代码 8007007e
  3. Java 最常见的 10000+ 面试题及答案整理:持续更新
  4. 深度学习最常用的10个激活函数
  5. 2018-3-15模式识别--学习笔记(一)
  6. MySQL全面优化,速度飞起来
  7. ThinkPHP 3.1.2 视图 1
  8. 利用属性封装复杂的选项
  9. vb.net与matlab的混合编程
  10. 【转帖】SQLServer登录连接失败(error:40-无法打开到SQLServer的连接)的解决方案...