Этот немного сумбурный текст имеет вторую часть. Она про практику, методы и примеры того, как мы решали проблему описанную здесь, я не уверен нужна ли она тут. Но сама проблема кажется достаточно важной и актуальной чтобы запостить первую часть отдельно. Что не так с планами изучения программирования Приветствую, я разработчик. Примерно 3 месяца назад взялся обучать программированию группу моих знакомых. Получилось это довольно спонтанно, началось все с запросов чекнуть найденный план изучения\roadmap...
Почему программирование на первый взгляд такое сложное? Потому что многие не умеют составлять алгоритмы? Почему программирование на первый взгляд такое сложное? Даже не знаю где спросить это. Вот почему, увидел 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. а вам не вынесло мозг, то что я написал =)? так! 2 и 1 действие в алгоритме переставляем местами, и добавляем между 2 и 3, ещё одно действие "проверить, нет ли точки с запятой, конца имени тупо говоря" Алексей Жур ну допустим, а если получается так что все понимают простые вещи а я нет, все не понимают сложных вещей, а я понимаю. У меня бывают такие периоды)) Ну не знаю я как бы подробных алгоритмов не составляю, и так все понятно будет)) ) А дебаггер, это отладчик))) Вообще мне кажется проще выучить английский язык, и полезно в жизни и в программировании, разве что если там не будет задротских сокращений вроде strcmp(string compare кто не понял) . Потому что русских (я имею ввиду по командам, то есть "получить (параметры); ", а не Get(Parameters);@ сред разработки нет, точнее сказать есть но они жутко не удобные. Если не знать английский запомнить команды будет нереально. А стоит выучить английский и алгоритмы так все нормально, на первый взгляд. Но увы, хоть хочешь хоть и нет нужно знать например математику (ведь иногда запросы от программы не умешаются в обычную библиотеку, и приходится пользоваться низкоуровневым ассемблером, в котором без математики никак не обоидешься) . Тогда можно утверждать, термина "программирование" как такового нет, под этим терминов можно сказать все объеденяется, и математика, и логика, и алгоритм. Тем более есть парадигмы, и как правило у каждой парадигмы своя система. Ведь и так ясно чем отличается printf("Что-то"); и Edit1->Text := "Что-то". В первом случае пишется сразу, во втором случае, можно ещё и указать куда писать. Да я то нормально могу понимать, и с турбо паскалем освоился, просто я часто в программах допускаю глу