Как школьника научить программированию?

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
LeoV
Графоман
Сообщения: 14497
Зарегистрирован: 02 июн 2012, 15:41
Откуда: Графство O'Mан
Контактная информация:

Re: Как школьника научить программированию?

Сообщение LeoV »

Kate писал(а):Можно еще вопрос задать. Как научить программировать ребенка, которому не интересны ни компы, ни игры, не телевизор? Ответ - никак :) А нафиг оно ему надо? Пусть живет безмятежно...
Я хочу, чтоб мои дети работали в кресле в офисе с кондиционером. На крышу пусть канадцы лезут...
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 43462
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby

Re: Как школьника научить программированию?

Сообщение Stanislav »

LeoV писал(а):
Kate писал(а):Можно еще вопрос задать. Как научить программировать ребенка, которому не интересны ни компы, ни игры, не телевизор? Ответ - никак :) А нафиг оно ему надо? Пусть живет безмятежно...
Я хочу, чтоб мои дети работали в кресле в офисе с кондиционером. На крышу пусть канадцы лезут...
Если дети не способны к этому - они будут хреновыми программистами... Может попробовать другуя профессию с офисом и кондишенами?
Аватара пользователя
Groundhog
Графоман
Сообщения: 5082
Зарегистрирован: 20 авг 2005, 16:36
Откуда: Vancouver

Re: Как школьника научить программированию?

Сообщение Groundhog »

Stanislav писал(а):
Pektusin писал(а):
Stanislav писал(а):В случае PC - разумеется не на Васике. Но вы же можете дописать необходимое (да хоть в кодах процессора) в интерпретатор JS (который тоже суть последовательность кодов процесора) - чиста для случая вашего контроллера? :roll: И вуаля - теперь любой лох, знающий JS, может писать фирмваре
Не можете. Тут я вступаю на чуждый для себя юзерланд, и могу ошибаться, но для выполнения джава байт-кода создается виртуальная машина, у которой нет доступа к физической памяти. Взамен, вы должны дергать соответствующие API, которые в итоге приведут куда? В драйвер.
К тому же, не стоит забывать о том, что драйвера должны быть быстрыми. Поэтому их пишут на С, реже - на С++. Например, в качестве датапоинта: практически весь framework (это еще не драйвера, а скорее middleware) Андроида написан на джаве, однако наиболее критичные его компоненты, такие как SurfaceFlinger или hwComposer, отвечающие за графику, являются native приложениями и написаны на C++.
JS != Java, т.е. JS настолько не Джава, что ни о каких виртуальных машинах и байт-кодах речи не идет.
Производительность - не проблема. Когда появились компилируемые языки, никто и предположить не мог, что интерпретаторы вернутся и покорят мир :-) При современном развитии процессорного дела на Западе (с) когда телефон в ваших руках уже на порядок (или более) мощнее ЕС ЭВМ и предполагая, что вы достаточно молоды, я и говорю, что вы доживете до того дня, когда всякие контроллеры (которые суть те же компутеры) станут универсальным - в них просто будут загружать минимальный БИОС + интерпретатор какой-нить хрени, типа JS и дальше каждый программер будет дописывать зажигание лапочек под нужды своей компании :-)
Кстати вспомнил такие-же предательские разговорчики о Джаве - мол АРМ чипы с аппартно реализованной/ным Джава интерпритатором/виртуальной машиной - пшик однако вышел - не пошло-с. Чипы были разработаны и... ни у кого на них как гoвoрится не встал...
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Re: Как школьника научить программированию?

Сообщение Marmot »

Groundhog писал(а):
Marmot писал(а):
Groundhog писал(а):Ксати о GO -ежели бы он еще не позволял совместную память использовать в тредах - цены бы ему не было (мое мнение).
Это он как нефиг делать, ксати, а вот наличие GC делает его абсолютным импотентом в плане драйверов :)
Может мусорщика как-то можно отключить? А лучее к С прибамбасы GO add. Мужик вот библиотечку http://libmill.org/ наскрябал - в С каналы/аналы , корутины всякие разные GO style.
Пофиг Go, Rust выглядит куда как интереснее в плане системного программирования, ИМХО...
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Re: Как школьника научить программированию?

Сообщение Marmot »

LeoV писал(а):
Kate писал(а):Можно еще вопрос задать. Как научить программировать ребенка, которому не интересны ни компы, ни игры, не телевизор? Ответ - никак :) А нафиг оно ему надо? Пусть живет безмятежно...
Я хочу, чтоб мои дети работали в кресле в офисе с кондиционером. На крышу пусть канадцы лезут...
Лоеры, врачи, etc тоже неплохо кондиционируются...
Аватара пользователя
LeoV
Графоман
Сообщения: 14497
Зарегистрирован: 02 июн 2012, 15:41
Откуда: Графство O'Mан
Контактная информация:

Re: Как школьника научить программированию?

Сообщение LeoV »

Marmot писал(а):
LeoV писал(а):
Kate писал(а):Можно еще вопрос задать. Как научить программировать ребенка, которому не интересны ни компы, ни игры, не телевизор? Ответ - никак :) А нафиг оно ему надо? Пусть живет безмятежно...
Я хочу, чтоб мои дети работали в кресле в офисе с кондиционером. На крышу пусть канадцы лезут...
Лоеры, врачи, etc тоже неплохо кондиционируются...
boring...
Аватара пользователя
тортикабысейчас
Маньяк
Сообщения: 1192
Зарегистрирован: 23 авг 2011, 13:45
Откуда: Санкт-Петербург

Re: Как школьника научить программированию?

Сообщение тортикабысейчас »

LeoV писал(а):
Marmot писал(а):
LeoV писал(а):
Kate писал(а):Можно еще вопрос задать. Как научить программировать ребенка, которому не интересны ни компы, ни игры, не телевизор? Ответ - никак :) А нафиг оно ему надо? Пусть живет безмятежно...
Я хочу, чтоб мои дети работали в кресле в офисе с кондиционером. На крышу пусть канадцы лезут...
Лоеры, врачи, etc тоже неплохо кондиционируются...
boring...
вы бы знали сколько в програмерской работе рутины - так бы не писали ;)
Аватара пользователя
LeoV
Графоман
Сообщения: 14497
Зарегистрирован: 02 июн 2012, 15:41
Откуда: Графство O'Mан
Контактная информация:

Re: Как школьника научить программированию?

Сообщение LeoV »

тортикабысейчас писал(а):
LeoV писал(а):
Marmot писал(а):
LeoV писал(а):
Kate писал(а):Можно еще вопрос задать. Как научить программировать ребенка, которому не интересны ни компы, ни игры, не телевизор? Ответ - никак :) А нафиг оно ему надо? Пусть живет безмятежно...
Я хочу, чтоб мои дети работали в кресле в офисе с кондиционером. На крышу пусть канадцы лезут...
Лоеры, врачи, etc тоже неплохо кондиционируются...
boring...
вы бы знали сколько в програмерской работе рутины - так бы не писали ;)
Программирую всю жизнь.... :D
Pektusin
Маньяк
Сообщения: 4496
Зарегистрирован: 02 янв 2008, 10:37

Re: Как школьника научить программированию?

Сообщение Pektusin »

Marmot писал(а):У меня создалось впечатление, что вы даже не посмотрели, что это за язык такой... и сможет ли он дейтсвительно заменить С ...
Сейчас краем глаза глянул - в каком-то смысле развитие С++, плюс защита памяти и какая-то встроенная поддержка concurrency. А что, кто-то пишет на нем что-то кроме приложений?
Pektusin
Маньяк
Сообщения: 4496
Зарегистрирован: 02 янв 2008, 10:37

Re: Как школьника научить программированию?

Сообщение Pektusin »

тортикабысейчас писал(а):такое подходит если человек уже что-то умеет, а если с нуля - слишком сложно.
Это не так. Достаточно посмотреть на скетчи ардуино - там все тривиально. Все хитрости упрятаны в драйвера, а вам остается только написать "лампочка зажгись" :)
Аватара пользователя
Marmot
Графоман
Сообщения: 38345
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Re: Как школьника научить программированию?

Сообщение Marmot »

Pektusin писал(а):
Marmot писал(а):У меня создалось впечатление, что вы даже не посмотрели, что это за язык такой... и сможет ли он дейтсвительно заменить С ...
Сейчас краем глаза глянул - в каком-то смысле развитие С++, плюс защита памяти и какая-то встроенная поддержка concurrency. А что, кто-то пишет на нем что-то кроме приложений?
Дык, его только зарелизили где-то пару месяцев назад... поживем, увидим...
Но драйверы на нем точно можно делать... в отличие от...
Pektusin
Маньяк
Сообщения: 4496
Зарегистрирован: 02 янв 2008, 10:37

Re: Как школьника научить программированию?

Сообщение Pektusin »

Stanislav писал(а):Производительность - не проблема. Когда появились компилируемые языки, никто и предположить не мог, что интерпретаторы вернутся и покорят мир :-) При современном развитии процессорного дела на Западе (с) когда телефон в ваших руках уже на порядок (или более) мощнее ЕС ЭВМ и предполагая, что вы достаточно молоды, я и говорю, что вы доживете до того дня, когда всякие контроллеры (которые суть те же компутеры) станут универсальным - в них просто будут загружать минимальный БИОС + интерпретатор какой-нить хрени, типа JS и дальше каждый программер будет дописывать зажигание лапочек под нужды своей компании :-)
Хорошо, что вы мне все это рассказали, теперь буду знать :) Я как раз занимаюсь телефонами и прочими подобными системами. И, собственно, про телефон и рассказывал вам, говоря о том, что в Андроиде где, казалось бы, все на джаве, ан нет - самые критичные места middleware написаны на С++. вы, наверное, пропустили этот текст... Несмотря на несколько гигагерцовых ядер, hw аксселераторы итд.

А упомянутые контроллеры, в общем-то совершенно другая история. Там обычно ограниченные ресурсы, дефицит памяти, задачи растут, железо за старается поспевать за ними... не смотря на рост мегагерц и мегабайт, лишних в embedded все равно нет.
Pektusin
Маньяк
Сообщения: 4496
Зарегистрирован: 02 янв 2008, 10:37

Re: Как школьника научить программированию?

Сообщение Pektusin »

Marmot писал(а):Но драйверы на нем точно можно делать... в отличие от...
Для этого надо портировать все на Rust: и кёрнел, и HAL, и драйвера, и сопутствующую инфраструктуру- ведь никто не будет компилировать один отдельный драйвер другим тулчейном. Легче заново написать :) При том, что С вполне справляется со своими задачами. Вряд ли это случится в обозримом будущем, по крайней мере с mainstream системами. А вот что приложения на нем будут писать - вполне верю.
Pektusin
Маньяк
Сообщения: 4496
Зарегистрирован: 02 янв 2008, 10:37

Re: Как школьника научить программированию?

Сообщение Pektusin »

Stanislav писал(а): Сначала апологеты ассэмблера кричали: да где вы видели хоть один драйвер, написанный на С ! Это же ужасно медленно!
Потом апологеты С кричали - да где вы видели хоть один драйвер, написанный на С++ ! Это же ужасно медленно!
Драйвера никто и не писал на ассемблере, ну разве что при царе Горохе или в каких-то самых критических случаях, и то в виде вставок в Си-код. Си тем и хорош, что очень хорошо ложится в машинный код. А на асме в-основном пишется стартап код загрузчиков, который готовит процессор к старту кода на С. И платформенный код на С++ - тоже достаточно редкая вещь, хотя иногда его использование оправдано, например, в графике. Тут, кстати, надо понимать, что драйвер может быть и в юзерспейсе, например OpenGL, тогда появляется тонкая грань что считать драйвером, а что приложением или сервисом.
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 43462
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby

Re: Как школьника научить программированию?

Сообщение Stanislav »

Pektusin писал(а):
Stanislav писал(а):Производительность - не проблема. Когда появились компилируемые языки, никто и предположить не мог, что интерпретаторы вернутся и покорят мир :-) При современном развитии процессорного дела на Западе (с) когда телефон в ваших руках уже на порядок (или более) мощнее ЕС ЭВМ и предполагая, что вы достаточно молоды, я и говорю, что вы доживете до того дня, когда всякие контроллеры (которые суть те же компутеры) станут универсальным - в них просто будут загружать минимальный БИОС + интерпретатор какой-нить хрени, типа JS и дальше каждый программер будет дописывать зажигание лапочек под нужды своей компании :-)
Хорошо, что вы мне все это рассказали, теперь буду знать :) Я как раз занимаюсь телефонами и прочими подобными системами. И, собственно, про телефон и рассказывал вам, говоря о том, что в Андроиде где, казалось бы, все на джаве, ан нет - самые критичные места middleware написаны на С++. вы, наверное, пропустили этот текст... Несмотря на несколько гигагерцовых ядер, hw аксселераторы итд.
А упомянутые контроллеры, в общем-то совершенно другая история. Там обычно ограниченные ресурсы, дефицит памяти, задачи растут, железо за старается поспевать за ними... не смотря на рост мегагерц и мегабайт, лишних в embedded все равно нет.
Тупой я - сразу не собразил. Уже есть такие контроллеры! Типичный пример - DRAC - Dell Remote Access Card (другие роизводители имеют аналогиные продукты). Размер - пол-ладони. Там у него полный фарш: ЦПУ, память , видео, сетевая карточка, ХДД в виде флэшки, БИОС, ОС. Управляет работой сервера через веб интерфейс. Виртуальная консоль / DVD - через JavaApplet. GUI - через веб интерфейс - полное удаленное управление сервером. Скорость работы весьма хорошая. Цена впроса - от 50 до 300 баксов в зависимости от комплектации. Да, сейчас там нет nodeJS. Но я уверен, что подобные контроллеры уже образуют приставку "Smart" ко многим "TV" :D
Дело за малым - нужен новый Стив Джобс, который убедит хомячков, что им непременно нужно управлять холодильником, телевизором, микроволновкой, кофеваркой, термостатом и т.д. со своего мобильного телефона. Такие контроллеры начнут штамповаться миллиардами, каждой кофемолке нужен будет свой фирмваре. И как вы думаете, производители кофемолок будут нанимать программеров С++ ? Не думаю - просто в мире нет столько С++ программеров :-) Китайцы просто вляпают в контроллер nodeJS, а производители наймут писак от программирования, которые окончили 3-х месячные курсы JS :D Дешево и сердито :D
А теперь сюрпрайз. Почему JS ? Потому что критические места - красивая графика и т.д, будут выполняться не на ЦПУ / видео контроллера, а на вашем браузере используя ресурсы вашего компа / телефона! И не надо контроллеру никакого HW акселератора :D
Ответить