Что такое хороший пример, чтобы показать не программисту, чтобы объяснить, что программирование "выглядит"?
мой друг спросил меня на днях, если я просто смотрю на списки чисел, когда я программирую, или как это работает. Я попытался объяснить, что это, как правило, больше похоже на математические формулы, с нечетным английским словом, брошенным в него, и что он обычно в основном читается. Но это очень расплывчатое объяснение, и оно на самом деле не объясняет многого не программисту.
но это заставило меня задуматься о том, что бы сделать хороший пример. Не потому что я хочу научить ее программированию или что угодно, но просто дать ей представление о том, как "выглядит"программный код.
и это заставило меня задуматься о том, что будет работать как хороший пример. И это оказалось на удивление сложно.
моя первая мысль, очевидно, была простой программой "Hello World". Но это действительно не показывает ничего полезного. Это действительно не показывает, как мы используем функции, переменные или структуры потока управления, такие как if или while сделать программу, которая на самом деле делает что-то. В этом нет никакой логики. Программа ни на что не реагирует.
так что, возможно, что-то вроде вычисления простых чисел было бы лучшим примером. Но опять же, это может быть слишком теоретическим и непрактично... (Что в этом хорошего? Какое это имеет отношение к написанию программ "реальный"?) И опять же, в нем нет существенной логики потока управления. Это просто прямая последовательность математики.
а также, Какой язык должен быть использовали?
в идеале, я не думаю, что это должен быть очень "чистым" языком. Но, скорее всего, это должно сделать структуру ясной. Если это так, то определенное количество шума и беспорядка может быть в порядке. Возможно, что-то вроде C++ на самом деле будет лучшим примером, чем Python по этой причине. Явные фигурные скобки и спецификаторы типа являются очевидными "крючками", чтобы помочь объяснить, как структурирована программа, или подчеркнуть, что это не просто простые заявления, что можно почти прочитать как английский.
но с C++ мы также попадаем в какой-то совершенно странный синтаксис. Почему это std::cout << x используется для печати x? Почему не "нормальный" синтаксис вызова функции? И printf не намного лучше, с его тайной строкой формата и отсутствием расширяемости (я хочу усложнить программу с помощью char* для строк? Или я использую std::string и довольствоваться вызовом, казалось бы, ненужных s.c_str() чтобы получить строку, которую можно распечатать с помощью printf?
возможно, язык более высокого уровня был бы лучше в конце концов. Но какой именно? И почему?
Я знаю, что есть много подобных вопросов здесь о том, какой язык/пример программы использовать для обучения программированию. Но я думаю, что требования здесь другие. При обучении программированию мы больше всего хотим простоты. Мы хотим избежать всего, чему нас еще не научили. Мы хотим убедиться, что студент может понять все на экране.
меня не интересует простота как таковая. Но скорее в том, чтобы дать "постороннему" представление о том,"как выглядит программа". И программы не просты. Но они do обычно проявляют определенную структуру и метод к безумию. Какой язык / программа лучше всего выделит это?
Edit
Спасибо за все предложения до сих пор. У некоторых из вас был несколько иной угол зрения на это, чем у меня предназначенный.
возможно, пример в порядке. Я не могу управлять самолетом, но у меня есть базовое понимание того, как выглядит кабина пилота, и что пилот "делает" во время полета.
и я не обученный плотник, но я знаю пилу или молоток, когда я вижу один.
но когда вы видите что-нибудь связанное с программированием в фильмах, например, это обычно просто экраны, заполненные мусором (как в зеленом тексте в Матрице). Это не похоже на что-то нормальный человек может на самом деле do. В нем нет ничего узнаваемого. Тот, кто не программист, просто думает, что это черная магия.
Я не хочу учить ее летать или программировать программное обеспечение.
Но я хотел бы дать ей базовую систему отсчета. Просто идея "Ах, так вот с чем вы работаете. Так что это не просто случайные символы и цифры на экране". Даже просто показывая простой if-заявление было бы откровением по сравнению с матричным стилем случайные символы и числа.
некоторые из вас предложили объяснить алгоритм или использовать псевдокод, но это то, чего я хочу избежать. Я хотел бы что-то, что просто показывает, что фактический код выглядит так же, как и то, что вам не нужно быть плотником, чтобы посмотреть на пилу и получить базовое представление о том, что это такое и как это работает.
когда я был ребенком, мы ездили в отпуск в Италию. По пути вниз пилот впустил меня в кабину самолета. Из конечно, я не научился управлять самолетом. Но я все же заглянул в мир пилота. У меня есть представление о том, как они заставляют самолет идти, что на самом деле делает пилот.
это действительно все, что я хочу сделать. Мой друг не заинтересован в изучении программирования, и я не хочу заставлять ее понимать исходный код. Но ей было любопытно, с какими инструментами или сущностями я работаю. Это символы матричного стиля, прокручивающиеся по экрану? Чистая математика? Английский язык в прозе форма?
все, что я заинтересован в передаче,-это очень высокое понимание того, "как это выглядит, когда я работаю".
Comments