Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Чему учат курсы по С++?  (Прочитано 21198 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Veselchak_29
Новенький

ru
Offline Offline

« : 13-10-2011 17:47 » 

Какие знания можно получить на курсах С++
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 13-10-2011 18:10 » 

Знание C++ в части синтаксиса и связанных с ним концепций, а также некоторых элементов стандартной библиотеки.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Veselchak_29
Новенький

ru
Offline Offline

« Ответ #2 : 13-10-2011 18:20 » 

 спасибо Дима! А я смогу программы писать после изучения всего этого??
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 13-10-2011 20:03 » 

Учитывая тягу к нажиманию лишних кнопок — быстрее нет, чем да...  Перекур
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 14-10-2011 05:09 » 

- доктор, я смогу играть на пианино после операции?
- конечно.
- Спасибо, доктор, а то до операции не мог.
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 14-10-2011 07:47 » 

Цитата: Veselchak_29
А я смогу программы писать после изучения всего этого??
Серьёзные - нет. Потому что язык программирования - это лишь инструмент.

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

Тоже самое и в C++. Тебя научат, что куда загружать, как настраивать и организовывать рабочую среду, какие у тебя есть в распоряжении библиотечные функции (аналоги кнопок устройства), какие есть типовые ситуации применения тех или иных функций (какие кнопки в каком порядке нажимать в той или иной ситуации), расскажут про компилятор и процесс сборки проекта, как работать с ошибками, наверное, обучат и элементам отладки программ. Но всё это никак не поможет тебе знать программирование - способность "объяснить" машине, что ей делать, чтобы она делала то, что нужно тебе. Ты что-то захочешь сделать, а с какого конца взяться за задачу, чтобы применить C++, знать не будешь.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 14-10-2011 08:14 » 

В общем, учиться, учиться и еще раз учиться...
Для любой деятельности нужно учиться и для интеллектуальной особенно много.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
PredatorAlpha
Помогающий

us
Offline Offline

« Ответ #7 : 14-10-2011 10:29 » 

Ну курсы курсам рознь... Однако, в любом случае, 60-80% информации и 80-95% навыков по программированию ты должен взять самостоятельно, без курсов. Желательно, что бы на курсы ты уже шёл понимая немного сам язык и написав на нём простейшие программы (типа сортировка пузырьком).
Почитай книги, например Стивен Прата "Язык программирования C++. Лекции и упражнения"
Желательно что-то по алгоритмам для новичков, даже не знаю что посоветовать...
Также желательно до курсов разобраться с указателями и динамическим выделением памяти, написать реализацию связных списков, к примеру. ООП хоть на самом простов уровне, хотя бы создай класс для связных списков.

А уж после курсов... Многопоточное программирование, Boost, MFC, ..... Тут уже зависит от направления деятельности..
Записан
Veselchak_29
Новенький

ru
Offline Offline

« Ответ #8 : 14-10-2011 20:08 » 

Спасибо Вам ребята за помощь!!

А вообще, что дает С++? где она применяется?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 14-10-2011 20:31 » 

В написании программ применяется. Больше, вроде, C++ нигде не отметился. Ну, еще разве что книжки о нем пишут.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
DneprSMV
Помогающий

kz
Offline Offline
Пол: Мужской

« Ответ #10 : 15-10-2011 15:22 » 

Veselchak_29,
Курсы бывают очень разные.
Есть у нас одна т.н. "академия" компьютерных наук, тоже декларируют "обучение на программиста".
Народ ведется, платят бабки, учатся 2 года. (в надежде, что его с нуля за эти 2 года выведут на крутого программера, которого "с руками оторвут" работодатели).
Так вот, на сайтах по поиску работы сплошь да рядом примечамния к вакнсиям "выпускников академии ххххх просьба не обращаться".
Курсы есть очень разные.
Очень рекомендую начать учиться самому, а когда будет какой-то базовый уровень - ВЫБРАТЬ (уже сознательно) где и кто вас будет учить.


Добавлено через 7 минут и 42 секунды:
Veselchak_29,
"А вообще, что дает С++? где она применяется?"
--
вопрос наподобие "где применяется механика" (или электроника).
Сперва сформулируй, почему тебя интересует область информатики,
какая прикладная "цель" изучения тобой C++  ?  Улыбаюсь
(Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++)
« Последнее редактирование: 15-10-2011 15:30 от DneprSMV » Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 15-10-2011 16:25 » 

Цитата: DneprSMV
(Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++)
Категорически не согласен.

По той же причине BASIC не рассматривался как учебный язык программирования - отсутствие выразительных средств и возможности писать какой попало код. Опытного программиста goto не смутит - он всё равно структурно напишет.

А начинающему по большому счёту и про указатели необязательно знать, если он ещё if писать не научился.

Сейчас программирование хорошо осваивать на современных ОО-языках со строгой типизацией, требующих дисциплинированного подхода к разработке, но позволяющих писать быстро за счёт развитых выразительных средств и потому не сдерживающих воображение. Затем параллельно можно двигаться в двух противоположных направлениях: понижать уровень, приближаясь к машинному, разбираясь в деталях и переходя к простым типам (вот здесь и нужна дисциплина); и в то же время повышать уровень, переходя на языки функционального программирования (а здесь нужно воображение, чтобы свободно конструировать и комбинировать, добиваясь простейших, но "мощнейших" решений).
« Последнее редактирование: 15-10-2011 16:28 от Dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #12 : 15-10-2011 16:39 » new

Тема получается Holy war Улыбаюсь Раньше для обучения был идеальным языком Pascal. В последнее десятилетие я лично не вижу его развития. С++ считаю для обучение очень сложным. Слишком много синтаксических конструкций. Но также бы не рекомендовал бы C#, PHP, Java для обучения как первый язык. Их можно изучать как второй и последуюшие языки.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 15-10-2011 17:02 » 

(Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++)

ага, а потом приходится поддерживать код, оставшийся от таких барахтальщиков - это пестня Улыбаюсь))
Записан

DneprSMV
Помогающий

kz
Offline Offline
Пол: Мужской

« Ответ #14 : 15-10-2011 17:12 » 

Dimka,
"Затем параллельно можно двигаться в двух противоположных направлениях: понижать уровень, приближаясь к машинному, разбираясь в деталях и переходя к простым типам (вот здесь и нужна дисциплина);"  - я как раз об этом.
При переходе от процедурного С к ООП должен так или иначе произойти "фазовый переход" в мозгах  Улыбаюсь
А человек так устроен, что к хорошему-удобному привыкает легко, и делать потом "шаг назад" в С
будет менее комфортно, чем наоборот. В математике есть хороший пример решения задачи с помощью обычного метода и метода выс.математики. (длина рулона). Решение на базе ВМ - простое и красивое, абсолютно логичное. Расчет обычным методом - не очень очевиден  Улыбаюсь (через ср. диаметр)
Решать можно и ВМ, но пройти через арифметику тоже неплохо.
Это все - IMHO. В методологии не специалист.
Кроме того, есть привязка к прикладной области. К примеру если нужна работа в С с микроконтролеррами, встравиваемыми системами итд - без С с goto (даже) не обойтись.
А если цель - разработка графики, игр итд - то лучше не терять время, сразу ООП.


Добавлено через 5 минут и 52 секунды:
Алексей1153++,
(Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++)
ага, а потом приходится поддерживать код, оставшийся от таких барахтальщиков - это пестня Улыбаюсь))
Тут конечно случай сложный  Улыбаюсь
Если человек в процессе обучения (речь об учебе-курсах) "завис" на начальной стадии - не думаю, что он оставит после себя код, который потребует поддержки Улыбаюсь
Или
- "знаете ли вы язык С ?" 
- "Нет, я знаю С++"
 Улыбаюсь
В общем я не утверждаю, что ТАК правильно.

Добавлено через 14 минут и 35 секунд:
Finch,
Holy war Veselchak_29 развязал, и наблюдает Улыбаюсь
Если бы он конкретезировал, что хочет получить "на выходе" - войны бы не было.
« Последнее редактирование: 15-10-2011 17:32 от DneprSMV » Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 15-10-2011 22:07 » 

Цитата: DneprSMV
А человек так устроен, что к хорошему-удобному привыкает легко, и делать потом "шаг назад" в С
будет менее комфортно, чем наоборот.
О комфорте речь не идёт. Речь идёт об углублении знания о том "как это всё устроено", "как это всё работает". Зачем? Бывает, надо - обычно с целями оптимизации. Поэтому двигателем изучения материала в этом направлении является любопытство или наличие каких-то ограничений общего характера на более высоких уровнях. Но никак не тяга к комфорту. Вот двигаться в восходящем направлении можно в том числе под действием "здоровой лени".

Цитата: DneprSMV
К примеру если нужна работа в С с микроконтролеррами, встравиваемыми системами итд - без С с goto (даже) не обойтись.
Но писать для микроконтроллеров на C без ООП - задача сложная, если речь идёт о зависящих от состояниях реакциях на разнообразные события. Чтобы справляться с такими задачами, нужны знания концепций автомата, объекта, состояния, события, перехода между состояниями, бывает и транзакции, и её оборотной стороны в асинхронных средах - критической секции.

Есть ли всё это в C на уровне синтаксиса языка? Нет. Нужно ли это знать программисту на C? Да. Начинающий, самостоятельно ковыряясь в C, этому не научится. А вот если бы язык включал в себя некоторые концепции на уровне синтаксиса и организации стандартной библиотеки - начинающий смог бы и сам научиться, а то и просто деваться ему было бы некуда. Например, в C# нельзя написать никакой код вне класса. И в конце концов у начинающего возникнет вопрос: "А что такое класс, зачем это тут?" Аналогично и в C почти ничего нельзя написать вне функции, следовательно, нужно знать, что это такое и зачем это. А BASIC функции весьма примитивны, процедур нет вообще, максимум - подпрограммы.

Цитата: Finch
Тема получается Holy war
Нет, просто DneprSMV из темы в тему делает заявления, которые вызывают у меня несогласие. Улыбаюсь Но наши взгляды не противоположны, а скорее ортогональны. Чувствуется в человеке богатый, но узкопрофильный практический опыт. Я же склонен к теоретизированию, а практика даёт лишь пищу для теории.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #16 : 16-10-2011 20:37 » 

 Не кормите тролля!
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 16-10-2011 20:58 » 

Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
DneprSMV
Помогающий

kz
Offline Offline
Пол: Мужской

« Ответ #18 : 16-10-2011 21:06 » 

Цитата: DneprSMV
А человек так устроен, что к хорошему-удобному привыкает легко, и делать потом "шаг назад" в С
будет менее комфортно, чем наоборот.
О комфорте речь не идёт. Речь идёт об углублении знания о том "как это всё устроено", "как это всё работает". Зачем? Бывает, надо .....
(1)
Цитата: DneprSMV
К примеру если нужна работа в С с микроконтролеррами, встравиваемыми системами итд - без С с goto (даже) не обойтись.
Но писать для микроконтроллеров на C без ООП - задача сложная, если речь идёт о зависящих от состояниях реакциях на разнообразные события. .....
(2)
Цитата: Finch
Тема получается Holy war
Нет, просто DneprSMV из темы в тему делает заявления, которые вызывают у меня несогласие. Улыбаюсь Но наши взгляды не противоположны, а скорее ортогональны. Чувствуется в человеке богатый, но узкопрофильный практический опыт. Я же склонен к теоретизированию, а практика даёт лишь пищу для теории.
(3)

(1) Меня тут собственно, несколько смущает "старт" с некоего "не-первого" уровня.
Можно конечно дойти в этом до абсурда, и начинать изучать стркутру машинных команд для 64-разрядного приложения - что в большинстве случаев будет глупо. Есть другая крайность - к примеру начать с Java. В общем то, тоже вполне реально - для написания ПО в этом секторе.
Но будет ли у человека то, что называют "фунд. знания в своей проф. области".
(2) Почему собственно я против ++ (немного) в качестве "конечного продукта" для сектора Realtime.
Если разработан хороший компилятор НА БАЗЕ ООП (а так оно есть уже лет как 20, а может и более),
где на "входе" дается "ТЗ" для автомата (в виде графики, схемы, инструкцйи, того же С, диаграммы состояний, графа) а пройдя через компилятор получаем низкоуровневый оптимизированный код процессора платформы - полностью ЗА.
Против - если на целевой платформе запускается "слоеный пирог" на Java или нечтоподобном.
те. на мой взгляд для изучения-обучения надо четко представлять, какая цель этого обучения.
От этого будет зависить и методика.
(3) ну, у нас сейчас эпоха узкопрофильности. Так что это считай, комплимент Улыбаюсь
"Много знающий о ничто, мало знающий о все". Кроме того, ветка для начинающих, мне тут "можна" Улыбаюсь
А взгляды - эт дело такое. Они могут даже в разных плоскостях-пространствах располгаться, не то что ортогонально  Улыбаюсь
Записан

"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
PredatorAlpha
Помогающий

us
Offline Offline

« Ответ #19 : 17-10-2011 14:52 » 

По-большому счёту очень сложно посоветовать с чего начать для новичков...
Для начала надо научиться создавать простейшие программы, знать основные приёмы, концепции программирования....  Тут не вопрос в языке, можно и С++ начать (хотя и сложновато),  но если нет отработанного навыка писать простые структурные программы (на уровне классического С), то смысл углубляться? Вначале надо поставить общую теорию (понимание стека, структур, памяти вообще и динамической в частности, процесса, потока, синхронизации, API, основ ОС); потом алгоритмы,  позволяющие решать типичные задачи, основные приёмы, объекты; а затем уже язык и его тонкости. А учить программирование на курсах по языку - это всё равно что учиться на токаря расписав кнопки управления станком, когда тот не понимает сам принцип точения и логику обработки заготовки.
Если кто-то посоветует нормальную литературу, что можно посоветовать новичку, не пособие по языку и алгоритмам, а именно введение в компьютерные системы, но с прицелом на программирование - буду благодарен, меня часто спрашивают. Я из подобного лишь Таненбаума могу посоветовать.
Записан
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #20 : 21-10-2011 00:59 » 

Тема получается Holy war Улыбаюсь Раньше для обучения был идеальным языком Pascal. В последнее десятилетие я лично не вижу его развития. С++ считаю для обучение очень сложным. Слишком много синтаксических конструкций. Но также бы не рекомендовал бы C#, PHP, Java для обучения как первый язык. Их можно изучать как второй и последуюшие языки.

Борланд убил паскаль своей конской ценовой политикой. Кодежир, Эмбаркадеро - радостно подхватили эстафету и продолжают его убивать. Развитие там совсем не слабое, 2006 - это принципиальный шаг вперед. честная поддержка юникода не может не радовать. с 2006-ой версии мы можем назвать компонент "Жопа" и присвоить ему метод "Обосраться". (Именно этот принципиальный шаг вперед позволил гребанным индийским фрилансерам писать принципиально никем, кроме них, не читаемый код) Потом были делегаты, хелп-классы, потом появилась XE... в последних версиях в некоторых системных файлах можно иметь удовольствие лицезреть IFDEF-ы (флаги условной компиляции) на предмет MacOS, например. парни медленно, но верно идут в сторону кросс-платформенности, и лет через несколько мы это увидим. Так что, Вить, с развитием там все писюкато.

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

Кстати, Вирт вообще от дельфи открестился. по его словам, это коммерческий диалект паскаля, предназначенный для выколачивания бабла, мало общего имеющий с программированием. Он сидит себе в Цюрихе, и мурыжит компонентый паскаль. шняга, выросшая из Оберона, который, в свою очередь, вырос из второй модулы. я уже писал где-то, там своя ось есть, BlueBottle, запускается как с лайв-сиди, так и отдельным файйлом из-под виндоус в режиме виртуалки. компонентный паскаль в неё встроен. сам язык типа джавы, только дельфи. автоматическая сборка мусора, строжайшая типизация, Model-View-Controler, в общем, все по-взрослому. Якобы для какой-то АЭС на нем писали, и якобы для каких-то спутников какую-то мутную математику.

В общем есть развитие, причем в двх направлениях: чистой науки, чем занимается г-н Вирт, и чисто бабловое, чем занимается Эмбаркадеро. До первого современные студиозусы не доросли, ценности в наше время несколько иные, а на второе у них тупо бабла не хватит. В чем я с тобой согласен, это в том, что паскаль идеален для обучения. но, к сожалению, к огромному сожалению, это крайне непрактично. C#, ASP.NET, для общего развития что-нить типа object c или j2me (подруге в телефон тамагочи написать), и - вперед.

а вообще, уметь программировать - это всего навсего уметь думать. это определенный стиль и культура мышления. и либо она есть (и тогда пофиг, на чем ты пишешь), либо её нет. тогда и подавно пофиг.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines