Veselchak_29
Новенький
Offline
|
|
« : 13-10-2011 17:47 » |
|
Какие знания можно получить на курсах С++
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 13-10-2011 18:10 » |
|
Знание C++ в части синтаксиса и связанных с ним концепций, а также некоторых элементов стандартной библиотеки.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Veselchak_29
Новенький
Offline
|
|
« Ответ #2 : 13-10-2011 18:20 » |
|
спасибо Дима! А я смогу программы писать после изучения всего этого??
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #3 : 13-10-2011 20:03 » |
|
Учитывая тягу к нажиманию лишних кнопок — быстрее нет, чем да...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Антон (LogRus)
|
|
« Ответ #4 : 14-10-2011 05:09 » |
|
- доктор, я смогу играть на пианино после операции? - конечно. - Спасибо, доктор, а то до операции не мог.
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #5 : 14-10-2011 07:47 » |
|
А я смогу программы писать после изучения всего этого?? Серьёзные - нет. Потому что язык программирования - это лишь инструмент. Например, курс по эксплуатации токарного станка не сделает тебя токарем. Ты будешь уметь включать/выключать станок, устанавливать заготовку, будешь знать порядок и расписание регламентных работ по техническому обслуживанию, быть может какие-то азы ремонта своими силами. Но всё это никак не относится к токарному искусству - способности из заготовки выточить нужную деталь или предмет. Тоже самое и в C++. Тебя научат, что куда загружать, как настраивать и организовывать рабочую среду, какие у тебя есть в распоряжении библиотечные функции (аналоги кнопок устройства), какие есть типовые ситуации применения тех или иных функций (какие кнопки в каком порядке нажимать в той или иной ситуации), расскажут про компилятор и процесс сборки проекта, как работать с ошибками, наверное, обучат и элементам отладки программ. Но всё это никак не поможет тебе знать программирование - способность "объяснить" машине, что ей делать, чтобы она делала то, что нужно тебе. Ты что-то захочешь сделать, а с какого конца взяться за задачу, чтобы применить C++, знать не будешь.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
RXL
|
|
« Ответ #6 : 14-10-2011 08:14 » |
|
В общем, учиться, учиться и еще раз учиться... Для любой деятельности нужно учиться и для интеллектуальной особенно много.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
PredatorAlpha
Помогающий
Offline
|
|
« Ответ #7 : 14-10-2011 10:29 » |
|
Ну курсы курсам рознь... Однако, в любом случае, 60-80% информации и 80-95% навыков по программированию ты должен взять самостоятельно, без курсов. Желательно, что бы на курсы ты уже шёл понимая немного сам язык и написав на нём простейшие программы (типа сортировка пузырьком). Почитай книги, например Стивен Прата "Язык программирования C++. Лекции и упражнения" Желательно что-то по алгоритмам для новичков, даже не знаю что посоветовать... Также желательно до курсов разобраться с указателями и динамическим выделением памяти, написать реализацию связных списков, к примеру. ООП хоть на самом простов уровне, хотя бы создай класс для связных списков.
А уж после курсов... Многопоточное программирование, Boost, MFC, ..... Тут уже зависит от направления деятельности..
|
|
|
Записан
|
|
|
|
Veselchak_29
Новенький
Offline
|
|
« Ответ #8 : 14-10-2011 20:08 » |
|
Спасибо Вам ребята за помощь!!
А вообще, что дает С++? где она применяется?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #9 : 14-10-2011 20:31 » |
|
В написании программ применяется. Больше, вроде, C++ нигде не отметился. Ну, еще разве что книжки о нем пишут.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
DneprSMV
|
|
« Ответ #10 : 15-10-2011 15:22 » |
|
Veselchak_29, Курсы бывают очень разные. Есть у нас одна т.н. "академия" компьютерных наук, тоже декларируют "обучение на программиста". Народ ведется, платят бабки, учатся 2 года. (в надежде, что его с нуля за эти 2 года выведут на крутого программера, которого "с руками оторвут" работодатели). Так вот, на сайтах по поиску работы сплошь да рядом примечамния к вакнсиям "выпускников академии ххххх просьба не обращаться". Курсы есть очень разные. Очень рекомендую начать учиться самому, а когда будет какой-то базовый уровень - ВЫБРАТЬ (уже сознательно) где и кто вас будет учить. Добавлено через 7 минут и 42 секунды:Veselchak_29, "А вообще, что дает С++? где она применяется?" -- вопрос наподобие "где применяется механика" (или электроника). Сперва сформулируй, почему тебя интересует область информатики, какая прикладная "цель" изучения тобой C++ ? (Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++)
|
|
« Последнее редактирование: 15-10-2011 15:30 от DneprSMV »
|
Записан
|
"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #11 : 15-10-2011 16:25 » |
|
(Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++) Категорически не согласен. По той же причине BASIC не рассматривался как учебный язык программирования - отсутствие выразительных средств и возможности писать какой попало код. Опытного программиста goto не смутит - он всё равно структурно напишет. А начинающему по большому счёту и про указатели необязательно знать, если он ещё if писать не научился. Сейчас программирование хорошо осваивать на современных ОО-языках со строгой типизацией, требующих дисциплинированного подхода к разработке, но позволяющих писать быстро за счёт развитых выразительных средств и потому не сдерживающих воображение. Затем параллельно можно двигаться в двух противоположных направлениях: понижать уровень, приближаясь к машинному, разбираясь в деталях и переходя к простым типам (вот здесь и нужна дисциплина); и в то же время повышать уровень, переходя на языки функционального программирования (а здесь нужно воображение, чтобы свободно конструировать и комбинировать, добиваясь простейших, но "мощнейших" решений).
|
|
« Последнее редактирование: 15-10-2011 16:28 от Dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #12 : 15-10-2011 16:39 » |
|
Тема получается Holy war Раньше для обучения был идеальным языком Pascal. В последнее десятилетие я лично не вижу его развития. С++ считаю для обучение очень сложным. Слишком много синтаксических конструкций. Но также бы не рекомендовал бы C#, PHP, Java для обучения как первый язык. Их можно изучать как второй и последуюшие языки.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #13 : 15-10-2011 17:02 » |
|
(Кстати до ++ неплохо побарахтаться в C, и поняв "чевойто-нехватает" перейти сознательно на ++)
ага, а потом приходится поддерживать код, оставшийся от таких барахтальщиков - это пестня ))
|
|
|
Записан
|
|
|
|
DneprSMV
|
|
« Ответ #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
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #15 : 15-10-2011 22:07 » |
|
А человек так устроен, что к хорошему-удобному привыкает легко, и делать потом "шаг назад" в С будет менее комфортно, чем наоборот. О комфорте речь не идёт. Речь идёт об углублении знания о том "как это всё устроено", "как это всё работает". Зачем? Бывает, надо - обычно с целями оптимизации. Поэтому двигателем изучения материала в этом направлении является любопытство или наличие каких-то ограничений общего характера на более высоких уровнях. Но никак не тяга к комфорту. Вот двигаться в восходящем направлении можно в том числе под действием "здоровой лени". К примеру если нужна работа в С с микроконтролеррами, встравиваемыми системами итд - без С с goto (даже) не обойтись. Но писать для микроконтроллеров на C без ООП - задача сложная, если речь идёт о зависящих от состояниях реакциях на разнообразные события. Чтобы справляться с такими задачами, нужны знания концепций автомата, объекта, состояния, события, перехода между состояниями, бывает и транзакции, и её оборотной стороны в асинхронных средах - критической секции. Есть ли всё это в C на уровне синтаксиса языка? Нет. Нужно ли это знать программисту на C? Да. Начинающий, самостоятельно ковыряясь в C, этому не научится. А вот если бы язык включал в себя некоторые концепции на уровне синтаксиса и организации стандартной библиотеки - начинающий смог бы и сам научиться, а то и просто деваться ему было бы некуда. Например, в C# нельзя написать никакой код вне класса. И в конце концов у начинающего возникнет вопрос: "А что такое класс, зачем это тут?" Аналогично и в C почти ничего нельзя написать вне функции, следовательно, нужно знать, что это такое и зачем это. А BASIC функции весьма примитивны, процедур нет вообще, максимум - подпрограммы. Тема получается Holy war Нет, просто DneprSMV из темы в тему делает заявления, которые вызывают у меня несогласие. Но наши взгляды не противоположны, а скорее ортогональны. Чувствуется в человеке богатый, но узкопрофильный практический опыт. Я же склонен к теоретизированию, а практика даёт лишь пищу для теории.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Джон
просто
Администратор
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
|
|
« Ответ #17 : 16-10-2011 20:58 » |
|
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
DneprSMV
|
|
« Ответ #18 : 16-10-2011 21:06 » |
|
А человек так устроен, что к хорошему-удобному привыкает легко, и делать потом "шаг назад" в С будет менее комфортно, чем наоборот. О комфорте речь не идёт. Речь идёт об углублении знания о том "как это всё устроено", "как это всё работает". Зачем? Бывает, надо ..... (1) К примеру если нужна работа в С с микроконтролеррами, встравиваемыми системами итд - без С с goto (даже) не обойтись. Но писать для микроконтроллеров на C без ООП - задача сложная, если речь идёт о зависящих от состояниях реакциях на разнообразные события. ..... (2) Тема получается Holy war Нет, просто DneprSMV из темы в тему делает заявления, которые вызывают у меня несогласие. Но наши взгляды не противоположны, а скорее ортогональны. Чувствуется в человеке богатый, но узкопрофильный практический опыт. Я же склонен к теоретизированию, а практика даёт лишь пищу для теории. (3) (1) Меня тут собственно, несколько смущает "старт" с некоего "не-первого" уровня. Можно конечно дойти в этом до абсурда, и начинать изучать стркутру машинных команд для 64-разрядного приложения - что в большинстве случаев будет глупо. Есть другая крайность - к примеру начать с Java. В общем то, тоже вполне реально - для написания ПО в этом секторе. Но будет ли у человека то, что называют "фунд. знания в своей проф. области". (2) Почему собственно я против ++ (немного) в качестве "конечного продукта" для сектора Realtime. Если разработан хороший компилятор НА БАЗЕ ООП (а так оно есть уже лет как 20, а может и более), где на "входе" дается "ТЗ" для автомата (в виде графики, схемы, инструкцйи, того же С, диаграммы состояний, графа) а пройдя через компилятор получаем низкоуровневый оптимизированный код процессора платформы - полностью ЗА. Против - если на целевой платформе запускается "слоеный пирог" на Java или нечтоподобном. те. на мой взгляд для изучения-обучения надо четко представлять, какая цель этого обучения. От этого будет зависить и методика. (3) ну, у нас сейчас эпоха узкопрофильности. Так что это считай, комплимент "Много знающий о ничто, мало знающий о все". Кроме того, ветка для начинающих, мне тут "можна" А взгляды - эт дело такое. Они могут даже в разных плоскостях-пространствах располгаться, не то что ортогонально
|
|
|
Записан
|
"Не слушайте никаких советов, в том числе и этот" (Сократ ?)
|
|
|
PredatorAlpha
Помогающий
Offline
|
|
« Ответ #19 : 17-10-2011 14:52 » |
|
По-большому счёту очень сложно посоветовать с чего начать для новичков... Для начала надо научиться создавать простейшие программы, знать основные приёмы, концепции программирования.... Тут не вопрос в языке, можно и С++ начать (хотя и сложновато), но если нет отработанного навыка писать простые структурные программы (на уровне классического С), то смысл углубляться? Вначале надо поставить общую теорию (понимание стека, структур, памяти вообще и динамической в частности, процесса, потока, синхронизации, API, основ ОС); потом алгоритмы, позволяющие решать типичные задачи, основные приёмы, объекты; а затем уже язык и его тонкости. А учить программирование на курсах по языку - это всё равно что учиться на токаря расписав кнопки управления станком, когда тот не понимает сам принцип точения и логику обработки заготовки. Если кто-то посоветует нормальную литературу, что можно посоветовать новичку, не пособие по языку и алгоритмам, а именно введение в компьютерные системы, но с прицелом на программирование - буду благодарен, меня часто спрашивают. Я из подобного лишь Таненбаума могу посоветовать.
|
|
|
Записан
|
|
|
|
x77
Команда клуба
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 (подруге в телефон тамагочи написать), и - вперед. а вообще, уметь программировать - это всего навсего уметь думать. это определенный стиль и культура мышления. и либо она есть (и тогда пофиг, на чем ты пишешь), либо её нет. тогда и подавно пофиг.
|
|
|
Записан
|
|
|
|
|