Пропозиції "Зроби сам", щоб посилити навички програмування або вивчити нову мову [закрито]


10

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


3
Клоніруйте цей сайт.

Відповіді:


11

Я виявив, що наступні програми добре починають нові мови:

Гра життя Конвея

Легкий у виконанні. Починає з простого використання класів контейнерів. Не обов'язково потрібна графіка для виведення результатів.

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

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

Трохи складніший. Складність можна пристосувати до ваших потреб. Або просто скасуйте номери і зупиніться, коли це вже неможливо, або продовжуйте та впроваджуйте дерево пошуку, щоб вирішити більш складні проблеми. Проблеми та рішення для Sudokus на всіх рівнях складності для тестування вашої програми доступні в Інтернеті в надлишку. Те саме для матеріалу про можливі стратегії.

Проект Ейлер

Проблеми на кожному рівні складності, який ви можете бажати. І порівняйте свої рішення з рішеннями досвідчених програмістів у всіх основних мовах програмування.


Ви можете спробувати реалізувати Game of Life на різних платформах. Я робив це на полотні HTML5 / Javascript. Це було неперевершено!
mauris

5

Я не впевнений, що ви маєте на увазі під поняттям "яке гарне програмне забезпечення спробувати ...", але я можу порекомендувати книгу "сім мов за сім тижнів"

Це дає хорошу вихідну точку для спробу нових мов.


Я щойно отримав цю книгу, і моя новорічна резолюція - це слідувати за нею.
Тангурена

5

Просто увійдіть на будь-який із наведених нижче сайтів і переконайтеся, чи не вирішуєте ви проблеми кодування, які вони представляють: SPOJ , TOPCODER тощо.

Більшість із цих сайтів надали вам можливість кодування в декількох мовах програмування, щоб ви могли використовувати той, який вам найбільше знайомий.

І якщо ви майстер своєї гри, завжди є ICPC .


3

Я б сказав, що будь-який проект, який відповідає трьом наступним вимогам:

  • Щось, що вам здається цікавим
  • Щось, де ви можете дуже швидко відчути прогрес (наприклад, намагайтеся уникати чогось, наприклад, створення 3d-гри)
  • Щось, що відповідає парадигмі програмування цієї мови. Наприклад, якщо це функціональна мова, то це проект, де ви б зробили деякі маніпуляції з даними, математику чи щось.

2
Ваш перший пункт є ключовим. Якщо ви не зацікавлені в проекті, важче буде підтримувати прогрес і ентузіазм, який вам потрібно мати змогу навчитися.
ChrisF

2
  • Перейдіть на Sourceforge.net або GitHub, знайдіть проекти цією мовою та подивіться, які з них вас заінтригують.
  • Подумайте про бібліотеки, з якими ви працюєте найчастіше в "реальному житті". Ви пишете багато веб-сервісів? Спробуйте написати рамку веб-служб для нової мови. Робите багато графічного програмування? Спробуйте написати простий механізм візуалізації. Аналіз даних? Реалізуйте базовий пакет статистики. І т.д., і т. Д. Це має ту перевагу, що ви вже побачите утиліту (адже ви щодня використовуєте щось подібне) і вже будете мати певні знання про домен. Такі проекти також мають тенденцію до того, що ви можете витратити нескінченну кількість часу на виправлення (тобто, дізнавшись більше речей), щоб ви могли згодом відкрити вихідний код, і це змусить вас долучитися до мови, якщо вони стануть постійне хобі; Мінус у тому, що він ніколи не може відчувати себе "закінченим", і це "
  • Залежно від сфери розробки, можуть бути книги, спеціально призначені для керівництва вами через проекти. Це, як правило, стосується ігрових платформ (iOS, XNA).

1

Для початківців

Рядок маніпуляції:

  • Гра в вішалку.

База даних:

  • список справ
  • якесь тренування або особистий журнал

Виконання випадкових чисел:

  • Закрутити колесо

Матриця та основна графіка

  • Тетріс

1

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

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

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