プログラミング言語について

受付中

回答 12

投稿

  • 評価
  • クリップ 3
  • VIEW 1,309
退会済みユーザー

退会済みユーザー

プログラミング言語が使えるとはどの程度のことを指すのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/07/03 15:11

    過去の質問の多くが回答待ちになっていますが、解決されたものについては「解決済」にしてください。

    キャンセル

  • 退会済みユーザー

    2016/07/19 16:33

    こちらの質問が他のユーザから「問題・課題が含まれていない質問」という指摘を受けました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 12

+20

「使える」というのはとても主観的ではっきりしたことを言うのは難しいと思います。

「○○が使える」というのは日常的に使っている言い回しです。○○には何かしらの道具が入ります。「ハサミが使える」「カッターが使える」「パソコンが使える」「Excelが使える」等々と言ったりしますが、プログラミング言語も同じように「Cが使える」「Javaが使える」「Pythonが使える」と言った場合、ここでのCやJava、Pythonというのは同じように道具です。つまり、プログラミング言語もプログラムを作るための一つの道具であるということです。

さて、「ハサミが使える」と言った場合、どの程度だと想定するでしょうか?ハサミを見たことも触ったこともない人は、ハサミがどんな道具で、どのように使うのかを知りません。持ち方なんてわかるわけがありません。でも、私達は日常的にハサミが使えています。それは、ハサミが「紙を切る道具」であること、ハサミの「持ち方」や「握り方」、どうすればハサミで「紙が切れるのか」を知っているからです。そして、実際にハサミで紙を切ることができます。だから、私達は「ハサミが使える」と言ってしまいます

「Cが使える」も同様に考えられます。Cが「プログラムを作る道具」であること、Cの「書き方」や「コンパイルの仕方」、どうすればCで「プログラムが作れるのか」を知っているのであれば、「Cが使える」と言っていいでしょう。ハサミと同じですから、簡単ですね。

ちょっと待って下さい。さきほど「ハサミが使える」と言いましたね。なら、「切り絵」を作って貰いましょうか?え、できない?なんで、さっき使えるって言ったじゃん。

そう、「ハサミの使い方」もたくさんあります。ただまっすぐ紙を切るだけなら、誰でもすぐにできるようになるでしょう。では、ハサミで「切り絵」を作るとなるとすぐにできますか?ましてや寄席の紙切りのように観客を笑わせる喋りをしながらやるとなると、それはもう、すぐにできる人なんていません。つまり、私達は「ハサミの使い方」を知っているようで、できるているようで、実はもっと複雑で、ほんの僅かにその一部だけを垣間見ただけに過ぎないのです。

「Cの使い方」も同じです。Hello worldと表示することなら誰でもすぐにできるようになります。でも、「OS」を作るとなると、それはもう複雑で高度な技術が必要です。「切り絵」をするのにハサミだけでは難しいからカッターを使おうとするのと同じように、時にはCだけではつらいからC++など他の道具を使う必要になるときだってあります。そうそう、同じです。私達は結局、知っているかのように見えて、いつも入り口に少し立っただけに過ぎません。

はてさて、「○○が使える」とは一体何だったのでしょうか?紙をただまっすぐ切れるだけで「ハサミが使える」と言ってよかったのでしょうか?それとも綺麗な「切り絵」を作れるぐらいじゃないと「ハサミが使える」と言ってはいけなかったのでしょうか?Hello worldができれば「Cが使える」と言っていいのか?「OS」まで作れないの「Cが使える」と言ってはいけないか?なに、両極端過ぎるから、間にある適当な所までできれば「○○が使える」にすればいいのではないかって?なら、誰がその中間にあるという妥当なラインを決めることができるんでしょうか?

結局、両端を取ろうが、適当な中間を取ろうが、主観にすぎません。「○○が使える」とだけ問うことはあまり意味があることではありません。本当に問うべきなのは「××で○○が使える」であり、重要なのは「××」部分です。単に線に沿って紙を切る程度の事なのか、それとも寄席の紙切りなのか。Hello worldと表示するだけなのか、OSの作成なのか。「仕事で」とした場合も、芸術作品と寄席では切り絵で必要とされる技術が微妙に異なるように、ゲームの作成とOSの作成では必要とされる技術が微妙に異なってくるでしょう。

「○○が使える」というのは、使う場所の具体性をもって初めて意味がある言葉だと思います。それで、一体どこで何に使いたかったのでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/03 16:33 編集

    素晴らしい見解ですね!
    まさしくおっしゃる通りです

    キャンセル

  • 2016/07/10 08:27

    完全に同意します。

    > 「○○が使える」というのは、使う場所の具体性をもって初めて意味がある言葉だと思います。それで、一体どこで何に使いたかったのでしょうか?
    この質問に対するNobuarithmeticさんの答えが気になりますね…。

    キャンセル

+7

知るを知るとなし、知らざるを知らずとなす、これ知るなり(論語)

この範囲までなら自身を持って答えられると言えれば、まあ使えると言っていいでしょう。
ただし、一般的にはわかっている人ほど「わからない」と答える傾向があるようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

こんにちは。

人によって、また文脈によって異なると思います。
今、私が回答するとしたら、下記ですね。

そのプログラミング言語の処理系を開発用コンピュータへインストールでき、ある程度複雑なプログラムを自力で開発できることですね。どの程度の複雑なものかはケースバイケースですが、Hello, world!ということはないです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/03 15:13 編集

    ご回答ありがとうございます。
    恐れ入りますが、「ある程度複雑なプログラム」の具体的な例をいくつかご提示していただきたいです。
    また「自力」というのは、ネットの情報を一切見ないで製作できるということでしょうか?

    キャンセル

  • 2016/07/03 15:24 編集

    例えば、C++ならクラスを使ってオブジェクト指向的なプログラムになっているものとかですね。

    具体的には難しいです。C++でもC言語的に非オブジェクト指向プログラムもできますから、例えば電卓プログラムを作れてたからといって、オブジェクト指向プログラミングできているというと判断はできません。

    オブジェクト指向向きの言語ならオブジェクト指向プログラムしていること、テンプレートを使える言語ならテンプレートを使っていること、そして、標準的なライブラリの内、良く使われるものを使っていることって感じですね。

    > また「自力」というのは、ネットの情報を一切見ないで製作できるということでしょうか?

    わたし的には、ネットをバリバリ使ってOKです。分からない部分をピンポイントで聞く分には人に聞くこともOKです。でも、1年がかりはNGです。難易度にもよりますが、一般的な開発期間程度で開発できることは必要ですね。

    キャンセル

  • 2016/07/03 16:13

    詳しいご説明ありがとうございます

    キャンセル

+3

定められた期限内に必要なものが作れるかどうかですね。
言語仕様の知識について言えばどの言語でもそれほど難解なものはありませんから、覚えれば済む話です。
短い期間に複雑な物を作れと言われれば(使ったことないから)(慣れてないから)そのフレームワークは使えませんと言いますし、時間が十分にあるなら「使ったことないけど情報は十分手に入りそうなので勉強します」と言えます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/04 09:50

    職業的にプログラミングに取り組むのであれば、この観点が抜けると痛い目にあいますよね。

    キャンセル

+3

たとえ一度も扱ったことなくても「言語仕様書と処理系と少々のサンプルコードさえ頂ければものの一週間でそこそこのものが書けますよ」と言える程度。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

質問を次のように変えてみてください。

日本語が使えるとはどの程度のことを指すのでしょうか?

まさに十人十色の考えた方、回答になるでしょう。
でも、それら回答を集計して何を得たいと思っているかは、質問者がそれを明らかにしない限り、回答者には伝わりません。

質問者様にとって、
"自分が使えると思っているプログラム言語は xxx です。その理由は ..." とか
"自分はプログラム言語 xxx を使えるとは思っていません。その理由は ..."
などの具合例を、質問文に含めるとよいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

自分の中では、いつまでたってもプログラム言語を「使える」というよりは「使ったことがある」と
いう認識でいます。
その理由としては、どのようなことができればそのプログラム言語を「使える」ということができるのか
十人十色だからです。
ただ、一つの指標としては、「その言語を使用して相手が求めるシステムを構築できる」というのが、
「使える」ということになるのではないかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

どの言語も、基礎+応用、で成り立っていると思います。
この基礎ができていればどんな応用にも生かせるはずなので、基礎ができていれば「使える」と言っていいと思います。
では基礎って?てなると思いますが、何かを作ろうとしたときに途方に暮れないで、自力で解決できる力だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

「言語が使える」というのはピンからキリまで相当なレベルの差があるように思います。
また、言語が使えても課題や問題または客先の要望などに対して、仕様書から設計書などドキュメントを起こすこともしなければならないので、プログラミングの能力だけでは実務としては使い物になりません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

何か一つのシステムを完成させる事ができれば使えるって思ってもいいんじゃないでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

やや遅めの回答ですが、言語学習のヒントになりそうな
面白い着眼点の質問なので、回答させていただきます。


プログラミング言語は手段です。
最終的に実行されるのは機械語ですから、機械への命令です。
ですから「使える」かどうかは、目的を設定するとハッキリします。

たとえば、Webサイトを作るとか、ゲームを作るとか、
文字を整形するツールを作るとか、表計算で事務をするとか。
その目的を達成していれば「使える」と言えるでしょう。


ここで私が言いたいのは、
「覚えてから使おう」とすると際限がないので、
「使いながら覚えよう」ということです。

言語を「使えるようになりたい」という人は多いですが、
適切な目的を設定する方向で考えないことが多いです。
しかしそれは学習の挫折への近道です。

たとえば英語で言えば、口では一切話せなくても、
文章を読めることで、何か有益な情報を収集できるかもしれません。

たとえ他人が「そんなのは使えるうちに入らない」などと言おうとも、
本人にとっては役に立てばそれでいいでしょう。
(職業で使うとなると、そうはいかない場面も多いでしょうが)


プログラミング言語でも、何でもかんでもできるようにはなりません。
まず使う目的を明確にして、それに必要なだけ「使える」よう学習するのが、
学習が成功する近道だと思います。

こういうことを言うのは、意外と初心者の方は、
手段に固執する傾向があります。とくにその手段が有名な場合。
「それは~でもできる」ことが分かってくると、
同じことをはるかに少ない労力で実現できることがあります。

たとえば個人や社内など内輪だけで使うツールを作るなら、
GUIでなくバッチ処理だとはるかに簡単になる場合があります。
でも今の時代CUI(CLI)がマイナーだから学習されないとか。

まとめますと、プログラミング言語も目的指向で学習するのがお勧めです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

C++に限定すれば
C++erを簡易的にレベル分けすることで初心者詐欺を減らそうという試み -Qiita
なんていうネタ記事を書いて大きな反響を頂いたことがあります。


言語がわかる、というのと、その言語でプログラムが書ける、というのはまた違うものだったりします。
例えば某有名ゲーム会社のプログラマーで、C++使っていても、C++そのものについては殆ど知らなかったりします(平気で環境依存コード書いてたり、STLにあるのを自作してたり)


日本でものすごくよく見かける光景として、
「てめーのJava、Java4ですらねーんだよ!」(*現在Javaの最新はJava8です、だいぶ違います)
というものがありますが、それでもその人はプログラミング言語を使えているのかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる