
Banyak afiliasi yang mengetahui
Dmitry shwars Soshnikov (Microsoft) dari laporannya terkait pembelajaran mesin. Dan sekarang dunia ML dan .NET semakin dekat berkat teknologi ML.NET, sehingga laporan baru akan sangat berguna - dan akan ada di DotNext (bahkan dua,
dari Dmitry dan
dari Jeff Proseiz ).
Tetapi kegiatan Dmitry tidak terbatas pada laporan - misalnya, ia juga mempopulerkan teknologi pengembangan di kalangan pemula, termasuk putrinya sendiri. Dan ini adalah topik yang tidak kalah menarik: yang pasti di antara para penonton Habr ada orang tua yang berpikir bagaimana memperkenalkan anak-anak ke IT dengan lebih tepat.
Oleh karena itu, untuk mengantisipasi
DotNext, kami mewawancarai di mana kami mulai dengan biografi Dmitry, kemudian kami berbicara secara rinci tentang pendidikan IT anak-anak - dan pada akhirnya kami menyentuh pembelajaran mesin dan laporan baru tentang hal itu.
Biografi
- Anda dikenal sebagai penginjil teknologi Microsoft, tetapi saya ingin mengetahui biografinya secara lebih rinci: apa yang terjadi sebelum Microsoft, bagaimana Anda masuk ke perusahaan, apa sebenarnya yang Anda lakukan di sana sekarang?- Saya mungkin berkembang sekitar 30 tahun yang lalu. Saya mengembangkan contoh untuk disertasi saya di Jawa, tetapi ketika Microsoft muncul dengan platform .NET, saya menyukainya. Dan saya memimpin pengembangan di .NET dari analog tertentu dari SharePoint untuk perusahaan Amerika, dan pada saat yang sama mengajar di institut - Saya ingin berbagi pengalaman.
Pada titik tertentu, Moscow Aviation Institute mulai berkolaborasi dengan Microsoft dalam berbagai program siswa. Siswa mulai berpartisipasi dalam kompetisi internasional, begitu mereka menempati posisi kedua di dunia. Dan kemudian mereka memberi tahu saya dari Microsoft: "Di sini Anda bekerja dengan siswa di sini, tetapi apakah Anda ingin bekerja dengan siswa bersama kami?" Dan saya pikir itu adalah tawaran yang bagus, karena saya dapat menggabungkan di satu tempat apa yang saya sukai: baik mempopulerkan teknologi dan teknologi itu sendiri.
Tapi dia tidak berhenti mengajar. Tentu saja, itu menjadi kurang terlibat dalam pengembangan, tetapi posisi penginjil di Microsoft terutama masih teknis, itu menyiratkan kenalan konstan dengan teknologi dan sejumlah pemrograman.
Saya senang melakukan ini selama sekitar sepuluh tahun - pada awalnya saya bekerja terutama dengan audiens mahasiswa, kemudian dengan pengembang dan startup, saya bepergian ke seluruh Rusia dengan hackathon beberapa kali, dan membuatnya di universitas besar. Secara umum, itu menarik.
Dan dalam dua tahun terakhir, saya telah terlibat dalam pembelajaran mesin Microsoft dan kecerdasan buatan, mengembangkan proyek percontohan untuk perusahaan internasional besar. Tugas Microsoft sedikit berubah: kami dulu berupaya agar orang-orang meningkatkan produktivitas mereka melalui teknologi, dan sekarang, selain orang, kami membantu perusahaan berpikir tentang bagaimana menerapkan teknologi modern.
Perusahaan tidak selalu mengerti bagaimana mengambil dan mengimplementasikan kecerdasan buatan: data apa yang dikumpulkan, bagaimana melakukannya. Ini adalah hal-hal yang kami bantu lakukan dalam proyek percontohan.
Itu adalah karya yang sangat menarik, karena, di satu sisi, kami melakukan beberapa hal semi-riset, membaca artikel ilmiah, melihat, dapatkah kami melakukan lebih baik daripada yang tertulis di sana, dan banyak rekan dengan latar belakang berbeda, dari Inggris, Norwegia, beberapa di antaranya secara praktis dari lingkungan akademik.
Sekarang saya baru saja kembali ke penginjilan, sekarang disebut advokat pengembang cloud.
- Sebelum bertanya tentang pelatihan orang lain, saya ingin tahu: bagaimana Anda awalnya masuk ke IT dan siapa yang mengajari Anda?- Anehnya, praktis tidak ada yang mengajari saya pada awalnya. Ternyata ketika saya masih sangat muda, saya mencoba merancang radio, saya benar-benar ingin merakit sendiri. Tapi ini sebelum kelas 6, saya tidak tahu fisika dan tidak berhasil karena alasan tertentu, saya mengambil beberapa instruksi yang sudah ketinggalan zaman.
Dan suatu kali ayah berkata: "Lihat, masa depan adalah dalam elektronik digital, bukan analog", dan memberikan "The Art of Circuit Engineering" oleh Horowitz dan Hill. Ini adalah buku teks untuk siswa. Saya mencoba mencari tahu, pada akhirnya saya suka membaca tentang topik ini, mereka mulai membeli buku tentang pemrograman, tetapi tidak ada komputer saat itu.
Dan pada titik tertentu saya berhasil mengambil komputer dari teman untuk sementara waktu, dan saya memulainya ... Kemudian itu adalah program pelatihan dasar, saya ingat, saya sendiri mencoba mencari tahu di sekolah. Tidak ada guru saat itu, ini sebelum tahun 90-an, 1985. Saya belajar memprogram diri saya sendiri: DASAR, PASCAL, Assembler, C. Kemudian saya harus membangun komputer untuk diri saya sendiri - tentu saja, ayah membantu dengan komponen dan dengan perakitan awal dan konfigurasi.
Pertama kali diluncurkan, tentu saja, itu tidak mudah. Tetapi saya bangga bahwa saya ada di suatu tempat di kelas 7-8, ketika rangkaian mikro dimasukkan secara tidak benar ke dalam komputer, asap datang dari sana, dan saya harus memperbaiki komputer ini, dan ada kabel hangus di papan di 5-6 tempat. Itu tidak mudah ditemukan, kami mulai langkah demi langkah, kami menjalankannya dengan cepat, kami menyaksikan bagaimana prosesor membaca instruksi dari memori. Itu sangat berguna, maka seseorang masih bisa mengerti bagaimana komputer diatur, sekarang ini hampir tidak mungkin. Itu adalah saat yang tepat, hanya nostalgia.
Memperkenalkan anak-anak ke TI
- Diketahui bahwa Anda mempopulerkan teknologi bahkan di kalangan anak sekolah - tetapi bagaimana ini terlihat dalam praktik? Sebagai contoh, antara lain, Anda adalah "departemen teknologi komputer terkemuka di perkemahan anak-anak UNIO-R", ada apa?- Dalam prakteknya, semuanya sederhana. Saya memiliki seorang anak perempuan yang sekarang berusia 15 tahun, dan saya benar-benar ingin memperkenalkannya kepada dunia komputer, karena saya dengan tulus percaya bahwa di masa depan begitu banyak profesi akan berada di persimpangan dengannya. Dan apa pun yang ingin dilakukan seseorang, akan lebih mudah baginya jika ia memiliki teknologi komputer.
Dmitry dengan putri VikaAnak saya pergi ke sekolah seni, dia suka menggambar, dan saya mencoba untuk menemukan sesuatu yang baik di suatu tempat di persimpangan - seperti seni generatif komputer. Saya tumbuh bersama dia dan terlibat dalam berbagai kegiatan menarik. Dari hal terakhir yang kami lakukan di Microsoft, ada acara terbuka yang didedikasikan untuk Hari Perempuan di TI, di mana semua orang diundang. Dan mereka merekam pelajaran online tentang pembelajaran mesin dan AI untuk anak-anak berusia 7-8 tahun, sehingga mereka memahami dunia seperti apa kita mulai hidup.
Apalagi pelajaran ini cukup praktis. Ada alat Studio Pembelajaran Mesin Azure yang memungkinkan Anda mempelajari model pembelajaran mesin tanpa keterampilan pemrograman. Dan sebagai contoh dalam kursus ini, kami mengambil foto dari akun Instagram yang populer, dan menggunakan layanan kognitif kami mengeluarkan tanda-tanda: misalnya, warna apa yang berlaku, berapa banyak orang, seberapa bahagia mereka, berapa usia rata-rata, kata kunci, di jalan atau di di dalam ruangan foto diambil.
Dan mereka berusaha menemukan ketergantungan jumlah suka pada tanda-tanda ini. Setelah melatih model regresi sederhana, Anda dapat langsung melihat faktor apa yang memengaruhi jumlah suka.
Tampak bagi saya bahwa bahkan jika anak-anak tidak dapat mengulangi eksperimen semacam itu sendiri, itu membantu mereka memahami bagaimana dunia modern bekerja. Untuk melakukan sesuatu secara optimal, pertama-tama Anda perlu mengumpulkan data, kemudian mengukur, dan kemudian membangun model dan belajar bagaimana memprediksi.
Nah, hasilnya sendiri juga menarik. Saya tidak mengingatnya sepenuhnya, tetapi, misalnya, foto di jalan ternyata memiliki lebih banyak suka daripada di dalam ruangan. Sangat menarik untuk menarik kesimpulan seperti itu. Nah, alat itu sendiri sangat sederhana.
Sejalan dengan ini, ada UNIO-R - ini adalah kamp anak-anak yang diselenggarakan oleh teman saya Yuri Gorvits secara praktis untuk anak-anak kenalan. Informasi disampaikan dari mulut ke mulut, dan perusahaan anak-anak yang mapan bepergian ke sana, setiap tahun seseorang yang baru datang. Gagasan kamp adalah untuk orang dewasa yang tertarik berbagi sesuatu yang baik dengan anak-anak. Anak-anak menghabiskan bagian pertama hari itu di laut, dan bagian kedua mengerjakan proyek yang dipimpin oleh orang dewasa.
Ada berbagai proyek: mereka membuat film, menerbitkan majalah, mengumpulkan robot. Kami melakukan berbagai benda seni menarik dengan elektronik, dengan Arduino. Berdasarkan “turtle graphics”, saya melakukan kursus C # kecil untuk anak-anak ketika mereka melukis. Melakukan sesuatu yang menarik berdasarkan pemrograman di Minecraft.
Ngomong-ngomong, video yang sangat bagus, di kamp lain, di Dilijan di Armenia, kami membuat proyek ketika saya mengajar anak-anak dasar-dasar pemrograman di Minecraft, dan kami memprogram pembangunan kota raksasa. Jelas tidak sulit memprogram rumah, dan kami membangun kota pencakar langit, panjang dan indah.
Saya sangat tertarik bagaimana cara memikat anak-anak dengan hal semacam ini dan apa yang bertanggung jawab untuk itu. Ini sangat menarik dan membawa banyak anak, saya mencari beberapa hal menarik yang rumit.
- Menurut Anda, seberapa tepatnya dan pada usia berapa itu layak memulai pengantar TI?- Tampak bagi saya bahwa adalah baik untuk dibimbing oleh prinsip dari buku "Setelah tiga sudah terlambat", tetapi tidak dengan prinsip yang dimasukkan ke dalam namanya, tetapi oleh yang lain. Ada pemikiran penting: Anda tidak perlu memaksa anak-anak dan bersikeras pada sesuatu, mereka harus berada di tempat yang tepat. Jika Anda sedang membangun komputer, biarkan mereka ada di sana, dan Anda dapat berbicara tentang topik ini. Jika Anda melakukan sesuatu yang menarik, pastikan untuk memberi tahu anak-anak tentang hal itu dan mencoba melibatkan mereka. Tetapi jangan memaksakan untuk melakukan sesuatu dengan paksa. Tidak selalu seperti ini bagi saya, tetapi ini penting.
Adapun usia, ada beberapa penelitian yang menunjukkan bahwa anak-anak di bawah 10 tahun tidak mengerti bahasa teks buatan. Artinya, sampai 10-12 tahun, mereka tidak perlu belajar C # atau Python yang sama. Untuk usia ini, ada bahasa grafis seperti Scratch, yang berjalan dengan baik selama tujuh tahun.
Microsoft memiliki produk hebat, Microsoft Code - ini juga merupakan bahasa blok di mana Anda dapat secara bersamaan memprogram dari blokir, dan Anda dapat beralih ke bahasa seperti JavaScript. Pada titik tertentu, ketika seseorang menjadi sempit dalam pemrograman blok, ia akan dapat dengan mudah beralih dan memahami bagaimana tampilan blok yang sama dalam bahasa teks.
Pendidikan Minecraft dapat diprogram pada Microsoft Code, tetapi sejauh ini belum banyak menyebar di Rusia. Dan di atasnya Kode, Anda dapat memprogram Microbit papan perangkat kecil.
Pada suatu waktu di Inggris ada proyek untuk mendistribusikan papan tersebut kepada anak sekolah untuk pengajaran pemrograman. Ada 25 LED (5x5) di papan, sebuah sensor suhu dan akselerasi - semuanya dalam satu botol. Ini sangat sederhana untuk diprogram, terhubung seperti USB flash drive, file dengan program diunduh ke sana.
Dan Anda dapat melakukan hal-hal luar biasa dari "bit mikro". Mereka memiliki radio bluetooth, sehingga mereka dapat berkomunikasi satu sama lain. Ada proyek yang benar-benar luar biasa. Dari yang saya ingat, ini adalah proyek di mana proses infeksi disimulasikan. Sebagai contoh, kami sedang menulis sebuah program yang, dengan beberapa kemungkinan, menjadi terinfeksi dari papan semacam itu di dekatnya. Sangat menarik bagaimana infeksi ini menyebar pada sekelompok anak-anak: setiap orang memiliki gaji, dan kami melihat siapa yang sakit dan siapa yang tidak. Ternyata setengah pelajaran biologi, setengah ilmu komputer.
Pendidikan modern sebagian besar berusaha mengadopsi hal-hal interdisipliner tersebut. Untuk guru asing, ini lebih berkembang, saya membacanya di Twitter. Misalnya, Minecraft untuk pendidikan. Tetapi Anda masih bisa mencoba mengajari anak Anda sesuatu dan melihat ke arah proyek multidisiplin.
- Tentang Gores yang disebutkan di atas, kadang-kadang seseorang dapat mendengar "baik, sangat berbeda dari bahasa" nyata "sehingga tidak akan benar-benar mempersiapkan anak-anak untuk realitas apa pun." Dan apa kata praktik Anda: apakah anak-anak berhasil beralih dari bahasa blok ke teks?- Di sini saya kurang berlatih, tetapi bagi saya sepertinya transisi seharusnya tidak terlalu menyakitkan. Konsep dasarnya sama: loop, variabel, dan sebagainya. Menurut pendapat saya, setelah memperoleh konsep-konsep itu, menempatkannya dalam bahasa lain seharusnya tidak begitu sulit.
Di sisi lain, ini harus didekati tanpa fanatisme. Tidak perlu berpikir bahwa jika pada awalnya Anda tidak mengajar anak Scratch, dan pada usia 10 atau 12 ia tidak mulai belajar Python, maka ia akan terlambat di suatu tempat. Mungkin Anda tidak perlu terburu-buru dan melakukannya tanpa Scratch.
Juga, jangan mengajar anak di bahasa industri berusia 7 tahun. Ia sudah terbiasa bermain mainan, dan di sini Anda perlu menulis segala macam "void main".
- Tentang “segala macam kekosongan utama” Kai Horstmann memberi tahu kami bahwa demi kenyamanan mengajar pemula ia mencoba menyingkirkan “halo dunia” di Jawa ini, tetapi usulannya tidak diterima. Apakah Anda merasa bahwa bahasa seperti C # tidak ramah untuk pemula dan belum dibuat ramah menjadi sia-sia?- Saya pikir mereka bisa dibuat lebih ramah dalam pelatihan. Sebagai contoh, dari pengalaman kursus video saya “Exciting C # Programming”: Anda tidak dapat sepenuhnya menghilangkan “void main”, tetapi Anda dapat mengatakan “abaikan semuanya, lihat hanya di tempat Anda menulis sesuatu”.
Dan ternyata sintaks bahasa itu sendiri tidak begitu berat. Tentu saja, dalam bahasa-bahasa seperti itu pernyataan for rumit: alih-alih mengatakan "ulangi 10 kali", lebih sulit untuk menulis. Tapi secara keseluruhan, pengalaman belajar C # tidak lebih sulit dari Python. Dengan Python, coba jelaskan kepada anak Anda mengapa menulis untuk saya dalam kisaran (10).
Di sisi lain, ada pengalaman positif menyederhanakan bahasa. yang dilakukan oleh pencipta lingkungan pemrograman Arduino dan lingkungan pemrograman Pemrosesan. Arduino didasarkan pada C ++, Processing - tampaknya didasarkan pada JavaScript atau Java, tetapi mendukung Python. Pemrosesan dibuat untuk desainer, Arduino dibuat untuk insinyur elektronik yang tidak ingin memahami pemrograman. Oleh karena itu, semuanya dilakukan di sana sehingga perlu untuk menulis lebih sedikit di sekitar, kebanyakan hanya kode itu sendiri.
Lingkungan ini berhasil berkembang dan sangat populer. Karena itu, ya, Anda dapat menyederhanakan bahasa yang ada sehingga dapat digunakan dalam pembelajaran. Dengan Python, Anda harus menanamkan penyederhanaan minimum, karena itu sudah cukup sederhana. Plus, ada berbagai alat untuk itu, termasuk Jupiter Notebooks, dan, omong-omong,
Notebook Azure benar-benar indah, tersedia dari cloud secara gratis, dengan dukungan untuk mode presentasi, perpustakaan, dll. Semua ini sangat nyaman digunakan untuk pelatihan.
- Kembali ke kata-kata "maka seseorang masih bisa mengerti bagaimana komputer diatur." Setelah lebih mudah untuk memahami situs: seorang siswa dapat membuka situs favoritnya, melihat ke dalam kode HTML-nya dan mulai melakukan sesuatu sendiri. Dan pada tahun 2019, ambang pintu masuknya jauh lebih tinggi, siswa akan mengutuk segalanya bahkan pada tahap pengaturan lingkungan. Apakah ini masalah mencegah keterlibatan generasi baru?- Tampak bagi saya bahwa masalah utama adalah bahwa harapan kami untuk apa yang kami sebut situs telah meningkat. Jika Anda mengambil situs klasik dalam desain akademik pada tahun 1991, sekarang orang akan melihatnya dan merasa ngeri.
Area subjek sendiri menjadi lebih rumit. Untuk membuat situs seperti Facebook, Anda harus terbiasa dengannya. Pada saat yang sama, perpustakaan, kerangka kerja, bahasa menjadi bagian dari perjuangan dengan kompleksitas. Ada lingkungan pemrograman yang relatif sederhana dan entah bagaimana mengambil kompleksitas ini.
Dan tidak perlu berpikir bahwa pemrograman web jauh lebih rumit daripada yang lain. Arduino memiliki kesulitannya sendiri, di sana Anda harus dapat menghubungkan elektronik. Tidak begitu terhubung - semuanya akan terbakar.
Kesulitan utama dalam pemrograman web adalah bahwa ada frontend dan backend, dan Anda perlu memahami dan memahami cara kerjanya. Tetapi sangat mungkin untuk memulai dengan yang sederhana. Pada akhirnya, menjadikan diri Anda beranda adalah kegiatan yang menyenangkan dan bermanfaat. Untuk mulai dengan ini, dan jika seseorang tertarik, dia akan mengembangkan dan memperdalam arah ini.
Sayangnya, masalah umum adalah bahwa sekarang sulit bagi seseorang untuk menjadi universal. Sebelumnya, setiap programmer bisa memiliki backend dan front end, dan jika perlu bahkan assembler, tetapi sekarang orang yang bergerak dalam bidang elektronik dan mampu assembler tidak mungkin memprogram dalam gaya pemrograman fungsional reaktif. Hanya karena sulit untuk dipeluk.
- Anda menyebutkan bahwa Anda melihat banyak contoh "interdisipliner" asing, dan di Rusia ini kurang. Dan bagaimana situasi secara umum berhubungan dengan pendidikan IT anak sekolah di Rusia dan luar negeri?"Yah, aku hanya berlangganan komunitas seperti Minecraft dalam Pendidikan, dan itulah sebabnya aku melihat banyak contoh interdisipliner asing - misalnya, ketika seorang guru sejarah berkata," Aku memberikan tugas untuk membangun medan perang bersejarah di Minecraft. " Sepertinya saya bahwa kita tidak memiliki cukup sehingga ada begitu banyak kebebasan di sekolah. Biasanya guru mengajar pelajarannya dan tidak benar-benar memalingkan muka.
Dalam hal pendidikan IT, kami memiliki banyak peluang. Ada kamp anak-anak yang sangat kuat bagi mereka yang ingin melakukan IT, ada GoTo, sebuah sekolah musim dingin di perguruan tinggi fisika dan teknologi. Ingin menemukan tempat. Untuk anak-anak juga ada - "League of Robots", "Kodabra", sejumlah besar perusahaan swasta, yang menutup ceruk ini dengan baik.
Dan sekolahnya juga tidak terlalu buruk: misalnya, inisiatif internasional "The Hour of Code" (ketika sekolah dipanggil untuk menghabiskan satu jam dan menunjukkan bagaimana pemrograman bekerja) tiga tahun lalu didukung oleh Kementerian Pendidikan dan Kementerian Komunikasi. Dan ada angka yang sangat mengesankan untuk jumlah siswa yang lulus "Hour of Code" dan mencoba melakukan sesuatu dengan tangan mereka sendiri. Ini ada di Rusia dalam jutaan anak sekolah.
Seseorang yang belum pernah mendengar pemrograman, saya pikir, entah bagaimana dipeluk dan mendengar sesuatu. Karena itu, menurut saya semuanya tidak buruk. Tapi, tentu saja, statistik masih menunjukkan bahwa ada kekurangan orang di TI: ada banyak dari mereka, dan banyak yang berpikir bahwa itu tidak mudah dan mengapa menyulitkan kehidupan.

AI
- Beralih dari topik anak-anak ke topik AI / pembelajaran mesin, kami bertanya tentang keduanya. Jadi, sekali ayah memberi tahu Anda, "Masa depan ada dalam elektronik digital" dan ternyata dia benar. Dan jika sekarang kita memperkenalkan anak-anak pada IT, kita juga perlu memikirkan untuk apa masa depan - karena pada saat mereka datang ke industri, itu sudah akan datang.
Tetapi masa depan bagi kita tidak jelas. AI sedang berkembang, tapi di mana itu dalam 10 tahun? Beberapa orang berpikir bahwa secara umum kode akan mulai menulis untuk kita. Dalam situasi yang sulit dipahami, apa yang harus kita bicarakan?- Sepertinya saya bahwa kita pasti perlu berbicara tentang kecerdasan buatan. Masalah dengan AI bukanlah bahwa komputer akan segera mulai menulis kode untuk kita, tetapi banyak tugas sekarang diselesaikan bukan dengan menulis kode, tetapi dengan mengumpulkan data dan melatih ML. Dan tidak ada tempat untuk pergi: ada tugas yang seseorang menulis kode dengan baik, dan masuk akal bagi mereka untuk menulis kode. Tetapi ada tugas-tugas yang seseorang tidak dapat menulis kode, dan kemudian Anda harus menggunakan ML.
Dan karena kenyataan bahwa ML memungkinkan Anda untuk memecahkan masalah yang semakin kompleks, dibutuhkan lebih banyak ruang di gudang spesialis komputer. , , -, , - . , , , .
, - . , : .
, . , , , , . - . - , — , , . , .
. , , . - , - , - , - .
. , , , , . , , , - . , , , , . 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.