Пропозиції щодо розробки програм для навчання [закрито]


12

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

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

  • windows: C # / WPF - я вивчав java / vb тощо у полі, але я думаю, що C # - це шлях, можливо, навіть F #
  • веб: PHP / MySQL, Zend Framework / Doctrine, + HTML / CSS / JS (jQuery) звичайно. прагнуть спробувати движок додатків google і з python.

поки що я думаю про це

  • списки todo
  • програми, які інтегруються з api, наприклад. щебетати / tumblr, якими я користуюся
  • текстовий редактор - я зараз намагаюся розробити текстовий редактор, який використовує розмітку та генерує HTML-файли для перегляду (посилання на запис у блозі). не надто спокійний після того, як я почав його розробляти. Тому що під час редагування немає форматування та у форматі HTML, я не можу редагувати безпосередньо

  • програмне забезпечення для блогу (для Інтернету)

Відповіді:


18

Погляньте на проект Euler. Немає нічого іншого, як би відточувати основні навички програмування.


2
+1. Перевага Project Euler полягає в тому, що ви можете реалізувати рішення будь-якою мовою, а потім порівняти / порівняти їх.
Томас Оуенс

1
+1 - чудова відповідь! Ви відкрили тренажерний зал для нашого мозку.
Картик Сріенівасан

6

Наразі я пишу аналізатор / матчер для регулярних виразів, і це навчає мене величезної кількості про розбір машин і кінцевих станів, а також про самі регулярні вирази. Я особливо вважаю, що аналізатор регулярних виразів є корисним - це те, що мова регулярних виразів є малою і досить обмежена в тому, що вона може зробити.

Інша річ, яку я зробив, - це написати перекладача для Ook! , що є простим завданням, але ще раз вчить вас тоні.


+1 SC Kleene взагалі не був винахідником гегексу.
ixtmixilix

2

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


2

Ви також можете подивитися на TopCoder . На цьому сайті є чудові алгоритми для навчання, і вони час від часу проводять змагання. Важливою перевагою цього сайту є те, що ви можете бачити інші вихідні коди для певної проблеми та можете дізнатися більше.

І навіть на сайтах SE, ви повинні подивитися на CodeGolf .


1

(Це здебільшого мата відповідь, а не список проектів.)

Поміркуйте, чому ви пишете програму: чи буде вона корисна сама по собі, чи це просто вивчити аспект інструмента / API / мови?

В останньому випадку користь у тому, що отримана програма буде якомога коротшою, а потім просто зберігається для довідок.

У першому випадку, чому б не поширити навчання на гарну практику в усіх відношеннях: припустимо, вам потрібно буде підтримувати та розширювати його. Тому використовуйте керування джерелами, відстеження випусків, рефакторинг, тестування блоків, ... оскільки всі ці речі є не менш важливими для розробника, як знання іншого API.


Як щодо інтегратора каналу:

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

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


Дякую. Я думаю, що це уздовж того, що я думаю, інтегрувати з веб-сервісами. Крім того, я думаю, що інші додатки мають різні програми, які використовують різні функції мови. напр. з текстовим редактором я намагався інтегрувати стрічку
wpf

1

Я багато чому навчився, працюючи над подібними проектами своїх хобі:

  • Прості ігри (клон Змії, клон Tic Tac Toe тощо)
  • Заставки

Не кажучи вже про такі проекти, які працюють надзвичайно весело :-).


1

Програмуйте невелику гру: це весело, і ви багато чого навчитесь.

Деякі ідеї:

  • Тральщик
  • Тетріс
  • Гра в карти
  • Змія

І коли це зроблено, чому б не застосувати рейтинг веб-сайту ...



0

Спирограф. Вкажіть розміри зовнішнього кільця, внутрішнього диска та точки пера по його діаметру. Накресліть контур пера, коли внутрішній диск котиться по внутрішній стороні зовнішнього кільця.

Maker змін. Вартість та сума вхідних даних, наданих абоненту. Обчисліть оптимальний для того, щоб касир здійснив зміни. Існує повільний шлях і швидкий спосіб вирішити це. Знайдіть швидкий шлях.

Моделювання ОО-життя. Знайдіть алгоритм життя. Зробіть випадковий початковий стан та виведіть наступні кроки, використовуючи OO-дизайн, щоб відокремити логіку від подання. Дайте текстовий вихід та графічний вихід.

Місіонер / людоїдів Solver, знайдіть цю знамениту головоломку. Напишіть програму для її вирішення за допомогою дерев пошуку. Порівняйте BFS з DFS.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.