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

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

[[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インテリジェントアダプティブ教育サミットのハイライトは「ネタバレ」

ブログ    
ブログ    
ブログ    

推薦する

顔検出を実装するための50行のPythonコード

現在、顔認識技術は広く利用されており、決済や本人認証、美容カメラなどに利用されています。 iPhon...

R言語におけるAprioriアルゴリズムの応用

[[193979]] I. コンセプト関連性分析は、大規模なデータセットに隠された意味のあるつながり...

Playgroundで数値アルゴリズムを学ぶ

中学校では、数学の描画ほど恐ろしいものはありませんでした。多くの問題にはすぐに利用できる解析的解法が...

AIのエネルギー消費は高すぎるため、マイクロソフトはデータセンターの電力供給に原子力発電の利用を検討している

9月26日のニュース: ここ数か月、マイクロソフトは人工知能 (AI) 事業の開発を加速させています...

顔認識の3つの主要技術と4つの主要機能

2016年百度世界大会が開幕し、百度創始者の李承燁氏は大会で「人工知能」をテーマに講演し、最新製品「...

人工知能、機械学習、ディープラーニングとは、いったい何なのでしょうか?

近年のホットな言葉といえば、「人工知能」が挙げられます。昨年のChatGPTの人気爆発により、「AI...

Intel と AMD はパフォーマンスの向上のために AI PC に期待していますが、消費者はそれらを買い替える資金を持っているのでしょうか?

11月2日、新型コロナウイルス感染症のパンデミックをきっかけに2年間成長を続けてきたパソコン(PC...

...

...

教師あり学習、教師なし学習、半教師あり学習、強化学習の 4 つのディープラーニング手法を 1 つの記事で理解する

一般的に、ディープラーニング ネットワークをトレーニングする方法には、教師あり学習、教師なし学習、半...

...

AIがIoTの状況をどう変えるのか

人工知能 (AI) はモノのインターネット (IoT) の世界に革命をもたらし、IoT の人工知能 ...

無人バスは無人タクシーよりも信頼性が高いでしょうか?

バスがプラットフォームに到着するのを待って、バスに乗り、カードをスワイプします。いつもの朝の通勤風景...

聞いてください、トランスフォーマーはサポートベクターマシンです

Transformer は、学界で議論を巻き起こしたサポート ベクター マシン (SVM) の新しい...

...