Предложения проекта «Сделай сам», чтобы отточить навыки программирования или выучить новый язык [закрыто]


10

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


3
Клонируйте этот сайт.

Ответы:


11

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

Игра жизни Конвея

Легко реализовать. Дает вам хорошее начало с простым использованием контейнерных классов. Не обязательно нужна графика для вывода результатов.

Кроме того, вы можете написать его 3D-версию и использовать игровой движок для вывода (например, что-то простое, например, Panda3D)

Судоку Солвер

Чуть сложнее. Сложность может быть адаптирована к вашим потребностям. Либо просто отмените числа и остановитесь, когда это больше не возможно, либо продолжайте и применяйте дерево поиска для решения более сложных проблем. Проблемы и решения для Sudokus на каждом уровне сложности для тестирования вашей программы доступны в Интернете в изобилии. То же самое для материала о возможных стратегиях.

Проект Эйлера

Проблемы на каждом уровне сложности вы можете хотеть. И сравните ваши решения с решениями опытных программистов на всех основных языках программирования.


Вы можете попробовать реализовать Game of Life на разных платформах. Я сделал это на холсте HTML5 / Javascript. Это было потрясающе!
Mauris

5

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

Это хорошая отправная точка для изучения новых языков.


Я только что получил эту книгу, и мое новогоднее решение - следовать ей.
Tangurena

5

Просто войти в любой из следующих сайтов и посмотреть , если вы до кодирования проблем , они присутствуют: SPOJ , TopCoder и т.д.

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

И если вы мастер в своей игре, всегда есть ICPC .


3

Я бы сказал, любой проект, который отвечает следующим трем требованиям:

  • То, что вы находите интересным
  • Что-то, где вы можете почувствовать прогресс очень быстро (например, постарайтесь избежать чего-то вроде создания 3d-игры)
  • Что-то, что соответствует парадигме программирования этого языка. Например, если это функциональный язык, то проект, в котором вы будете выполнять какие-то манипуляции с данными, математику или что-то в этом роде.

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

2
  • Зайдите на Sourceforge.net или GitHub, найдите проекты на этом языке и посмотрите, какие из них вас заинтриговали.
  • Подумайте о библиотеках, с которыми вы работаете чаще всего в «реальной жизни». Вы пишете много веб-сервисов? Попробуйте написать каркас веб-сервисов для нового языка. Много ли графического программирования? Попробуйте написать простой движок рендеринга. Есть ли анализ данных? Внедрить базовый пакет статистики. И т. Д., И т. Д. Преимущество в том, что вы уже увидите эту утилиту (потому что вы используете что-то похожее в повседневной жизни), и у вас уже будут некоторые знания предметной области. Такого рода проекты также, как правило, являются проектами, на которые вы можете тратить бесконечное количество времени, настраивая (то есть изучая больше материала), которые вы, возможно, захотите в конечном итоге открыть, и это будет держать вас вовлеченными в язык, если они станут постоянное хобби; недостатком этого является то, что он может никогда не чувствовать себя «законченным», и это
  • В зависимости от предметной области, могут быть книги, специально предназначенные для руководства по проектам. Это, как правило, особенно верно для игровых платформ (iOS, XNA).

1

Для начинающих

Манипуляция строк:

  • Палач

База данных:

  • список дел
  • какая-то тренировка или личный журнал

Манипуляция случайными числами:

  • Вращай колесо

Матрица и базовая графика

  • Tetris

1

Все, что вам нравится, достаточно, чтобы продолжать делать. Большая часть обучения делается в последнем 1%, который обычно игнорируется в стороннем проекте, но является очень важной частью рабочего продукта.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.