プログラミングスキルを磨く、または新しい言語を学ぶための日曜大工プロジェクトの提案[終了]


10

学ぶための最良の方法はプロジェクトに取り組むことです。特定のプログラミングスキルを磨いたり、新しい言語を学習したりする目的で自分を作ってみる良いソフトウェアは何ですか?


3
このサイトのクローンを作成します。

回答:


11

私は次のプログラムが新しい言語で良いスタートを切ることを発見しました:

コンウェイの人生ゲーム

簡単に実装できます。コンテナークラスの簡単な使用法から始めることができます。結果の出力にグラフィックスは必ずしも必要ありません。

さらに、3Dバージョンを記述して、ゲームエンジンを出力に使用することもできます(例:Panda3Dのような単純なもの)

数独ソルバー

少し複雑です。複雑さはニーズに合わせて調整できます。数値をキャンセルしてそれが不可能になったときに停止するか、さらに複雑な問題を解決するために検索ツリーを実装してください。プログラムをテストするためのあらゆるレベルの難易度に関する数独の問題と解決策が、Webで豊富に提供されています。可能な戦略に関する資料についても同じです。

プロジェクトオイラー

あなたが望むことができる難易度のあらゆるレベルの問題。そして、あなたのソリューションをあらゆる主要なプログラミング言語の経験豊富なプログラマーのソリューションと比較してください。


Game of Lifeをさまざまなプラットフォームに実装してみることができます。HTML5 / JavaScriptキャンバスでやった。それはすごかった!
モーリス


5

次のサイトのいずれかにログオンし、それらが提示するコーディングの課題に挑戦しているかどうかを確認してください:SPOJTOPCODERなど。

これらのサイトのほとんどは、複数のプログラミング言語でコーディングするオプションを提供しているので、最も慣れているものを使用できます。

そして、あなたがゲームの達人なら、常にICPCがあります。


3

次の3つの要件を満たしているプロジェクトはどれですか。

  • あなたが面白いと思うもの
  • あなたが非常に速く進歩感を得ることができるもの(たとえば、3Dゲームを作成するようなものを避けるようにしてください)
  • その言語のプログラミングパラダイムに適合するもの。たとえば、それが関数型言語である場合、データ操作や数学などを行うプロジェクトです。

2
最初のポイントは重要です。プロジェクトに興味がない場合は、学習する必要がある進捗状況と熱意を維持するのが難しくなります。
ChrisF

2
  • Sourceforge.netまたはGitHubにアクセスし、その言語でプロジェクトを検索して、興味のあるプロジェクトを探します。
  • 「実生活」で最も頻繁に使用するライブラリについて考えてください。たくさんのウェブサービスを書いていますか?新しい言語用のWebサービスフレームワークを作成してみてください。たくさんのグラフィックプログラミングをしますか?簡単なレンダリングエンジンを作成してみてください。データ分析を行いますか?基本的な統計パッケージを実装します。等。これには、ユーティリティが表示され(日常的に同様のものを使用するため)、ドメインに関する知識がすでにあるという利点があります。これらの種類のプロジェクトは、調整に無限の時間を費やすことができる(つまり、より多くのことを学ぶことができる)ものになる傾向があり、最終的にはソースをオープンにしたいと思うかもしれません。継続的な趣味; それの欠点は、それが本当に「完成した」とは決して感じないかもしれないということです
  • 開発ドメインによっては、プロジェクトをガイドするための特別な本がある場合があります。これは特にゲーム開発プラットフォーム(iOS、XNA)に当てはまる傾向があります。

1

初心者向け

文字列操作:

  • 絞首刑執行人ゲーム。

データベース:

  • やることリスト
  • ある種のトレーニングまたは個人的な日記

乱数操作:

  • ホイールを回す

マトリックスと基本グラフィックス

  • テトリス

1

あなたがやり続けるのに十分好きなもの。ほとんどの学習はその最後の1%で行われますが、これは通常、サイドプロジェクトでは無視されますが、作業成果物の非常に重要な部分です。

結果として、プロジェクトが何であるかは非常に個人的な選択です。だからこそ、素晴らしいOSプロジェクトがたくさんあり、履歴書/ CVにいるとき、彼らはとても重要だと誰もが言うのはそのためです。それは他の人が使用でき、彼らがすることを楽しんでいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.