如何将孩子介绍给IT以及如何在.NET中使用ML:Dmitry Soshnikov(Microsoft)访谈



许多关联企业都从他与机器学习有关的报告中了解到Dmitry shwars Soshnikov (Microsoft)。 现在,借助ML.NET技术,ML和.NET的世界越来越紧密,因此一份新的报告将非常有用-它只会出现在DotNext上(甚至有两个, 来自DmitryJeff Proseiz )。

但是,德米特里(Dmitry)的活动不仅限于报道-例如,他还在初学者,包括他自己的女儿中普及了开发技术。 这同样是一个有趣的话题:在Habr的听众中,肯定有一些父母在思考如何更正确地向孩子介绍IT。

因此, 出于DotNext的期待我们采访了我们从Dmitry的传记开始的地方,然后我们详细讨论了儿童的IT教育-最后,我们谈到了机器学习和有关它的新报告。

人物传记


-您被称为Microsoft的技术传播者,但我想更详细地了解这本传记:Microsoft发生了什么事情,您是如何进入公司的,您现在在那做什么?

-我大概在30年前就在开发。 我用Java开发了一个示例,但是当Microsoft提出.NET平台时,我很喜欢它。 我曾为一家美国公司在.NET上开发了SharePoint的某种类似物,并同时在该研究所任教-我喜欢分享自己的经验。

在某个时候,莫斯科航空学院开始与Microsoft合作开展各种学生计划。 一旦获得世界第二名,学生便开始参加国际比赛。 然后他们从Microsoft告诉我:“您在这里与学生一起工作,但是您想与我们一起与学生一起工作吗?” 我认为这是一个很好的选择,因为我可以在一个地方将自己喜欢做的​​事情结合起来:技术的普及和技术本身。

但是他没有退出教学。 当然,从事开发工作变得越来越少了,但是在Microsoft的传播者的职位仍然主要是技术性的,这意味着对技术和一定数量的编程的不断了解。

我很高兴能做到这一点大约十年-首先,我主要与学生观众合作,然后与开发人员和初创公司合作,我多次参加黑客马拉松游遍了整个俄罗斯,并在大型大学学习。 总的来说,这很有趣。

在过去的两年中,我一直从事Microsoft机器学习和人工智能的研究,为大型国际公司开发试点项目。 微软的任务正在发生一些变化:我们过去一直在努力通过技术来提高人们的生产力,现在,除了人们之外,我们还帮助公司考虑如何实施现代技术。

该公司并不总是了解如何采用和实施人工智能:要收集什么数据,如何做。 这些是我们在试点项目中帮助完成的工作。

这是一项非常有趣的工作,因为,一方面,我们做了一些半研究性的事情,阅读了科学文章,看上去,我们可以做得比那里写的更好吗?还有来自英国,挪威和许多不同背景的同事,实际上来自学术环境。

现在,我只是回到传福音,现在被称为云开发者倡导者。

-在询问其他人的培训之前,我想知道:您最初是如何进入IT的,谁教了您?

-令人惊讶的是,最初几乎没有人教过我。 原来,当我还很小的时候,我就尝试设计收音机,我真的很想组装自己的收音机。 但这是六年级之前的事,我不懂物理,由于某种原因它没有解决,我接受了一些过时的指示。

父亲曾经说过:“看,未来是数字电子,而不是模拟”,霍洛维兹和希尔发表了“电路工程的艺术”。 这是给学生的课本。 我试图弄清楚,最后我喜欢阅读这个话题,他们开始购买编程书籍,但是那时没有电脑。

在某个时候,我设法从朋友那里带了一台电脑,然后就开始使用它了……那是一个基本的培训计划,我记得,我本人试图在学校弄清楚它。 那时没有老师,那是在九十年代1985年之前。 我学会了自己编程:BASIC,PASCAL,Assembler,C。然后我不得不为自己建立一台计算机-当然,我父亲在组件以及初始组装和配置方面提供了帮助。

当然,第一次启动并不容易。 但是令我感到骄傲的是,我当时处于7-8年级的某个年头,当时微电路未正确插入计算机,烟雾从那里冒出来,我必须修理这台计算机,并且板上的5-6个地方有烧焦的电线。 很难找到它,我们一步一步地开始,我们对其进行了实时运行,我们观察了处理器如何从内存中读取指令。 这非常有用,那么一个人仍然可以理解计算机的排列方式,现在几乎不可能了。 那是一个美好的时光,只是怀旧。

向儿童介绍IT


-众所周知您甚至在学童中都普及了技术-但是这在实践中看起来如何? 例如,除其他外,您是“ UNIO-R儿童营地计算机技术的领导部门”,这是什么?

-实际上,一切都很简单。 我有一个现在15岁的女儿,我真的想向她介绍计算机世界,因为我真诚地相信,将来会有很多专业与他交往。 而且,不管一个人想做什么,如果拥有计算机技术,对他来说将变得容易得多。


德米特里与女儿维卡

我的女儿上艺术学校,她喜欢绘画,而我正在尝试在交叉路口的某个地方找到一些不错的东西-例如计算机生成艺术。 我和她一起成长,并参与各种有趣的活动。 从我们在Microsoft做的最后一件事开始,有一个专门针对IT妇女节的公开活动,邀请了所有人。 他们还为7至8岁的孩子录制了有关机器学习和AI的在线课程,以便他们了解我们开始生活在什么样的世界中。

此外,这些课程非常实用。 有一个Azure Machine Learning Studio工具,可让您无需编程技能即可学习机器学习模型。 作为本课程的示例,我们从一个受欢迎的Instagram帐户拍摄了照片,并使用认知服务提取了一些标志:例如,流行什么颜色,多少人,他们有多高兴,他们的平均年龄,关键字,在大街上还是在街上在室内拍照。

他们试图找到喜欢次数对这些迹象的依赖性。 训练了简单的回归模型后,您可以立即看到哪些因素会影响喜欢的人数。

在我看来,即使孩子们自己不能重复这样的实验,它也可以帮助他们了解现代世界的运作方式。 为了达到最佳效果,您首先需要收集数据,然后进行测量,然后建立模型并学习如何进行预测。

好吧,结果本身也很有趣。 我记不清它们了,但是,例如,街上的照片原来比室内的照片更多。 得出这样的结论很有趣。 好吧,该工具本身非常简单。

与此同时,还有UNIO-R-这是我的朋友尤里·戈维特斯(Yuri Gorvits)专门为相识的孩子们组织的儿童营。 信息从一个嘴传到另一个嘴,每年都有新来的人陪伴着一家老少皆宜的儿童。 营地的想法是为有兴趣与孩子分享美好事物的成年人提供的。 儿童一天的第一部分在海上度过,另一半则在成人的带领下进行项目。

有各种各样的项目:他们制作电影,出版杂志,收集机器人。 我们通过Arduino用电子设备完成了各种有趣的艺术品。 基于“乌龟图形”,我为孩子们绘画时做了一个小型的C#课程。 基于Minecraft的编程做了一些有趣的事情。

顺便说一句,然而,在亚美尼亚Dilijan的另一个营地中,一个很好的录像带,当我教孩子们《我的世界》编程基础知识时,我们做了一个项目,并为一个巨型城市的建设进行了编程。 显然,对房屋进行编程并不难,我们建造了一座摩天大楼,长而美丽。



我对如何用这种东西吸引孩子及其原因很感兴趣。 它非常吸引并带动了许多孩子,我正在寻找一些棘手的有趣的东西。

-在您看来,开始介绍IT的确切年龄和年龄是多少?

-在我看来,最好遵循“三点之后为时已晚”一书中的原则,但不要以书名中的原则为指导。 有一个重要的思想:您不需要强迫孩子并坚持某些事情,他们需要在正确的位置。 如果要构建计算机,请让它们在那里,然后可以讨论此主题。 如果您正在做一些有趣的事情,请务必将这些告诉孩子们,并尝试让他们参与进来。 但是不要强行做某事。 对于我来说,并不总是这样,但这很重要。

至于年龄,有一些研究表明10岁以下的孩子不能很好地理解人工文字。 也就是说,直到10-12年,他们才不需要学习C#或相同的Python。 在这个时代,有像Scratch这样的图形语言,使用了7年就行了。

Microsoft有一个很棒的产品Microsoft Code-它也是一种块语言,您可以在其中同时从块中编程,也可以切换到类似JavaScript的语言。 在某个时候,当一个人陷入了块编程的局促时,他将能够轻松切换并理解相同块在文本语言中的外观。

Minecraft Education可以使用Microsoft Code进行编程,但到目前为止在俄罗斯还没有普及。 并在它上面的代码中,可以对小型设备板上的Microbit进行编程。

在英格兰,有一个项目计划将这种板子分发给学童,以教授程序设计。 板上有25个LED(5x5),一个温度和加速度传感器-全部装在一个瓶子里。 编程非常简单,它就像USB闪存驱动器一样进行连接,带有该程序的文件已下载到其中。


您可以通过“微比特”来完成令人惊奇的事情。 它们具有蓝牙无线电,以便彼此通信。 有绝对惊人的项目。 据我所记得,这是一个模拟感染过程的项目。 例如,我们正在编写一个程序,该程序很可能会从附近的此类主机板感染。 有趣的是,这种感染是如何在一组儿童中传播的:每个人都有薪,而我们看谁生病,谁没有生病。 事实证明,一半是生物学课程,一半是计算机科学。

现代教育在很大程度上试图采用这种跨学科的东西。 对于外国老师来说,这是更完善的,我在Twitter上了解到。 例如,用于教育的Minecraft。 但是您仍然可以尝试教您的孩子一些东西,并着眼于多学科项目。

-关于提到的Scratch,有时可能会听到“嗯,它与“真实”语言有很大不同,以至于不能真正让孩子适应任何现实。” 您的做法是什么:孩子能否成功从母语转换为文本?

-在这里我的练习较少,但是在我看来过渡应该不会很痛苦。 基本概念是相同的:循环,变量等。 我认为,掌握了这些概念之后,将其放入另一种语言应该不会造成灾难性的困难。

另一方面,必须毫无狂热地对待这一问题。 不必认为,如果一开始您没有教孩子Scratch,并且在10或12岁时他没有开始学习Python,那么他将在某个地方迟到。 也许您不应该草率​​而没有Scratch。

另外,请勿以7岁的工业语言教孩子。 他习惯于玩玩具,在这里您需要编写各种“ void main”。

-关于“各种各样的虚空主干”,凯·霍斯特曼 Kai Horstmann) 告诉我们,为了便于教学初学者,他试图摆脱Java中的“ hello world”,但是他的提议未被接受。 您是否觉得像C#这样的语言对初学者不友好,并且没有白白地变得友好起来?

-我认为可以使他们在训练中变得更加友善。 例如,根据我的视频课程“令人兴奋的C#编程”的经验:您不能完全摆脱“ void main”,但可以说“全部忽略,只看写东西的地方”。

然后事实证明,该语言本身的语法并不那么灾难性。 当然,在这种语言中,for语句很复杂:与其说“重复10次”,不如说很难写。 但总体而言,C#学习经验并不比Python难。 在Python中,尝试向您的孩子解释为什么要为范围(10)中的i写作。

另一方面,在简化语言方面有积极的经验。 这是由Arduino编程环境和Processing编程环境的创建者完成的。 Arduino基于C ++,处理-似乎基于JavaScript或Java,但支持Python。 处理是为设计师设计的,而Arduino是为不想了解编程的电子工程师设计的。 因此,所有操作都在此完成,因此有必要减少所有编写的内容,主要是代码本身。

这些环境正在成功开发并且非常受欢迎。 因此,是的,您可以以某种方式简化现有语言,以便在学习中使用它们。 在Python中,您需要嵌入最少的简化,因为它已经非常简单了。 此外,还有多种工具可用于其中,包括Jupiter Notebooks和顺便说一句,绝对出色的Azure Notebooks ,可从云上免费获得,并支持演示模式,库等。 所有这些都非常方便用于培训。

-回到“那时人们仍然可以理解计算机的布置方式”的字眼。 一旦更容易理解网站:学生可以打开自己喜欢的网站,查看其HTML代码,然后自己开始做某事。 并且在2019年,入学门槛更高,即使在搭建环境的阶段,学生也会诅咒一切。 这是防止新生代参与的问题吗?

-在我看来,主要的问题是,我们对我们所说的站点的期望有所提高。 如果您在1991年采用经典的学术设计网站,那么现在人们会看到它并感到恐惧。

主题领域本身变得越来越复杂。 要创建类似Facebook的网站,您需要习惯它。 同时,库,框架和语言也参与了复杂性的斗争。 有些编程环境相对简单,并且以某种方式承担了这种复杂性。

无需认为Web编程比其他任何编程都要复杂得多。 Arduino有其自身的困难,您需要能够连接电子设备。 并非如此-一切都会燃烧。

Web编程的主要困难是有一个前端和后端,您需要了解并理解它的工作方式。 但是很可能从一个简单的例子开始。 最后,使自己成为主页是一项非常愉快而有用的活动。 首先,如果一个人感兴趣,他将朝着这个方向发展和加深。

不幸的是,一个普遍的问题是,现在一个人很难成为一个普遍的人。 以前,任何程序员都可以同时使用后端和前端,必要时甚至可以使用汇编器,但是现在从事电子技术并能够汇编程序的人不太可能以反应式函数式编程的方式进行编程。 只是因为很难拥抱。

-您提到您看到许多国外“跨学科”的例子,而在俄罗斯则更少。 总体而言,情况与俄罗斯和国外的中小学生的IT教育有何关系?

“好吧,我只是加入了Minecraft in Education这样的社区,这就是为什么我看到很多外国跨学科示例的原因-例如,当一位历史老师说:“我承担了在Minecraft中建立历史战场的任务。” 在我看来,我们没有足够的自由在学校里读书。 通常,老师教他的科目,并不会真正地移开视线。

在信息技术教育方面,我们有很多机会。 对于那些想做IT的人来说,有非常强大的儿童营地,而物理技术学院的一所冬季学校GoTo。 希望找到一个地方。 对于非常小的孩子来说,还有“机器人联盟”,“ Kodabra”等一大堆这样的私人公司,它们很好地封闭了这一利基市场。

而且学校也不是那么糟糕:例如,三年前的国际倡议“代码小时”(在学校被称为花费一小时并展示编程的工作原理)得到了教育部和交通部的支持。 对于通过“ Hour of Code”并试图用自己的双手做些事情的学生人数来说,这是一个非常令人印象深刻的数字。 在俄罗斯有数百万的学童。

我认为,一个从未听说过编程的人以某种方式被拥抱并听到了一些东西。 因此,在我看来,一切都还不错。 但是,当然,统计数据仍然表明IT人才短缺:他们很多,许多人认为这并不容易,为什么生活会变得复杂。



人工智能


-从儿童的话题到AI /机器学习的话题,我们同时询问这两个问题。 因此,一旦爸爸告诉您“数字电子的未来”,他就证明是正确的。 如果现在我们要向儿童介绍IT,那么我们还需要考虑未来的发展方向-因为当他们进入这个行业时,它已经来了。

但是对我们来说,未来并不明显。 人工智能正在发展,但是十年后会在哪里呢? 有人认为,一般而言,代码将开始为我们编写。 在这种不可理解的情况下,我们该谈什么呢?

-在我看来,我们绝对需要谈论人工智能。 AI的问题不在于计算机会立即开始为我们编写代码,而是许多任务现在不通过编写代码来解决,而是通过收集数据和训练ML来解决。 而且无处可去:有些任务的人可以很好地编写代码,并且他们编写代码是合理的。 但是有些任务是人们无法编写代码的,因此您必须使用ML。

由于ML可以解决日益复杂的问题,因此它占用了计算机专家越来越多的空间。 , , -, , - . , , , .

, - . , : .

, . , , , , . - . - , — , , . , .

. , , . - , - , - , - .

. , , , , . , , , - . , , , , . JS- — .NET - , , .

- , - . , .

— — ?

— — , . , . 15-20 , .

, , , . , , — , . Semantic Web Semantic Web, - .

, — « ». — , . .

, , , , , , . - .

— ML.NET , early adopters. , , ? ?

— , , , , - . , , . , : ML.NET Python, - -. , , , , . , , Python , , . ML.NET — , DotNext.

, , - , ML.NET — , . « » , .

, . ML.NET 0.6, , . , , ML.NET , , .

— . .NET , Python, .

— — , ML.NET. DotNext , — ?

— : , . , , ! , , , ML .NET : , . — .

, .NET. , — , , . - . ML.NET , , , .

, ML.NET , . — , , — , .



, , , , , , , . transfer learning, ML.NET . , — Custom Vision, Microsoft, .

, , , , ML.NET.

DotNext ML.NET ( ) 6-7 . . , , «F# Coding Dojo on Machine Learning» — F#, ML.NET.

Source: https://habr.com/ru/post/zh-CN470399/


All Articles