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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать из двух функций одну) http://www.cyberforum.ru/cpp-beginners/thread944120.html
void Resize_Array_unsigned_int( unsigned int &_New_Size_, unsigned int *_Conteiner_ ) { unsigned int *tmp = new unsigned int; memcpy( tmp, _Conteiner_, _New_Size_ * sizeof( unsigned int ));...
C++ Поиск циклов в графе. Поиск центра взвешенного графа В интернете, к сожалению, по этим вопросам не так уж много нашел. Можете посоветовать статью/пособие, где было бы подробно об этом написано? http://www.cyberforum.ru/cpp-beginners/thread944119.html
C++ Списки:нужны или нет?
Стоит ли изучать связные списки,они используются в дальнейшем? Может я туповат, но алгоритм их построения понять не могу. Уж больно все запутанно описывается в книжке. Пытался сам разбираться ,вот...
Путь символа C++
Здорова господа! Есть интересная задачка: "Проследите путь символа в вашей системе от клавиатуры до экрана на примере следующего кода:" char c; cin >>c; cout <<c<<endl; И как же его...
C++ Ошибка: "case label not within a switch statement" http://www.cyberforum.ru/cpp-beginners/thread944082.html
Здравствуйте, работая с оператором switch произошла ошибка case label '1' not within a switch statement case label '1' not within a switch statement case label '1' not within a switch statement...
C++ Время для функции генерирующей случайные величины я написал функцию которая генерирует случайные величины в промежутке valarray<double> cRand::base_rnd(size_t N){ valarray<double> v; v.resize(N); int x,y; int x0 = time(0); x =... подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
27.08.2013, 14:01
Цитата Сообщение от 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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru