С какого компилятора лучше начинать учиться программированию?
Вопрос в следующем: 1) если я, например, хочу изучить язык С или С++ без замороченного (для меня на данный момент) объектно ориентированного подхода, то каким компилятором конкретно мне следует воспользоваться, чтобы была возможность писать реально исполняемые программы-упражнения из руководств? 2) Если следует начинать не с С, то с чего именно, что достаточно современно? Опять же, где взять соответствующие руководства и работающий под них компилятор.
Операционная система, в которой я бы хотел заняться обучением - ХР проф.
Заранее спасибо.
Зы. Пытался искать по форуму, но безрезультатно.
- IDE очент проста и удобна (ИМХО)
- IDE очент проста и удобна (ИМХО)
Вредный совет. Старая среда разработки сильно не соответствующая стандарту C++.
Если уж советовать MSVC++ то версии не ниже 7.1 или 8
А что такое "интерфейс ООП" к которому не надо обращаться. Чето я не проникся термином. )
От себе могу для начала предложить MinGW Studio (найдешь легко сам). Она для разработки не слишком удобна (автодополнения нету, например), но простая и интуитивная (имхо).
Причем здесь Java? Или ты так, для красного словца?...
Не надо таких уверенных заявлений. Судя про политике MS им же самим и выгодно не развивать .Net, а через годик третий выпустить что то новое.
Программирование под Windows != программирование ООП.
Еще посмотри на исходники учебных программ OpenGL от NeHE, например - там вообще нету ООП.
Если же ты имеешь в виду под программированием "под Виндовс" - создание GUI-приложений --- то начинать изучение программирования с этого не нужно.
Но службы и драйвера вряд ли подходят для новичков, а консольные приложения свое все-таки отжили. Так что советую начать все-таки с изучения ООП.
Ты уверен, что отжили? Может, просто ты их не используешь?;)
Начинать изучение С++ как раз стоит с консольных приложений. Они позволят не отвлекаться от логики программы на представление данных.
Самому мне эта среда (как и Java) не особо нравится, M$ довольно успешно продвигает ее и уже не за горами времена, когда без знания .Net работу будет отыскать довольно сложно.
А что тебе нравится, если не секрет?:)
Тогда по порядку
И .Net и Java используют похожие, если не сказать "одинаковые" базовые концепции, а именно:
- компиляция программы в некий абстрактный байт-код, выполняющийся в специальной виртуальной машине.
- автоматическое управление памятью
А не нравится мне в этом то, что при использовании такой схемы программа будет работать гораздо медленнее и памяти будет отъедать гораздо больше. За примерами далеко ходить не надо - любая среда разработки, написанная на Java (например, Idea или Eclipse). Они отжирают от 200 до 600 М памяти, а куда более шустрая Visual Studio - около 50. Измерения проводились на небольших проектах. Больших проктов, написанных под .Net, сам не видел, так что цифр привести не могу, но есть основания предполагать, что их аналоги, написанные под Win32, будут все-таки менее ресурсоемкими. Агрументы выше.
OpenGL - самое то для новичка :)
GUI - куда более наглядно может отобразить результат работы программы, особенно если этих результатов больше одного.
Твои бы слова, да Гейтсу в уста ))
Почему? Использую. Только если не считать Far'a, это все специальные утилиты, рядовым юзерам мало интересные. И то часто лень ключи запоминать, использую GUI-оболочки. Приятнее как-то. Сам-то с командной строки проекты часто компилишь? ;)
В конце хочу обратить внимание, что первое слово в моем сообщении - "IMHO". Т.е это не наезд на MS или Sun. Это всего лишь МОЕ мнение. И я не ставил себе целью обидеть поклонников вышеупомянутых сред. Так что уж не бейте ))))
- компиляция программы в некий абстрактный байт-код, выполняющийся в специальной виртуальной машине.
- автоматическое управление памятью
Базовые концепции похожи, но отличаются. Насчёт современных реализаций Java я не могу сказать точно, но изначально между .Net И Java было то принципиальное отличие, что байт-код Явы интерпретировался, а MSIL компилировался в машинный при запуске программы, потом этот машинный код и выполнялся. Причём можно было сделать так, чтобы он компилировался только при первом запуске программы. А ещё можно было сделать так, чтобы он компилировался в машкод, оптимальный для данного конкретного процессора, отчего скорость исполнения такого кода может быть даже выше.
В RSDN был проведён интересный эксперимент. Так вот, код из Delphi 7 был примерно сравним по скорости исполнения с кодом на с C#, полагаю, это сравнение справедливо и для VB.NET. Кроме прочего, говорить об абстрактном быстродействии некорректно. А привязываться к старому железу не всегда разумно; разумно привязываться к конкретному железу.
[QUOTE=Odissey_]Не надо таких уверенных заявлений. Судя про политике MS им же самим и выгодно не развивать .Net, а через годик третий выпустить что то новое.[/QUOTE]Это явление хорошо прокомментировал Джоэл Спольски.
Осваивать программирование можно и на графических приложениях, и на консольных. Лучше уметь использовать оба типа. Я, например, для работы над проектом написал консольный инструмент, а начальник написал бы его с GUI; у нас из-за этого даже спор возник на тему "Что проще отлаживать". На самом деле, рассуждать о том, что лучше и полезнее - консоль или Win-формы - глупо безотносительно задачи проектирования.
ИМХО, изучать С++ без освоения ООП - не самое перспективное занятие, ибо в сила С++ как раз в применимости его к ООП.
По странному стечению обстоятельств мне попалось только одно руководство, которое не отсылало к конкретному компилятору явно. Оно отсылало к нескольким компиляторам. :) Да, собственно, разве в компиляторе счастье? Даже если Borland C++ Builder отличается от MSVC++, и оба они несколько отличаются от стандарта STL, всё равно можно после одного освоить другой. Мой личный опыт говорит, что после Delphi можно вполне неплохо освоить VB.NET.
А что и для чего программировать? Я, например, могу сказать, что более правильной практикой считается последовательное изучение основ программирования ([COLOR="Green"]на Pascal (это хорошая школа структурного програмимрования), потом или вместе с этим - на С (даёт глубокое понимание внутренних механизмов работы), а потом - специализация по интересу, обычно на ООП[/COLOR]), нежели сразу изучение JavaScript при помощи блокнота и браузера. Есть мнение, что хорошая практика - сразу осваивать ООП на языке, в котором ООП поддерживается полностью (то есть не JavaScript и не VB6), перед этим стоит перестать бояться ООП. Оно не так страшно, как его малюют.
Ответов на этот вопрос в этом форуме более чем достаточно. Найти можно даже без поиска, если определиться с языком и задачами обучения.
Disclaimer, однако, я смотрю, это уже становится классикой. :)Поисковый запрос всегда должен быть адекватен задаче поиска. Сейчас этот форум достаточно велик для того, чтобы на нём можно было найти всё, кроме того, чего здесь точно нет. Тема "С чего начать", очевидно, обсуждалась не один десяток раз. ;)
А не нравится мне в этом то, что при использовании такой схемы программа будет работать гораздо медленнее и памяти будет отъедать гораздо больше. За примерами далеко ходить не надо - любая среда разработки, написанная на Java (например, Idea или Eclipse). Они отжирают от 200 до 600 М памяти, а куда более шустрая Visual Studio - около 50. Измерения проводились на небольших проектах. Больших проктов, написанных под .Net, сам не видел, так что цифр привести не могу, но есть основания предполагать, что их аналоги, написанные под Win32, будут все-таки менее ресурсоемкими. Агрументы выше.
Основные преимущества таких платформ совсем не в экономии ресурсов, сам понимаешь:)
Насколько я знаю (хотя могу ошибаться), "среднестатистичное" приложение .NET 3.0 на десктопе по производительности не отличается от написанного на unmanaged C++.
А в "серверном" программировании, где царит ява, там думаю, как раз ресурсоемкость не слишком важна.
OpenGL - самое то для новичка
Я не к тому, что это подходит для новичка, а чтобы показать отличие между программированием "под виндовс" и программирования ООП.
GUI - куда более наглядно может отобразить результат работы программы, особенно если этих результатов больше одного.
Я категорически не согласен, что начинать изучать программирование (в том числе ООП), надо с построения наглядного интерфейса. Насмотрелся я на типичное преподавание СПО в универе, где программирование ООП представляется на примере VBA (или дельфи) примерно так: "Нам предоставлены MicroSoft/Borland/.. компоненты интерфейса - кнопка, список, текстовая метка, и вот из них строятся приложения с графическим интерфейсом пользователя."
В итоге, часто собственно код в таком представлении - это исключительно обработка событий, а самое главное, при разработке приложения -- это красиво разместить и оформить контролы на форме.
(Нисколько не утрирую, по воспоминаниям из многочисленных попыток сдать лабораторные одному такому преподавателю...).
О таком неправильном понимании интерфейса (антипаттерн "Волшебная кнопка") хорошо пишет, кстати, Брюс Тейт в книге "Горький вкус Java".
Почему? Использую. Только если не считать Far'a, это все специальные утилиты, рядовым юзерам мало интересные. И то часто лень ключи запоминать, использую GUI-оболочки. Приятнее как-то. Сам-то с командной строки проекты часто компилишь? ;)
Во-первых, я не говорю, что консольные утилиты применяются чаще, чем ГУИ. Но скажем, в администировании они активно используются и сейчас.
Во-вторых, мы говорил об обучении программированию, а не о инструментах разработки и не о проф. программировании.
Проекты я компилил с консоли только когда на Qt писал. Последние релизы QDevelop не видел, возможно, теперь в этом нет необходимости:)
В конце хочу обратить внимание, что первое слово в моем сообщении - "IMHO". Т.е это не наезд на MS или Sun. Это всего лишь МОЕ мнение. И я не ставил себе целью обидеть поклонников вышеупомянутых сред. Так что уж не бейте ))))
Я тоже имхо высказал:)
а почему нет? я вот посмотрел пару книжек и вот что обнаружил:
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 суете. видите же человек разницы не видит, так объяснили бы. или вы тоже не видите?:)
Ну, автор и про интерфейс ООП говорил чего-то. Вероятно, он не понимает смысл слов "ООП" и "интерфейс", стало быть, кому-то из нас можно за автора додумать и смысл слова "компилятор". :)
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..
мда, а ты не заврался случаем? или может ты в каком-то захалустном университете учишься? ООП и VBA - это глупость. вот:
Нет, не заврался, тот пример лекции -- это сущая правда. Университет, как и фамилию преподавателей, называть не буду, но скажу, что один из трех крупных тех. ВУЗов области. То, что я привел в пример -- это не мое мнение о VBA, это образец, как и чему учат на лекциях и лабах по СПО.
да и кстати почему никого не насторожило то, что автор спрашивает про компилятор, а вы ему IDE суете. видите же человек разницы не видит, так объяснили бы. или вы тоже не видите?:)
Я говорю о создании консольных приложений, а не о создании их консольным способом. Для работы все же удобней, имхо, IDE, хоть с простеньким редактором кода, чем писать в блокноте и компилить MinGW консольно.
P.S. Впрочем, может на мою позицию наложил отпечаток тот факт, что я начинал с решения олимпиадных задач.
у них есть опыт преподавания?
кстати, чтобы разбавить твой список назову еще книженцию "Ричард Саймон Microsoft Window API: справочник системного программиста". из аннотации:"для начинающих программистов" и там GUI.
мой, пусть и небольшой, опыт такого не показывает: несколько человек, которые раньше смотрели на программирование как на незнамо что, сейчас активно развиваются, тут главное не переборщить и умело контролировать.
кстати насчет
раньше начинающих привлекали окошки, а теперь на мой взгляд ситуация немного изменилась: их привлекает консоль. многие возомнив себя кулхацкерами пишут что-то консольное, а потом перед не шарящими в компьютерах людьми пальцы гнут. в итоге может сложиться такая ситуация, что такой хацкер сможет оформить классный вывод чего-то в консоли, но программировать может так и не уметь. )
возьмем к примеру:
и
не вижу особой разницы: результат будет виден конечному пользователю, зато человек будет привлечен к предмету.
А юзеры поймут сразу как это работает? Тоесть не зная ООП еще и организации объектных библиотек сразу юзать оттуда компоненты, да еще и визардом половину кода делать? А потом уже привыкнут и не будет желания думать, а как же такое реализуют? )
По поводу привлекать - а имеет смысл привлекать? Кому надо они помоему итак привлекутся и не будут смущаться изучению именно сути, а не окошек. А кому неинтерессно это - зачем привлекать? Чтоб потом разочаровывать? Плодить некомпетентных недопрограммеров? Знаешь сколько я таких каждую неделю на собеседованиях вижу? Тоже видимо привлекали, да плохо привлекли ))
кстати, я вот например не разбираюсь в устройстве ЖК монитора, но я же им пользуюсь. тоже самое и здесь.
Речь о том, что человек начинает изучать программирование, ООП, а у самого уже во всю исспользуются механизмы оттуда, которые он не понимает еще. Тоесть когда мы учим парадигму процедурного программирования - сначала изучаем операторы, понятия функций, а уже потом активно пользуемся функциями так?
Я уж не говорю о том, что далеко не в каждой задаче надо GUI, а вот логику, структуры данных - надо уметь делать всегда. И еще раз - если человека привлекает только рисование GUI в программировании, то зачем его разочаровывать лишний раз. Программирование - это не рисование GUI. =))
По поводу плохого воздействия - я уже говорил, примоеров много. Часто встречаешь таких людей которые только рисовать окошки умеют. Да весь код, всю логику куданить в обработтчик события GUI пихают. И это ЕДИНСТВЕННЫЙ оказывается способ программирования который они знают. Ни о какой организации логики программы, структур данных, паттернах проетирования в том числе приложения с GUI они похоже не слышали. Наколенный подход - спихнули все в одно, штоб как то было и все. Это хорошо? )
А по поводу министерства образования - так в свете решений принимаемых ими в последнее время да некоторым видам рекомендуемой ими литературы, вот уж им то точно никакого доверия нет =)))
Нашол авторитетов. )
Я же говорю про то, как следует поступать человеку, который сам решил изучать программирование.
В подкрепление своих слов скажу, что на моей специальности, где я сейчас учусь, те несколько десятков человек, кто стал потом серьезными программистами/админами (это я не про себя совсем, из истории кафедры:)), все занимались самостоятельно, по книгам - и, совпадение или нет, уж не знаю, но почти все они начинали программировать с тренировок по решению олимпиадных задач.
Ни один из наших преподавателей IT не оспаривает, что минимум 90% знаний те получали не на парах.
[quote=aks]Речь о том, что человек начинает изучать программирование, ООП, а у самого уже во всю исспользуются механизмы оттуда, которые он не понимает еще.[/quote]
представь себе, есть учитель физики. так как он учился на физмате то и программирование у него было, но так ни о чем, что называется(кнопочки, окошки, основа языка - самое тривиальное). и вот руководство школы поручает ему написать программку для тестирования учащихся. берет он скажем дельфи и делает эту программку за день - два(GUI). скажи зачем ему разбираться с ООП? зачем ему понимать механизмы? он не профи, так зачем ему? как думаешь, как отнесутся учащиеся к программе, если она будет консольной? кстати результаты тестов зависят от того консоль или GUI.
[quote=aks]И еще раз - если человека привлекает только рисование GUI в программировании, то зачем его разочаровывать лишний раз. Программирование - это не рисование GUI. =))[/quote]
отвечу твоей же цитатой:
[quote=aks]Блин ну почитай еще раз =))[/quote]
[quote=aks]А по поводу министерства образования - так в свете решений принимаемых ими в последнее время да некоторым видам рекомендуемой им литературы, вот уж ими то точно никакого доверия нет =)))
Нашол авторитетов. )[/quote]
то, что ты с ними не согласен еще не значит что у тебя правильная позиция. и авторитет у них поболее, чем у тебя:) не надо быть самоуверенным, между самоуверенностью и беспечностью грани почти нет.
и кстати вот вам цитата:
[quote=Страуструп]Соответсвенно, С++может теперь преподаваться как язык более высокого уровня.То есть основное внимание можно уделять контейнерам и алгоритмам,а не жанглированию битами, обьединениями, строками в стиле С, массивами и прочее. Более низкоуровневые понятия (такие как массивы, нетривиальное использование указателей и приведения типов), естественно также придется изучить. Но их представление теперь удается отложить до тех пор, пока новичек в программировании на С++, читатель или студент не обретут зрелость, необходимую, чтобы воспринимать эти средства в контексте более высокоуровневых концепций, к применению которых обучаемые уже привыкли.[/quote]
так что думайте и проводите параллель.
Я же говорю про то, как следует поступать человеку, который сам решил изучать программирование.
В подкрепление своих слов скажу, что на моей специальности, где я сейчас учусь, те несколько десятков человек, кто стал потом серьезными программистами/админами (это я не про себя совсем, из истории кафедры:)), все занимались самостоятельно, по книгам - и, совпадение или нет, уж не знаю, но почти все они начинали программировать с тренировок по решению олимпиадных задач.
Ни один из наших преподавателей IT не оспаривает, что минимум 90% знаний те получали не на парах.
это оффтоп какой-то.
по-любому он книгу какую-нибудь в руки возьмет, а там хопа и GUI. поймите не обязательно новичку консольные прожки писать. то, что начинать надо с консоли - это просто штамп, не более.
представь себе, есть учитель физики. так как он учился на физмате то и программирование у него было, но так ни о чем, что называется(кнопочки, окошки, основа языка - самое тривиальное). и вот руководство школы поручает ему написать программку для тестирования учащихся. берет он скажем дельфи и делает эту программку за день - два(GUI). скажи зачем ему разбираться с ООП? зачем ему понимать механизмы? он не профи, так зачем ему? как думаешь, как отнесутся учащиеся к программе, если она будет консольной? кстати результаты тестов зависят от того консоль или GUI.
Ну вот видишь в чем вся проблема. Мы говорим о разных вещах. Я говорю об обучению программированию. Чтобы стать профессиональным программистом. А ты говоришь о том что изучить метдоды добавления кнопочек в GUI в качестве хобби. Это совсем разные вещи. Не проффи, как ты говоришь - пускай делают что хотят, если это не основной их род занятий, пусть балуются. Я например всеже работаю в компании производящей софт. И мне не надо чтоб человек умел кнопочки тыкать, мне надо чтоб он умел грамотно решать поставленную задачу, хорошо проектировать свою реализацию, чтоб конечный результат был хороший и его поддержка легкой. Так что тут как раз нужны все эти знания, ненужные твоему учителю. И это не GUI за 2 дня натыкать. Тут после таких вот натыкиваний можно месяц хлам из проекта вычищать. )
К тому же софт может быть совсем без GUI, да и консоль ему ни к чему. Совсем автономная серверная программа, системный сервис, и т.п.
Но тем не менее автор спрашивал все же о том на чем учиться программированию, а не проводить свободное время за рисованием GUI. Так что считаю, что моя позиция более верная.
отвечу твоей же цитатой:
Не принимается.
то, что ты с ними не согласен еще не значит что у тебя правильная позиция. и авторитет у них поболее, чем у тебя:)
Смотря перед кем. Авторитет вещь относительная.
и кстати вот вам цитата:
так что думайте и проводите параллель.
Ну если ты внимательнее прочтешь эту цитату, то возможно как раз и увидешь, что Страуструпп призывает как раз изучению языка, алгоритмики, контейнеров и т.п. не овлекаясь на побочную работы типа всевозможной низкоуровневой работы. Но в том числе не стоит я думаю и отвлекаться на реализацию окон темболее если не понимаешь, что за код генерит визард. И почему ты так его исспользуешь.
не путай и правильно воспринимай информацию - это только пример. я говорю об обучении программированию не только тех кто станет профи и, но для остальных. и кстати автор не говорил что он хочет быть профи, так что твоя позиция не особо-то.
[quote=aks]Ну если ты внимательнее прочтешь эту цитату, то возможно как раз и увидешь, что Страуструпп призывает как раз изучению языка, алгоритмики, контейнеров и т.п. не овлекаясь на побочную работы типа всевозможной низкоуровневой работы. Но в том числе не стоит я думаю и отвлекаться на реализацию окон темболее если не понимаешь, что за код генерит визард. И почему ты так его исспользуешь.[/quote]
какая алгоритмика? в цитате Страуструп имеет ввиду обощенные алгоритмы STL, а не теорию алгоритмов.
А зачем учить программированию остальных? Если им это не надо? Ну да можно им для общего развития дать какие то основы исспользования какого то IDE, но это не обучение программированию. Это обучения построения GUI в конкретной IDE.
Ведь тебе не приходит в голову обучать столярному делу или сантехнике всех подряд, кроме тех кто не хочет этим заниматься профессиаонально. Да конечно у многоих есть какие то базовые навыки типа перекрыть кран в унитаз, или построгать деревяшку.
какая алгоритмика? в цитате Страуструп имеет ввиду обощенные алгоритмы STL, а не теорию алгоритмов.
страуструп говорит об обучении программированию и ООП парадигме. При чем тут теория алгоритмов? Ты знаешь что этот такое? =)
Простое и сложное может быть в любой технологии и парадигме программирования. В любой технологии и парадигме есть методы, которыми не надо пользоваться в обучении. Так, при обучении ООП неправильно использовать VB6 и JavaScript, а в обучении программированию (по мнению Джоэла Спольски) не очень правильно использовать только Java. Учиться программировать на ассемблере прекрасно во всех отношениях кроме одного: зарабатывать деньги программированием на ассемблере в среднем случае труднее, чем на С++. Но много ли мы знаем Мастеров Ассемблера?
Путей к мастерству - много, но всякий путь начинается с простого и заканчивается сложным, которое тоже просто, но - потом.
Если бы форум навалился на К. Э. со словами "Чувак, занимайся ассемблером, вот путь к мастерству!", кто знает, может быть, в мире стало бы одним Мастером Ассемблера больше?
Поэтому самое главное - определиться с задачей обучения. А от задачи и двигаться. Я во всём это м обсуждении пока что не увидел ни единого упоминания о том, для чего К. Э. собрался изчать программирование. А ведь это наиболее интересно, ибо ответы на вопрос без знания конечной задачи - пустое сотрясение воздуха.
Ну все же ассемблер куда менее универсально и сильнол завязанно на конкретную аппаратную платформу. Получается сразу учишь только как работает конкретная железка и какой у ней список команд =)
Я бы здесь розделил понятия "изучения языка программирования" и "научится программировать". Есть простые олимпиадние задачки (ну к примеру со школьных олимпиад информатики). Такие задачи учат понимать процес виполнения программы, выбирать правильное представления данных, организировать цепочку исчислений.
Если человек уже достаточно свободно владеет языком, то практиковаться на таких задачах было бы очень полезно. А то бывает в ООП розбирается, с компонентами та короткой руке, а ручками чето отсортировать слабо.
А уж потом зная язык, умея создавать алгоритмы, изучив и главное поняв концепции ООП можно и структуру програмы и класов учится проектировать.
Не все. Oracle PL/SQL -- это чистой воды Ада (я недавно узнал, что могу программировать на Аде :D). А PHP -- IMHO, идеальный скриптовый язык именно для серверной части web-морды. Из "совсем не-C" могу упомянуть Lisp, Prolog, APL, Forth.
Приятное исключение. Что дозволено богам, как говорится.
Угу. Слыша ту самую байку, сразу представляется человек, не знакомый с функционалкой, пытающийся понять Лисп.