Javaブログの著者として、私はしばしば、コーディング・スキルを向上させる方法、Javaスキルを強化する最善の方法、またはプログラミングの難問を解決する方法に関する質問を受けます。
これらの質問のほとんどは、プログラミングを始めたばかり、またはコンピューター サイエンスの学位を取得して卒業したばかりのプログラマーからです。
世の中の他の多くの事柄と同様に、コーディング スキルを向上するには、コーディング、コーディング、そしてコーディング – そしてプログラミングを向上するには、プログラムの書き方を知る必要がありますが、これらのプログラマーの多くはそこで失敗しています。
90パーセントのケースで、プログラマは単にプログラミングの論理とコードセンスを身につけるために十分に書いておらず、データ構造やアルゴリズムを扱う経験がなく、TopCoder や Project Euler などのサイトで問題が出題されると、惨敗します。
率直に言って、本当に1、2年、あるいはもっと長くプログラミングをしていないと、それらのサイトの問題を解くのは簡単なことではありません。
コーディング上達の良い方法は、基本的なデータ構造、アルゴリズム、オブジェクト指向設計の問題を自分で解くことです。
もしあなたがプログラミングの世界ではまったくの初心者なら、データ構造とアルゴリズムに関する書籍にお金を投資することはおそらく良いアイデアでしょう。 この記事では、Java を無料で学習できる Web サイトをいくつか紹介します。
最初のサイトは主に Java プログラマー向けですが、問題集はどの言語でも解くことができます。 2つ目のサイトは、オンラインでコードを書くように要求されず、むしろランダムな入力データであなたの答えをチェックするだけなので、言語に依存しません。 Udemy
Javaや他の言語をオンラインで学習できる人気のサイトです。 Udemy
は、Javaとその他のプログラミング言語の無料コースを多数提供しており、例えば「Java Tutorial for Complete Beginners」では、なんと767,854人がこのコースに登録しており、オンラインで利用できる無料のJavaコースとしては最高のものの一つです。
また、「Practice Java by Building Projects」のように、ゼロからJavaを学ぶためのコースもたくさんあります。 CodeAbbeyに出会ったとき、その問題集が初心者向けに完璧にデザインされていて、とても気に入りました。
簡単でもつまらないものでもなく、初めての人でもきちんと練習できるようになっています。 このサイトで出題される問題の種類は以下の通りです。
- 配列の最大値
- 母音数
- 数字の重み付き和
- ボディマス指数(BMI)
- 数字の和
- 3の中央値
- ニューマンのランダムジェネレータ
- 配列のチェックサム
- モジュロと時間差
- 配列の平均
- 配列カウンタ
- バイナリサーチ
- ダイスローリング
これらのプログラムを解くようになったら、もうしめたもんです。 プログラミングのロジックが向上し、演算子、データ構造、アルゴリズムの知識を応用して問題を解決する方法を学ぶことができます。
徐々に、どんな問題にもアプローチできるようになる。 初級の問題を解いたら、中級やいくつかの難しい問題から始めて、自分の知識を試し、自信をつけることができます。
覚えておいてほしいのは、良いプログラマーになるための問題解決能力であって、CやC++など、あらゆるプログラミング言語の構文を知っているだけではダメだということです。
本が好きなら、プログラミングを学ぶための本、Head First Programming を購入することもできます。 現在では、Javaを学ぶための無料のコースがあります。 CodeAcademyのサイトにはオンラインのIDE(Java Editor)があり、コードを書くだけでなく、プログラムを実行したりデバッグしたりして確認することができるのです。
PluralsightやUdemyにあるような網羅的なコースではありませんが、無料ですし、やはり初心者には良いリソースの一つです。
4.CodingBat
もう一つ皆さんに紹介するサイトがCodingBatです。 このサイトは、JavaとPythonのコードを練習し、学ぶためのもう一つの優れたリソースです。
CodeAbbeyと同様に、登録が必要ですが、それは自分の進歩を追跡できるので、良いことです。 また、文字列、配列、論理、再帰などの有用なトピックから、初心者レベルのプログラミングの問題が含まれています。 また、異なる難易度の質問があります。
一度ログインすると、任意の質問を選択することができ、あなたは、JavaやPythonでそのメソッドのコードを記述するように求められます、すべてのプログラムは明確な仕様を持って、しばしばあなたは、特定のメソッドを実装する必要があります。
終了したら、プログラムを実行し、境界条件を含むさまざまな入力でテストすることができますが、これは実際に CodingBat によって設計されています。 CodingBat で予想される質問をいくつか紹介します。
monkeyTrouble
a と b という 2匹の猿がいて、パラメータ aSmile と bSmile はそれぞれが微笑んでいるかどうかを示しています。 2匹とも笑っているか、どちらも笑っていない場合、トラブルになります。
monkeyTrouble(true, true) ? true
monkeyTrouble(false, false) ? true
monkeyTrouble(true, false) ? false
bunnyEars
たくさんのうさぎがいて、それぞれのうさぎには大きな耳が2個ついている。 すべてのウサギの耳の総数を再帰的に(ループや乗算なしで)計算したい。
bunnyEars(0) ? 0
bunnyEars(1) ?
bunnyEars(1)? 2
bunnyEars(2) ?
bunnyEars(2)? 4
CodingBat には、Java と Python のレッスンに関するヘルプやビデオもあります。
この 2 つの Web サイトでプログラミング問題を解決し始めると、コーディングをより速く習得できると確信しています。
これら2つのWebサイトの素晴らしいところは、問題がそれほど難しくないことです。これが、私がこれらを初心者や中級のJavaプログラマーに勧めている理由の1つです。 Pluralsight
Javaとコーディングをオンラインで学ぶために、Pluralsightには多くの有用なコースがあります。 また、このサイトでは10日間の無料トライアルを提供しており、完全に集中すれば、Javaとプログラミングの両方を始めるには十分すぎるほどです。
私のおすすめはJava Fundamentalsです。 Javaの基本を学び始めるには、「The Java Language」をお勧めします。 このコースでは、著者のJim Wilsonが、Javaの構文と機能を見事に説明しています。
これとは別に、Pluralsightには他の言語を教えるコースもあります。
そのほかにも、Pluralsightには他の言語を教えるコースもあります。 2260>
ときどき、難しいプログラミングの問題があるサイトが、若いプログラマの意欲をそぐことがあります。
一度、簡単な問題を解き始めると、自信がつき、より難しいトピックや問題に向かって徐々に前進することができます。 第2版です。 少し古い本ですが、今でもJavaを学ぶのに最適な本の1つです。
その他、無料のJavaプログラミングリソースがあります。
Java 開発者向けの無料の Spring Framework コース5選
2019年にWeb開発を学ぶためのコーストップ5
ビッグデータと Apache Spark を学ぶためのコース5選
Web 開発者向けの JavaScript チュートリアルとコーストップ10
2019年に Spring Boot を学ぶためのコーストップ5
無料のデータ構造とアルゴリズムコース5選
プログラマと開発者向けの無料の Linux コース5選
React JS フレームワークを学ぶための無料のコース5選