プログラミングには、創造性と新しい面白いアイデアを思いつく能力が重要です。多くの人が、一般的な問題に取り組むことにほとんどの時間を費やしており、心が「創造性の欠如」という病にかかっていることが多くあります。
暗号の解読やパズルを解くと、論理的思考力や問題解決能力を楽しく伸ばすことができます。学習プロセスをスピードアップし、意思決定能力を向上させることができます。
あなたの論理的思考をテストし、コーディングスキルを高めるのに役立つプログラミングパズルサイトをいくつか紹介します。
重要:すべてコードの結果/出力だけ載せてあります。あなたの得意なプログラミング言語を選んでください。
21. Talentbuddy
Talentbuddyは、対話形式のプログラミング(14種類のプログラミング言語)を解き、自分のアイデアを構築し、複雑なフルスタックWebアプリ(JavaScriptを使用)を構築する能力を向上させ、メンターと一緒にWeb開発を学ぶことができます。サイトには、様々なレベルのプログラミングが多数掲載されています。
20. 4Clojure
4Clojureには150問以上の問題が収録されており、インタラクティブで面白いパズルを通して、駆け出しのクロジュリアンが言語を学ぶことができます。最初の数問は未経験者でも解けるほど簡単です。問題が進むにつれて、難易度は上がっていきます。
19. Pskills
Pskills(プログラミングスキル)は、様々なプログラミング言語のオンラインテストを提供するコード学習に関するものがすべて入っているプラットフォームです。また、C、JAVA、PHP、.Net、HTMLに関する一般的な質問を探すこともできます。
18. WizIQ: Computer Programming
WizIQは、無料のコンピュータプログラミングのオンライン練習テストを提供する教育ウェブサイトです。ここでは、あなたの雑多なプログラミングスキルをテストし、コンピュータの基礎について学ぶことができます。主観的な質問と客観的な質問の両方に直面するでしょう。
17. C Puzzles
ここには興味深いC言語のプログラミング問題が何十問も入っています。想定される出力と(もしあれば)エラーを把握しなければなりません。これらの問題は、他の人が作った効率的なコードを読み、理解する良い練習になります。
16. Ninety-Nine Prolog Problems
これは99のプロローグ問題集で、7つのセクションで構成されています。あなたは、与えられた問題の最も適切な解答を見つけるだけです。効率は必要ですが、論理的な明快さが重要になります。いくつかの簡単な問題は、組み込まれている述語を使って簡単に解くことができます。
15. LeetCode
LeetCodeのオンライン診断は、テクニカルコーディングインタビューの準備をするためのウェブ上で使うプラットフォームです。190以上の問題が含まれており、あなたのアイデア/ロジックまたはソリューションを入力して、正しく解けたかどうかを確認することができます。このプラットフォームは現在、C#、Bash MySQL、Rubyなど9つの言語で使えます。
14. Interview Cake
Interview Cakeは、ソフトウェア・エンジニアリングの学習者がコーディング面接に備えるための素晴らしいプラットフォーム(あるいは学習ツール)です。このツールは、あなたがプログラミングの知識を得るために使用することができます。あなたの思考を活性させる、興味深く挑戦的な問題がたくさん入っています。
13. CodeEval
CodeEvalは、学習者と開発者が自分のスキルを披露するための、オールインワンのチャレンジ・プラットフォームです。現在18以上のプログラミング言語をサポートしています。アプリ構築コンテストに参加し、賞品を獲得することができます。このプラットフォームは、あなたのパフォーマンスをランク付けして、場所、言語、コードの品質によってランキングをフィルタリングすることができます。
12. Rosalind
Rosalindは、問題解決することで、バイオインフォマティクスとプログラミングを学ぶウェブツールです。ここでは、Pythonプログラミング言語の基本を学び、動的プログラミング、ゲノムの再配列、計算質量分析、文字列アルゴリズムなど、バイオインフォマティクスの様々なトピックの基礎となるアルゴリズムを発見することができます。
11. Programming Praxis
Programming Praxisは、数多くの面白い問題とその解答(すべての問題ではありません)が入っているシンプルなブログです。ほぼ週に2回、新しい問題を投稿しています。各問題を解くのに平均1時間程度かかります。
10. Codewars
Codewarsを使うと 、実際のコードを解いて他の人と協力し合うことで、自分のスキルを向上させることができます。ランクと評価を得るには、(コミュニティが作成した)課題を解可なければいけません。あなたの解決策やアプローチ、革新的なテクニックについてコミュニティで議論することができます。
9. CodingBat
JavaとPythonのオンラインコード練習プラットフォームです。すべてのレベルの問題を見つけることができ、行き詰ったときはコードヘルプを見ればわかるようになっています。さらに、レポートページでは、Python/Javaの問題と、フロントページからの「ストック問題」と、カスタムライティングの問題を分類することができます。
8. CodeChef
CodeChefは、開発者コミュニティへの挑戦と参加、そして練習、競争、開発のためのプラットフォームを提供するために作られました。練習セッションは難易度別に分かれており、ウェブサイトに規模の大きいコミュニティがあります。
7. Daily Programmer
Redditが開発したDaily Programmerは、3つのレベルに分類された挑戦的な問題のコレクションです: Easy、Intermediate、Hardの3つのレベルに分類されています。あなたがコメント欄に投稿すると、コミュニティメンバーにレビューされるので、あなたのアプローチに対する答えや意見を求めることができます。
6. SPOJ
Sphere Online Judge は、ユーザが提出したプログラムを自動評価するオンライン判定システムです。このサイトには何千もの問題が含まれており、45以上のプログラミング言語とコンパイラ、様々なテストと動的なインタラクションを使うことができます。
5. Project Euler
Project Euler は、コーディングや数学的な洞察力だけでは解けない数学とコンピュータープログラミングの問題集です。500問以上の問題が収録されており、解いた問題数に応じて達成レベルを確認することができます。
4. Coderbyte
Coderbyteは、コーディングスキルの練習に役立つように設計されたスマートなウェブアプリケーションです。課題の難易度(Easy、Medium、Hard)は幅広く、ファイルやデータをダウンロードしたりアップロードしたりすることなくクリアすることができます。また、質問ページも用意されており、プログラミングに関するあらゆる質問をすることができます。
3. Topcoder
Topcoderは、デザイン、開発、データサイエンスの分野から面白い挑戦的な問題を提供しています。Topcoderの問題を解くと、あなたのスキルが向上します。賞金を提供することで、現実の問題を解決している組織を支援しています。
2. HackerEarth
HackerEarthは、希望者の論理的・技術的スキルを自動評価するSAASアプリケーションを提供しています。また、選択プラットフォームや開発者アグリゲーションとして、企業が優秀な人材を検索することができます。あなたのキャリアに必要な課題を提供する質の高いウェブサイトです。
1. HackerRank
ackerRankには5つ以上のドメインがあり、機械学習、関数型プログラミング、人工知能の中からどのスキルを向上させたいかを決めることができます。さまざまなレベルのコンテンツが用意されており、挑戦することでコーディング能力を高めることができます。さらに、上のランクを獲得すれば、IT企業から仕事を得ることができます。