Программирование - это просто

sami

Местный
Есть и такие спец курсы. Из лично мной прослушанных - технологии разработки ПО (на нескольких парах приходили ребята с действующих проектов, делились опытом), практики управления it-проектами (вёл Волков(СКБ-Контур), рассказывал теорию управления разработки ПО, приглашал Шамгунова(microsoft, sqlserver), и девушку, к сожалению не помню имени, из philips, рассказывала о юзабилити программных продуктов).
Оу, мило. У меня такого выбора не было (10 лет назад). Обязательная программа + много практики по дискретной оптимизации, пару курсовых. Из спецкурсов ближе всего к программированию было "линейное программирование", что собственно к программированию вообще отношения не имеет, да ООП на C++, где венцом курса было ключевое слово virtual и работа с указателями.
 

Жадный КаБан

Санкт-Петербург
Вопрос конечно уже не по теме, но это обсуждалось уже тут. Что вы думаете об обучении в СПбГУ(Питер) на Факультете Математико-механическом, отделении информатике?
 

Mike22

Местный
А вот, кому интересно -

В языке Common Lisp есть как минимум 3 инфраструктурных технологии, во многом формирующие подходы к его применению, которые в других языках либо отсутствуют вовсе, либо реализованы в очень ограниченном варианте. Для компенсации их отсутствия пользователи других языков часто вынуждены использовать Шаблоны проектирования, а порой и вообще не имеют возможности применять некоторые более эффективные подходы к решению типичных задач.
Что это за технологии и какие возможности дает их использование?

http://www.developers.org.ua/archives/vsel...p-technologies/
 

sami

Местный
Для компенсации их отсутствия пользователи других языков часто вынуждены использовать Шаблоны проектирования, а порой и вообще не имеют возможности применять некоторые более эффективные подходы к решению типичных задач.
Я бы сказал, что пользователи других языков, иногда вообще не знают о шаблонах проектирования...
Однако паттерны все же существуют не для того, чтобы компенсировать отсутствие этих технологий в остальных языках, а для того, чтобы программисты могли быстро договориться.
Например, паттерн Strategy не меняет своей сути в зависимости от языка, отличается лишь стоимость его использования. В ООП он для своей реализации требует построения дополнительных сущностей, в то время как в ФП его надо лишь применить.
Оказывается в CL есть элегантная реализация множественной диспетчиризации (со слов в статье)... В то время как двойная диспетчеризация в мэйнстрим языках (visitor) приносит много хлопот с реализацией и поддержкой.

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

Это что касается паттернов. :lol:

А вообще - вселенная CL не исчисляется общеизвестным паттернами. Действительно многим приемам нет аналогов. Программистам, привыкшим использовать макросистему CL будет тесно в других языках.
 

sami

Местный
Для тех, кто читает по-английски - C++: the Ugly Useful Programming Language
Какой-то узкий взгляд у автора. Похоже, что C++ не просто его любимый язык... Видимо, он просто не делал серьезных проектов на других языках. Более того, складывается ощущение, что по поводу Java и C# он просто "слышал" кое-что.
Как вообще можно сравнивать языки по наличию перегрузки операторов, либо тому, в классе ли находится метод Main или нет?
 

Жадный КаБан

Санкт-Петербург
вопрос стал снова актуален, поэтому - у кого есть учебники на язык Си++? В электронном варианте естественно.
Хочу научится работать на этом языке.
или какие посоветуете?
 

Mike22

Местный
гдето я это уже слышал...)))
Для начального обучения естественно. понять основы, синтаксис, структуру и т.д.
Его синтаксис и структура практически полностью совпадают с чистым C.
А вот сам по себе метод (подход) объектного программирования очень непрост в освоении.
Если вы хотите с ним разобраться, то изучите сначала С и структурный подход, потом объектным займитесь.

Освоение навыков программирования представляет из себя двухуровневую задачу:
- освоение методов решения задач программирования (подходов)
- освоение инструмента (языка)
 

sami

Местный
Его синтаксис и структура практически полностью совпадают с чистым C.
А вот сам по себе метод (подход) объектного программирования очень непрост в освоении.
Если вы хотите с ним разобраться, то изучите сначала С и структурный подход, потом объектным займитесь.
А с чего вдруг речь об ООП пошла? Язык он сам по себе, ООП - сам по себе. Можно знать ООП и не знать С++ так же как и наоборот.
С++ поддерживает ООП не в большей мере, чем та же Delphi... То же самое можно и о структурном подходе сказать.

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

Mike22

Местный
А с чего вдруг речь об ООП пошла? Язык он сам по себе, ООП - сам по себе. Можно знать ООП и не знать С++ так же как и наоборот.
С++ поддерживает ООП не в большей мере, чем та же Delphi... То же самое можно и о структурном подходе сказать.
Использование С++ без ООП кажется мне полной бессмыслицей.
Поэтому я и сказал что следует сначала понять что такое ООП, и уже потом на С++ налегать.

Я нигде не говорил ни одного плохого слова о [Object] Pascal (Delphi или ещё лучше - Lazarus), я наоборот думаю что это гораздо лучший выбор для начинающих чем С++ с его "кошмарами".

Начинать изучение программирования с С++ - это всё равно что с детства учиться дурным манерам :D
 

sami

Местный
Использование С++ без ООП кажется мне полной бессмыслицей.
Поэтому я и сказал что следует сначала понять что такое ООП, и уже потом на С++ налегать.
Все зависит от задач. Взять, к примеру, криптографию, или моделирование физ процессов... Зачем там ООП? Да и другие задачи можно решать без ООП, например, функционально (с этим у C++ большие проблемы) или с помощью метапрограммирования.

Я нигде не говорил ни одного плохого слова о [Object] Pascal (Delphi или ещё лучше - Lazarus), я наоборот думаю что это гораздо лучший выбор для начинающих чем С++ с его "кошмарами".
Я тоже ничего плохого не говорил (кажется).

Начинать изучение программирования с С++ - это всё равно что с детства учиться дурным манерам :D
Вот тут я тоже соглашусь.
После того как я несколько лет не заглядывал в C++, мне пришлось кое-что написать на C++. Вскоре я обнаружил, что вместо решения задачи я занимаюсь тем, что вылизываю мягкое место компилятору C++, который, наверняка понимая что я от него хочу, наглым образом глумился надо мной. Хотя в 2000-м я знал C++ довольно неплохо.

А что хорошо в С++ - необъятный набор библиотек. Один STL многого стоит. И принципы его использования и построения лучше знать, чем не знать. А познакомитсья с STL можно только на C++. В свою очередь, после нескольких лет работы в Delphi мой мозг взорвался от одного факта наличия ассоциативных контейнеров в STL. Ну и от того, что они все обобщенные. Как сейчас - не знаю, а в то время в Delphi кроме TList-а, который приходилось типизировать вручную для каждого случая использования, либо заниматься явным приведением типов, кажись ничего и не было.
 

Жадный КаБан

Санкт-Петербург
мой мозг потихонечку взрывается... :)
Мужики, то есть ниче толкового у вас нет из литературы?! :D
 

Mike22

Местный
Я когда говорил про C++, то не смешивал его с чистым С.
Если не нужен ООП, то пользуйтесь С, зачем плюсы?
Это хоть и одно семейство языков, но C++ уехал сильно в сторону.

А библиотек для C наверное всё-же больше существует чем для C++.

мой мозг потихонечку взрывается... :eek:
Мужики, то есть ниче толкового у вас нет из литературы?! :D
У нас есть Интернет - там информации в сотни раз больше чем в "литературе". :)
 

sami

Местный
Я когда говорил про C++, то не смешивал его с чистым С.
Если не нужен ООП, то пользуйтесь С, зачем плюсы?
Это хоть и одно семейство языков, но C++ уехал сильно в сторону.
Плюсы могут быть нужны без ООП хотя бы ради того же STL. А если немного утрировать, то кому-то пантовее писать << чем printf ))).
Кстати, одна из возможных причин использования C++ вместо C - это то, что кто-то где-то услышал, что компилятор (Watcom С++, например) генерит код, который быстрее чем у компиляторов FORTRAN(77). Я лично знаком с такими спецами.
 
Сверху