Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4380
0
Помогите пожалуйста решить задачи
24th November, 23:53
6084
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Рекомендации по запуску дочернего программирования
Какие языки и инструменты, по вашему мнению, должен использовать начинающий программист в современную эпоху?
Многие из нас начинали с проприетарных основ, и они не причинили всем нам долгосрочного вреда :) но учитывая опыт, который вы имели с тех пор, и ваши знания о домене теперь есть лучшие варианты?
Есть связанные с этим вопросы, такие как " лучшие способы научить новичка программировать? "и" один совет " о том, как начать взрослое программирование, на оба из которых я представил ответы, но детям может потребоваться другой инструмент.
Раскрытие информации: чертовски трудно выбрать ответ 'correct' на подобный вопрос, поэтому тот, кто когда-либо имел лучший результат за несколько дней, получит отметку 'best answer' от меня, основываясь на выборе сообществ.
Я бы предложил LEGO Mindstorm, он обеспечивает интуитивно понятный интерфейс перетаскивания для программирования, а поскольку он поставляется с аппаратным обеспечением, он обеспечивает что-то осязаемое для ребенка. Кроме того, поскольку это "LEGO", они могут думать об этом скорее как об игре, чем как о программировании.
Моя дневная работа - в школе, и за последние несколько лет я видел или учил (или пытался учить) различных детей, в различных количествах, урокам программирования.
Дети все разные - некоторые быстро учатся, некоторые нет. в частности, некоторые имеют лучшие навыки грамотности, чем другие, и это определенно влияет на скорость, с которой они будут осваивать программирование. Держу пари, что большинство из нас здесь, как профессиональные компьютерные программисты и люди, которые читают и пишут на форумах для удовольствия, научились читать в довольно молодом возрасте. Для таких детей, и если это ваш собственный ребенок, которого вы можете научить one-on-one, вы можете сделать хуже, чем JavaScript - у него есть преимущество, что вы можете делать реальные вещи с ним сразу, и цикл редактирования-тестирования просто нажимает "refresh" в браузере. Это становится запутанным, когда вы начинаете работать в том, как JavaScript делает все асинхронно, и сложно отлаживать, но для умного ребенка при близком обучении эти проблемы могут быть преодолены.
LEGO Mindstorms определенно находится в верхней части списка. Большинство школ теперь супер-склеивают кирпичи вместе, чтобы создать готовые модели, которые не могут иметь отколотых от них кусочков, но это не должно быть проблемой дома. На сайте образовательного дополнения Times (форум веб-сайта для еженедельной учебной газеты UK) тема "what programming language is best for children?" появляется довольно регулярно. Там много рекомендаций для Scratch в качестве альтернативы Mindstorms - немного больше свободы, чем Mindstorms, опять же, вероятно, лучше для более умного студента, которому также можно дать паяльник.
Я обнаружил, что более медленные ученики все еще могут иметь проблемы с Mindstorms, даже если среда программирования "graphical" - там все еще много происходит на экране, и есть довольно много, чтобы помнить (это была более старая версия, ум - еще не пробовал шикарный новый). По моему опыту, лучшим всесторонним введением в Программирование, вероятно, все еще является LOGO - на самом деле значительно более мощный язык, чем большинство людей полагают. Оригинальная книга Mindstorms Сеймура Паперта (ничего общего с LEGO - они украли название книги для своего продукта), одного из создателей LOGO, является канонической ссылкой для обучения программированию детей как "thinking skill" и для концепции конструктивизма в обучении.
У нас были занятия с 7 или 8-летними детьми по программированию LOGO. Обратите внимание, что мы не стремимся сделать их "разработчиками программного обеспечения", это карьерный путь, который они могут выбрать в какой-то момент после 16 лет. В юном возрасте мы пытаемся заставить их думать о "computer programming" как о еще одном инструменте-как задать проблему, которую нужно решить с помощью компьютера, точно так же, как они могут использовать карту разума, чтобы помочь им организовать и запомнить материал для экзамена. Ни один бедный ребенок не должен сидеть сложа руки и вдалбливаться в детали и использование определенного языка, они должны быть оставлены, чтобы исследовать и выяснить вещи, как им нравится.
Я поддержу предложения Джеффа о Фрограмме (раньше было KPL) и Алисе .
Мое единственное другое предложение- Lego Mindstorms NXT . Язык программирования NXT - это drag-and-drop, он очень прост в использовании и может выполнять некоторые очень сложные задачи, как только вы его изучите. Кроме того, маленьким мальчикам обычно нравится видеть, как что-то движется. :)
Я использовал Алису и NXTs с некоторыми маленькими детьми, и они очень хорошо к этому привыкли.
Есть две возможности:
Скретч-разработано на MIT - http://scratch.mit.edu/
и
EToys от одного ноутбука на ребенка слава- http://wiki.laptop.org/go/Squeak
Полное раскрытие: я один из тех парней, которые изобрели детский язык программирования , который теперь http://www.Phrogram.com, который другие рекомендовали здесь. Позвольте мне добавить некоторую информацию, ориентированную на программиста.
Это код IDE, а не drag-and-drop, или на основе конструктора. Это было намеренно с нашей стороны - мы хотели, чтобы было легко и весело заниматься реальным текстовым программированием, особенно программированием игр и графики. Это принципиальная разница между нами и Алисой и скретчем. То, что вы выберете, зависит от ребенка, его возраста и способностей, ваших целей. Использование их последовательно с одним и тем же Новичком может быть отличным способом - если вы сделаете это, я бы рекомендовал Scratch, Alice, Phrogram в качестве заказа. Phrogram работал лучше всего в течение 12 лет и выше, но я знаю пап с 6-летними детьми, которые учили своих детей с его помощью, и я знаю 10-летних, которые учили себя с ним.
Этот язык настолько похож на английский, насколько мы можем его сделать, и настолько минимален, насколько мы можем его сделать. Секрет соуса заключается в классовой объектной наследственности, которая опять же настолько проста, интуитивно понятна и похожа на английский язык, насколько это возможно. Объект heirarchy оптимизирован для игр и графики. Доступно 3D модели и 2D спрайт. Поддерживается абсолютное перемещение по экранным координатам или относительное перемещение ala LOGO - вперед(x), TurnLeft(y).
IDE поставляется с более чем 100 примерами, некоторыми языковыми примерами (циклы), некоторыми учебными примерами (массивы), некоторыми полнофункциональными играми и симами (Pong, Missile Command, Game of Life).
Чтобы дать вам представление о том, насколько высоко мы использовали язык и IDE: с 27 инструкциями вы можете летать на модели космического корабля 3D вокруг скайбокса 3D, используя клавиатуру. То же самое с 2D sprite-это 12-15 инструкций.
Мы работаем над Блейд-совместимым выпуском Phrogram, который позволит программам работать на XBox 360. Да, на XBox, на твоем большом TV. Хороший мотиватор для начала работы ребенка? :)
Phrogram включает поддержку программирования на основе классов, методов и свойств - но это только инкапсуляция, а не наследование или полиморфизм.
Имеется учебник и руководство пользователя,
Моя собственная электронная книга доступна в Amazon и других местах онлайн, "Learn to Program with Phrogram!," и позволяет новичку начать программировать классический понг.
Программа Phrogram Programming for the Absolute Beginner, by Jerry Lee Ford, Jr., также доступна в мягкой обложке по адресу Amazon и в других местах.
Ради ребенка я бы пошел с Алисой . Любому ребенку понравится взаимодействие drag-and-drop, которое Алиса использует лучше, чем пытаться запомнить, как пишется и пунктуируется любой язык программирования. Он будет изучать основные структуры программирования (условные обозначения, циклы и т. д.).) и испытают удовольствие от создания анимационной программы, которую они могут показать другим членам семьи или друзьям.
Класс beginner CS в местном колледже сообщества фактически использует Алису для обучения программированию независимо от языка. Это обеспечивает хорошую основу для перехода к программированию на определенном языке (или нескольких языках) в будущем.
Недавно я видел презентацию о GreenFoot (a java based learning environment for children). Это выглядело потрясающе. Если бы у меня были дети, я бы дать ему попробовать
Это очень игривая среда, где вы можете начать с очень простых методов. Дети учатся думать объектно-ориентированным способом (вы не можете создать экземпляр животного, но вы можете создать экземпляр кошки). И чем лучше они становятся, тем больше Java вы можете раскрыть для/с ними.
Я бы пошел со скретчем, некоторые моменты относительно него.
- Это графический язык программирования. Это не текст на основе (это может быть положительный или отрицательный). Это делает его более интуитивно понятным и легким для детей (7 и вверх).
- На самом деле это очень важный объект. Объекты, которые вы пишете в этих графических скриптах, имеют прикрепленный к ним код и могут быть повторно использованы и перемещены.
- Очень важно: быстрые и впечатляющие результаты. Дети должны идти быстро и получать результаты, чтобы попасть на крючок.
Я хотел бы отметить, что хотя многие из нас начали программировать в молодом возрасте на basic или logo и потому, что программист позже в жизни не означает, что это хорошие языки для начала. Я думаю, что сегодня у детей есть гораздо лучшие варианты, такие как скретч или Алиса. Текстовые языки (python, ruby, basic, c# или даже c) зависят от внешних библиотек и инструментов (редакторов, компиляторов), в то время как что-то вроде Alice или scratch является всеохватывающим и будет учить детей (не нацеленных на подростков) концепциям программирования. Позже они могут двигаться дальше и расширять свое обучение.
Я бы сказал: Дайте ребенку настоящий C64, потому что именно так я начал. Но сегодня..... Я бы сказал Ruby, но Ruby-это слишком хаотично. BASIC было бы лучше в долгосрочной перспективе. Процессинг прост в освоении, и это в основном Java.
Причина, по которой я рекомендую C64, заключается в том, что это BASIC, но вы все равно должны изучить некоторые связанные с компьютером вещи, такие как модель памяти, пиксели, символы, карты символов, новые строки и т. д. и, если вы хотите сделать более продвинутые вещи. Кроме того, если ваш ребенок считает это скучным, вы знаете, что его сердце действительно не любит кодирование.
Ради ребенка я бы пошел с Алисой.
Ради ребенка я бы пошел с Алисой.
Вот еще один голос за Алису. Мои 4 ребенка получили массу удовольствия, работая с ним и изучая основные понятия программирования. Конечно, для них все сводится к общению с феями и людоедами, но, черт возьми, эта проклятая система наследия, над которой я работаю, тоже может пригодиться некоторым фариям и людоедам.
Игра может быть другой подход. Вы можете начать простую разработку с легкого перетаскивания, а затем ввести более продвинутое Программирование по мере продвижения. Книга The Game Maker's Apprentice: Game Development for Beginners содержит ряд примеров игр и проведет вас через шаги, необходимые для их создания.
Сколько ему лет? Многие из нас в какой-то момент уставились на BASIC, но до этого я изучил концепции связывания команд вместе, переменных и циклирования с LOGO. Выяснение того, как нарисовать круг с треугольником, который может идти только по прямой линии и поворачивать, было моим самым первым достижением в программировании.
Edit: этот вопрос & его ответы заставляют меня чувствовать себя старым.
Checkout Squeak разработан Аланом Кеем , который считает, что программированию следует обучать в раннем возрасте.
Хотя _ Why не давал ему много любви в прошлом году или около того, в течение некоторого времени я был действительно взволнован Hackety Hack . Я думаю, что ключ для большинства новых программистов, особенно детей, которые более чем apt теряют интерес к вещам, - это мгновенная обратная связь. Это была действительно замечательная вещь в Hackety Hack: несколько строк кода, и вдруг перед вами появляется нечто, что делает что-то. Есть несколько подобных приложений, направленных на такие вещи, как рисование графики (один из которых, я кратко помог Натану Вайзенбауму, Scribble! ). Дети просто нуждаются в положительной обратной связи, что они делают что-то правильное на регулярной основе, иначе нет ничего, что могло бы заинтересовать их в текущей задаче. Я думаю, что будущее за обучением детей программированию-это своего рода DSL, построенный поверх языка с дружественным синтаксисом (к ним, возможно, относятся Ruby, Python и Scheme), цель которого-обеспечить интуитивно понятную среду для построения простых игр (скажем, крестики-нолики или палач).
Я думаю, что вы должны начать их в 27-м году. Чем скорее они научатся разбираться в указателях, тем лучше.
Смотрите раздел понимание указателей и должен ли я выучить C .
Я думаю, что первый вопрос заключается в следующем: какую программу было бы интересно создать? Одна из вещей, которая заставила меня начать программировать в детстве (в BBC basic, а затем QBasic), была простота написания графических программ. Я мог бы написать пару строк кода и сразу увидеть, как моя программа рисует линию на экране.
Самое близкое , что я видел в последнее время, - это библиотека pygame для python и обработки, набор библиотек java с IDE.
Я полагаю, что взлом веб-страниц будет еще одним хорошим способом начать работу: это повлечет за собой HTML, Javascript (использование библиотеки, подобной jQuery), возможно PHP или что-то в этом роде.
Какие бы инструменты вы ни предоставляли, главное, чтобы это было легко начать сразу же. Если вам нужно написать двадцать строк правильного кода и выяснить, как вызвать компилятор, прежде чем вы увидите какие-либо ощутимые результаты, прогресс будет медленным.
Здесь уже есть много хороших предложений. Я действительно согласен с Kronikarz. Получите ретро-компьютер (или эмулятор), который вам интересен, и учите с ним. Почему именно ретро-компьютер? Базовый встроен. Создание звуков и примитивной графики-тривиальная задача. Реальная сделка может быть лучше, чем эмулятор, потому что она будет немного более увлекательной для ребенка, который привык видеть только современные устройства.
Как я уже сказал Здесь, я бы пошел на Squeakland и знаменитый пример Drive a Car (powered by Squeak).
Синтаксис Smalltalk прост, что отлично подходит для детей.
А позже, по мере развития ребенка, он может усвоить более сложные и даже очень продвинутые понятия, которые также находятся в писке (напр. Программирование статусных веб-приложений с автоматическим рефакторингом и автоматизированными юнит-тестами!).
И как сказали @cpuguru и @Rotem, царапина (также основанная на скрипе) тоже велика.
Я думаю, что Java может быть хорошим выбором просто потому, что вы можете легко сделать GUIs и увидеть "cool things" происходящим. По той же причине, возможно, любой из .NET языков. Я также слышал много хорошего о скриптовых языках (Ruby и Python, особенно), которые помогают детям научиться программировать.
Я бы пошел с тем, что я хотел бы знать в первую очередь: простой MS-DOS box и интегрированный ассемблер (debug). Это здорово, чтобы действительно изучить и понять основы общения с компьютером.
Если это не отпугнет ребенка, то я бы пошел на "next level up" и представил C. Это не должно быть трудно, учитывая, что основная концепция указателей, регистров и инструкций в целом хорошо понятна к тому времени.
Однако я не совсем уверен, куда идти дальше. Сделайте большой скачок к Lisp, Haskell или аналогичным абстрактным языкам, или должны быть какие-то простые объектно-ориентированные языки (возможно, даже C++), или это будет больше больно, чем поможет?