powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Преподавать C++ или C#?
25 сообщений из 230, страница 1 из 10
Преподавать C++ или C#?
    #37927720
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И опять тема холивара. Но вдруг кто-то выскажет ценную идею?

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

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Вопрос: на базе чего это лучше делать - С++ или C#? (пробовал и так, и так - не могу пока понять, что лучше подходит)

Критерии:
с моей точки зрения, курс должен научить студентов мыслить объектно. Все подробности просто не успеть охватить, но если будет хороший фундамент - они дальше сами, на практике, подтянут что нужно (кто захочет, конечно). С этой точки зрения С++ предпочтительнее, поскольку:
1. Дает более глубокое понимание того, как это все работает.
2. Дает свободу дальнейшего пути: можно изучить C#\Java (после С++ это будет легче, чем идти наоборот), захотят уйти со стека MS - пожалуйста, Qt, мир Linux и пр. А с C# им будет сложно уйти в С++, и они по моей вине станут "заложниками" MS-технологий.

С точки зрения студентов, важен "быстрый старт", они хотят как можно быстрее начать что-то делать, видеть результат, и иметь шанс найти работу. Начинается это уже при написании диплома в конце обучения: C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение. ДА и в целом, на C# ряд типовых задач (формочки, БД, сеть, графика) они решат легче и быстрее, без всяких сторонних библиотек и пр. Судя по вакансиям, .net-разработчики как-то более востребованы, чем плюсовики.

Такая вот дилемма. Поделитесь опытом и мыслями?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927724
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UPD: да, и забыл упомянуть еще и такой момент: переход C=>C++ более прост, чем C=>C# (IMHO).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927738
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО 8 лекций - не так уж и много, чтобы забивать им еще голову новым языком.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927751
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, конечно, "C# более приветлив по отношению к программисту, желающему быстро наклепать симпатичное Desktop-приложение", но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927753
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace,

Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную". Для формочек, положим, Qt - с него на C# тоже несложно.
Хотя, воля Ваша, "цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи и при разных её трактовках будут получаться разные советы. Скажем, C++ позволяет хотя бы пунктиром наметить, как всё то же самое можно было бы получить на чистом C, что полезно для понимания подлежащей механики, но хороший вопрос, насколько оно в Вашем случае надо.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927887
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettИМХО 8 лекций - не так уж и много, чтобы забивать им еще голову новым языком.

ООП стоит в программе, ну и штука это нужная. Как его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927903
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos, но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++.

Вы поставьте себя на место человека, который пока не знает почти ничего! Ему придется очень попотеть, чтобы подключить boost и пр. Да, опыт этот нужен - но не все сразу. Зачем сейчас человеку заморачиваться с поиском хорошей библиотеки для UI, качать какие-то фреймворки для работы с сетью (тот же boost::asio), когда в .net это все есть, и используется одним кликом мыши?

Скажу больше. А может для лучшего усвоения ООП человеку и не нужно отвлекаться на технические заморочки? Преимущество .net на C++ в богатстве стандартной библиотеки.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927914
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AbstractionTopSpace,
Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную".
В C# подобные вещи есть, просто слегка завуалировано. Есть value-types и reference-types. И в чем-то это даже проще: класс - это всегда ссылка на объект, число - это всегда значение, и всего делов.

AbstractionTopSpace,
"цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи
Да, а что делать? Есть примерная программа, и никто не скажет, как оно должно быть, из каких критериев исходить. Отсюда и вопросы)
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927923
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpacepirovindos, но и для C++ есть фреймворки, которые это позволяют. Не вижу здесь серьезного преимущества C# над С++.

Вы поставьте себя на место человека, который пока не знает почти ничего! Ему придется очень попотеть, чтобы подключить boost и пр. Да, опыт этот нужен - но не все сразу. Зачем сейчас человеку заморачиваться с поиском хорошей библиотеки для UI, качать какие-то фреймворки для работы с сетью (тот же boost::asio), когда в .net это все есть, и используется одним кликом мыши?

Скажу больше. А может для лучшего усвоения ООП человеку и не нужно отвлекаться на технические заморочки? Преимущество .net на C++ в богатстве стандартной библиотеки.

Согласен, если про "БД, сеть", то здесь есть преимущество в стандартных библиотеках у .net.
Я в посте прямо написал, что не вижу преимуществ для "быстро наклепать симпатичное Desktop-приложение".

Но если
TopSpace Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП
то при чем тут БД и сеть?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927929
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceКак его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально.
по крайней мере у С и С++ базовая часть как-никак общая.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927952
Fantomny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЦель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.
Имхо С# проще для старта.
Это даст возможность быстро и просто применить навыки и получить толк .
На чистые плюсы - очень мало времени. Уровень их знаний будет "совсем не коммерческим"
То есть курс прошел, экзамен сдал - но написать толком ничего не могу

Вопрос, насколько они знают С.
Если тоже "по верхам" - то эти базовые знания подойдут для обоих языков.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927959
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos
Согласен, если про "БД, сеть", то здесь есть преимущество в стандартных библиотеках у .net.
Я в посте прямо написал, что не вижу преимуществ для "быстро наклепать симпатичное Desktop-приложение".

Но если
TopSpace Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП
то при чем тут БД и сеть?

Да вот даже просто наклепать формочку - на C# в разы проще, чем в MFC. А БД и сеть - это просто то, что понадобится вскоре после формочек.

Про UI: можно бы взять Qt, но.. Изучить MFC и Qt - не успеть. Только Qt - сомнительная идея, по причине того, что MFC (да, до сих пор!) чаще встречается на старых проектах, некоторые работодатели выставляют даже требования в вакансии: опыт работы в Visual Studio (какой блин там опыт!). Тут опять история повторяется: как освоивший С++ легко справится с C#, так освоивший MFC будет петь от счастья работая с Qt.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927965
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpace А БД и сеть - это просто то, что понадобится вскоре после формочек.
Тогда не вводите людей в заблуждение, поменяйте Цель.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927970
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettTopSpaceКак его изучать без "нового языка"? Конечно, хотелось бы говорить об ООП без привязки к языку, но это не реально.
по крайней мере у С и С++ базовая часть как-никак общая.

Вот я тоже про это думал, как сделать переход? В С++ можно первую лекцию вообще не говорить про классы, и рассмотреть отличия С++ от С (перегрузка функций, оператор new, модификаторы static, inline и т.п.). Потом плавно перейти к классам. А в C# даже строку на экран не вывести без объявления класса со public static void Main.

Но может это только мне кажется проблемным? Есть ведь и обратный эффект: трудно учить похожие языки. Попробуйте параллельно выучить испанский и итальянский, например) Путаница. Студенты часто путаются между C и C++, а C# все-таки подальше от С.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927989
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FantomnyИмхо С# проще для старта.
Это даст возможность быстро и просто применить навыки и получить толк .
На чистые плюсы - очень мало времени. Уровень их знаний будет "совсем не коммерческим"
То есть курс прошел, экзамен сдал - но написать толком ничего не могу


Согласен, но тут тоже палка о двух концах. Да, почему бы не давать людям легкий и мощный инструмент, позволяющий клепать программы - они быстро найдут себе хоть какую-то работу. Зато это вбросит в индустрию очередную порцию низкоквалифицированных разработчиков, от чего индустрия только страдает. С другой стороны: а может давать мощную основу (С++ за 8 супер-наполненных лекций и 4 лабы, сложностью как курсовик каждая) - тогда произойдет отсев, экзамен сдадут только те, кому это действительно интересно. Вариант хорош для общего блага, но не приятен желающим "легкого старта". Ну и сквозь такое сито могут не пройти потенциальные таланты, которые раскрылись бы позднее (видел пару примеров таких людей).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37927995
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceAbstractionTopSpace,
Скорее C++, потому что сохраняется понятие "адреса" и разделение понятий "переменная" и "ссылка на переменную".
В C# подобные вещи есть, просто слегка завуалировано. Есть value-types и reference-types. И в чем-то это даже проще: класс - это всегда ссылка на объект, число - это всегда значение, и всего делов.

AbstractionTopSpace,
"цель: ввести людей в мир ООП" - это странная, неоднозначная постановка задачи
Да, а что делать? Есть примерная программа, и никто не скажет, как оно должно быть, из каких критериев исходить. Отсюда и вопросы)По первому - не проще. Особенно когда добавляется ключевое слово ref . То есть, объяснить-то можно, но как бы при этом не пришлось привлекать аргумент "it's magic" в значимых объёмах.

По второму - значит, надо конкретизировать. Если критериев нет, придумать какие угодно. Потолок наш лучший источник информации, в конце концов.
Скажем, "целью программы обучения является ознакомление студентов с объектной парадигмой; разъяснение (технических, эстетических) преимуществ объектного программирования по сравнению с процедурным; краткое ознакомление с UML-нотацией; обучение рассмотрению задач в терминах объектов и их взаимодействия, основам написания программ на поддерживающем ООП языке; первичное ознакомление с понятием шаблонов проектирования" - тогда это C#/Java.
Или "цель программы - ознакомление с принципами ООП, их реализацией на примере популярного языка программирования, понятий раннего и позднего связывания, их различий и преимуществ первого и второго; ознакомление с механиками обобщения алгоритмов (через наследование; через шаблоны); подробное рассмотрение механики динамического выделения ресурсов (памяти), освещение возникающих проблем и ООП-методов их разрешения; ознакомление с понятием библиотек классов, обучение их использованию в своих разработках" - тогда это C++.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928002
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindosTopSpace А БД и сеть - это просто то, что понадобится вскоре после формочек.
Тогда не вводите людей в заблуждение, поменяйте Цель.

Цель - ввести людей в ООП, но рисуя диаграммы и рассуждая о паттернах! Вспомните сами, с чего начинали. Нужен фан! Интересные примеры, прикольные задачи. Это в институте мы могли убить день ради реализации хитрого алгоритма для B-дерева. А тут - взрослые люди, выкраивающие свободное время на самообразование, не нужна им сухая теория, "такова селяви". Штуки вроде сетевого чата, клиента твиттера, простой игры, видеозахвата и т.п.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928027
Fantomny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(видел пару примеров таких людей).
У нас в физмат гимназии преподавали примерно так...
В результате кто "понимал и тянул" почти все стали тру-программерами

Но, удивительно, из тех кто не понимал (не успевал) и не тянул - половина стала
тоже программировать :)

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

Если бы у вас был годовой курс - то можно подготовить хороших плюсовиков. В вашем формате - имхо это сомнительно.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928029
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction,

это уже довольно детальное описание цели. Это скорее не цель, а краткое содержание программы, т.к. остается вопрос: а ЗАЧЕМ человеку знать то-то и то-то?

Да, изучение ООП само по себе целью быть не может. Так что, речь может идти о:

а) Максимально эффективное "въезжание" в тему, чтобы как можно быстрее "встать на рельсы". Если не устроиться junior'ом, то хотя бы понять основы, и самостоятельно уже себя дотянуть. При этом подходе в курсе можно затрагивать элементы "профессиальной разработки", т.е. какие-то best practiсe на типичные ситуации, codestyle, методологии разработки, контроль версий и багтрекинг и т.п.
b) Получить максимуально фундаментальную подготовку, т.е. глубоко изучить "недры" ООП, не затрагивая "профессиональные реалии".

С одной стороны, первое человек получит уже на работе. С другой - оно ценнее, поскольку отражает реальный опыт, а не только толстые книги (которые они и так могут прочитать).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928036
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FantomnyЕсли бы у вас был годовой курс - то можно подготовить хороших плюсовиков. В вашем формате - имхо это сомнительно.

Т.е. квалификация .net-чиков будет выше, чем у плюсовиков, подготовленных за равное время?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928050
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceОни уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Objective-C
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928072
Фотография kosh the best
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
товарищ лектор, сам то как, ответишь за полиморфизм?
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928086
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinTopSpaceОни уже прошли курс языка С, где кроме его синтаксиса изучили базовые структуры и алгоритмы (сортировки, поиск, списки, и т.п.).

Цель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Objective-CИМХО, сомнительно. "Чистые" сигналы и концепция "класс как объект" - это хорошо, а вот отсутствие пространств имён, двойное именование аргументов методов, невозможность перегрузки функций - уже не айс. Есть риск застрять в этих частностях и деталях синтаксиса (только на объяснение того, что значит @property(weak, nonatomic) может уйти неприлично много времени).
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928126
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TopSpaceЦель: за 8 лекций и 4 лабораторных ввести людей в мир ООП.

Если изучить ООП и клепать веб-интерфейсы и обычные казуальные Windows-формочки
то пускай изучают С#. Это реально быстрый старт. Даже с точки зрения ООП
С++ вобщем-то не рулит. Его сила вовсе не в ООП а в шаблонах и мета-программировании.
...
Рейтинг: 0 / 0
Преподавать C++ или C#?
    #37928144
TopSpace
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут почитал про то, что С++ - это вообще язык быдла )) Как вам такое мнение?)
...
Рейтинг: 0 / 0
25 сообщений из 230, страница 1 из 10
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Преподавать C++ или C#?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]