Форум программистов, компьютерный форум CyberForum.ru

идеи, идеи, идеи для начинающих - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.75
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 02:09     идеи, идеи, идеи для начинающих #1
доброй ночи, уважаемые форумчане. перейдем сразу к делу =) в общем, собираюсь с 2 одногруппниками написать какой-нибудь проект, но вот идей у меня совсем нету =\ может гуру программирования вспомнят свои первые проекты, буду очень признателен) или такие же студенты как мы, поделитесь идеей) средней сложности, чтоб не за выходные написали и даже не за одну неделю
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 02:09     идеи, идеи, идеи для начинающих
Посмотрите здесь:

Идеи насчет коммандной строки C++
Есть идеи? C++
C++ подскажите интересные идеи программ
C++ Eсть хоть какие-то идеи?
C++ Чисто идеи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
luciys
27.08.2013, 04:59  [ТС]     идеи, идеи, идеи для начинающих
  #21

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


Зависит от специфики опять же, области знаний, в которой применение... Стоит знать основы алгоритмизации, дискретной математики, функционального анализа, твёрдо структуры данных, прямо "матан понимать" в общем случае конечно не надо. Но если работаете с графикой, то надо понимать основы линейной алгебры как минимум, если занимаетесь моделированием - физику... ну это имхо

кто же знает, чем мы будем заниматься, хочешь одно, а получишь другое, да ещё и на другой язык заставят переходить, опять учить синтаксис =\ по мне, человеку не представляющему, что будет на рабочем месте, так понадобятся сортировки, эффективная работа со структурами данных, какая-нибудь комбинаторика и подобное, а матема только если в какой-нибудь специализации, я имею ввиду именно ту, которую нам в вузе преподают

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
27.08.2013, 05:09
  #22

Не по теме:

Цитата Сообщение от luciys Посмотреть сообщение
по мне, человеку не представляющему, что будет на рабочем месте, так понадобятся сортировки, эффективная работа со структурами данных, какая-нибудь комбинаторика и подобное
Может и не понадабятся, но знать это надо, серьёзно, это - база, т.с..
Цитата Сообщение от luciys Посмотреть сообщение
да ещё и на другой язык заставят переходить
Если хорошо освоить один язык, то на следующий "похожий" переход не особо сложный - например, С++ -> Java - хоть и подходы совершенно разные, но и общих концепций достаточно, это многое упрощает, ну и вообще сам по себе опыт разработки\проектирования уже вне зависимости от языка, а парадигмы (здесь ООП).

luciys
27.08.2013, 05:21  [ТС]
  #23

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


Может и не понадабятся, но знать это надо, серьёзно, это - база, т.с..

Если хорошо освоить один язык, то на следующий "похожий" переход не особо сложный - например, С++ -> Java - хоть и подходы совершенно разные, но и общих концепций достаточно, это многое упрощает, ну и вообще сам по себе опыт разработки\проектирования уже вне зависимости от языка, а парадигмы (здесь ООП).

переход с языка не проблема, только если не на ассемблер =) если например один яп будешь знать хорошо, то уже будешь знать, что искать при изучении второго

gray_fox
27.08.2013, 05:22
  #24

Не по теме:

Цитата Сообщение от luciys Посмотреть сообщение
матема только если в какой-нибудь специализации, я имею ввиду именно ту, которую нам в вузе преподают
Ну, что бы "просто что-то програмировать", знание матана конечно не нужно Программирование - это ремесло, не наука.
Но всегда есть какая-то область применения (что-ли?), за "абстрактное программирование в вакууме" никто платить не будет

luciys
27.08.2013, 05:27  [ТС]
  #25

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


Ну, что бы "просто что-то програмировать", знание матана конечно не нужно Программирование - это ремесло, не наука.
Но всегда есть какая-то область применения (что-ли?), за "абстрактное программирование в вакууме" никто платить не будет

как-то в этом ремесле всего повсюду тьма тьмущая =\ прям не поймешь за что хвататься) учить)

AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
27.08.2013, 06:30     идеи, идеи, идеи для начинающих #26
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я смотрю, что-много в оффтоп начали пихать, хотя по сути, это и есть тема топика.

В общем, между строк почитал топик. Вот что вылилось:
Синтаксический анализатор это довольно таки просто. Я имею ввиду, что там нет сколько-нибудь сложного матана, всё упирается в regex'ы, и это единственная сложность. Поначалу интересно, поднимаются интересные темы матана, то как всякие разные автоматы, программирование ИИ даже можно покопать. Но в целом, сама задача не так интересна. В данной теме можно попробовать написать чат-бота - вот это да, это и интересно и не так уж и сложно, как кажется на первый взгляд (хотя бот при этом будет не сильно уж и крутой, но просто так от живого человека будет сложно отличить).

Чтобы я рекомендовал? Это зависит от темы, которую хочеться прочувствовать. Можно, как например, "свой интернет" написать. По типу L2P, там много интересных вещей возникает - шифрование, хранение, передача данных. А это по сути и есть информатика в своём первоначальном виде. Единственная сложность - это изучать протоколы передачи данных, что не есть тривиально сегодня. Хотя можно и ограничиться TCP/IP - писать поверх него, каким-то образом обстрагировавшись от него. К слову, здесь же рядом есть тема bitcoin'а. Как например, сделать его аналог. Снова, здесь будет больше матана, чем непосредственно программирования, но матан своебразный. Даже дискретная математика, которой здесь много, выглядет иначе, чем её преподают. Совсем иначе. Но повторюсь, тема очень сложная, и не факт, когда из под клавиатуры программиста выйдет рабочий бинарник, в нём не будет критических уязвимостей. В общем, эта тема очень, очень актуальна сегодня в плане информатике как науки.

Есть ещё стек знаний, очень тесно связанный с матаном. Это 3D-моделирование. Здесь кроется действительно сложный, и, что неприятно, нудный матан. Но зато, после того, как всё будет сделано, ЧСВ поднимается непомерно сильно. Это потому, что здесь применяется математика, сильно абстрагированная от результата. И ощущение, что это действительно работает, сравнимо... Не знаю, попробуйте, и скажете как вам: понравилось или нет.

Наконец, если матан совсем не интересен, ну или просто поднадоел, то есть немало math-free областей. В основном, это всё, что связано с продакшном. Можно написать свой веб-фреймворк, это, конечно, плюсы, то есть Си с классами и выше. Здесь придётся много ночей посидеть, копаясь в стандартах, как происходит общение в TCP/IP, при чём здесь HTTP, как работает HTTPS, что такое websockets, а также немного поработать с разбором синтаксиса (тот самый синтаксический анализатор), когда дело дойдёт до template'ов, но здесь он очень простой - буквально пара-тройка regex'ов (хотя это и зависит от сложности шаблонов, но в общем случае так).
Есть ещё игрострой. Это, в принципе, собрание всех человеческих знаний о информатике в месте, но матан-фри он часто (особенно в инди), потому что весь матан покрывают библиотеки. Зато в них придётся разобраться.
Наконец, есть банальный и обычный энтерпрайз, нацеленный на разработку и продажу продуктов, таких как, базы данных, офисные пакеты, графические редакторы, множество специфичных продуктов (пример с потолка: система учёта пассажиров авиа-рейсов, где есть очень много вещей, присущих конкретно этой области); есть ещё embedded-systems, но это уж совсем специфическая область, в которых есть огромных подобластей, в основном благодаря тому, что для каждого случая разработка ведётся едва ли не с нуля, учитывая все ньюансы.

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

Добавлено через 15 минут

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение
Ну, что бы "просто что-то програмировать", знание матана конечно не нужно Программирование - это ремесло, не наука.
Но всегда есть какая-то область применения (что-ли?), за "абстрактное программирование в вакууме" никто платить не будет
Забавно, но будут. Абстрактное программирование в вакууме - это 90% энтрпрайз проектов (я имею ввиду те, которые будут использоваться не конечными потребителями в виде нас с вами, а другая большая компания и часто, одна единственная). В том смысле, что там уже всё готово и осталось лишь совместить несколько деталей конструктора. Но это не значит, что это просто. Во-первых, заказчик далеко не всегда сам понимает, что хочет. Во-вторых, в ТЗ обычно прописано столько много мелочей, на каждую из которых детальку нужно определённым образом поворачивать, а часто требуется ещё одна деталька... Наконец, не всегда получается с первого раза, да и вообще - поддержка продукта - основная прибыль аутсорс компаний, разрабатывающие софт. А поддержка - это обычно и есть программирование в вакууме: 1) узнали о баге, 2) нашли баг, 3) разобрались в баге, 4) устранили баг, 5) проверили и здесь либо возращаемся к 1, либо 6) сделали новый мастер-билд.

И что снова забавно: общий оборот от программирования тесно связанного с наукой, скорее меньше, чем в "абстрактном программировании в вакууме". Почему? Большая часть наукоёмких разработок - OpenSource и при университете, то есть так или иначе - OpenSource. Отсюда - один раз сделали, больше не надо. А энтерпрайз - две задачи очень и очень похожи, даже счетами на оплату. Я к тому, что в энтерпрайз (особенно аутсорс), очень часто возникают идентичные задачи. Тогда как скида предусматривается редко, очень редко. Нередко даже с нуля начинают банально потому, что подрядчики разные. Иначе сложно объяснить рост рынка программного обеспечения едва ли не на дрожжах. Рост рынка настолько быстрый, что зачастую кадров не хватает не смотря на то, что здесь едва ли не самый большой рынок труда в плане предложения. А спрос всё равно выше. И так будет ещё долго, пока не научимся использовать программный код повторно. Надеюсь, и не научимся.

luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 07:01  [ТС]     идеи, идеи, идеи для начинающих #27
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Я смотрю, что-много в оффтоп начали пихать, хотя по сути, это и есть тема топика.

В общем, между строк почитал топик. Вот что вылилось:
Синтаксический анализатор это довольно таки просто. Я имею ввиду, что там нет сколько-нибудь сложного матана, всё упирается в regex'ы, и это единственная сложность. Поначалу интересно, поднимаются интересные темы матана, то как всякие разные автоматы, программирование ИИ даже можно покопать. Но в целом, сама задача не так интересна. В данной теме можно попробовать написать чат-бота - вот это да, это и интересно и не так уж и сложно, как кажется на первый взгляд (хотя бот при этом будет не сильно уж и крутой, но просто так от живого человека будет сложно отличить).

Чтобы я рекомендовал? Это зависит от темы, которую хочеться прочувствовать. Можно, как например, "свой интернет" написать. По типу L2P, там много интересных вещей возникает - шифрование, хранение, передача данных. А это по сути и есть информатика в своём первоначальном виде. Единственная сложность - это изучать протоколы передачи данных, что не есть тривиально сегодня. Хотя можно и ограничиться TCP/IP - писать поверх него, каким-то образом обстрагировавшись от него. К слову, здесь же рядом есть тема bitcoin'а. Как например, сделать его аналог. Снова, здесь будет больше матана, чем непосредственно программирования, но матан своебразный. Даже дискретная математика, которой здесь много, выглядет иначе, чем её преподают. Совсем иначе. Но повторюсь, тема очень сложная, и не факт, когда из под клавиатуры программиста выйдет рабочий бинарник, в нём не будет критических уязвимостей. В общем, эта тема очень, очень актуальна сегодня в плане информатике как науки.

Есть ещё стек знаний, очень тесно связанный с матаном. Это 3D-моделирование. Здесь кроется действительно сложный, и, что неприятно, нудный матан. Но зато, после того, как всё будет сделано, ЧСВ поднимается непомерно сильно. Это потому, что здесь применяется математика, сильно абстрагированная от результата. И ощущение, что это действительно работает, сравнимо... Не знаю, попробуйте, и скажете как вам: понравилось или нет.

Наконец, если матан совсем не интересен, ну или просто поднадоел, то есть немало math-free областей. В основном, это всё, что связано с продакшном. Можно написать свой веб-фреймворк, это, конечно, плюсы, то есть Си с классами и выше. Здесь придётся много ночей посидеть, копаясь в стандартах, как происходит общение в TCP/IP, при чём здесь HTTP, как работает HTTPS, что такое websockets, а также немного поработать с разбором синтаксиса (тот самый синтаксический анализатор), когда дело дойдёт до template'ов, но здесь он очень простой - буквально пара-тройка regex'ов (хотя это и зависит от сложности шаблонов, но в общем случае так).
Есть ещё игрострой. Это, в принципе, собрание всех человеческих знаний о информатике в месте, но матан-фри он часто (особенно в инди), потому что весь матан покрывают библиотеки. Зато в них придётся разобраться.
Наконец, есть банальный и обычный энтерпрайз, нацеленный на разработку и продажу продуктов, таких как, базы данных, офисные пакеты, графические редакторы, множество специфичных продуктов (пример с потолка: система учёта пассажиров авиа-рейсов, где есть очень много вещей, присущих конкретно этой области); есть ещё embedded-systems, но это уж совсем специфическая область, в которых есть огромных подобластей, в основном благодаря тому, что для каждого случая разработка ведётся едва ли не с нуля, учитывая все ньюансы.

В общем, простыню я написал что надо. Возможно я где-то наврал, но надеюсь, что нет. Нужно лишь выбрать степень зависимости от матана и уровень его абстракции. А там уже смотреть, что больше подходит.
премного благодарен)
да не, матан не настолько пугает, вопрос был насколько математика нужна вообще в программирование, а не в каких-то частных областях. про 3д моделирование Вы имеете ввиду написание собственных алгоритмов для построение этих самых моделей?

а что потребуется "писать" на рабочем месте? с++ программисту, например
насколько реально найти работу программисту работающему в основном с низкоуровневыми языками? просто у нас, в Минске, в основном с++, часто делфи, что-нибудь с вэб

Добавлено через 19 минут

Не по теме:

Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


Ну, что бы "просто что-то програмировать", знание матана конечно не нужно Программирование - это ремесло, не наука.
Но всегда есть какая-то область применения (что-ли?), за "абстрактное программирование в вакууме" никто платить не будет

что значит "абстрактное программирование в вакууме"?

AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
27.08.2013, 07:11     идеи, идеи, идеи для начинающих #28
Цитата Сообщение от luciys Посмотреть сообщение
да не, матан не настолько пугает, вопрос был насколько математика нужна вообще в программирование, а не в каких-то частных областях.
Скажем так. Math-free разработка: web-framework'и (в основном их использование), инди-игрострой и много-много энтерпрайза - это примерно 90% всего рынка труда. Это моя оценка, она может быть далека от правды, но по собственному опыту это примерно так. Лично я ни разу не встречался с наукоёмкой задачей, где действительно требовалось бы использовать матан на полную катушку, кроме как по университету.

Что до math-full областей - это разработка графических библиотек и драйверов для видеокарт, разработка алгоритмов поведения процессоров (там много подводных камней, например, конвейр), работа при университете и reseach-подразделения корпораций, где изучают современные проблемы информатики, как науки (это дискретная математика в основном, но активно используются и другие области, то как булева арифметика и всё, что из неё выросло).
К слову, надо заметить, что есть много областей программирования, так или иначе связанные с науками, никак с информатикой не связанными: биотехнологии и медики, астрофизики, геофизики, и геологи с метереологами, да и обычные физики, использующие банальный дифференциальный аппарат Ньютона и Лейбница. В общем, эти области активно используются в программирование банально потому, что программировать продвинутые хирургические столы с руками-манипуляторами, зонды для исселдования космосса, всевозможные роверы, зонды для исследования земли и прогноза погоды, требуется программировать и наземный, воздушный и морской транспорт (в каждой области "своя" физика, чем-то похожие друг между другом, но далеко не всем). Я уже не пишу о таких вещах, как квантовые компьютеры, да и обычне компьютеры требуют вмешательства серьёзных физиков, решающих серьёзные проблемы.
Цитата Сообщение от luciys Посмотреть сообщение
про 3д моделирование Вы имеете ввиду написание собственных алгоритмов для построение этих самых моделей?
Я имел ввиду написание собственного 3d-рендера. Занятие действительно очень сложное, и много времени нужно будет проводить вдалеке от клавиатуры, используя лишь карандаш, лист и мозг. Но результат поражает. Впрочем, если забить на производительность и ограничиться лишь евклидовом пространством, можно довольно легко сделать простой 3d-рендер даже без буффера глубины всего лишь за пару ночей. Ещё одна ночь - и относительно удобный API. А там можно будет "поиграть" и продолжить. Очень легко расширить (если не было хардкода) до 4х-мерного пространства. Там уже "игры" будут сложнее и интереснее. Можно также попробовать взяться за неевклидову геометрию, но я туда не лез, не скажу как там.
А под абстракцией я подразумеваю то, что там много премного математических абстракций, а не те, что пропагандирует java. Они куда более сложные для понимания, а результат удивляет. Ибо это с первого взгляда кажется самой настоящей магией. Да и сейчас мне множество вещей от туда - магия. Просто я не математик, мне сложно даются разные виды матана, и, когда видешь, что можно пойти к одному и тому же двумя абсолютно разными путями, причём один, стандартный, а другой - через немного другую область матана всевозможными переходами и с разными уловками. В общем, по части программирования, там есть много интересных методов. Здесь, кстати, важно соблюдать дистанцию. Ибо нам, программистам (как учёным) далеко не каждое решение интересно, в отличии от обычных математиков. Но это лирика.

Цитата Сообщение от luciys Посмотреть сообщение
Цитата Сообщение от gray_fox Посмотреть сообщение
Но всегда есть какая-то область применения (что-ли?), за "абстрактное программирование в вакууме" никто платить не будет
что значит "абстрактное программирование в вакууме"?
Я так понял - написание кода связанное только с программированием и не связанное с RL вообще никак, или связь настолько абстрактная, что ею можно принебречь, и с целью - написать код.
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 07:42  [ТС]     идеи, идеи, идеи для начинающих #29
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Очень легко расширить (если не было хардкода) до 4х-мерного пространства.
это как? Оо =) его же невозможно...(или моя фантазия ограничена) это с помощью opengl/directx, 3д моделиование?
Название: Glass_tesseract_animation.gif
Просмотров: 102

Размер: 686.7 Кб

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

Цитата Сообщение от AnyOne697 Посмотреть сообщение
инди-игрострой
насколько часто игры проекты становятся успешными? в плане популярности/прибыли, думаю не очень часто))

Цитата Сообщение от AnyOne697 Посмотреть сообщение
используя лишь карандаш, лист и мозг
это ещё в школе мой преподаватель говорил, что пока не решил на листе и не понял, за компьютер нечего лезть, всё равно сопротивлялся, но со временем привык и он был прав, намного легче

попрошу всё-таки ответить =) :
Цитата Сообщение от luciys Посмотреть сообщение
а что потребуется "писать" на рабочем месте? с++ программисту, например
а Вы работаете в той области которой хотели?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.08.2013, 08:50     идеи, идеи, идеи для начинающих #30
Купите себе Arduino или какой-нибудь RPi, приверните на это дело Bluetooth и развлекайтесь сколько душе угодно. Навскидку несколько идей:
  • Удаленное проявление ПК в различных проявлениях:
    1. Управление медиа-плеером. Начальть с банальных функции в духе остановки, проигрывания, регулировки уровня громкости. Затем более продвинутые функции, например, просмотр и управление списком воспроизведения.
    2. Более простой вариант, но похожий это пульт для презентаций. Тут все просто - достаточно будет перелистывания страниц вперед и назад.
  • Взаимодействие с какими-либо другими устройствами. Устройства любые, например, фотоаппарата. Большинство приличных фотоаппаратов работают по одному общему протоколу. По этому протоколу можно как извлекать фотографии с устройства, так и управлять устройством (т.е. делать фотографии).
  • Менее практичная (вернее совсем непрактичная) задача: приобрести несколько подобных устройств и построить "нелепую" вычислительную сеть

Какие плюсы я вижу в подобных задачах. Во-первых все они дают первичное представление о работе с железом, потому что подобные мини-компьютеры надо будет либо прошивать, либо ставить на них ОС, подключать к большому ПК и осваивать методы передачи данных между ПК и мини-ПК. Во-вторых, в случае с RPi, вы безусловно столкнетесь с Linux, что однозначно большой плюс. В-третьих, с точки зрения программирования задачи включают в себя работу с сетью, что невероятно полезно и увлекательно. В-четвертых, в принципе используется большой стек технологий, включающий как низко-, так и высоко-уровоневое программирование.

Лично я сам хотел бы написать генератор данных для БД (ссылка на аналог)
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 09:07  [ТС]     идеи, идеи, идеи для начинающих #31
Цитата Сообщение от fasked Посмотреть сообщение
Купите себе Arduino или какой-нибудь RPi, приверните на это дело Bluetooth и развлекайтесь сколько душе угодно. Навскидку несколько идей:
  • Удаленное проявление ПК в различных проявлениях:
    1. Управление медиа-плеером. Начальть с банальных функции в духе остановки, проигрывания, регулировки уровня громкости. Затем более продвинутые функции, например, просмотр и управление списком воспроизведения.
    2. Более простой вариант, но похожий это пульт для презентаций. Тут все просто - достаточно будет перелистывания страниц вперед и назад.
  • Взаимодействие с какими-либо другими устройствами. Устройства любые, например, фотоаппарата. Большинство приличных фотоаппаратов работают по одному общему протоколу. По этому протоколу можно как извлекать фотографии с устройства, так и управлять устройством (т.е. делать фотографии).
  • Менее практичная (вернее совсем непрактичная) задача: приобрести несколько подобных устройств и построить "нелепую" вычислительную сеть

Какие плюсы я вижу в подобных задачах. Во-первых все они дают первичное представление о работе с железом, потому что подобные мини-компьютеры надо будет либо прошивать, либо ставить на них ОС, подключать к большому ПК и осваивать методы передачи данных между ПК и мини-ПК. Во-вторых, в случае с RPi, вы безусловно столкнетесь с Linux, что однозначно большой плюс. В-третьих, с точки зрения программирования задачи включают в себя работу с сетью, что невероятно полезно и увлекательно. В-четвертых, в принципе используется большой стек технологий, включающий как низко-, так и высоко-уровоневое программирование.

Лично я сам хотел бы написать генератор данных для БД (ссылка на аналог)
конечно звучит забавно и интересно) управлять ноутам по бт...хммм Но я работал только с по =) т.е. всякие микросхемы никогда и в руках не держал, даже на моей специальности, наверное, мы и не будем работать...

подобные мини-компьютеры надо будет либо прошивать, либо ставить на них ОС, подключать к большому ПК и осваивать методы передачи данных между ПК и мини-ПК
а с чего такие выводы? все с этим сталкиваются?

а в чём сложно генерировать данных? существует же великий рандом

ах, да, я с английским на Вы, так что не стоит меня туда к ним посылать =)
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.08.2013, 09:15     идеи, идеи, идеи для начинающих #32
Цитата Сообщение от luciys Посмотреть сообщение
а в чём сложно генерировать данных? существует же великий рандом
Данные должны быть хотя бы приближенно похожими на реальные. Банально, если таблица называется PERSON и в ней есть колонка FIRSTNAME, то и даныне для этой колонки должны генерироваться соответствующие: Alex, John, Alice, etc. То есть необходим некий механизм для определения типа данных. Во-вторых существует великое множество БД, а как вы можете догадываться с разными БД надо по разному работать. В первую очередь я имею в виду механизм определения схемы БД.
Цитата Сообщение от luciys Посмотреть сообщение
конечно звучит забавно и интересно) управлять ноутам по бт...хммм Но я работал только с по =) т.е. всякие микросхемы никогда и в руках не держал, даже на моей специальности, наверное, мы и не будем работать.
Ну так заодно и научитесь. К тому же на самом деле не все так страшно, в интернете наверняка есть куча статей про то, как все делается.

Программирование это не только знание языка
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 09:40  [ТС]     идеи, идеи, идеи для начинающих #33
Цитата Сообщение от fasked Посмотреть сообщение
Данные должны быть хотя бы приближенно похожими на реальные. Банально, если таблица называется PERSON и в ней есть колонка FIRSTNAME, то и даныне для этой колонки должны генерироваться соответствующие: Alex, John, Alice, etc. То есть необходим некий механизм для определения типа данных. Во-вторых существует великое множество БД, а как вы можете догадываться с разными БД надо по разному работать. В первую очередь я имею в виду механизм определения схемы БД.
ну тогда перебор ключевых слов. или составить свою базу, не знаю, как это правильно называется, пространств имен, а пользователь уже сам выбирает из предложенных разделов



Цитата Сообщение от fasked Посмотреть сообщение
Ну так заодно и научитесь. К тому же на самом деле не все так страшно, в интернете наверняка есть куча статей про то, как все делается.

Программирование это не только знание языка
хочется быстрее выучить язык и ринуться в бой =)

Добавлено через 14 минут
а я всего лишь просил подкинуть пару идей для проекта начинающим программистам, чтоб заняться самообразованием
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.08.2013, 10:07     идеи, идеи, идеи для начинающих #34
Цитата Сообщение от luciys Посмотреть сообщение
средней сложности, чтоб не за выходные написали и даже не за одну неделю
Цитата Сообщение от luciys Посмотреть сообщение
подкинуть пару идей для проекта начинающим программистам, чтоб заняться самообразованием
Мне кажется, есть небольшое противоречие в этих двух фразах
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 10:14  [ТС]     идеи, идеи, идеи для начинающих #35
Цитата Сообщение от fasked Посмотреть сообщение
Мне кажется, есть небольшое противоречие в этих двух фразах
ну блин...))) ну как объяснит-то... =)
опять буду повторяться, наверное, пока главное выучить всю базу которую должен знать программист, но чтоб это было не тупо пролистывание, а разбор на практике, с креативчиком =D, чтоб нужно было посидеть подумать, и хочется уже какое-нибудь средненькое задание, надоело ограничиваться лабами, они слишком просты
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.08.2013, 10:21     идеи, идеи, идеи для начинающих #36
luciys, для изучения именно языка можно попробовать "нарисовать" аналог STL библиотеки. Начать с простых структур данных, позже добавить классы для работы с многопоточностью. Тут и знание языка поднимется и знание стандартной библиотеки. Тем более для олимпиадников с понимаем структур данных проблем никаких возникать не должно быть, так что это на самом деле будет исключительно язык.
Однако, следует понимать, что практической пользы от таких задач нет. То есть пользоваться продуктом никто не будет. Задание исключительно академическое.
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 10:33  [ТС]     идеи, идеи, идеи для начинающих #37
fasked, да, конечно, тут 100% интерес в образовательных целях
т.е. нарисовать? уже мозги закипают =\ создать сам аналог по содержанию? хотя можно своих алгоритмов напихать... с чем же тогда стоит ознакомиться? структуры данных, классы, объекты, вектора...помогайте =D что туда можно включить? из, так сказать, обязательного
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
27.08.2013, 12:01     идеи, идеи, идеи для начинающих #38
Вообще лучше попробуй написать какой нить синтаксический анализатор, как тебе тут уже советовали. Я могу своим проектом поделится это генератор сайтов, напишите такую программу которая бы генерировала сайты какие вы захотите и что бы они были похожи на те которые делают люди СДЛ, и настройки что бы были установили в настройках например 10 сайтов примерно по 300 - 500 страниц и она вам через какое то время взяла и сгенерировала. Я такую делал на пхп, есть рабочий вариан. Реализацией делится не буду, как говорится главное это теория, план, знать что за чем делать, но эту прогу легко делать.

Я вообще С++ хочу заточить под Веб создание различных парсеров, работа с http протоколом, я просто веб хорошо знаю и веб превликает, еще после того как свой генератор создашь, сможешь легко писать роботов для веб, любых поисковых каких захочешь.

От могу идеей робота поделится который будет сутками работать сканировать поисковики считывать с них страницы, с этих страниц выдирать почты и ссыки. ссылки добавлять в отдельную базу, адреса почты в другую, переходим по ссылкам которые в базе, снова те же действия, когда ссылки в базе кончаются парсим поисковик по какому нить запросу и снова так. В общем такая программка которая собирает базу мыл, я не знаю что с ними делать, но эти базы можно даже продать. Под веб можно много чего различных программ писать, у меня идей именно под веб полно. Ну ту прогу что товарищ fasked, советовал, там кнопку для плеера, как то оно скучное задание ИМХО, я за те проги на С++ которые с веб работают, они не большие и их самому можно писать и вообще такие прожки на фрилансере ценятся именно парсера и писать их если рука набита не сложно, а даже очень интересно.
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 12:24  [ТС]     идеи, идеи, идеи для начинающих #39
ninja2, ну так он советов с помощью Arduino+Bluetooth, в его предложение главная задумка именно запрограммировать этот arduino

Цитата Сообщение от luciys Посмотреть сообщение
и вот тоже, просматривая о программировании форумы, статьи и тд тп замечаю, что везде есть связь с вэбом. как-то не хочется этого касаться
говорил, что не хочу лезть в это, куда не глянь везде вэб-люди =) надо сначала язык хоть один нормально освоить)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 14:01     идеи, идеи, идеи для начинающих
Еще ссылки по теме:

C++ Реализация идеи
История, нужны идеи без религии C++
Идеи проектов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
27.08.2013, 14:01     идеи, идеи, идеи для начинающих #40
Цитата Сообщение от luciys Посмотреть сообщение
Цитата Сообщение от AnyOne697 ;post4990108
Очень легко расширить (если не было хардкода) до 4х-мерного пространства.
это как? Оо =) его же невозможно...(или моя фантазия ограничена) это с помощью opengl/directx, 3д моделиование?
Нет ничего невозможного. Просто добавляем четвёртую ось, перпендикулярную трём другим. Звучит просто. Формулы видоизменяются минимально. А вот понять эту чертвощину очень и очень сложно. Практически нереально - мозг не приспособлен. Поэтому приходиться работать с абстрактной математикой.
Цитата Сообщение от luciys Посмотреть сообщение
и вот тоже, просматривая о программировании форумы, статьи и тд тп замечаю, что везде есть связь с вэбом. как-то не хочется этого касаться
Так и не касайтесь. Всё просто. Web - огромный рынок. На мой скромный взгляд - минимум 50% всего рынка ПО (большая часть правда фротенд). Просто потому, что web - очень удобный "кроссплатформенный" способ дистрибуции ПО. И открывающий много возможностей (впрочем, как и прекрывающий кислород к определённым технологиям). Но я говорил в основном про бекэнд - серверная часть. Там менее интересно и в чём-то проще, в чём-то сложнее.
Цитата Сообщение от luciys Посмотреть сообщение
попрошу всё-таки ответить =) :
Цитата Сообщение от luciys Посмотреть сообщение
а что потребуется "писать" на рабочем месте? с++ программисту, например
Ну... Тут сложно сказать что-то очень конкретное. Как я писал выше - огромная часть рынка ПО по моим наблюдениям - это всё же аутсорс, а в нём бОльшее значение имеет поддержка продукта, чем его создание. А это в общем-то и есть "абстрактное программирование в вакууме", на мой взгляд. Типичный проект - какая-нибудь база данных и управляющий код, каким-то образом осущевствляющий добавление записей в БД и их редактирование (обновление) / удаление. Там обычно нет физики или какого-нибудь матана. И суть заключается примерно в следующем: заказчик говорит что, архитектор говорит как, менеджер говорит когда будем делать. Кажется скучным, но там хватает своего экшена, особенно когда дедлайн через неделю, и выясняется, что мы не так поняли заказчика, архитектор тоже налажал, да и тестер уволился, а тимлид ушёл в отпуск (правда его срочно призвали с этого самого отпуска .
А собственно, что придётся писать... Ну в случае описанном выше - это обработка неких абстракных запросов вакууме (самые разные запросы в зависимости от проекта) по каким-то правилам, хранение их в БД, своевременное обновление. Бывает интересно, особенно когда проект заказывает какая-нибудь телекоммуникационная компания, распространнёная по всей стране, когда запросов много, территориальное покрытие - вся страна, а времени на обработку и поддержку БД в актуальном состоянии мало. Но обычно здесь всё просто по банальной причине - есть ресурсы. Никакого матана - всё уже сделано (MapReduce и т.п.).

Есть наукоёмкие области. Это всё, что связано с использованием техники в особых условиях - космос, пожар с обвалами и радиацией, вопрос между жизнью и смертью - здесь промедление и/или сбой понесёт убытки от нескольких миллиардов до человеческой(их) жизни(ей). Здесь немало матана, но намного больше тестов. Тесты на тестах и тестами погоняемые. Правда, когда я наблюдал за процессом в последний раз - редко кто использовал юнит-тестирование (именно юнит), не говоря уже о scum'ах и eXtreme Programming'ах. Но это было очень давно, да и я был мал - может чего-то не понимал.

Есть ещё инновационные области. О них забыл написать. Там всё подряд. Микс из всего, что только можно представить. Я написал про проблемы инфортики, но есть также и энтерпрайз-решения. GMail, например, примерно оттуда. MS Reseach - отличное подразделение, занимающееся интересными вопросами. Google сейчас активно занимается вопросами производительности интернет-сетей (уменьшение задержек и повышение скорости). При этом в инноватике матан проявляется далеко не всегда - реализация twitter'а лишена какой либо математики, кроме количества символов в сообщении. Twitter - это идея. В reseach-подразделениях крупных организаций именно идеями и занимаются. И в math-free областях тоже.

Не по теме:

Но это всё грубое описание. Ситуация ситуации рознь. У программистов огромные зарплаты, но мне всё больше кажется не потому, что они такие умные. И не потому, что их мало. А из-за того, что поддержание проекта намного проще тем же программистом, что его и делал. А поддержка - как я писал выше - корм больших компаний, занимающихся аутсорсом. И здесь накладывается ещё интересный момент - опыт. Опытные работники в любой области нужны. Наконец, последнее совпадение - коллосальный рост сферы IT. И переманивая опытных работников (я бы сказал - ремесленников), увеличивают зарплату. Чтобы работник не ушёл, зарплату надо увеличивать. Отсюда и зарплаты у "IT-ремесленника" очень высокие, по сравнению с другими "ремесленниками" (строители, фрезеровщики, слесари, водители и т.п.), так там наняв другого сотрудника, компания мало что потеряет... А... Ну это всё оффтоп.


Собственно, я к чему всё это? А к тому, что нужно пробовать. Постоянно пробовать. Не нравиться где-то, так валить надо. Всё по ТК - предупреждаешь за месяц-пару_недель, подыскиваешь за это время новое рабочее место, и так пока не поймёшь, что здесь твоё место. До этого момента может поменяться десяток рабочих мест.

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

Цитата Сообщение от fasked Посмотреть сообщение
Удаленное проявление ПК в различных проявлениях:
Управление медиа-плеером. Начальть с банальных функции в духе остановки, проигрывания, регулировки уровня громкости. Затем более продвинутые функции, например, просмотр и управление списком воспроизведения.
Более простой вариант, но похожий это пульт для презентаций. Тут все просто - достаточно будет перелистывания страниц вперед и назад.
Простите, но слишком банально: есть расширения клавиатур, подключить стандартный HID - пара десятков строк кода. А в windows есть и виртуальная клавиатура.
Тогда как просмотр и управление списком - чрезмерно сложно. Ибо плееров туча, а стандартов нуль. Можно плагин на winamp написать, которые поддерживаются большим кол-вом других плееров, но это некошерно, имхо.

Цитата Сообщение от fasked Посмотреть сообщение
Какие плюсы я вижу в подобных задачах. Во-первых все они дают первичное представление о работе с железом, потому что подобные мини-компьютеры надо будет либо прошивать, либо ставить на них ОС, подключать к большому ПК и осваивать методы передачи данных между ПК и мини-ПК. Во-вторых, в случае с RPi, вы безусловно столкнетесь с Linux, что однозначно большой плюс. В-третьих, с точки зрения программирования задачи включают в себя работу с сетью, что невероятно полезно и увлекательно. В-четвертых, в принципе используется большой стек технологий, включающий как низко-, так и высоко-уровоневое программирование.
Единственный серьёзный плюс - это linux, имхо. Да и RPi прошивать не надо - флешку вставил и завелась.
Работа с сетью - увлекательно и полезно. Несомненно. Но вроде, как я понял, копаться в теории не хочеться, а хотелось бы сразу в огонь. Видимо, чтобы матана было побольше.
Наконец, мешать новичкам низкоуровневый кодинг с высокоуровневым без куратора и помощника я бы категорически не советовал. Причина тому в том, что сейчас все путают Си, Си_с_классами и Си++. Если есть интерес в Си++ лично я бы сильно рекоммендовал Java, но это оффтоп. Но мешать два языка: Си и Си++ находясь на начальном уровне - зло. Тем более, после спортивного программирования ситуация и без того, скорее всего, печальна.

Цитата Сообщение от fasked Посмотреть сообщение
Лично я сам хотел бы написать генератор данных для БД (ссылка на аналог)
А это хорошая идея. Разве только она слабо связана с Си или Си++. Это сугубо SQL / NoSQL.

Добавлено через 33 минуты

Не по теме:

Цитата Сообщение от luciys Посмотреть сообщение
ах, да, я с английским на Вы, так что не стоит меня туда к ним посылать =)
Срочно исправляем. СРОЧНО. В IT без English вообще никуда. На себе чувствую. Мне очень тяжело даже сейчас, хотя тех. документацию читаю свободно. А вот поговорить с кем-нибудь - убейте лучше. В общем, исправляем, пока есть время. Методы исправления: привнести в жизнь как можно больше английского. Чем больше - тем лучше. Идеал: 2 раза в неделю с репетитором (личным тренером), групповые занятия 1-2 раза в неделю и читаем/смотрим/слушаем книги/фильмы/музыку только на английском (желательно без читов, вроде субтитров или стихов песен). Но это снова оффтоп.



Цитата Сообщение от fasked Посмотреть сообщение
luciys, для изучения именно языка можно попробовать "нарисовать" аналог STL библиотеки. Начать с простых структур данных, позже добавить классы для работы с многопоточностью. Тут и знание языка поднимется и знание стандартной библиотеки. Тем более для олимпиадников с понимаем структур данных проблем никаких возникать не должно быть, так что это на самом деле будет исключительно язык.
Однако, следует понимать, что практической пользы от таких задач нет. То есть пользоваться продуктом никто не будет. Задание исключительно академическое.
Удваиваю. Но. Во-первых, да, шанс, что никто использовать не будет стремиться к единице. Во-вторых, там вряд ли будет полное понимание языка. Тем более, что STL по сути своей ужасен. Лишь за неимением лучшего он не плох. Хотя лучшее есть - Qt, но она подвержена влиянию STL (пытается быть совместимой). Да и при написании таких вещей сказывается рудиментарность, старость и даже непродуманность языка как инструмента. В таких вещах разработчик на Си++ столкнётся с ужасными сторонами Си++ практически не почувствовав его плюсы (например, скорость и гибкость). Да и заимстовать идеи из STL - плохая идея.

Цитата Сообщение от ninja2 Посмотреть сообщение
В общем такая программка которая собирает базу мыл, я не знаю что с ними делать, но эти базы можно даже продать.
Пороть Вас надо, товарищ пороть!

Цитата Сообщение от ninja2 Посмотреть сообщение
Вообще лучше попробуй написать какой нить синтаксический анализатор, как тебе тут уже советовали.
Хотя в этом что-то есть.

На самом деле, я долго не хотел советовать такую вещь для первого серьёзного проекта. Тем более я сам в ней слабо преуспел и не знаю, смогу ли чем помочь. А вещь - "написать свой язык программирования". Целиком. В полной свободе. Вот варианты (по степени сложности к "упрощению" задачи):
+ компилируемый язык, то есть грубо: на входе есть *.txt (текстовый файл), на выходе имеем *.exe (исполняемый бинарник);
+ "интерпретатор с компилятором", это грубо конечно; суть - есть высокоуровневая версия языка, то есть набор человекочитаемых слов и знаков, есть низкоуровневая версия языка - набор опкодов, то есть байткод, который "исполняется" специальным интерпретатором - небольшой виртуальной машиной; компилятор при этом копилирует текстовый файл в байт-код;
+ интерпретатор, то есть мы непосредственно "исполняем" текстовый файл.
На самом деле, второй вариант немного объёмнее чем я описал, вместо байт-кода можно строить разноцветные деревья и модифицировать их, где построения деревьев - аналог компиляции.

Собственно, я рекомендую первый или второй вариант. Если второй, то как я его описал, а не пояснил (не надо никакие деревья строить вместо компиляции).
Почему? Вот почему:
1) Реальное знакомство с архитектурами CPU. Разбор таких вещей, как регистры, стек-машины, конечные автоматы и много много чего ещё из области матана и рядом лежащего.
2) Знакомство с очень интересными инструментами, например, GNU Bison (это чит-код, но для академического интереса можно).
3) Настоящая работа с проектированием - здесь не получиться взять клавиатуру + пару недель и готово, а если и получиться то выйдет не мышонок, не лягушка, а неведомо ... чудовище. И придётся подойти к этому вопросу с большой ответственностью.
4) Если ничего не получиться - то огромное количество опыта в кармане. Ведь если мы знаем, что мы делали, и знаем, что результат ужасен, то, следовательно, мы знаем "как делать не стоит".
5) Если что-то получиться то это тянет даже не на курсовую, а сразу на диплом.

Добавлено через 11 минут
Да, забыл добавить. Очень важный эффет от написания собственного языка программирования. Это понимание того, как вообще языки программирования работают. В процессе ведения проекта выясниться огромное количество бесценной для программиста инфы, касающиеся не только Си или Си++, а программирования в целом. Как пишутся программы, что с ними происходит. Зная, что твориться под капотом, можно будет избежать много подводных камней и добиться от машины невероятных результатов.
Наконец, постоянно встречаюсь с поверьем, что программист должен: написать "Hello world", написать "Тетрис" и (снова написать) написать свой язык программирования (а там можно уже всё тоже самое, но уже на своём ЯП).
Yandex
Объявления
27.08.2013, 14:01     идеи, идеи, идеи для начинающих
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru