6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
1 | |
идеи, идеи, идеи для начинающих27.08.2013, 02:09. Показов 18367. Ответов 95
Метки нет (Все метки)
доброй ночи, уважаемые форумчане. перейдем сразу к делу =) в общем, собираюсь с 2 одногруппниками написать какой-нибудь проект, но вот идей у меня совсем нету =\ может гуру программирования вспомнят свои первые проекты, буду очень признателен) или такие же студенты как мы, поделитесь идеей) средней сложности, чтоб не за выходные написали и даже не за одну неделю
0
|
27.08.2013, 02:09 | |
Ответы с готовыми решениями:
95
Нужны идеи для практики С++ Идеи для консольных приложений Просьба дать идеи для проекта Тема для курсовой работы по ООП. Нужны идеи |
luciys
|
27.08.2013, 04:59
[ТС]
идеи, идеи, идеи для начинающих
#21
|
Не по теме: кто же знает, чем мы будем заниматься, хочешь одно, а получишь другое, да ещё и на другой язык заставят переходить, опять учить синтаксис =\ по мне, человеку не представляющему, что будет на рабочем месте, так понадобятся сортировки, эффективная работа со структурами данных, какая-нибудь комбинаторика и подобное, а матема только если в какой-нибудь специализации, я имею ввиду именно ту, которую нам в вузе преподают
0
|
gray_fox
|
27.08.2013, 05:09
#22
|
Не по теме: Может и не понадабятся, но знать это надо, серьёзно, это - база, т.с.. Если хорошо освоить один язык, то на следующий "похожий" переход не особо сложный - например, С++ -> Java - хоть и подходы совершенно разные, но и общих концепций достаточно, это многое упрощает, ну и вообще сам по себе опыт разработки\проектирования уже вне зависимости от языка, а парадигмы (здесь ООП).
0
|
luciys
|
27.08.2013, 05:21
[ТС]
#23
|
0
|
gray_fox
|
27.08.2013, 05:22
#24
|
0
|
luciys
|
27.08.2013, 05:27
[ТС]
#25
|
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
27.08.2013, 06:30 | 26 |
Сообщение было отмечено как решение
Решение
Я смотрю, что-много в оффтоп начали пихать, хотя по сути, это и есть тема топика.
В общем, между строк почитал топик. Вот что вылилось: Синтаксический анализатор это довольно таки просто. Я имею ввиду, что там нет сколько-нибудь сложного матана, всё упирается в regex'ы, и это единственная сложность. Поначалу интересно, поднимаются интересные темы матана, то как всякие разные автоматы, программирование ИИ даже можно покопать. Но в целом, сама задача не так интересна. В данной теме можно попробовать написать чат-бота - вот это да, это и интересно и не так уж и сложно, как кажется на первый взгляд (хотя бот при этом будет не сильно уж и крутой, но просто так от живого человека будет сложно отличить). Чтобы я рекомендовал? Это зависит от темы, которую хочеться прочувствовать. Можно, как например, "свой интернет" написать. По типу L2P, там много интересных вещей возникает - шифрование, хранение, передача данных. А это по сути и есть информатика в своём первоначальном виде. Единственная сложность - это изучать протоколы передачи данных, что не есть тривиально сегодня. Хотя можно и ограничиться TCP/IP - писать поверх него, каким-то образом обстрагировавшись от него. К слову, здесь же рядом есть тема bitcoin'а. Как например, сделать его аналог. Снова, здесь будет больше матана, чем непосредственно программирования, но матан своебразный. Даже дискретная математика, которой здесь много, выглядет иначе, чем её преподают. Совсем иначе. Но повторюсь, тема очень сложная, и не факт, когда из под клавиатуры программиста выйдет рабочий бинарник, в нём не будет критических уязвимостей. В общем, эта тема очень, очень актуальна сегодня в плане информатике как науки. Есть ещё стек знаний, очень тесно связанный с матаном. Это 3D-моделирование. Здесь кроется действительно сложный, и, что неприятно, нудный матан. Но зато, после того, как всё будет сделано, ЧСВ поднимается непомерно сильно. Это потому, что здесь применяется математика, сильно абстрагированная от результата. И ощущение, что это действительно работает, сравнимо... Не знаю, попробуйте, и скажете как вам: понравилось или нет. Наконец, если матан совсем не интересен, ну или просто поднадоел, то есть немало math-free областей. В основном, это всё, что связано с продакшном. Можно написать свой веб-фреймворк, это, конечно, плюсы, то есть Си с классами и выше. Здесь придётся много ночей посидеть, копаясь в стандартах, как происходит общение в TCP/IP, при чём здесь HTTP, как работает HTTPS, что такое websockets, а также немного поработать с разбором синтаксиса (тот самый синтаксический анализатор), когда дело дойдёт до template'ов, но здесь он очень простой - буквально пара-тройка regex'ов (хотя это и зависит от сложности шаблонов, но в общем случае так). Есть ещё игрострой. Это, в принципе, собрание всех человеческих знаний о информатике в месте, но матан-фри он часто (особенно в инди), потому что весь матан покрывают библиотеки. Зато в них придётся разобраться. Наконец, есть банальный и обычный энтерпрайз, нацеленный на разработку и продажу продуктов, таких как, базы данных, офисные пакеты, графические редакторы, множество специфичных продуктов (пример с потолка: система учёта пассажиров авиа-рейсов, где есть очень много вещей, присущих конкретно этой области); есть ещё embedded-systems, но это уж совсем специфическая область, в которых есть огромных подобластей, в основном благодаря тому, что для каждого случая разработка ведётся едва ли не с нуля, учитывая все ньюансы. В общем, простыню я написал что надо. Возможно я где-то наврал, но надеюсь, что нет. Нужно лишь выбрать степень зависимости от матана и уровень его абстракции. А там уже смотреть, что больше подходит. Добавлено через 15 минут Не по теме: Забавно, но будут. Абстрактное программирование в вакууме - это 90% энтрпрайз проектов (я имею ввиду те, которые будут использоваться не конечными потребителями в виде нас с вами, а другая большая компания и часто, одна единственная). В том смысле, что там уже всё готово и осталось лишь совместить несколько деталей конструктора. Но это не значит, что это просто. Во-первых, заказчик далеко не всегда сам понимает, что хочет. Во-вторых, в ТЗ обычно прописано столько много мелочей, на каждую из которых детальку нужно определённым образом поворачивать, а часто требуется ещё одна деталька... Наконец, не всегда получается с первого раза, да и вообще - поддержка продукта - основная прибыль аутсорс компаний, разрабатывающие софт. А поддержка - это обычно и есть программирование в вакууме: 1) узнали о баге, 2) нашли баг, 3) разобрались в баге, 4) устранили баг, 5) проверили и здесь либо возращаемся к 1, либо 6) сделали новый мастер-билд. И что снова забавно: общий оборот от программирования тесно связанного с наукой, скорее меньше, чем в "абстрактном программировании в вакууме". Почему? Большая часть наукоёмких разработок - OpenSource и при университете, то есть так или иначе - OpenSource. Отсюда - один раз сделали, больше не надо. А энтерпрайз - две задачи очень и очень похожи, даже счетами на оплату. Я к тому, что в энтерпрайз (особенно аутсорс), очень часто возникают идентичные задачи. Тогда как скида предусматривается редко, очень редко. Нередко даже с нуля начинают банально потому, что подрядчики разные. Иначе сложно объяснить рост рынка программного обеспечения едва ли не на дрожжах. Рост рынка настолько быстрый, что зачастую кадров не хватает не смотря на то, что здесь едва ли не самый большой рынок труда в плане предложения. А спрос всё равно выше. И так будет ещё долго, пока не научимся использовать программный код повторно. Надеюсь, и не научимся.
5
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 07:01 [ТС] | 27 |
премного благодарен)
да не, матан не настолько пугает, вопрос был насколько математика нужна вообще в программирование, а не в каких-то частных областях. про 3д моделирование Вы имеете ввиду написание собственных алгоритмов для построение этих самых моделей? а что потребуется "писать" на рабочем месте? с++ программисту, например насколько реально найти работу программисту работающему в основном с низкоуровневыми языками? просто у нас, в Минске, в основном с++, часто делфи, что-нибудь с вэб Добавлено через 19 минут
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
27.08.2013, 07:11 | 28 |
Скажем так. Math-free разработка: web-framework'и (в основном их использование), инди-игрострой и много-много энтерпрайза - это примерно 90% всего рынка труда. Это моя оценка, она может быть далека от правды, но по собственному опыту это примерно так. Лично я ни разу не встречался с наукоёмкой задачей, где действительно требовалось бы использовать матан на полную катушку, кроме как по университету.
Что до math-full областей - это разработка графических библиотек и драйверов для видеокарт, разработка алгоритмов поведения процессоров (там много подводных камней, например, конвейр), работа при университете и reseach-подразделения корпораций, где изучают современные проблемы информатики, как науки (это дискретная математика в основном, но активно используются и другие области, то как булева арифметика и всё, что из неё выросло). К слову, надо заметить, что есть много областей программирования, так или иначе связанные с науками, никак с информатикой не связанными: биотехнологии и медики, астрофизики, геофизики, и геологи с метереологами, да и обычные физики, использующие банальный дифференциальный аппарат Ньютона и Лейбница. В общем, эти области активно используются в программирование банально потому, что программировать продвинутые хирургические столы с руками-манипуляторами, зонды для исселдования космосса, всевозможные роверы, зонды для исследования земли и прогноза погоды, требуется программировать и наземный, воздушный и морской транспорт (в каждой области "своя" физика, чем-то похожие друг между другом, но далеко не всем). Я уже не пишу о таких вещах, как квантовые компьютеры, да и обычне компьютеры требуют вмешательства серьёзных физиков, решающих серьёзные проблемы. Я имел ввиду написание собственного 3d-рендера. Занятие действительно очень сложное, и много времени нужно будет проводить вдалеке от клавиатуры, используя лишь карандаш, лист и мозг. Но результат поражает. Впрочем, если забить на производительность и ограничиться лишь евклидовом пространством, можно довольно легко сделать простой 3d-рендер даже без буффера глубины всего лишь за пару ночей. Ещё одна ночь - и относительно удобный API. А там можно будет "поиграть" и продолжить. Очень легко расширить (если не было хардкода) до 4х-мерного пространства. Там уже "игры" будут сложнее и интереснее. Можно также попробовать взяться за неевклидову геометрию, но я туда не лез, не скажу как там. А под абстракцией я подразумеваю то, что там много премного математических абстракций, а не те, что пропагандирует java. Они куда более сложные для понимания, а результат удивляет. Ибо это с первого взгляда кажется самой настоящей магией. Да и сейчас мне множество вещей от туда - магия. Просто я не математик, мне сложно даются разные виды матана, и, когда видешь, что можно пойти к одному и тому же двумя абсолютно разными путями, причём один, стандартный, а другой - через немного другую область матана всевозможными переходами и с разными уловками. В общем, по части программирования, там есть много интересных методов. Здесь, кстати, важно соблюдать дистанцию. Ибо нам, программистам (как учёным) далеко не каждое решение интересно, в отличии от обычных математиков. Но это лирика. Я так понял - написание кода связанное только с программированием и не связанное с RL вообще никак, или связь настолько абстрактная, что ею можно принебречь, и с целью - написать код.
1
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 07:42 [ТС] | 29 |
это как? Оо =) его же невозможно...(или моя фантазия ограничена) это с помощью opengl/directx, 3д моделиование?
и вот тоже, просматривая о программировании форумы, статьи и тд тп замечаю, что везде есть связь с вэбом. как-то не хочется этого касаться насколько часто игры проекты становятся успешными? в плане популярности/прибыли, думаю не очень часто)) это ещё в школе мой преподаватель говорил, что пока не решил на листе и не понял, за компьютер нечего лезть, всё равно сопротивлялся, но со временем привык и он был прав, намного легче попрошу всё-таки ответить =) : а Вы работаете в той области которой хотели?
0
|
27.08.2013, 08:50 | 30 |
Купите себе Arduino или какой-нибудь RPi, приверните на это дело Bluetooth и развлекайтесь сколько душе угодно. Навскидку несколько идей:
Какие плюсы я вижу в подобных задачах. Во-первых все они дают первичное представление о работе с железом, потому что подобные мини-компьютеры надо будет либо прошивать, либо ставить на них ОС, подключать к большому ПК и осваивать методы передачи данных между ПК и мини-ПК. Во-вторых, в случае с RPi, вы безусловно столкнетесь с Linux, что однозначно большой плюс. В-третьих, с точки зрения программирования задачи включают в себя работу с сетью, что невероятно полезно и увлекательно. В-четвертых, в принципе используется большой стек технологий, включающий как низко-, так и высоко-уровоневое программирование. Лично я сам хотел бы написать генератор данных для БД (ссылка на аналог)
1
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 09:07 [ТС] | 31 |
конечно звучит забавно и интересно) управлять ноутам по бт...хммм Но я работал только с по =) т.е. всякие микросхемы никогда и в руках не держал, даже на моей специальности, наверное, мы и не будем работать...
а в чём сложно генерировать данных? существует же великий рандом ах, да, я с английским на Вы, так что не стоит меня туда к ним посылать =)
0
|
27.08.2013, 09:15 | 32 |
Данные должны быть хотя бы приближенно похожими на реальные. Банально, если таблица называется PERSON и в ней есть колонка FIRSTNAME, то и даныне для этой колонки должны генерироваться соответствующие: Alex, John, Alice, etc. То есть необходим некий механизм для определения типа данных. Во-вторых существует великое множество БД, а как вы можете догадываться с разными БД надо по разному работать. В первую очередь я имею в виду механизм определения схемы БД.
Ну так заодно и научитесь. К тому же на самом деле не все так страшно, в интернете наверняка есть куча статей про то, как все делается. Программирование это не только знание языка
1
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 09:40 [ТС] | 33 |
ну тогда перебор ключевых слов. или составить свою базу, не знаю, как это правильно называется, пространств имен, а пользователь уже сам выбирает из предложенных разделов
хочется быстрее выучить язык и ринуться в бой =) Добавлено через 14 минут а я всего лишь просил подкинуть пару идей для проекта начинающим программистам, чтоб заняться самообразованием
0
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 10:14 [ТС] | 35 |
ну блин...))) ну как объяснит-то... =)
опять буду повторяться, наверное, пока главное выучить всю базу которую должен знать программист, но чтоб это было не тупо пролистывание, а разбор на практике, с креативчиком =D, чтоб нужно было посидеть подумать, и хочется уже какое-нибудь средненькое задание, надоело ограничиваться лабами, они слишком просты
0
|
27.08.2013, 10:21 | 36 |
luciys, для изучения именно языка можно попробовать "нарисовать" аналог STL библиотеки. Начать с простых структур данных, позже добавить классы для работы с многопоточностью. Тут и знание языка поднимется и знание стандартной библиотеки. Тем более для олимпиадников с понимаем структур данных проблем никаких возникать не должно быть, так что это на самом деле будет исключительно язык.
Однако, следует понимать, что практической пользы от таких задач нет. То есть пользоваться продуктом никто не будет. Задание исключительно академическое.
1
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 10:33 [ТС] | 37 |
fasked, да, конечно, тут 100% интерес в образовательных целях
т.е. нарисовать? уже мозги закипают =\ создать сам аналог по содержанию? хотя можно своих алгоритмов напихать... с чем же тогда стоит ознакомиться? структуры данных, классы, объекты, вектора...помогайте =D что туда можно включить? из, так сказать, обязательного
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
27.08.2013, 12:01 | 38 |
Вообще лучше попробуй написать какой нить синтаксический анализатор, как тебе тут уже советовали. Я могу своим проектом поделится это генератор сайтов, напишите такую программу которая бы генерировала сайты какие вы захотите и что бы они были похожи на те которые делают люди СДЛ, и настройки что бы были установили в настройках например 10 сайтов примерно по 300 - 500 страниц и она вам через какое то время взяла и сгенерировала. Я такую делал на пхп, есть рабочий вариан. Реализацией делится не буду, как говорится главное это теория, план, знать что за чем делать, но эту прогу легко делать.
Я вообще С++ хочу заточить под Веб создание различных парсеров, работа с http протоколом, я просто веб хорошо знаю и веб превликает, еще после того как свой генератор создашь, сможешь легко писать роботов для веб, любых поисковых каких захочешь. От могу идеей робота поделится который будет сутками работать сканировать поисковики считывать с них страницы, с этих страниц выдирать почты и ссыки. ссылки добавлять в отдельную базу, адреса почты в другую, переходим по ссылкам которые в базе, снова те же действия, когда ссылки в базе кончаются парсим поисковик по какому нить запросу и снова так. В общем такая программка которая собирает базу мыл, я не знаю что с ними делать, но эти базы можно даже продать. Под веб можно много чего различных программ писать, у меня идей именно под веб полно. Ну ту прогу что товарищ fasked, советовал, там кнопку для плеера, как то оно скучное задание ИМХО, я за те проги на С++ которые с веб работают, они не большие и их самому можно писать и вообще такие прожки на фрилансере ценятся именно парсера и писать их если рука набита не сложно, а даже очень интересно.
1
|
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
|
|
27.08.2013, 12:24 [ТС] | 39 |
ninja2, ну так он советов с помощью Arduino+Bluetooth, в его предложение главная задумка именно запрограммировать этот arduino
говорил, что не хочу лезть в это, куда не глянь везде вэб-люди =) надо сначала язык хоть один нормально освоить)
0
|
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
|
|
27.08.2013, 14:01 | 40 |
Нет ничего невозможного. Просто добавляем четвёртую ось, перпендикулярную трём другим. Звучит просто. Формулы видоизменяются минимально. А вот понять эту чертвощину очень и очень сложно. Практически нереально - мозг не приспособлен. Поэтому приходиться работать с абстрактной математикой.
Так и не касайтесь. Всё просто. Web - огромный рынок. На мой скромный взгляд - минимум 50% всего рынка ПО (большая часть правда фротенд). Просто потому, что web - очень удобный "кроссплатформенный" способ дистрибуции ПО. И открывающий много возможностей (впрочем, как и прекрывающий кислород к определённым технологиям). Но я говорил в основном про бекэнд - серверная часть. Там менее интересно и в чём-то проще, в чём-то сложнее. Ну... Тут сложно сказать что-то очень конкретное. Как я писал выше - огромная часть рынка ПО по моим наблюдениям - это всё же аутсорс, а в нём бОльшее значение имеет поддержка продукта, чем его создание. А это в общем-то и есть "абстрактное программирование в вакууме", на мой взгляд. Типичный проект - какая-нибудь база данных и управляющий код, каким-то образом осущевствляющий добавление записей в БД и их редактирование (обновление) / удаление. Там обычно нет физики или какого-нибудь матана. И суть заключается примерно в следующем: заказчик говорит что, архитектор говорит как, менеджер говорит когда будем делать. Кажется скучным, но там хватает своего экшена, особенно когда дедлайн через неделю, и выясняется, что мы не так поняли заказчика, архитектор тоже налажал, да и тестер уволился, а тимлид ушёл в отпуск (правда его срочно призвали с этого самого отпуска . А собственно, что придётся писать... Ну в случае описанном выше - это обработка неких абстракных запросов вакууме (самые разные запросы в зависимости от проекта) по каким-то правилам, хранение их в БД, своевременное обновление. Бывает интересно, особенно когда проект заказывает какая-нибудь телекоммуникационная компания, распространнёная по всей стране, когда запросов много, территориальное покрытие - вся страна, а времени на обработку и поддержку БД в актуальном состоянии мало. Но обычно здесь всё просто по банальной причине - есть ресурсы. Никакого матана - всё уже сделано (MapReduce и т.п.). Есть наукоёмкие области. Это всё, что связано с использованием техники в особых условиях - космос, пожар с обвалами и радиацией, вопрос между жизнью и смертью - здесь промедление и/или сбой понесёт убытки от нескольких миллиардов до человеческой(их) жизни(ей). Здесь немало матана, но намного больше тестов. Тесты на тестах и тестами погоняемые. Правда, когда я наблюдал за процессом в последний раз - редко кто использовал юнит-тестирование (именно юнит), не говоря уже о scum'ах и eXtreme Programming'ах. Но это было очень давно, да и я был мал - может чего-то не понимал. Есть ещё инновационные области. О них забыл написать. Там всё подряд. Микс из всего, что только можно представить. Я написал про проблемы инфортики, но есть также и энтерпрайз-решения. GMail, например, примерно оттуда. MS Reseach - отличное подразделение, занимающееся интересными вопросами. Google сейчас активно занимается вопросами производительности интернет-сетей (уменьшение задержек и повышение скорости). При этом в инноватике матан проявляется далеко не всегда - реализация twitter'а лишена какой либо математики, кроме количества символов в сообщении. Twitter - это идея. В reseach-подразделениях крупных организаций именно идеями и занимаются. И в math-free областях тоже. Не по теме: Но это всё грубое описание. Ситуация ситуации рознь. У программистов огромные зарплаты, но мне всё больше кажется не потому, что они такие умные. И не потому, что их мало. А из-за того, что поддержание проекта намного проще тем же программистом, что его и делал. А поддержка - как я писал выше - корм больших компаний, занимающихся аутсорсом. И здесь накладывается ещё интересный момент - опыт. Опытные работники в любой области нужны. Наконец, последнее совпадение - коллосальный рост сферы IT. И переманивая опытных работников (я бы сказал - ремесленников), увеличивают зарплату. Чтобы работник не ушёл, зарплату надо увеличивать. Отсюда и зарплаты у "IT-ремесленника" очень высокие, по сравнению с другими "ремесленниками" (строители, фрезеровщики, слесари, водители и т.п.), так там наняв другого сотрудника, компания мало что потеряет... А... Ну это всё оффтоп. Собственно, я к чему всё это? А к тому, что нужно пробовать. Постоянно пробовать. Не нравиться где-то, так валить надо. Всё по ТК - предупреждаешь за месяц-пару_недель, подыскиваешь за это время новое рабочее место, и так пока не поймёшь, что здесь твоё место. До этого момента может поменяться десяток рабочих мест. Поэтому ответ на вопрос: в поиске. Я долгое время работал во фрилансе, который произвёл скорее негативное отношение. Была пара контрактов, когда я привлекался к разработке во всех циклах, кроме поддержки. Опыт крайне негативный. Да, были интересные задачи, но была ужасная постановка задач, равно как и оценка работы. Не мало сделал работ по типу "ТЗ -> продукт -> оплата", то есть я общался с заказчиком, вытаскивал из него задачи, оформлял ТЗ, искал комманду (или делал всё сам) и там я босс, а заказчик подписался под ТЗ. Хотя есть неприятные воспоминания, когда заказчик упёрся и я фактически подводил всю комманду. Хотя здесь мне нравилось больше, чем при контрактных работах. Хотя было и намного сложнее. Простите, но слишком банально: есть расширения клавиатур, подключить стандартный HID - пара десятков строк кода. А в windows есть и виртуальная клавиатура. Тогда как просмотр и управление списком - чрезмерно сложно. Ибо плееров туча, а стандартов нуль. Можно плагин на winamp написать, которые поддерживаются большим кол-вом других плееров, но это некошерно, имхо. Единственный серьёзный плюс - это linux, имхо. Да и RPi прошивать не надо - флешку вставил и завелась. Работа с сетью - увлекательно и полезно. Несомненно. Но вроде, как я понял, копаться в теории не хочеться, а хотелось бы сразу в огонь. Видимо, чтобы матана было побольше. Наконец, мешать новичкам низкоуровневый кодинг с высокоуровневым без куратора и помощника я бы категорически не советовал. Причина тому в том, что сейчас все путают Си, Си_с_классами и Си++. Если есть интерес в Си++ лично я бы сильно рекоммендовал Java, но это оффтоп. Но мешать два языка: Си и Си++ находясь на начальном уровне - зло. Тем более, после спортивного программирования ситуация и без того, скорее всего, печальна. А это хорошая идея. Разве только она слабо связана с Си или Си++. Это сугубо SQL / NoSQL. Добавлено через 33 минуты Не по теме: Срочно исправляем. СРОЧНО. В IT без English вообще никуда. На себе чувствую. Мне очень тяжело даже сейчас, хотя тех. документацию читаю свободно. А вот поговорить с кем-нибудь - убейте лучше. В общем, исправляем, пока есть время. Методы исправления: привнести в жизнь как можно больше английского. Чем больше - тем лучше. Идеал: 2 раза в неделю с репетитором (личным тренером), групповые занятия 1-2 раза в неделю и читаем/смотрим/слушаем книги/фильмы/музыку только на английском (желательно без читов, вроде субтитров или стихов песен). Но это снова оффтоп. Удваиваю. Но. Во-первых, да, шанс, что никто использовать не будет стремиться к единице. Во-вторых, там вряд ли будет полное понимание языка. Тем более, что STL по сути своей ужасен. Лишь за неимением лучшего он не плох. Хотя лучшее есть - Qt, но она подвержена влиянию STL (пытается быть совместимой). Да и при написании таких вещей сказывается рудиментарность, старость и даже непродуманность языка как инструмента. В таких вещах разработчик на Си++ столкнётся с ужасными сторонами Си++ практически не почувствовав его плюсы (например, скорость и гибкость). Да и заимстовать идеи из STL - плохая идея. Пороть Вас надо, товарищ пороть! Хотя в этом что-то есть. На самом деле, я долго не хотел советовать такую вещь для первого серьёзного проекта. Тем более я сам в ней слабо преуспел и не знаю, смогу ли чем помочь. А вещь - "написать свой язык программирования". Целиком. В полной свободе. Вот варианты (по степени сложности к "упрощению" задачи): + компилируемый язык, то есть грубо: на входе есть *.txt (текстовый файл), на выходе имеем *.exe (исполняемый бинарник); + "интерпретатор с компилятором", это грубо конечно; суть - есть высокоуровневая версия языка, то есть набор человекочитаемых слов и знаков, есть низкоуровневая версия языка - набор опкодов, то есть байткод, который "исполняется" специальным интерпретатором - небольшой виртуальной машиной; компилятор при этом копилирует текстовый файл в байт-код; + интерпретатор, то есть мы непосредственно "исполняем" текстовый файл. На самом деле, второй вариант немного объёмнее чем я описал, вместо байт-кода можно строить разноцветные деревья и модифицировать их, где построения деревьев - аналог компиляции. Собственно, я рекомендую первый или второй вариант. Если второй, то как я его описал, а не пояснил (не надо никакие деревья строить вместо компиляции). Почему? Вот почему: 1) Реальное знакомство с архитектурами CPU. Разбор таких вещей, как регистры, стек-машины, конечные автоматы и много много чего ещё из области матана и рядом лежащего. 2) Знакомство с очень интересными инструментами, например, GNU Bison (это чит-код, но для академического интереса можно). 3) Настоящая работа с проектированием - здесь не получиться взять клавиатуру + пару недель и готово, а если и получиться то выйдет не мышонок, не лягушка, а неведомо ... чудовище. И придётся подойти к этому вопросу с большой ответственностью. 4) Если ничего не получиться - то огромное количество опыта в кармане. Ведь если мы знаем, что мы делали, и знаем, что результат ужасен, то, следовательно, мы знаем "как делать не стоит". 5) Если что-то получиться то это тянет даже не на курсовую, а сразу на диплом. Добавлено через 11 минут Да, забыл добавить. Очень важный эффет от написания собственного языка программирования. Это понимание того, как вообще языки программирования работают. В процессе ведения проекта выясниться огромное количество бесценной для программиста инфы, касающиеся не только Си или Си++, а программирования в целом. Как пишутся программы, что с ними происходит. Зная, что твориться под капотом, можно будет избежать много подводных камней и добиться от машины невероятных результатов. Наконец, постоянно встречаюсь с поверьем, что программист должен: написать "Hello world", написать "Тетрис" и (снова написать) написать свой язык программирования (а там можно уже всё тоже самое, но уже на своём ЯП).
1
|
27.08.2013, 14:01 | |
27.08.2013, 14:01 | |
Помогаю со студенческими работами здесь
40
Чисто идеи Реализация идеи Есть идеи? Идеи проектов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |