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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.75
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
#1

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

27.08.2013, 02:09. Просмотров 4868. Ответов 95
Метки нет (Все метки)

доброй ночи, уважаемые форумчане. перейдем сразу к делу =) в общем, собираюсь с 2 одногруппниками написать какой-нибудь проект, но вот идей у меня совсем нету =\ может гуру программирования вспомнят свои первые проекты, буду очень признателен) или такие же студенты как мы, поделитесь идеей) средней сложности, чтоб не за выходные написали и даже не за одну неделю
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2013, 02:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос идеи, идеи, идеи для начинающих (C++):

Тема для курсовой работы по ООП. Нужны идеи - C++
Ребята,всем привет!Хочу у вас попросить идеи для написания курсовой по ООП для 2 курса.Лучше бы какую-нибудь не особо сложную игру,которую...

Идеи проектов - C++
Доброго врмени суток форумчане! Столкнулся с такой трудностью как отсутствие практики, вроде бы начальная база знаний есть(ясное дело...

Чисто идеи - C++
В кратце: в нашем универе проводиться что-то типа конкурса по программированию. В общем, нужно сделать свой проект и защитить. В общем,...

Есть идеи? - C++
Шеф-повар столовой решила устроить День Уважения к Повару. Для этого она приготовила N необычайно вкусных котлет и втайне постановила, что...

Реализация идеи - C++
Доброго времени суток. Вопрос может быть будет странным.По сути у меня вот появилась идейка как жизнь улучшить немножко себе(ведь программы...

Eсть хоть какие-то идеи? - C++
Построить чертеж: «В прямоугольном параллелепипеде провести перерез, который проходит через сторону нижней основы и противоположную сторону...

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

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

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

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

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

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

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



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

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

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

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

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

Цитата Сообщение от luciys Посмотреть сообщение
и вот тоже, просматривая о программировании форумы, статьи и тд тп замечаю, что везде есть связь с вэбом. как-то не хочется этого касаться
говорил, что не хочу лезть в это, куда не глянь везде вэб-люди =) надо сначала язык хоть один нормально освоить)
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
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", написать "Тетрис" и (снова написать) написать свой язык программирования (а там можно уже всё тоже самое, но уже на своём ЯП).
1
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
27.08.2013, 21:35  [ТС] #41
Цитата Сообщение от AnyOne697 Посмотреть сообщение
бОльшее значение имеет поддержка продукта
я не думаю, что поддержка будет занимать всё рабочее+всё уделяемое свободное время, можно же заниматься и созданием)
нужно будем как-то позже познакомиться с бд, а то они повсюду и не понимаю, что там может быть сверхсложного.
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Если есть интерес в Си++ лично я бы сильно рекоммендовал Java, но это оффтоп.
да не, не интерес, просто у нас по программе в этом году с++, вот я и взялся за плюсы.

Цитата Сообщение от AnyOne697 Посмотреть сообщение
Тем более, после спортивного программирования ситуация и без того, скорее всего, печальна.
что Вы имеете ввиду?

Добавлено через 4 минуты
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Да, забыл добавить. Очень важный эффет от написания собственного языка программирования. Это понимание того, как вообще языки программирования работают. В процессе ведения проекта выясниться огромное количество бесценной для программиста инфы, касающиеся не только Си или Си++, а программирования в целом. Как пишутся программы, что с ними происходит. Зная, что твориться под капотом, можно будет избежать много подводных камней и добиться от машины невероятных результатов.
я думал для этого необходимо поработать с "низким уровнем"
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
28.08.2013, 01:30 #42
Цитата Сообщение от luciys Посмотреть сообщение
я не думаю, что поддержка будет занимать всё рабочее+всё уделяемое свободное время, можно же заниматься и созданием)
нужно будем как-то позже познакомиться с бд, а то они повсюду и не понимаю, что там может быть сверхсложного.
Ну это не про Вас, это была лирика по поводу того, что придётся делат "на рабочем месте".
Цитата Сообщение от luciys Посмотреть сообщение
да не, не интерес, просто у нас по программе в этом году с++, вот я и взялся за плюсы.
А то что интереса нет, это скорее печально, чем весело.
Цитата Сообщение от luciys Посмотреть сообщение
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Тем более, после спортивного программирования ситуация и без того, скорее всего, печальна.
что Вы имеете ввиду?
Нет, это нисколько не умаляет Ваших способностей, просто спортивное программирование разительно отличается от "абстрактного программирования в вакууме" на рабочем месте. Когда программируешь нqа скорость, забиваешь на архитектуру и масштабируемость кода, используешь нечитаемые и труднопонимаемые "хаки", да и от Си++ остаётся только компилятор и расширение файла.
Цитата Сообщение от luciys Посмотреть сообщение
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Да, забыл добавить. Очень важный эффет от написания собственного языка программирования. Это понимание того, как вообще языки программирования работают. В процессе ведения проекта выясниться огромное количество бесценной для программиста инфы, касающиеся не только Си или Си++, а программирования в целом. Как пишутся программы, что с ними происходит. Зная, что твориться под капотом, можно будет избежать много подводных камней и добиться от машины невероятных результатов.
я думал для этого необходимо поработать с "низким уровнем"
Собственно, придётся поработать с низким уровнем. Если делать компилируемый язык программирования с выходом в виде исполняемого файла, придётся погрузиться в дебри форматов исполняемого файла, в ассемблер глубоко спуститься, понять, как процессор исполняет инструкции, что происходит с данными, с инструкциями, что такое контекст исполнения, можно расскопать и про конвейр при реализации оптимизации кода. В общем, много, очень много чего низкоуровнего можно будет расскопать.
В случае с виртуальной машиной придётся узнать про технологии виртуализации памяти, как ОС работает с памятью и в чём различие между *nix и windows, при проектировании виртуальной машины подниметься вопрос о архитектуре: стек-машина, или на регистрах или ещё что экзотическое. А при оптимизации виртуальной машины точно также встанет вопрос о архитектурах CPU: CISC vs RISC, i486 -> i686 -> amd64 (в чём разница, а что общее); ведь 100% КПД виртуальной машины достигается тогда, когда инструкии буквально пробрасываются на CPU в нативном виде, а набор инструкций VM равен набору инструкций CPU (равно как и архитектура такая же).

В общем, погрузитесь в самый низкий уровень кода, который только может быть. Научитесь писать *.exe файлы без компиляторов и языков программирования (напрямую в опкодах), будут доступны разные фокусы оптимизации кода, придёт понимание работы компьютера - его самой главной части - CPU.

Добавлено через 2 минуты
Цитата Сообщение от luciys Посмотреть сообщение
нужно будем как-то позже познакомиться с бд, а то они повсюду и не понимаю, что там может быть сверхсложного
Ничего, абсолютно ничего в БД сложного нет. Эта тема проста как пробка. Если дело заходит только об использовании, а не оптимизации. Вхождение - ночь, обучение - неделя. ИМХО, лучше тогда уж сначала почитать теорию про реляционные базы данных, и только потом начать изучать сами БД.
1
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
28.08.2013, 01:43  [ТС] #43
Цитата Сообщение от AnyOne697 Посмотреть сообщение
А то что интереса нет, это скорее печально, чем весело.
ёмаё, как Вы перекручиваете))) я просто пока не хочу привязывать свой интерес к конкретному языку, к программированию огромный интерес))



Цитата Сообщение от AnyOne697 Посмотреть сообщение
Собственно, придётся поработать с низким уровнем. Если делать компилируемый язык программирования с выходом в виде исполняемого файла, придётся погрузиться в дебри форматов исполняемого файла, в ассемблер глубоко спуститься, понять, как процессор исполняет инструкции, что происходит с данными, с инструкциями, что такое контекст исполнения, можно расскопать и про конвейр при реализации оптимизации кода. В общем, много, очень много чего низкоуровнего можно будет расскопать.
В случае с виртуальной машиной придётся узнать про технологии виртуализации памяти, как ОС работает с памятью и в чём различие между *nix и windows, при проектировании виртуальной машины подниметься вопрос о архитектуре: стек-машина, или на регистрах или ещё что экзотическое. А при оптимизации виртуальной машины точно также встанет вопрос о архитектурах CPU: CISC vs RISC, i486 -> i686 -> amd64 (в чём разница, а что общее); ведь 100% КПД виртуальной машины достигается тогда, когда инструкии буквально пробрасываются на CPU в нативном виде, а набор инструкций VM равен набору инструкций CPU (равно как и архитектура такая же).
В общем, погрузитесь в самый низкий уровень кода, который только может быть. Научитесь писать *.exe файлы без компиляторов и языков программирования (напрямую в опкодах), будут доступны разные фокусы оптимизации кода, придёт понимание работы компьютера - его самой главной части - CPU.
Вы как бы понимайте, что говорите не с равным, что я только на пути к вершинам понимания, а то разбрасываетесь тут понятиями и определениями налево и направо


наверное сначала стоит познакомиться близко с каким-то одним языком, а потом уже лезть во все эти дебри)
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
28.08.2013, 02:20 #44
Цитата Сообщение от luciys Посмотреть сообщение
Вы как бы понимайте, что говорите не с равным, что я только на пути к вершинам понимания, а то разбрасываетесь тут понятиями и определениями налево и направо
Вы просили совета, чтобы было интересно и не на одну неделю. Вот. Тем более, раз интерес к программированию огромный, то это отличный вариант, как я вижу. Тем более, что даже если ничего не получиться - то наоборот, получиться - опыт. А он бесценен.
То что я разбрасываюсь понятиями - я лишь даю отсылки, что можно почитать. Если тема интересна, могу попробовать подробнее рассказать или ссылок накидать. Тем более, что именно эта тема даст огромный и всеобъемлющий опыт. И матан там очень простой, тесно связанный непосредственно с программированием. Экшена здесь тоже очень много - будет что вспоминать.
Цитата Сообщение от luciys Посмотреть сообщение
наверное сначала стоит познакомиться близко с каким-то одним языком, а потом уже лезть во все эти дебри
Так знакомьтесь. Если нет привязки к определённому языку, то программируйте. Это именно то программирование в своём истинном лице без всяких абстракций в виде самого языка программирования. В то же время, будет удобная прослойка в виде ОС и не надо будет лезть в нетривиальные вещи - работу с оборудованием. Здесь важен лишь CPU. А он на самом деле очень прост.

К слову, наш преподаватель в университете говорил: "Есть три типа задач: простые, тривиальные и... ещё не решённые". Я ставлю простую задачу - она не тривиальная, требует опыт (который Вы несомненно получите), но в тоже время сто раз решённая и десяток раз расписанная.
1
luciys
5 / 5 / 1
Регистрация: 27.11.2012
Сообщений: 160
28.08.2013, 02:40  [ТС] #45
AnyOne697, нуу, не буду Вас утруждать, давайте лучше ссылки =)
0
28.08.2013, 02:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2013, 02:40
Привет! Вот еще темы с ответами:

Идеи реализации класса Menu - C++
Добрый день. В общем хочу разработать шаблонный класс Menu, чтобы постоянно не писать switch{}, но не знаю, как лучше сделать, суть в том,...

Идеи простых консольных программ на C++ - C++
Здравствуйте я начал изучать C++ недавно, знаю типы данных, операторы и управляющие конструкции for, if, while, do-while. Решал задачи...

Идеи насчет коммандной строки - C++
Друзья, нужна искренне Ваша помощь. Язык ANSI C Есть структура Flags, в которую я буду сохранять все значения с коммандной строки...

подскажите интересные идеи программ - C++
Кто-нибудь может какие идеи подкинуть! что можно попрограммировать такое интерессное??? только не парсер!!!


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

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru