アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラミング能力とアルゴリズム能力って違うのでしょうか?
プログラミングの能力の一部にアルゴリズムを構築する能力が含まれるのかと思ってたのですが、両者は全く別だと書いてありました。
単に人の書いたコードを読んだり、コードの書き方をすんなり覚えるのがプログラミング能力で、複雑な問題を簡潔に解決する解法を編み出せるのがアルゴリズム能力なのですか?
教えて下さい。

A 回答 (10件)

#9です。



はい。と書いてしまいましたが、一部、私は認識が違います。

>単に人の書いたコードを読んだり、コードの書き方をすんなり覚えるのがプログラミング能力・・・

これはコーディング・スキルであり、中学生でも可能です。

今、文科省が「プログラミング能力」を小学生から身につけさせようとしていますが、それは処理フローを考える能力です。

小学生は、コーディング不要な、レゴブロックのようなソフトで処理フローを学んでいます。

ついでに、
機械学習の正則化回帰lassoという手法があります。これは1996年、スタンフォード大学のチブシャアーニ先生が数学的理論を提唱しましたが、実務では解けませんでした。その後、エフロン先生がlarsアルゴリズムをいう方法を考案し、解けるようになりました。

なお、それを実際にコンピュータプログラムとして書けるように処理フローを考えるプログラマがいて、それをC言語やPythonで書くのがコーディング屋です。
    • good
    • 0

はい。

そのとおりです。

プログラミング能力とは、銀行の取引や工場内の物流コントロールなど、概念的な仕様書に基づき、例えば最適化のアルゴリズムを適用しながら、処理のフローを考えることであり、フローチャートが書ける能力です。
(プログラミング能力とは、単なるコーディング・スキルとは違うと思います)

アルゴリズム能力とは、かつてアルゴリズム特許問題として訴訟にもなったカーマーカー特許などに見られるように(それは数理計画法を解くアルゴリズムで内点法と呼ばれるものの一種です)、その数学的手順を考えることであり、学術論文が書ける能力です。

後者には、開発者の名前が付されることが多いです。
例えば、移動体検出のアルゴリズムの「ルーカス・カナデ法」などのように・・・。
    • good
    • 0

アルゴリズム能力って何を想定しているのでしょう?



沢山の著名アルゴリズムを良く知っていて、効率良く使いまわせること?
プログラムのある狭い部分の仕様を満たす、プログラムのロジックを書き下せること?

後者ならロジックを作る能力のことかな?

プログラミングにもいろいろ有って
全体の構成を考え、個々のせまい部分の仕様を作って行く仕事と、
それを具体的なコードに落とす仕事がある。

更にもっと広義には、客先の要求を聞き取って
システムの備えるべき要件を整えてゆく仕事もある。

また、プログラムのロジック/仕様/要件の其々のレベルで
必要な試験を考え、実施し、不具合を見つけ直してゆくのも
プログラマーの仕事だ。

こうしてみると、ロジっクの組み立てはプログラミングの
ほんの一部だといえる。
    • good
    • 0

そもそも「アルゴリズム能力」ってなに? それがどのようなものなのかよりも前に


日本語として変だと思わない
のかな?
    • good
    • 1

アルゴリズムは解を求める手順の事で、コンピュータ関連に限定するものでは有りません。


2次方程式の解の公式も、係数を使ったアルゴリズムです。

プログラミングはコンピュータが動作する言語のコードを記述する事です。
アルゴリズム能力が無くても、誰かが手順を書いてくれて、それをコンピュータが動作する言語のコードを記述出来れば良いのです。

なので、貴方の質問には「その通り」です。
    • good
    • 0

問題を解決するための計算式を、


考えるのがアルゴリズム能力
動かすのがプログラミング能力

もしくは

現実的な問題を論理的に纏め上げる抽象化のアルゴリズム能力
纏めた解法を計算機に落とし込む具象化のプログラミング能力
    • good
    • 0

車の運転に例えれば、地図を読み、どの道路をどのように行けば、目的地にたどり着けるかを判断する能力と車を上手に運転する能力とが必要です。


地図が読めても、運転がからっきしでは、目的地に着けませんし、
地図が読めなければ、運転ができても、目的地に着けません。
ラリーのナビゲータがアルゴリズム能力に相当し、ドライバーがプログラミング能力に相当するかと思います。
    • good
    • 1

大規模プロジェクトを例にすると、詳細設計書を作成する人とコーディングをする人は別であることもあります。


詳細設計書を作成するにはアルゴリズム能力が必要です。
コーディングをするにはプログラミング能力が必要です。
非常に近接する分野ですが、詳細に考えると微妙に重ならない範囲があります。
    • good
    • 2

その言葉をどの範囲に適用するのかは個人の解釈です。



アルゴリズム能力というのは、処理手順を考える能力です。
要求しない入力処理も考えなけれななりません。
多くのバグは、これを逃すことで発生します。
プログラミング能力とは、本来はこの処理手順を作ることを言うので、
アルゴリズム作成能力と同じ意味(言葉を変えただけ)ですが、
単に、コーディング能力だけを言う場合もあります。

プログラマーの上級者は、アルゴリズム作成能力がある人を言います。
コーディングをする人は、単なる言語変換だけに、下級職になります。
どの範囲を示しての言葉なのか、を明確にしないといけません。
    • good
    • 0

通常、プログラミング能力とは、アルゴリズム能力も含めていうことが多いのではないかと思います。


ただ、現実問題として、他人のコードを追うことはできても、新しい問題を解くためのプログラムを実現するためのアルゴリズムが思いつかないということはあると思います。

データを大きい順に並べかえるプログラムには、いくつかのアルゴリズムがあるのですが、そういうアルゴリズムを考えることができるのは、一部の特別に優秀なプログラマの方なんだと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!