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

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

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

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

...

...

IIHS:自動運転車は交通事故を3分の1しか減らせない

道路安全保険協会(IIHS)が実施した調査によると、自動運転車は期待したほど事故を減らさない可能性が...

...

...

効果はGen-2を超えます! Byte の最新ビデオ生成モデルは、一文でハルクに VR メガネをかけさせます

一言で言えば、ハルクに VR メガネをかけさせるのです。 4K品質。パンダのファンタジーの旅これは、...

AIのダークサイド: AIを信頼できるものにする方法

セキュリティとプライバシーに関する懸念は、AI 導入に対する最大の障壁であり、それには十分な理由があ...

グレートウルフホテルはAIを活用してゲストの体験とレビューを理解する

現在、ホテルやエンターテインメント業界のチェーンは、ゲストの体験やレビューをスキャンして理解するため...

ロボットが国連で初めて記者の質問に答える: ロボットは人間の仕事を奪ったり、人間に反抗したりはしない

ロイター通信によると、昨日ジュネーブで開催された「AI for Good」会議で、国連国際電気通信連...

アルゴリズム分析への正しいアプローチ

[この一連のブログ投稿では、一般的なデータ構造と対応するアルゴリズムを分析および要約し、各ブログ投稿...

Baidu Create 2019 Baidu AI 開発者カンファレンス Li Yanhong の素晴らしい名言

7月3日に開催されたBaidu Create 2019 Baidu AI Developer Con...

ウェブデザインに人工知能を活用する10の方法

[[210916]]今日、Web デザインは絶えず進化しており、トップクラスの Web デザイナーは...

米国はドローンに「ナンバープレート」を発行する

[[373346]]米国連邦航空局(FAA)は月曜日、小型ドローンの夜間飛行を許可すると発表した。新...

人工知能 (AI) ソリューションを購入または構築する際に尋ねるべき 5 つの重要な質問

人工知能などの新興テクノロジーには、マーケティング上の約束が実際の成果を上回らないようにすることと、...