Удобный способ освоения С++ как дополнительной квалификации
с тем как интернет организован уже разобрался?
Да, в общих чертах.
Большая часть установленного у меня плюсового опенсорса - это гуи и сеть. Научные библиотеки до сих пор используются фортрановские. Даже если их механистически скопировали на си, хорошим примером для плюсов они не будут. Но есть и хорошие (внешне, в исходники я не смотрел) плюсовые проекты - opencv, gambit. Можно туда смотреть, если хочется больше алгоритмики. По идее ещё 3d графика богата на алгоритмические задачи, можешь поковырять ogre3d.
Все советы, данные мной, отчасти вредные. Сам я исходников всего этого не видел, но по ощущения искать надо где-то в том направлении.
есть и хорошие (внешне, в исходники я не смотрел) плюсовые проекты - opencv, gambit. Можно туда смотреть, если хочется больше алгоритмики. По идее ещё 3d графика богата на алгоритмические задачи, можешь поковырять ogre3d.Большое спасибо за советы! Поищу в этом направлении. Тем более уже активно использовал OpenCV на практике, правда через обертки.
OpenCVс точки зрения языка OenCV как раз не очень хороший пример.
С точки зрения языка самый лучший набор библиотек - это boost. Можно просто поковыряться в них, еще в каждой есть список задач, которые предполагается решить, можешь попробовать самостоятельно покопаться в этом направлении, может, и на изучение внутренностей буста это сподвигнет. Смотришь, какие есть библиотеки в бусте, выбираешь, какой теме лежит душа и копаешь.
Еще просто пару идей для реализации -
реализация менеджера памяти, препятствующего фрагментации,
реализация какой-нибудь хитрой структуры данных с стл-подобным интерфейсом
Обе задачи непростые и объемные, в с++ погрузишься по самое не хочу
Можно просто поковыряться в нихНельзя вот так просто взять и слегка поковыряться в boost.
С точки зрения языка самый лучший набор библиотек - это boost. Можно просто поковыряться в них, еще в каждой есть список задач, которые предполагается решить, можешь попробовать самостоятельно покопаться в этом направлении, может, и на изучение внутренностей буста это сподвигнет.Спасибо за совет, попробую!
реализация менеджера памяти, препятствующего фрагментации
Звучит очень интересно, но, не зная истории вопроса, пока плохо себе представляю, почему самостоятельная реализация этого может быть полезна на практике.
Нельзя вот так просто взять и слегка поковыряться в boostага, особенно со средними знаниями с++
по теме: с++ скучный, сложный язык с многими тонкостями
ИМХО, самая интересная задача - взять какой-нибудь мармелад и сваять на нем yet-another-2048 под мобилку. Можно даже потом это в стор закинуть.
Все эти модельные задачи,типа реализовать сортировку или еще один менеджер памяти ничего не дадут в главном качестве разработчика - выполнять задачу. Советую просто выбрать себе маленький проект и довести его до конца. Именно до релизного состояния. Такой опыт будет стоить гораздо больше, чем знание тонкостей c++.
почему самостоятельная реализация этого может быть полезна на практике.в твоём случае скорее всего вредна будет. Надо имееть большой опыт системного программирования и оптмизиации комплияторов/виртуальных машин, чтобы решать такие задачи. Все языки, что ты перечислил - прикладные, так что вряд ли у тебя этот опыт есть. Так что самостоятельно ты скорее всего сделаешь более медленный и глючный менеджер памяти.
Все эти модельные задачи,типа реализовать сортировку или еще один менеджер памяти ничего не дадут в главном качестве разработчика - выполнять задачу.с фига ли они не дадут? насколько я понял, это "главное качество разработчика" у ТС уже имеется, т.к. он программирует на других языках, и какие-то проекты до конца он уже доводил. Так что ему надо наоборот знание тонкостей С++. Потому что какой-нибудь маленький проектик ТС как будет делать - найдет в С++ какое-то подмножество, похожее на джаву, и запрогает свой проект в том же стиле, что он и прогал раньше, не получив никаких новых знаний, а просто тупо потратив время на "доведение проекта до конца"
Так что самостоятельно ты скорее всего сделаешь более медленный и глючный менеджер памяти.так цель-то не сделать что-то крутое, а разобраться в языке. Чтобы разобраться в языке имхо полезно свой велосипед реализовать. Вот это как раз и будет реализация велосипеда.
Можно просто взять описание алгоритма из книги Александреску, реализовать, а потом сравнить с реализацией автора.
Хотя реализовать контейнер с хитрой структурой данных внутри с стлеподобным интерфейсом более полезна наверно в плане погружения в с++
по теме: с++ интересный, сложный язык с многими тонкостямиfixed
найдет в С++ какое-то подмножествона с++ можно писать в любом стиле. в фнкциональном, правда, выглядит достаточно криво
не вижу никакого смысла в изучении тонкостей с++
если нравятся извращения, то стоит смотреть в сторону шаблонов, но, ИМХО, шаблоны в с++ вызывают необратимые изменения в мозгу
Я вот тут подумал, а зачем человек, знающий джаву, может начать учить плюсы? Ну т.е. я мог бы понять изучение какого-нибудь хаскеля/пролога по приколу для расширения кругозора. Но еще один язык промышленной разработки есть смысл учить, на мой взгляд, только под конкретный проект. Но в таком случае бы не вставал вопрос "где бы попрактиковаться".
Проектов много разных. Для тех, кто дополнительно знает и C++, бывают более продвинутые, "наукоемкие" проекты, что в целом интереснее и перспективнее. Бывают и такие проекты, в которых нужно создавать отдельные части на С++ с использованием имеющихся библиотек и наработок других людей. Но С++, не PHP — его сходу не изучишь на "живом" проекте с четкими сроками.
а зачем человек, знающий джаву, может начать учить плюсы?JNI
в фнкциональном, правда, выглядит достаточно кривоА точнее?
Оставить комментарий
nikola1956
Уважаемые читатели раздела, помогите, пожалуйста, советом. У меня сейчас появилось свободное время. Хотелось бы дополнительно к своим знаниям (это в основном Java, Web и iOS) все-таки изучить и практически освоить С++. Книги хорошие есть (например, Lippman "C++ Primer", последнее изд. но язык С++ большой по размеру и не хватает мотивации, чтобы читать про разные его детали. Это очень скучно.Нужны реальные интересные проекты, желательно с математическим и алгоритмическим уклоном и с возможностью общения и обсуждений. Но вот где их найти? Может быть у кого-то из работающих С++-программистов имеются подзадачи, которые они могли бы мне дать (например, удаленно чтобы появился мотив для изучения этого языка и его библиотек?