Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

С какого компилятора лучше начинать учиться программированию?

30K
25 июля 2007 года
К. Э.
2 / / 25.07.2007
В школе учил Турбо-Паскаль 7, писал курсовую по калькулятору обыкновенных дробей. Работали под Нортон-Коммандэр. Сейчас хочу начать изучать программирование, но столкнулся со следующей проблемой: руководств не счесть, но ни одно из них, предназначенное для новичков, не отсылает к использованию конкретного компилятора. Например, я установил (ось ХР проф.) Борланд С++ Билдэр 6 и попробовал составить простую программу, рекомендуемую одним из учебников по С++. Интерфейс этого Борланда слишком сложен, чтобы я смог адекватно понять, какие конкретные ошибки я допустил.
Вопрос в следующем: 1) если я, например, хочу изучить язык С или С++ без замороченного (для меня на данный момент) объектно ориентированного подхода, то каким компилятором конкретно мне следует воспользоваться, чтобы была возможность писать реально исполняемые программы-упражнения из руководств? 2) Если следует начинать не с С, то с чего именно, что достаточно современно? Опять же, где взять соответствующие руководства и работающий под них компилятор.
Операционная система, в которой я бы хотел заняться обучением - ХР проф.
Заранее спасибо.
Зы. Пытался искать по форуму, но безрезультатно.
Страницы:
3.3K
25 июля 2007 года
GENA_DJ
123 / / 08.03.2005
Microsoft Visual C++ 6.0
- IDE очент проста и удобна (ИМХО)
240
25 июля 2007 года
aks
2.5K / / 14.07.2006
Цитата: GENA_DJ
Microsoft Visual C++ 6.0
- IDE очент проста и удобна (ИМХО)


Вредный совет. Старая среда разработки сильно не соответствующая стандарту C++.

Если уж советовать MSVC++ то версии не ниже 7.1 или 8

30K
25 июля 2007 года
К. Э.
2 / / 25.07.2007
Большое спасибо за ответ. На сайте Microsoft доступна для свободного скачивания следующая версия: Visual C++ 2005 Express Edition. Подходит ли она для начала? Смогу ли я в ней составлять элементарные программы, не обращаясь к интерфейсу ООП?
240
25 июля 2007 года
aks
2.5K / / 14.07.2006
Программы на ней писать конечно можно. Что касается обучения, так для него как раз и нужно в первую очередь именно основы C++ понять, безо всяких лишних либ.
А что такое "интерфейс ООП" к которому не надо обращаться. Чето я не проникся термином. )
63
25 июля 2007 года
Zorkus
2.6K / / 04.11.2006
Посмотри ссылки в разделе Студентам. http://forum.codenet.ru/showpost.php?p=173750&postcount=15
От себе могу для начала предложить MinGW Studio (найдешь легко сам). Она для разработки не слишком удобна (автодополнения нету, например), но простая и интуитивная (имхо).
92
25 июля 2007 года
Тень Пса
2.2K / / 19.10.2006
aks, имхо аффтар имел в виду само ООП ))) так что не напрягайся проникновением в смысл термина :)
16K
25 июля 2007 года
right_systems
29 / / 08.11.2006
IMHO Borland builder - наиболее понятная среда из всего вышеперечисленного :) А что касается ООП, то без него достаточно сложно написать что-либо под Windows, кроме службы или консольного приложения. Ну драйвер еще. Но службы и драйвера вряд ли подходят для новичков, а консольные приложения свое все-таки отжили. Так что советую начать все-таки с изучения ООП. В качестве среды я бы выбрал все таки одну из последних версий Visual Studio и начал бы учиться писать под .Net. Самому мне эта среда (как и Java) не особо нравится, M$ довольно успешно продвигает ее и уже не за горами времена, когда без знания .Net работу будет отыскать довольно сложно.
361
25 июля 2007 года
Odissey_
661 / / 19.09.2006
Цитата: right_systems
Самому мне эта среда (как и Java) не особо нравится, M$ довольно успешно продвигает ее и уже


Причем здесь Java? Или ты так, для красного словца?...

Цитата: right_systems
не за горами времена, когда без знания .Net работу будет отыскать довольно сложно.


Не надо таких уверенных заявлений. Судя про политике MS им же самим и выгодно не развивать .Net, а через годик третий выпустить что то новое.

63
25 июля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: right_systems
А что касается ООП, то без него достаточно сложно написать что-либо под Windows, кроме службы или консольного приложения. Ну драйвер еще.


Программирование под Windows != программирование ООП.
Еще посмотри на исходники учебных программ OpenGL от NeHE, например - там вообще нету ООП.
Если же ты имеешь в виду под программированием "под Виндовс" - создание GUI-приложений --- то начинать изучение программирования с этого не нужно.

Цитата: right_systems

Но службы и драйвера вряд ли подходят для новичков, а консольные приложения свое все-таки отжили. Так что советую начать все-таки с изучения ООП.


Ты уверен, что отжили? Может, просто ты их не используешь?;)
Начинать изучение С++ как раз стоит с консольных приложений. Они позволят не отвлекаться от логики программы на представление данных.

Цитата: right_systems

Самому мне эта среда (как и Java) не особо нравится, M$ довольно успешно продвигает ее и уже не за горами времена, когда без знания .Net работу будет отыскать довольно сложно.


А что тебе нравится, если не секрет?:)

16K
25 июля 2007 года
right_systems
29 / / 08.11.2006
Прямо таки шапками закидали ))
Тогда по порядку
Цитата:
Причем здесь Java? Или ты так, для красного словца?...


Цитата:
А что тебе нравится, если не секрет?


И .Net и Java используют похожие, если не сказать "одинаковые" базовые концепции, а именно:
- компиляция программы в некий абстрактный байт-код, выполняющийся в специальной виртуальной машине.
- автоматическое управление памятью
А не нравится мне в этом то, что при использовании такой схемы программа будет работать гораздо медленнее и памяти будет отъедать гораздо больше. За примерами далеко ходить не надо - любая среда разработки, написанная на Java (например, Idea или Eclipse). Они отжирают от 200 до 600 М памяти, а куда более шустрая Visual Studio - около 50. Измерения проводились на небольших проектах. Больших проктов, написанных под .Net, сам не видел, так что цифр привести не могу, но есть основания предполагать, что их аналоги, написанные под Win32, будут все-таки менее ресурсоемкими. Агрументы выше.

Цитата:
исходники учебных программ OpenGL


OpenGL - самое то для новичка :)

Цитата:
Если же ты имеешь в виду под программированием "под Виндовс" - создание GUI-приложений


GUI - куда более наглядно может отобразить результат работы программы, особенно если этих результатов больше одного.

Цитата:
Судя про политике MS им же самим и выгодно не развивать .Net


Твои бы слова, да Гейтсу в уста ))


Цитата:
Ты уверен, что отжили? Может, просто ты их не используешь

Почему? Использую. Только если не считать Far'a, это все специальные утилиты, рядовым юзерам мало интересные. И то часто лень ключи запоминать, использую GUI-оболочки. Приятнее как-то. Сам-то с командной строки проекты часто компилишь? ;)


В конце хочу обратить внимание, что первое слово в моем сообщении - "IMHO". Т.е это не наезд на MS или Sun. Это всего лишь МОЕ мнение. И я не ставил себе целью обидеть поклонников вышеупомянутых сред. Так что уж не бейте ))))

241
26 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
Цитата: right_systems
И .Net и Java используют похожие, если не сказать "одинаковые" базовые концепции, а именно:
- компиляция программы в некий абстрактный байт-код, выполняющийся в специальной виртуальной машине.
- автоматическое управление памятью

Базовые концепции похожи, но отличаются. Насчёт современных реализаций Java я не могу сказать точно, но изначально между .Net И Java было то принципиальное отличие, что байт-код Явы интерпретировался, а MSIL компилировался в машинный при запуске программы, потом этот машинный код и выполнялся. Причём можно было сделать так, чтобы он компилировался только при первом запуске программы. А ещё можно было сделать так, чтобы он компилировался в машкод, оптимальный для данного конкретного процессора, отчего скорость исполнения такого кода может быть даже выше.

Цитата: right_systems
А не нравится мне в этом то, что при использовании такой схемы программа будет работать гораздо медленнее и памяти будет отъедать гораздо больше. За примерами далеко ходить не надо - любая среда разработки, написанная на Java (например, Idea или Eclipse). Они отжирают от 200 до 600 М памяти, а куда более шустрая Visual Studio - около 50. Измерения проводились на небольших проектах. Больших проктов, написанных под .Net, сам не видел, так что цифр привести не могу, но есть основания предполагать, что их аналоги, написанные под Win32, будут все-таки менее ресурсоемкими. Агрументы выше.

В RSDN был проведён интересный эксперимент. Так вот, код из Delphi 7 был примерно сравним по скорости исполнения с кодом на с C#, полагаю, это сравнение справедливо и для VB.NET. Кроме прочего, говорить об абстрактном быстродействии некорректно. А привязываться к старому железу не всегда разумно; разумно привязываться к конкретному железу.

[QUOTE=Odissey_]Не надо таких уверенных заявлений. Судя про политике MS им же самим и выгодно не развивать .Net, а через годик третий выпустить что то новое.[/QUOTE]Это явление хорошо прокомментировал Джоэл Спольски.

Цитата: right_systems
Почему? Использую. Только если не считать Far'a, это все специальные утилиты, рядовым юзерам мало интересные. И то часто лень ключи запоминать, использую GUI-оболочки. Приятнее как-то. Сам-то с командной строки проекты часто компилишь? ;)

Осваивать программирование можно и на графических приложениях, и на консольных. Лучше уметь использовать оба типа. Я, например, для работы над проектом написал консольный инструмент, а начальник написал бы его с GUI; у нас из-за этого даже спор возник на тему "Что проще отлаживать". На самом деле, рассуждать о том, что лучше и полезнее - консоль или Win-формы - глупо безотносительно задачи проектирования.

241
26 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
Цитата: К. Э.
Большое спасибо за ответ. На сайте Microsoft доступна для свободного скачивания следующая версия: Visual C++ 2005 Express Edition. Подходит ли она для начала? Смогу ли я в ней составлять элементарные программы, не обращаясь к интерфейсу ООП?

ИМХО, изучать С++ без освоения ООП - не самое перспективное занятие, ибо в сила С++ как раз в применимости его к ООП.

241
26 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
Цитата: К. Э.
В школе учил Турбо-Паскаль 7, писал курсовую по калькулятору обыкновенных дробей. Работали под Нортон-Коммандэр. Сейчас хочу начать изучать программирование, но столкнулся со следующей проблемой: руководств не счесть, но ни одно из них, предназначенное для новичков, не отсылает к использованию конкретного компилятора.

По странному стечению обстоятельств мне попалось только одно руководство, которое не отсылало к конкретному компилятору явно. Оно отсылало к нескольким компиляторам. :) Да, собственно, разве в компиляторе счастье? Даже если Borland C++ Builder отличается от MSVC++, и оба они несколько отличаются от стандарта STL, всё равно можно после одного освоить другой. Мой личный опыт говорит, что после Delphi можно вполне неплохо освоить VB.NET.

Цитата: К. Э.
Если следует начинать не с С, то с чего именно, что достаточно современно?

А что и для чего программировать? Я, например, могу сказать, что более правильной практикой считается последовательное изучение основ программирования ([COLOR="Green"]на Pascal (это хорошая школа структурного програмимрования), потом или вместе с этим - на С (даёт глубокое понимание внутренних механизмов работы), а потом - специализация по интересу, обычно на ООП[/COLOR]), нежели сразу изучение JavaScript при помощи блокнота и браузера. Есть мнение, что хорошая практика - сразу осваивать ООП на языке, в котором ООП поддерживается полностью (то есть не JavaScript и не VB6), перед этим стоит перестать бояться ООП. Оно не так страшно, как его малюют.

Цитата: К. Э.
Опять же, где взять соответствующие руководства и работающий под них компилятор.

Ответов на этот вопрос в этом форуме более чем достаточно. Найти можно даже без поиска, если определиться с языком и задачами обучения.

Цитата: К. Э.
Зы. Пытался искать по форуму, но безрезультатно.

Disclaimer, однако, я смотрю, это уже становится классикой. :)Поисковый запрос всегда должен быть адекватен задаче поиска. Сейчас этот форум достаточно велик для того, чтобы на нём можно было найти всё, кроме того, чего здесь точно нет. Тема "С чего начать", очевидно, обсуждалась не один десяток раз. ;)

63
26 июля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: right_systems

А не нравится мне в этом то, что при использовании такой схемы программа будет работать гораздо медленнее и памяти будет отъедать гораздо больше. За примерами далеко ходить не надо - любая среда разработки, написанная на Java (например, Idea или Eclipse). Они отжирают от 200 до 600 М памяти, а куда более шустрая Visual Studio - около 50. Измерения проводились на небольших проектах. Больших проктов, написанных под .Net, сам не видел, так что цифр привести не могу, но есть основания предполагать, что их аналоги, написанные под Win32, будут все-таки менее ресурсоемкими. Агрументы выше.


Основные преимущества таких платформ совсем не в экономии ресурсов, сам понимаешь:)
Насколько я знаю (хотя могу ошибаться), "среднестатистичное" приложение .NET 3.0 на десктопе по производительности не отличается от написанного на unmanaged C++.
А в "серверном" программировании, где царит ява, там думаю, как раз ресурсоемкость не слишком важна.

Цитата: right_systems

OpenGL - самое то для новичка


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

Цитата: right_systems

GUI - куда более наглядно может отобразить результат работы программы, особенно если этих результатов больше одного.


Я категорически не согласен, что начинать изучать программирование (в том числе ООП), надо с построения наглядного интерфейса. Насмотрелся я на типичное преподавание СПО в универе, где программирование ООП представляется на примере VBA (или дельфи) примерно так: "Нам предоставлены MicroSoft/Borland/.. компоненты интерфейса - кнопка, список, текстовая метка, и вот из них строятся приложения с графическим интерфейсом пользователя."
В итоге, часто собственно код в таком представлении - это исключительно обработка событий, а самое главное, при разработке приложения -- это красиво разместить и оформить контролы на форме.
(Нисколько не утрирую, по воспоминаниям из многочисленных попыток сдать лабораторные одному такому преподавателю...).
О таком неправильном понимании интерфейса (антипаттерн "Волшебная кнопка") хорошо пишет, кстати, Брюс Тейт в книге "Горький вкус Java".

Цитата: right_systems

Почему? Использую. Только если не считать Far'a, это все специальные утилиты, рядовым юзерам мало интересные. И то часто лень ключи запоминать, использую GUI-оболочки. Приятнее как-то. Сам-то с командной строки проекты часто компилишь? ;)


Во-первых, я не говорю, что консольные утилиты применяются чаще, чем ГУИ. Но скажем, в администировании они активно используются и сейчас.
Во-вторых, мы говорил об обучении программированию, а не о инструментах разработки и не о проф. программировании.
Проекты я компилил с консоли только когда на Qt писал. Последние релизы QDevelop не видел, возможно, теперь в этом нет необходимости:)

Цитата: right_systems

В конце хочу обратить внимание, что первое слово в моем сообщении - "IMHO". Т.е это не наезд на MS или Sun. Это всего лишь МОЕ мнение. И я не ставил себе целью обидеть поклонников вышеупомянутых сред. Так что уж не бейте ))))


Я тоже имхо высказал:)

257
26 июля 2007 года
kosfiz
1.6K / / 18.09.2005
[quote=Zorkus]Я категорически не согласен, что начинать изучать программирование (в том числе ООП), надо с построения наглядного интерфейса.[/quote]
а почему нет? я вот посмотрел пару книжек и вот что обнаружил:
1. Стив Тейксейра, Ксавье Пачеко. Borland Delphi 5 Руководство разработчика - все начинается с GUI;
2. Фаронов В. В. Delphi 7. Программирование на языке высокого уровня - все начинается с GUI;
3. Галисеев Г. В. Delphi 8 for .NET - и опять GUI.
уверен, что есть книги и по С++, в которых все начинается с GUI и это скорее всего касается прежде всего книг посвященных особенностям программирования в среде Borland C++ Builder. лично на мой взгляд с GUI можно начинать, потому что пока знакомишься с основными элементами языка как бы между делом и цепляешь по-тихоньку всякие там кнопочки и т.д., убиваешь двух зайцев одним выстрелом. плюс ко всему, если смотреть еще и с педагогической точки зрения, то надо же чем-то привлечь учащихся? сомневаюсь, что создание консольных приложений породит в них жажду знаний и желание обучаться тому или иному языку программирования и это факт. да и хочу заметить, что автор книги под номером [2] преподаватель с 25-м стажем и уж он то знает с чего начинать.
[quote=Zorkus]Насмотрелся я на типичное преподавание СПО в универе, где программирование ООП представляется на примере VBA (или дельфи)[/quote]
мда, а ты не заврался случаем? или может ты в каком-то захалустном университете учишься? ООП и VBA - это глупость. вот:
[quote=Э. Троелсен]Главным недостатком VB является то, что VB6 является, скорее, "объектно-осведомленным" языком, а не полноценным объектно-ориентированным. Наприме, в VB6 программисту не позволяется связывать типы отношениями "подчиненности"(т.е. нет классического наследования) и нет внутренней поддержки конструкции параметризованных классов.[/quote]
конечно здесь говорится про VB6, но если верить http://ru.wikipedia.org/wiki/Visual_Basic#Visual_Basic_for_Applications_.28VBA.29 , то VB6 ~ VBA.
[quote=Zorkus]Во-первых, я не говорю, что консольные утилиты применяются чаще, чем ГУИ. Но скажем, в администировании они активно используются и сейчас.[/quote]
это ты к чему? right_systems ничего такого и не утверждал.

да и кстати почему никого не насторожило то, что автор спрашивает про компилятор, а вы ему IDE суете. видите же человек разницы не видит, так объяснили бы. или вы тоже не видите?:)
241
26 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
Цитата: kosfiz
да и кстати почему никого не насторожило то, что автор спрашивает про компилятор, а вы ему IDE суете. видите же человек разницы не видит, так объяснили бы. или вы тоже не видите?:)

Ну, автор и про интерфейс ООП говорил чего-то. Вероятно, он не понимает смысл слов "ООП" и "интерфейс", стало быть, кому-то из нас можно за автора додумать и смысл слова "компилятор". :)

63
26 июля 2007 года
Zorkus
2.6K / / 04.11.2006
Цитата: kosfiz
а почему нет? я вот посмотрел пару книжек и вот что обнаружил:
1. Стив Тейксейра, Ксавье Пачеко. Borland Delphi 5 Руководство разработчика - все начинается с GUI;
2. Фаронов В. В. Delphi 7. Программирование на языке высокого уровня - все начинается с GUI;
3. Галисеев Г. В. Delphi 8 for .NET - и опять GUI.
уверен, что есть книги и по С++, в которых все начинается с GUI и это скорее всего касается прежде всего книг посвященных особенностям программирования в среде Borland C++ Builder. лично на мой взгляд с GUI можно начинать, потому что пока знакомишься с основными элементами языка как бы между делом и цепляешь по-тихоньку всякие там кнопочки и т.д., убиваешь двух зайцев одним выстрелом. плюс ко всему, если смотреть еще и с педагогической точки зрения, то надо же чем-то привлечь учащихся? сомневаюсь, что создание консольных приложений породит в них жажду знаний и желание обучаться тому или иному языку программирования и это факт. да и хочу заметить, что автор книги под номером [2] преподаватель с 25-м стажем и уж он то знает с чего начинать.


Ну и ..?? А я могу привести в пример
1. Г. Шилдт "Базовый курс С++" (по нему я учился). Разобрано полностью ООП в С++ (даже и STL охвачено немного), об GUI ни слова, есть только пометка, за точность цитаты не ручаюсь
[quote=Герберт Шилдт]
Программы для виндовс отличаются большим размером и высокой сложность, так как включают себя много элементов, не связанных напрямую с С++ или ООП, потому в данной книге мы рассмотрим только создание консольных приложений...
[/quote]
По-моему, весьма солидный и авторитетный автор.
2. Арнолд, Гослинг, Холмс "Язык программирования Java", там
все ООП явы (на более чем серьезном уровне) тоже рассмотрено на примере консольных приложений, AWT и Swing вкратце обозрен, как часть набора пакетов Java. Тоже серьезный учебник, к тому же от авторов языка.
3. Тот же Троелсен, которого ты цитируешь, разбирает все ООП C# на примере консольных приложений, а SWF отводит, три главы из всей книги, не больше, чем ADO и ASP, кажется ( под рукой нет посмотреть, а читал давно). Его компоновка книги мне, кстати, очень понравилась.
О том, чтобы Страуструп учил С++ на примере ГУИ приложений, тоже что-то не припомню.

Насчет того, что GUI "привлекает" студентов, при начале обучения программированию - скорей, он поощряет к размножению быдлокодеров. ИМХО.
Конечно, педагогическую точку зрения ты знаешь несравнимо лучше меня, но рискну предположить, что если человека в программировании может привлечь, прежде всего, красивое ГУИ, то это не программист. И если автор хочет изучить программирование, то не стоит начинать с GUI..

Цитата: kosfiz

мда, а ты не заврался случаем? или может ты в каком-то захалустном университете учишься? ООП и VBA - это глупость. вот:


Нет, не заврался, тот пример лекции -- это сущая правда. Университет, как и фамилию преподавателей, называть не буду, но скажу, что один из трех крупных тех. ВУЗов области. То, что я привел в пример -- это не мое мнение о VBA, это образец, как и чему учат на лекциях и лабах по СПО.

Цитата: kosfiz

да и кстати почему никого не насторожило то, что автор спрашивает про компилятор, а вы ему IDE суете. видите же человек разницы не видит, так объяснили бы. или вы тоже не видите?:)


Я говорю о создании консольных приложений, а не о создании их консольным способом. Для работы все же удобней, имхо, IDE, хоть с простеньким редактором кода, чем писать в блокноте и компилить MinGW консольно.
P.S. Впрочем, может на мою позицию наложил отпечаток тот факт, что я начинал с решения олимпиадных задач.

257
26 июля 2007 года
kosfiz
1.6K / / 18.09.2005
[quote=Zorkus]Ну и ..?? А я могу привести в пример[/quote]
у них есть опыт преподавания?

кстати, чтобы разбавить твой список назову еще книженцию "Ричард Саймон Microsoft Window API: справочник системного программиста". из аннотации:"для начинающих программистов" и там GUI.
240
27 июля 2007 года
aks
2.5K / / 14.07.2006
kosfiz, опыт преподования как раз показывает, что увлечение студентами GUI, как раз отвлекает их от сути. В итоге может возникнуть очень частая ситуация, что они умеют рисовать окошки в редакторе различных визуальных эелементов, но не уметь программировать. )
257
27 июля 2007 года
kosfiz
1.6K / / 18.09.2005
Цитата: aks
kosfiz, опыт преподования как раз показывает, что увлечение студентами GUI, как раз отвлекает их от сути.


мой, пусть и небольшой, опыт такого не показывает: несколько человек, которые раньше смотрели на программирование как на незнамо что, сейчас активно развиваются, тут главное не переборщить и умело контролировать.
кстати насчет

Цитата: aks
В итоге может возникнуть очень частая ситуация, что они умеют рисовать окошки в редакторе различных визуальных эелементов, но не уметь программировать. )


раньше начинающих привлекали окошки, а теперь на мой взгляд ситуация немного изменилась: их привлекает консоль. многие возомнив себя кулхацкерами пишут что-то консольное, а потом перед не шарящими в компьютерах людьми пальцы гнут. в итоге может сложиться такая ситуация, что такой хацкер сможет оформить классный вывод чего-то в консоли, но программировать может так и не уметь. )

240
27 июля 2007 года
aks
2.5K / / 14.07.2006
kosfiz, это две стороны одной медали. Для начала нужно все же учиться именно программированию, алгоритмике, изучать структуры данных, приемы объектного проектирования. И не отвлекаться на визуальное оформление, если она занимает большую часть времени.
257
27 июля 2007 года
kosfiz
1.6K / / 18.09.2005
не вижу ничего необычайно сложного в том, чтобы используя в качестве IDE Borland Delphi или Borland C++ Builder бросить скажем на форму Memo и пару кнопок, а потом выводить результат в Memo. обучаемые привлечены: да. а результат туда будет выведен какой? тот который получен в результате выполнения скажем заданной задачи, а выполнить её без умения программировать, без изучения алгоритмики, структуры данных и т.д. не возможно. соответственно одни выстрелом двух зайцев, как я уже и говорил. окошки - это стимул.
возьмем к примеру:
 
Код:
MyMemo.Lines.Add('результат');

и
 
Код:
WriteLn('результат');

не вижу особой разницы: результат будет виден конечному пользователю, зато человек будет привлечен к предмету.
240
27 июля 2007 года
aks
2.5K / / 14.07.2006
Цитата: kosfiz
не вижу ничего необычайно сложного в том, чтобы используя в качестве IDE Borland Delphi или Borland C++ Builder бросить скажем на форму Memo и пару кнопок, а потом выводить результат в Memo.


А юзеры поймут сразу как это работает? Тоесть не зная ООП еще и организации объектных библиотек сразу юзать оттуда компоненты, да еще и визардом половину кода делать? А потом уже привыкнут и не будет желания думать, а как же такое реализуют? )

По поводу привлекать - а имеет смысл привлекать? Кому надо они помоему итак привлекутся и не будут смущаться изучению именно сути, а не окошек. А кому неинтерессно это - зачем привлекать? Чтоб потом разочаровывать? Плодить некомпетентных недопрограммеров? Знаешь сколько я таких каждую неделю на собеседованиях вижу? Тоже видимо привлекали, да плохо привлекли ))

257
27 июля 2007 года
kosfiz
1.6K / / 18.09.2005
а ты физику в школе учил? учил, наверное, и что тебе там все процессы, происходящие, скажем, в твердых телах при их облучении чем-нибудь, объясняли? нет, конечно. более глубокое изучение идет в ВУЗах и на соответствующем факультете. тоже самое и здесь в начинке разберутся потом, если решат продолжить изучение. посмотри учебник Касьянова, который считается по мнению Министерства образования РФ лучшим, там именно так. это такая организация обучения и сомневаться в ней не вижу причин, потому что придумали её члены академии наук и надо думать люди там сидят не глупые. а кто мы, чтобы их судить?

кстати, я вот например не разбираюсь в устройстве ЖК монитора, но я же им пользуюсь. тоже самое и здесь.
240
27 июля 2007 года
aks
2.5K / / 14.07.2006
Блин ну почитай еще раз =)) Я же не говорю, что надо в деталях реализации разбираться. И не прошу узнать как приходит сигнал с клавиатуры, как мы потом это обрабатывается драйвером клавиатуры и т.д. =)))
Речь о том, что человек начинает изучать программирование, ООП, а у самого уже во всю исспользуются механизмы оттуда, которые он не понимает еще. Тоесть когда мы учим парадигму процедурного программирования - сначала изучаем операторы, понятия функций, а уже потом активно пользуемся функциями так?
Я уж не говорю о том, что далеко не в каждой задаче надо GUI, а вот логику, структуры данных - надо уметь делать всегда. И еще раз - если человека привлекает только рисование GUI в программировании, то зачем его разочаровывать лишний раз. Программирование - это не рисование GUI. =))

По поводу плохого воздействия - я уже говорил, примоеров много. Часто встречаешь таких людей которые только рисовать окошки умеют. Да весь код, всю логику куданить в обработтчик события GUI пихают. И это ЕДИНСТВЕННЫЙ оказывается способ программирования который они знают. Ни о какой организации логики программы, структур данных, паттернах проетирования в том числе приложения с GUI они похоже не слышали. Наколенный подход - спихнули все в одно, штоб как то было и все. Это хорошо? )

А по поводу министерства образования - так в свете решений принимаемых ими в последнее время да некоторым видам рекомендуемой ими литературы, вот уж им то точно никакого доверия нет =)))
Нашол авторитетов. )
63
27 июля 2007 года
Zorkus
2.6K / / 04.11.2006
kosfiz, ты смотришь на проблему с точки зрения того, как лучше обучать студентов/школьников программированию -- думаю, ты выражаешь позицию преподавателя программирования в учебном заведении общего уровня/профиля.
Я же говорю про то, как следует поступать человеку, который сам решил изучать программирование.
В подкрепление своих слов скажу, что на моей специальности, где я сейчас учусь, те несколько десятков человек, кто стал потом серьезными программистами/админами (это я не про себя совсем, из истории кафедры:)), все занимались самостоятельно, по книгам - и, совпадение или нет, уж не знаю, но почти все они начинали программировать с тренировок по решению олимпиадных задач.
Ни один из наших преподавателей IT не оспаривает, что минимум 90% знаний те получали не на парах.
257
27 июля 2007 года
kosfiz
1.6K / / 18.09.2005
сначала пожалуй отвечу aks'у, а потом уже тебе Zorkus
[quote=aks]Речь о том, что человек начинает изучать программирование, ООП, а у самого уже во всю исспользуются механизмы оттуда, которые он не понимает еще.[/quote]
представь себе, есть учитель физики. так как он учился на физмате то и программирование у него было, но так ни о чем, что называется(кнопочки, окошки, основа языка - самое тривиальное). и вот руководство школы поручает ему написать программку для тестирования учащихся. берет он скажем дельфи и делает эту программку за день - два(GUI). скажи зачем ему разбираться с ООП? зачем ему понимать механизмы? он не профи, так зачем ему? как думаешь, как отнесутся учащиеся к программе, если она будет консольной? кстати результаты тестов зависят от того консоль или GUI.
[quote=aks]И еще раз - если человека привлекает только рисование GUI в программировании, то зачем его разочаровывать лишний раз. Программирование - это не рисование GUI. =))[/quote]
отвечу твоей же цитатой:
[quote=aks]Блин ну почитай еще раз =))[/quote]

[quote=aks]А по поводу министерства образования - так в свете решений принимаемых ими в последнее время да некоторым видам рекомендуемой им литературы, вот уж ими то точно никакого доверия нет =)))
Нашол авторитетов. )[/quote]
то, что ты с ними не согласен еще не значит что у тебя правильная позиция. и авторитет у них поболее, чем у тебя:) не надо быть самоуверенным, между самоуверенностью и беспечностью грани почти нет.
и кстати вот вам цитата:
[quote=Страуструп]Соответсвенно, С++может теперь преподаваться как язык более высокого уровня.То есть основное внимание можно уделять контейнерам и алгоритмам,а не жанглированию битами, обьединениями, строками в стиле С, массивами и прочее. Более низкоуровневые понятия (такие как массивы, нетривиальное использование указателей и приведения типов), естественно также придется изучить. Но их представление теперь удается отложить до тех пор, пока новичек в программировании на С++, читатель или студент не обретут зрелость, необходимую, чтобы воспринимать эти средства в контексте более высокоуровневых концепций, к применению которых обучаемые уже привыкли.[/quote]
так что думайте и проводите параллель.
257
27 июля 2007 года
kosfiz
1.6K / / 18.09.2005
Цитата: Zorkus
kosfiz, ты смотришь на проблему с точки зрения того, как лучше обучать студентов/школьников программированию -- думаю, ты выражаешь позицию преподавателя программирования в учебном заведении общего уровня/профиля.
Я же говорю про то, как следует поступать человеку, который сам решил изучать программирование.
В подкрепление своих слов скажу, что на моей специальности, где я сейчас учусь, те несколько десятков человек, кто стал потом серьезными программистами/админами (это я не про себя совсем, из истории кафедры:)), все занимались самостоятельно, по книгам - и, совпадение или нет, уж не знаю, но почти все они начинали программировать с тренировок по решению олимпиадных задач.
Ни один из наших преподавателей IT не оспаривает, что минимум 90% знаний те получали не на парах.


это оффтоп какой-то.

Цитата: Zorkus
Я же говорю про то, как следует поступать человеку, который сам решил изучать программирование.


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

240
27 июля 2007 года
aks
2.5K / / 14.07.2006
Цитата: kosfiz
сначала пожалуй отвечу aks'у, а потом уже тебе Zorkus

представь себе, есть учитель физики. так как он учился на физмате то и программирование у него было, но так ни о чем, что называется(кнопочки, окошки, основа языка - самое тривиальное). и вот руководство школы поручает ему написать программку для тестирования учащихся. берет он скажем дельфи и делает эту программку за день - два(GUI). скажи зачем ему разбираться с ООП? зачем ему понимать механизмы? он не профи, так зачем ему? как думаешь, как отнесутся учащиеся к программе, если она будет консольной? кстати результаты тестов зависят от того консоль или GUI.


Ну вот видишь в чем вся проблема. Мы говорим о разных вещах. Я говорю об обучению программированию. Чтобы стать профессиональным программистом. А ты говоришь о том что изучить метдоды добавления кнопочек в GUI в качестве хобби. Это совсем разные вещи. Не проффи, как ты говоришь - пускай делают что хотят, если это не основной их род занятий, пусть балуются. Я например всеже работаю в компании производящей софт. И мне не надо чтоб человек умел кнопочки тыкать, мне надо чтоб он умел грамотно решать поставленную задачу, хорошо проектировать свою реализацию, чтоб конечный результат был хороший и его поддержка легкой. Так что тут как раз нужны все эти знания, ненужные твоему учителю. И это не GUI за 2 дня натыкать. Тут после таких вот натыкиваний можно месяц хлам из проекта вычищать. )
К тому же софт может быть совсем без GUI, да и консоль ему ни к чему. Совсем автономная серверная программа, системный сервис, и т.п.

Но тем не менее автор спрашивал все же о том на чем учиться программированию, а не проводить свободное время за рисованием GUI. Так что считаю, что моя позиция более верная.

Цитата: kosfiz

отвечу твоей же цитатой:


Не принимается.

Цитата: kosfiz

то, что ты с ними не согласен еще не значит что у тебя правильная позиция. и авторитет у них поболее, чем у тебя:)


Смотря перед кем. Авторитет вещь относительная.

Цитата: kosfiz

и кстати вот вам цитата:

так что думайте и проводите параллель.



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

257
27 июля 2007 года
kosfiz
1.6K / / 18.09.2005
[quote=aks]Ну вот видишь в чем вся проблема. Мы говорим о разных вещах. Я говорю об обучению программированию. Чтобы стать профессиональным программистом. А ты говоришь о том что изучить метдоды добавления кнопочек в GUI в качестве хобби.[/quote]
не путай и правильно воспринимай информацию - это только пример. я говорю об обучении программированию не только тех кто станет профи и, но для остальных. и кстати автор не говорил что он хочет быть профи, так что твоя позиция не особо-то.
[quote=aks]Ну если ты внимательнее прочтешь эту цитату, то возможно как раз и увидешь, что Страуструпп призывает как раз изучению языка, алгоритмики, контейнеров и т.п. не овлекаясь на побочную работы типа всевозможной низкоуровневой работы. Но в том числе не стоит я думаю и отвлекаться на реализацию окон темболее если не понимаешь, что за код генерит визард. И почему ты так его исспользуешь.[/quote]
какая алгоритмика? в цитате Страуструп имеет ввиду обощенные алгоритмы STL, а не теорию алгоритмов.
240
27 июля 2007 года
aks
2.5K / / 14.07.2006
Цитата: kosfiz
не путай и правильно воспринимай информацию - это только пример. я говорю об обучении программированию не только тех кто станет профи и, но для остальных. и кстати автор не говорил что он хочет быть профи, так что твоя позиция не особо-то.


А зачем учить программированию остальных? Если им это не надо? Ну да можно им для общего развития дать какие то основы исспользования какого то IDE, но это не обучение программированию. Это обучения построения GUI в конкретной IDE.
Ведь тебе не приходит в голову обучать столярному делу или сантехнике всех подряд, кроме тех кто не хочет этим заниматься профессиаонально. Да конечно у многоих есть какие то базовые навыки типа перекрыть кран в унитаз, или построгать деревяшку.

Цитата: kosfiz

какая алгоритмика? в цитате Страуструп имеет ввиду обощенные алгоритмы STL, а не теорию алгоритмов.


страуструп говорит об обучении программированию и ООП парадигме. При чем тут теория алгоритмов? Ты знаешь что этот такое? =)

9
28 июля 2007 года
Lerkin
3.0K / / 25.03.2003
Блин, название темы прочитал как "С какого калькулятора лучше начинать учиться программированию". :eek: Долго думал, и... выпал в осадок.
240
28 июля 2007 года
aks
2.5K / / 14.07.2006
Ну а что, с программирования калькуляторов тоже некоторые начинают =)))
241
28 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
ИМХО, учиться надо от простого к сложному.

Простое и сложное может быть в любой технологии и парадигме программирования. В любой технологии и парадигме есть методы, которыми не надо пользоваться в обучении. Так, при обучении ООП неправильно использовать VB6 и JavaScript, а в обучении программированию (по мнению Джоэла Спольски) не очень правильно использовать только Java. Учиться программировать на ассемблере прекрасно во всех отношениях кроме одного: зарабатывать деньги программированием на ассемблере в среднем случае труднее, чем на С++. Но много ли мы знаем Мастеров Ассемблера?

Путей к мастерству - много, но всякий путь начинается с простого и заканчивается сложным, которое тоже просто, но - потом.

Если бы форум навалился на К. Э. со словами "Чувак, занимайся ассемблером, вот путь к мастерству!", кто знает, может быть, в мире стало бы одним Мастером Ассемблера больше?

Поэтому самое главное - определиться с задачей обучения. А от задачи и двигаться. Я во всём это м обсуждении пока что не увидел ни единого упоминания о том, для чего К. Э. собрался изчать программирование. А ведь это наиболее интересно, ибо ответы на вопрос без знания конечной задачи - пустое сотрясение воздуха.
241
28 июля 2007 года
Sanila_san
1.6K / / 07.06.2005
В свете вышесказанного могу предположить, что начинать с олимпиадных задач - не самая правильная практика. Уже хотя бы и в силу того, что олимпиадные задачи всегда относительно сложны и подразумевают наличие каких-то знаний в предметной области. Это всё равно что начинать изучение математики или физики с решения олимпиадных задач. Однако попробовать решать такие задачи - полезно в качестве гимнастики для ума. Без этого тоже никуда.
240
28 июля 2007 года
aks
2.5K / / 14.07.2006
Цитата: Sanila_san
Учиться программировать на ассемблере прекрасно во всех отношениях кроме одного: зарабатывать деньги программированием на ассемблере в среднем случае труднее, чем на С++. Но много ли мы знаем Мастеров Ассемблера?


Ну все же ассемблер куда менее универсально и сильнол завязанно на конкретную аппаратную платформу. Получается сразу учишь только как работает конкретная железка и какой у ней список команд =)

276
28 июля 2007 года
Rebbit
1.1K / / 01.08.2005
Цитата: Sanila_san
начинать с олимпиадных задач - не самая правильная практика.


Я бы здесь розделил понятия "изучения языка программирования" и "научится программировать". Есть простые олимпиадние задачки (ну к примеру со школьных олимпиад информатики). Такие задачи учат понимать процес виполнения программы, выбирать правильное представления данных, организировать цепочку исчислений.
Если человек уже достаточно свободно владеет языком, то практиковаться на таких задачах было бы очень полезно. А то бывает в ООП розбирается, с компонентами та короткой руке, а ручками чето отсортировать слабо.
А уж потом зная язык, умея создавать алгоритмы, изучив и главное поняв концепции ООП можно и структуру програмы и класов учится проектировать.

10
28 июля 2007 года
Freeman
3.2K / / 06.03.2004
А я на днях понял смысл байки "программисту не составляет труда изучить новый язык программирования". Большинство современных языков основаны на Си-синтаксисе, поэтому и не составляет. А на PHP писать всё равно не буду - ужасный язык.
294
29 июля 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Freeman
А я на днях понял смысл байки "программисту не составляет труда изучить новый язык программирования". Большинство современных языков основаны на Си-синтаксисе, поэтому и не составляет. А на PHP писать всё равно не буду - ужасный язык.


Не все. Oracle PL/SQL -- это чистой воды Ада (я недавно узнал, что могу программировать на Аде :D). А PHP -- IMHO, идеальный скриптовый язык именно для серверной части web-морды. Из "совсем не-C" могу упомянуть Lisp, Prolog, APL, Forth.

10
29 июля 2007 года
Freeman
3.2K / / 06.03.2004
Цитата: Plisteron
Не все. Oracle PL/SQL -- это чистой воды Ада (я недавно узнал, что могу программировать на Аде :D).


Приятное исключение. Что дозволено богам, как говорится.

Цитата: Plisteron
Из "совсем не-C" могу упомянуть Lisp, Prolog, APL, Forth.


Угу. Слыша ту самую байку, сразу представляется человек, не знакомый с функционалкой, пытающийся понять Лисп.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог