Предложения по разработке программ для обучения [закрыто]

12

кроме этих очень простых приложений "Привет, мир", мне интересно, какие другие программы я должен попытаться разработать для обучения. Я вхожу в университет в следующем году и задаюсь вопросом, какие программы будут разрабатываться в этой среде.

это не совсем зависит от языка, но если вы хотите знать, что я использую в настоящее время в основном

  • Windows: C # / WPF - я изучал Java, VB и т. д. в поли, но я думаю, что C # это путь, может быть, даже F #
  • Веб: PHP / MySQL, Zend Framework / Doctrine, + HTML / CSS / JS (jQuery), конечно. ищу попробовать Google App Engine с Python тоже.

сейчас я думаю о

  • списки дел
  • приложения, которые интегрируются с API, например. Твиттер / Tumblr, который я использую
  • текстовый редактор - в настоящее время я пытаюсь разработать текстовый редактор, который использует уценку и генерирует HTML-файлы для просмотра (ссылка на запись в блоге). не очень практично после того, как я начал его развивать. потому что при редактировании нет форматирования и в формате HTML, я не могу редактировать напрямую

  • программное обеспечение для блогов (для веб)

Jiew Meng
источник

Ответы:

18

Взгляните на проект Эйлера. Нет ничего лучше для оттачивания ваших основополагающих навыков программирования.

Роберт Харви
источник
2
+1. Преимущество Project Euler заключается в том, что вы можете реализовывать решения на любом языке, а затем сравнивать / сравнивать их.
Томас Оуэнс
1
+1 - Отличный ответ! Вы открыли тренажерный зал для наших мозгов.
Картик Сринивасан
6

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

Еще одна вещь, которую я сделал, - это написать переводчика для Ook! Это простая задача, но, опять же, учит вас тонну.

Чинмай Канчи
источник
+1 SC Клин не была изобретателем регулярных выражений без всякой причины.
ixtmixilix
2

CodePlex.com перечисляет много проектов с открытым исходным кодом, которые были сделаны с использованием C #. Вы можете взглянуть на сайт, чтобы получить некоторые идеи.

Мамта Д
источник
2

Вы также можете посмотреть на TopCoder . Этот сайт имеет отличные алгоритмы для изучения, и они время от времени проводят соревнования. Важным преимуществом этого сайта является то, что вы можете увидеть другие исходные коды для конкретной проблемы и узнать больше.

И даже на сайтах SE вы должны смотреть на CodeGolf .

муравьев
источник
1

(Это в основном ответ mata, а не список проектов.)

Подумайте о том, почему вы пишете программу: будет ли она полезна сама по себе или это просто изучение аспекта инструмента / API / языка?

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

В первом случае почему бы не распространить обучение на хорошую практику во всех отношениях: предположим, что вам нужно будет поддерживать и расширять ее. Поэтому используйте управление исходным кодом, отслеживание проблем, рефакторинг, модульное тестирование и т. Д., Поскольку все эти вещи, по крайней мере, так же важны для разработчика, как и знание другого API.


Как насчет интегратора каналов:

  • RSS / Atom источники
  • Работайте с твиттером, используя его API (и делайте ссылки без сокращения)
  • На основе источника разрешить подключаемую постобработку (например, скачивание mp3 из канала подкаста)

(Идея состоит в том, чтобы сосредоточиться на интеграции различных реализаций одной и той же парадигмы: запланированное получение HTTP из RSS-канала против Twitter API и ... всего, что находится под потоком записей с отметкой времени, источником и контентом.

Ричард
источник
Благодарю. Я думаю, что это в соответствии с тем, что я думаю, интегрировать с веб-сервисами. Кроме того, я думаю о приложениях различных приложений, которые используют различные функции языка. например. с помощью текстового редактора я попытался интегрировать ленту wpf
Jiew Meng
1

Я многому научился, работая над такими хобби-проектами:

  • Простые игры (клон Snake, клон Tic Tac Toe и т. Д.)
  • Экранные заставки

Не говоря уже о том, что подобные проекты невероятно интересны для работы :-).

sabiland
источник
1

Запрограммируйте небольшую игру: это весело, и вы многому учитесь.

Некоторые идеи:

  • Тральщик
  • Tetris
  • Карточная игра
  • змея

И когда это будет сделано, почему бы не реализовать веб-сайт рекордов ...

Карра
источник
0

СПИРОГРАФ. Укажите размеры внешнего кольца, внутреннего диска и точки пера по его диаметру. Нарисуйте путь пера, когда внутренний диск катится вдоль внутреннего кольца.

Изменить Maker. Стоимость ввода и сумма, предоставленная кассиру. Рассчитать оптимальный для кассира, чтобы внести изменения. Есть медленный и быстрый способ решить эту проблему. Найди быстрый путь.

OO-Life Simulation. Посмотрите на Алгоритм Жизни. Сделайте случайное начальное состояние и выведите последующие шаги, используя дизайн ОО, чтобы отделить логику от представления. Дайте вывод текста и графический вывод.

Миссионер / Людоед Солвер, найдите эту знаменитую головоломку. Напишите программу для ее решения с использованием поисковых деревьев. Сравните BFS с DFS.

Аарон Анодид
источник