プログラマーはアルゴリズム思考をどのように向上させることができるでしょうか?

プログラマーはアルゴリズム思考をどのように向上させることができるでしょうか?

[[255991]]

継続的な学習と継続的な開発は、主流の IT 業界のプログラマーにとって日常的なことです。現代のテクノロジーは非常に速いペースで進化しており、常に自己学習と探求を続けることによってのみ、時代の変化に対応できます。プロの IT 実務家であっても、IT 初心者であっても、アルゴリズム思考を養う必要があります。優れたアルゴリズム思考を持つことの直接的な利点としては、面接で成功する可能性が高くなることや、日常の問題をより速く処理できることなどが挙げられます。

アルゴリズム的思考とは何でしょうか? それは、設計されたいくつかの優れたコードを繰り返し暗唱して暗記することではなく、問題を抽象化する能力、つまり、抽象的な問題から実際のコーディングやプログラム設計に移行して問題を解決する能力を自分で練習することです。単にいくつかのアルゴリズムを暗唱するだけでは、思考能力は向上せず、せいぜい熟練したコーダーにしかなりません。したがって、他の人が設計した優れたアルゴリズムを見ると、そのアルゴリズムの背後にある「曲がりくねった」思考の道筋を探る必要があります。思考の道の困難を乗り越えることによってのみ、アルゴリズムを永久に保持し、1 つの事例から推論を導き出したり、独創的なアルゴリズムを設計したりすることが可能になります。

個人的には、アルゴリズム的思考を向上させるためには、まず次のようなさまざまな厄介な問題について深く考える必要があると思います。

  • 旅行中にレンタカーを借りたい場合、特定の場所の駐車場に車が空いている確率はどれくらいでしょうか?車を持っている確率は天候や気温などの要因によって変わりますか?

  • 家に帰る前に携帯電話のアプリを使って家のエアコンを起動できればいいのですが、私はマニアなので既製品を使いたくありません。クラスメートに自慢するときに目立つように自分で作りたいのですが?

これらの問題を明確にした後、私たちはどのようにして小さなプログラムを書いて、自分たちでそれらの問題を解決するかを考え始めることができます。このとき、使い慣れた言語があれば、それは非常に適しています(たとえば、私は個人的にPythonが好きです。使用できるライブラリが多く、始めるのがとても簡単です)。そうでない場合は、各言語に適したシナリオを見ることができます。ただし、個人的には日常生活にもっと沿っていると思うクローラーやデータ分析に関連するプロジェクトの場合は、 Python 3から直接始めることを検討したほうがよいでしょう。後でRaspberry Piを使用してスマートホーム関連のプロジェクトをいくつか実行したい場合は、 Pythonも非常に適しています。

Pythonの学習には、さまざまな能力レベルをカバーできる非常に成熟したコースがたくさんあります。ここではCourseraを強くお勧めします。   ビデオ コースでは、ローカルのIPythonまたはLeetCode Playgroundを使用してデバッグと練習を行うことで、良好な結果を得ることができます。

例えば

アイデアを見つける

最初の質問を例に挙げてみましょう。駐車場の車両の状況を知りたい場合は、ネットワークの知識が必要であり、APPと関連ソフトウェアサーバー間の通信プロトコルを理解する必要があります。具体的なインターフェースを理解した後、特定のポイントの車両の数を定期的に判断するループを含むプログラムを作成できます。このプログラムはPythonで完成でき、関連するライブラリは2つを超えず、基本的にはrequests jsonライブラリです。

一般的に言えば、データを取得したい場合、コードは次のようになります (再帰によってポイントの車両情報を取得します)。

このような操作では、 import requestsimport jsonインポートするだけで済みます。

データの保存

対応するデータを取得したら、ファイルまたはデータベースを使用してコンテンツを永続化し、後で分析することを検討できます。このとき、 pymongoライブラリを使用できます。わずか数行のコードで、データが適切に保存されます。 (ここでは、公式アカウントの以前の記事「Python + MongoDB - 小規模プログラム用のツール」を参照できます)

Python でのインポート:

データ テーブルを指定して接続します。

追加、削除、変更、確認:

レコードを挿入します:

外部ディスプレイ

最後に、データの可視化を考えてみましょう(結局のところ、このコンテンツは他の人に見せるためのものです)。練習したいだけなら、シンプルにMatplotlibを検討してください。他の人に見せる必要がある場合は、Chart.jsを試してください〜

最後に、これらの操作が完了したら、プロセス全体を記録した記事を書くことができます。これを行う利点は次のとおりです。

  • 分析から実際の実装まで、小規模プロジェクトを自力で完了する能力を証明します

  • 関連する人々を引き付け、コメントを通じて開発の提案を得て、独自のプロセスを最適化します。

  • この探索を記録することは、独自のドキュメントライブラリを蓄積することと同じです。

さらに、この種の問題は普遍的であると思われる場合は、世界最大のゲイ出会い系サイトである GitHub にコードを置くことを検討できます。関連するユーザーディスカッションを得られるだけでなく、個人のソーシャルメディアで自分自身を宣伝することもできます。同様のニーズを持つユーザーを引き付けることができれば、GitHub アカウントの人気が高まるだけでなく、より多くの友人を作り、より多くのプロジェクトを作成する動機付けになり、より関連性の高いプロジェクト経験を積み、ポジティブなサイクルを完成させ、問題を発見し、アイデアを見つけ、問題を解決するアルゴリズムの思考プロセスにさらに慣れることができます。

<<:  AI時代の「ハードコアプレイヤー」になりたいなら、これらの8つの予測を知っておく必要があります

>>:  世界的な「AI+教育」の波が到来、第3回AIAEDグローバルAIインテリジェントアダプティブ教育サミットのハイライトは「ネタバレ」

ブログ    
ブログ    

推薦する

機械学習で避けるべき3つのよくある間違い

企業は、お金の無駄遣い、アプリケーションのパフォーマンスの低下、成果の得られないという 3 つの間違...

英国で新たな自動運転規制が導入され、ドライバーはもはや「集中」する必要がなくなった

自動運転は近年市場で最も活発なトピックの1つです。資金が継続的に流入し、大手企業が存在感を示そうと競...

住宅地での顔認識が論争を巻き起こす。所有者には「好意を示すことを拒否する」権利がある

[[349278]]今は「顔を見る時代」であり、「顔をスキャンする時代」でもあります。明らかに、後者...

...

...

次世代ビジネスインテリジェンスのトレンドと機会

ビジネス成果を明確に定義するために、多くの企業は分析にビジネス インテリジェンス ソフトウェアを活用...

自然言語処理必読本: 理論と実践のバランスが取れた 5 冊の本

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

アルゴリズム学習のための動的プログラミング戦略の紹介

1. コンセプト動的プログラミング戦略、分割統治戦略。貪欲戦略と同様に、通常は最適解問題を解決するた...

...

AIに関する哲学的考察 - 認知不変性とAI

米国国防高等研究計画局(DARPA)はかつて、第3波AIの概念を提唱しました。その議論では、第3波A...

...

世界最大の多言語音声データセットがオープンソースになりました! 23言語で40万時間以上

[[416170]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

CV の未来はこの 68 枚の写真にかかっているのでしょうか? Google BrainがImageNetを深く掘り下げる:トップモデルはすべて予測に失敗する

過去10年間、ImageNetは基本的にコンピュータービジョン分野の「バロメーター」となってきました...

モザイクでも止められない!これらのAIアルゴリズムはワンクリックで高解像度を実現できます

ぼやけた写真が好きな人はいません。本当の顔を復元したいという衝動にかられたことはありませんか? AI...

AIの現実世界での最悪の使用例

人工知能(AI)の最悪のシナリオは、ハリウッドの大ヒット映画でおなじみのものだ。人間のような知性と知...