Беседовал недавно со школьником на тему: какой язык программирования он собирается изучать. Буду, говорит, изучать PHP или С++. Спрашиваю: а кто тебе посоветовал именно их изучать? - Да кто-то из друзей...
Ну что на это сказать? Если начать с этих языков (PHP, вообще-то, трудно назвать языком программирования в классическом смысле), то я сильно сомневаюсь в результатах. Тем более, что советовал, скорее всего, такой же "грамотей", как и тот, с которым беседовал я.
Так что смысл в такой статье есть. Привожу краткие характеристики тех языков, которые я преподавал в течение ряда лет.
BASIC - язык наиболее простой для начального знакомства. Его осваивают не только те, у кого хорошо развито математическое мышление. Я его преподавал как начальный язык программирования. Так как в нем нет необходимости описывать типы переменных, он больше похож на обычные математические решения. Для олимпиад подходит до городского уровня, но не выше.
PASCAL - требует определенного математического мышления, но вполне подходит для начального изучения. В настоящее время имеется достаточно много литературы, доступной для школьников. Олимпиадное программирование обычно происходит на нем. Это язык, на котором я веду преподавание.
СИ - язык профессионального программирования. Для начального изучения не рекомендуется. Его можно изучать после основательного знакомства с Паскалем. Но нужен он лишь для уровня международных олимпиад, ну может иметь преимущества для некоторых классов задач. С литературой по нему, доступной для школьников, я не знаком.
DELPHI - в консольном варианте это Паскаль, может использоваться на олимпиадах. В объектно-ориентированном варианте не используется на олимпиадах. Для начального обучения не рекомендуется, также как и остальные ООП языки программирования. Я провожу пару занятий по Delphi в конце курса, но исключительно для того, чтобы у моих учеников не было комплекса неполноценности при общении с "распальцованными" выскочками.
АССЕМБЛЕР - на самом деле правильнее говорить ассемблеры, т.к. для каждого типа процессоров ассемблер свой. Для начального изучения категорически не рекомендуется. Его как первый язык может освоить только электронщик, детально знакомый с работой цифровой техники. В Интернете я встречал предложения начинать с ассемблера, но это не более чем стёб.
Общие замечания: языки программирования различаются синтаксисом, т.е. способом выражения мысли программиста. Главное не синтаксис, а алгоритмическое мышление. Если его нет, то нет и навыка программирования. Если выработано алгоритмическое мышление, то переход с одного языка программирования на другой не столь уж и проблематичен. Во многих школах преподавание ведется на BASIC просто потому, что других языков преподаватели не знают, а те кто знают - работают программистами и ерундой (вроде преподавательской деятельности) не занимаются.
Вывод: начинать изучение надо с TurboBASIC или TurboPASCAL. Подчеркиваю, что с турбо-вариантов. Изучение начинать после знакомства с алгеброй. Как вариант допустимо изучение программирования до знакомства с алгеброй, но тогда на примере языка программирования BASIC вводить алгебраические понятия. Но это в том случае, если идет индивидуальное обучение.
Моя практика показывает, что раннее обучение, как правило, неэффективно. Правда, встречаются дети с исключительной (высокой) мотивировкой, для которых общие рекомендации не работают. Но это очень редко. Если у ребенка есть явно выраженные математические способности, то можно начинать с PASCAL, если нет, то лучше начинать с BASIC.
Всем и каждому программирование не нужно вообще. Для общего образования достаточно знать компьютер на уровне пользователя. Изучение языков программирования - это серьёзный труд, требующий большой концентрации внимания, поэтому прежде всего надо четко знать, чего вы хотите. И самое главное, чего хочет ребенок. Или это глубокий интерес - и тогда требуется серьезный подход, или это поверхностное желание... В случае глубокого желания надо настраиваться на серьезный труд и не на один год. (От редакции: в сети есть множество ресурсов, контент которых составляют обучающие материалы по конкретным языкам, статьи по практике программирования и т.п.)
Еще раз повторюсь, на программировании свет клином не сошелся. Жизнь разнообразна, и вполне возможно, что ваш ребенок найдет себя в совершенно другой области. Заниматься программированием - означает обречь себя на вечное ученичество. Сейчас те языки программирования, которые мы изучали в университете (30 лет тому назад), можно найти, как правило, в разделе "история вычислительной техники". В то же время программирование - процесс творческий и заниматься им интересно (мне - так точно).
Желаю успехов в освоении этого предмета. От простого к сложному.
Ну что на это сказать? Если начать с этих языков (PHP, вообще-то, трудно назвать языком программирования в классическом смысле), то я сильно сомневаюсь в результатах. Тем более, что советовал, скорее всего, такой же "грамотей", как и тот, с которым беседовал я.
Так что смысл в такой статье есть. Привожу краткие характеристики тех языков, которые я преподавал в течение ряда лет.
BASIC - язык наиболее простой для начального знакомства. Его осваивают не только те, у кого хорошо развито математическое мышление. Я его преподавал как начальный язык программирования. Так как в нем нет необходимости описывать типы переменных, он больше похож на обычные математические решения. Для олимпиад подходит до городского уровня, но не выше.
PASCAL - требует определенного математического мышления, но вполне подходит для начального изучения. В настоящее время имеется достаточно много литературы, доступной для школьников. Олимпиадное программирование обычно происходит на нем. Это язык, на котором я веду преподавание.
СИ - язык профессионального программирования. Для начального изучения не рекомендуется. Его можно изучать после основательного знакомства с Паскалем. Но нужен он лишь для уровня международных олимпиад, ну может иметь преимущества для некоторых классов задач. С литературой по нему, доступной для школьников, я не знаком.
DELPHI - в консольном варианте это Паскаль, может использоваться на олимпиадах. В объектно-ориентированном варианте не используется на олимпиадах. Для начального обучения не рекомендуется, также как и остальные ООП языки программирования. Я провожу пару занятий по Delphi в конце курса, но исключительно для того, чтобы у моих учеников не было комплекса неполноценности при общении с "распальцованными" выскочками.
АССЕМБЛЕР - на самом деле правильнее говорить ассемблеры, т.к. для каждого типа процессоров ассемблер свой. Для начального изучения категорически не рекомендуется. Его как первый язык может освоить только электронщик, детально знакомый с работой цифровой техники. В Интернете я встречал предложения начинать с ассемблера, но это не более чем стёб.
Общие замечания: языки программирования различаются синтаксисом, т.е. способом выражения мысли программиста. Главное не синтаксис, а алгоритмическое мышление. Если его нет, то нет и навыка программирования. Если выработано алгоритмическое мышление, то переход с одного языка программирования на другой не столь уж и проблематичен. Во многих школах преподавание ведется на BASIC просто потому, что других языков преподаватели не знают, а те кто знают - работают программистами и ерундой (вроде преподавательской деятельности) не занимаются.
Вывод: начинать изучение надо с TurboBASIC или TurboPASCAL. Подчеркиваю, что с турбо-вариантов. Изучение начинать после знакомства с алгеброй. Как вариант допустимо изучение программирования до знакомства с алгеброй, но тогда на примере языка программирования BASIC вводить алгебраические понятия. Но это в том случае, если идет индивидуальное обучение.
Моя практика показывает, что раннее обучение, как правило, неэффективно. Правда, встречаются дети с исключительной (высокой) мотивировкой, для которых общие рекомендации не работают. Но это очень редко. Если у ребенка есть явно выраженные математические способности, то можно начинать с PASCAL, если нет, то лучше начинать с BASIC.
Всем и каждому программирование не нужно вообще. Для общего образования достаточно знать компьютер на уровне пользователя. Изучение языков программирования - это серьёзный труд, требующий большой концентрации внимания, поэтому прежде всего надо четко знать, чего вы хотите. И самое главное, чего хочет ребенок. Или это глубокий интерес - и тогда требуется серьезный подход, или это поверхностное желание... В случае глубокого желания надо настраиваться на серьезный труд и не на один год. (От редакции: в сети есть множество ресурсов, контент которых составляют обучающие материалы по конкретным языкам, статьи по практике программирования и т.п.)
Еще раз повторюсь, на программировании свет клином не сошелся. Жизнь разнообразна, и вполне возможно, что ваш ребенок найдет себя в совершенно другой области. Заниматься программированием - означает обречь себя на вечное ученичество. Сейчас те языки программирования, которые мы изучали в университете (30 лет тому назад), можно найти, как правило, в разделе "история вычислительной техники". В то же время программирование - процесс творческий и заниматься им интересно (мне - так точно).
Желаю успехов в освоении этого предмета. От простого к сложному.
infoprog.tk - программирование для начинающих и программирование для чайников
Это машинный код, весьма удаленный от реальности.
Судя по суровой орфографии, сие было весьма недавно.
Гуру пишет патчи к ядру, глядя в методичку? О Великий!
купилискачали книжку "программирование дляимбециловидиотовчайников"???людям. которые нехотят заниматся программированием в дальшейшем за глаза хватит и БЕЙСИКа
ПАСКАЛЬ - если хотите быть победителем олимпиад, больше его знать незачем. делфи туда-же.
СИ - для начального изучения довольно тяжеловат, но нужен, рекомендую перед си выучить чтонить попроще
АССЕМБЛЕР - я бы предложил начать изчение программированию именно с него. только по иной программе программирования.
ЗЫ: для примера калькулятор электроника б-52, фактическое программирование на ассемблере. основы программирования на нём можно выучить за полчаса (что и было сделанно мною в 11 лет)далее приступать к программированию на ассемблере (или ассемблерах, как предложил автор) уже имея образные представления о стеке, очереди, регистрах и простых операциях.
так-же паралельно с этим необходимо учить как-раз, таки блок-схемы. ибоумея писать программу в блок-схемах написание програмы на определённом языке становится сущим пустяком, требующим только знания определённого синтаксиса, который можно посмотреть в метдичке и не обязательно при этом знать язык програмирования
python
единственный язык, который годится для программистов любого уровня - от начинающего школьника до маститого профи
В его составе есть более 800 встроеных функций и их число можно с лёгкостью увеличить, что позволяет программировать даже без знаний API.
Язык расчитан для написания консольных, оконных и игровых программ для Windows, Linux, MacOS.
У него довольно простой синтаксис и выучить за короткое время можно даже по справке.
Вот пример программы, создающей окно с надписью
CreateGadgetList(WindowID(1))
TextGadget(2,70,16,180,15,"Привет мир!")
Repeat
Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow
End
Вот скрин проги из примера
В идеале - сказал "хочу программу, чтоп делала то-то" - и программа готова.
``Общие замечания: языки программирования различаются синтаксисом"
Семантикой, батенька, семантикой. А синтаксис это далеко не первое дело.
Или для автора научиться программировать на языке == выучить синтаксис?
Сравнение языков программирования
Так с какого языка изучать программирование?