2009-05-12 17 views
13

私は大学でジャワのオタクであったが、それ以来私はそれに触れていない。私の過去3〜4年間の仕事は、ほとんどがPythonとC++で行われていました。私はJavaの多くを忘れてしまいました。言語を学習するにはどうすればよいですか?

したがって、言語を使用してグルーヴに戻すには、どのような方法(最速)が必要ですか?あなたが既に知っている古い言語を使用する(そしてそれゆえに再学習する)小さなプロジェクトに関する提案はありますか?

関連する質問は、あなたが学んだが、長い間使用する機会がなかった技術とどのように連絡をとっていますか?

+0

良い質問です。これは、私がいつもやっていることや、やり方を考えていることです。 –

答えて

11

これを再学習する最善の方法は、学習する最善の方法です。 Java 5および6の「新機能」のセクションを見て、新しい機能が追加されたことを確認してください。にはすべてを使用する必要があります。

私の意見では、あなたが慣れ親しんでいたものを使って "馬に乗って"次に徐々に新しいものを学ぶことです。

特定のプロジェクト:実際のニーズがない限り、私が使用していない言語には戻っていません。この場合、私が使用するプロジェクトはすでに指定されています(仕事または個人)。多年にわたるオイラー問題は時には面白いですが、使用する言語機能には限界があります。あなたが試してみることの1つは、開発したPython/C++プログラムをJavaに移植することです。

+0

(+1)私は最後の部分を提案するつもりでした。あなたはとても慣れ親しんだプロジェクトをとり、あなたの新しい言語に移植してください。 – DevinB

1

私にとって、私がしばらく使っていない技術との接触の最も速い方法は、問題の技術が使用されているオープンソースプロジェクトに参加することです。 Javaを再習得することを計画しているなら、例えば、Jythonプロジェクトを見てみることをお勧めします。そうすれば、あなたはPythonの部分で安全だと感じられますが、まだJavaで作業する必要があります。ほとんどのオープンソースプロジェクトも新技術を採用しているので、ジャイモンの人たちが最新のJavaを使っているかどうか分からなくても、私はその賭けに数ドルを置くことを躊躇しません。このような人たちと一緒にコーディングすることは、他の人が書いたコードを見る機会を与え、構文上の変更(Java 6で導入されたいくつかのことがあります)、ベストプラクティスなどを容易に把握することができます。私はいつも本当に役に立ちます。さらに、人々はすべて前進し続けることを熱望しているので、この種のプロジェクトではしばしばサポートが良好です。

あなたのJava再活性化のクエストで最高の運を!

1

トピックに関する先進的な書籍を読む。いくつかの例:

Effective Java (2nd Edition) - Joshua Bloch

C# in Depth: What you need to master C# 2 and 3 - Jon Skeet

これらの2つの例では、いくつかの並べ替えと組み合わせるトラックに戻ってあなたを取得するのに十分であるべき言語の最後のバージョンで導入された変更をご提供してPaxが述べたようなペットプロジェクト。

私はあまりにも現時点ではactivly使用していないが、これが私のモチベーションに依存言語でいくつかの先進的な本を読みしよう...私のためによろしく

0

..

あなた自身にプロジェクトを選んで、その言語でコード化を開始してください。インターネットとサンプルを使用してください。

2

あなたがプログラマーであれば、言語を学んだり再学習したりするのは非常に似た作業です。直近のドキュメントの助けを借りて、手を汚し、何かをコーディングする必要があります。

何をコード化するのが難しいのか、いくつかの計画と知識が必要な複雑な問題を解決したい場合は、ACMプログラミングコンテストの問題を調べることをお勧めします。彼らはしばしば挑戦ですので、あなたのモチベーションを奪うことはできません。自動分析に対してコードをテストできるサイトがいくつかあります。 http://www.spoj.pl/はその1つ

1

提案の上に、私はあなたがeclipseやnetbeansのようなIDEを使用することをお勧めします。これらは無料で、プログラムの作成、修正、コンパイル、実行、デバッグに役立ちます。

2

私は通常、言語を学ぶためにその言語のウェブサーバーまたはクローラーをプログラムします。これらは良い例です:

  • 一般的な文字列と正規表現のライブラリ。
  • 言語内のマルチスレッドおよびその他の並行処理機能。
  • ネットワークとファイルシステムのサポート。
  • 言語のクロスプラットフォーム能力。
  • このアプローチでは、かなりの量の構文とツールのサポートを評価することもできます。

これらの例の中でも、とりわけ実装には1日か2日かかります。

関連する問題