Другие языки программирования и технологии

Почему программирование на первый взгляд такое сложное? Потому что многие не умеют составлять алгоритмы?

Почему программирование на первый взгляд такое сложное? Даже не знаю где спросить это. Вот почему, увидел C++, сразу вынесло мозг, увидел Delphi, вынесло мозг и рассудок. Поиграл в Colobot, ощущения приятные. Это что, боишься программ, любишь писать программы в играх? Непонятно. Я например как только услышал "for - это цикл, в параметрах надо указать начальное значение для условия, во втором указать конечное условие цикла, в третьем параметре указываешь, то что выполняется с начальным условием, пока не будет выполнено конечное условие цикла" Вам бы это мозг и рассудок не вынесло? В играх все нормально, и уже начинаешь понимать что такое void, что такое while, писать процедуры и прочая ерунда. Но ведь в играх в основном азы, а когда переходишь к средам разработки, редко вынесешь мануал, а уж тем более написание своей нормальной программы. Что делать когда хочешь научится программировать, а разбираться во всех словах программиста просто не хочется, потому что зачастую они не понятные, например "при выполнении этой функции она возвратит вам булевое значение true если проверка оказалась правдивой, а false в другом случае", это тоже начинает выносить мозг... А если например поиграть в тот же COLOBOT, то "это", уже понятнее, а в хелпах для RAD, ничего не понятно... Я только сейчас понял почему, зачастую программирование сложное потому что многие не умеют составлять алгоритм действия. Возьмем например простую программу int u; { u = Edit1->Text; } На первый взгляд все банально, НО! Если переведем в алгоритм, получается не все в порядке(будем думать как дебаггер) 1. u - устанавливаем имя переменной 2. int - даем u тип. 3. { - открытие кода 4. u - узнаем переменную 5. = - действие к переменной 6. Edit1->Text - получаем информацию для действия 7. Проверяем есть ли ;, если нет, продолжаем выполнять что-то, если есть заканчиваем команду. 8. } - закрытие кода Как видите мы разложили программу на элементарный алгоритм(примерный алгоритм). Но тут на самом деле намного больше действий, но они не нужны(при компилировании их становится много, из за перевода в машинный код). То есть получается чтобы писать программы надо уметь составлять алгоритмы? Потвердите мою гипотезу. P.s. а вам не вынесло мозг, то что я написал =)?
DO
Dimon Original
886
Если тебе элементарные вещи выносят мозг, задумайся, твое ли это дело. Конечно, в любом случае, это все может казаться сложным, когда в первый раз об этом читаешь, смотришь примеры. Дело в том, что бояться этого не надо (: С этого начинали все, эмоции у всех по сути тоже были одинаковые. Другое дело, что кто-то быстрее вникает, а до кого-то значительно дольше доходит (:
Ал Леонтьев
Ал Леонтьев
5 016
Лучший ответ
Это ремесло.

не конвейер, не искусство.
NN
Nika Nika
77 329
Чуток остатков мозга вынесло) )

В программизме действительно основное это уметь составлять алгоритмы.
А язык для конкретной задачи уже по ходу дела подбирается))
Олег Петров
Олег Петров
75 320
а давай я ща напишу разгадку песни ХнХ вот то мозг вынесет
Аркадий Анянов
Аркадий Анянов
48 431
Все зависит от того кто тебя учил. Если учитель плохой, то будет все сложным казаться. Если хороший - легко. , извините.
Dayan... ...
Dayan... ...
34 924
На второй взгляд оно еще сложнее. Цикл - нечто вроде действия умножения при изучении математики, он очень недалеко от начала изучения программирования, можно сказать, у самого порога лежит.
"программирование сложное потому что многие не умеют составлять алгоритм действия. " Абсолютно точно. И дело не только в умении составлять алгоритм, надо еще детально знать то, что описываешь этим алгоритмом. Программа за тебя ничего не додумает, наоборот, то, что казалось сначала абсолютно ясным, окажется насыщенным подводными камнями.
Но не только поэтому. Сам по себе язык, даже C++, не так уж сложен. Но есть сотни алгоритмов и для них библиотек готовых функциий, разобраться в них - большая работа. Попутно надо осваивать то, для чего они созданы, например, чтобы освоить функции работы со списком, надо понимать, что такое список и какие виды списков бывают, в чем их польза и в чем недостатки. Рассортировать массив - представлять себе алгоритмы сортировки. И так далее...
Абсолютно ничего сложного. Разделяй и влавствуй !

Суть алгоритмического построения в разбиении действия на последовательность более примитивных действий, и наоборот энное число примитивных действий сложить в нечто более сложное. Примерно как молекулу разложить на атомы, и из атомов собрать молекулу. Логический склад ума совсем не помешает.

Правда для практического применения требуется еще анализ и математическое обоснование выстроенных алгоритмов. Дополнительный груз - математика и аналитический склад ума.
Что касается ассемблера, то это вовсе на математика, а скорее некий чисто технический груз. (Как правило задокуменитированный на английском языке, добавляет еще одно грузило - знание иностранного языка) . А русская терминология - это извращение, английская как то лучше ассоциируется именно с программированием (все таки другой язык, и Get(params) более внятно описывает действие) .

Программирование - это исскуство, творчество. Тот кто считает, что программирование это ремесло, это не программист, а всего лишь кодер. Без творчества в программировании никуда. Правда творчество с большим грузом в виде точных, технических наук и лингвистических наук, что не всегда умещается в голове одного человека.

А как сделать программу не просто чтобы она работала без ошибок, но и была удобной и красивой? Тут же выскакиваем в совершенно иную плоскость - дизайн.

PS в вашем примере алгоритма фактически никакого нет.
Умид Махаметов
Умид Махаметов
21 360
и как дебаггер, вы плохо размышляете, точней до конца не понимаете весь процесс
u = Edit-> Text так прокомментировали, что даже смешно стало
чтобы писать хорошо программу, надо не только уметь составлять алгоритмы, но и знать математику, основы, а именно разделы линейной алгебры, мат. анализа, также нужно ещё владея этим всем уметь оценивать алгоритмы; смотря какие программы писать, для чего, у вас узкое понимание ;
а если копнуть побольше и профессионально, конкретно что-то взять я ваш вывод разнесу в пух и прах:
а если взять допустим информатизация химическое предприятие, а не до конца поняли сути процесса, то ваша программа полностью прогорит, т. к. не будет взаимодействие между потребителем и изготовителем
вынесло ли мозг, нет, нечем выносить на самом деле, вот если бы вы это всё разложили на ассемблеровский код, тогда ещё можно было ещё спросить
--
мой вам совет, учиться, учиться, и ещё раз учиться, и помните на этом сайте есть люди понимающие и знающие в этом деле, а не только пользователи и школьники; себя я не имею ввиду, я пока только учусь в этом деле
--
искусство программирование Д. Кнут почитайте, советую
--
и пожалуйста, поменьше менторского тона в следующих вопросах, статьях и т. п.
он и так во многом в этом деле предостаточно присутствует; все думают то, что они знают всё
это еще не вынес мозга

в программирование есть множество алгоритмов от которых выносит мозг
главное не думать: "вай, как тут сложно.. . это мне выносит мозг, как вообще можно это выучить". ты не учи, а понимай! вот ты привёл определение цикла for. по сути - это элементарно, но согласен, новичку сложно понять. так вот ты на основе предыдущих знаний попробуй САМ проанализировать это определение, сделать какие-то выводы, возможно ошибочные. потом напиши простенькую программку с использованием цикла, и у тебя уже будет какой-то опыт. с опытом-то ты и поймёшь суть for.
ЗЫ: начни не с дельфи, а с турбо паскаль. не надо его изучать досконально, но как только ты там поймёшь основы (циклы, ветвление и т. д) - иебе уже проще будет освоиться и на дельфи, с++. в турбо паскале всё как-то понимается проще, нет ничего лишнего.