ここから本文です

プログラミングはほぼ未経験なのですがデータ分析やディープラーニングに興味があ...

アバター

ID非公開さん

2019/4/604:33:00

プログラミングはほぼ未経験なのですがデータ分析やディープラーニングに興味があり、大学のプログラミング講義を履修しようと思います。

JavaとC++とCではどれが良いと思われますか?
データ分析などに興味があると先述しましたが、この先出来ることが多いに越したことはないので、その言語の汎用性と難易度も加味していただきたいです。

補足皆さんありがとうございました!

閲覧数:
137
回答数:
5

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

n2q37_cppさん

2019/4/609:04:35

「Java」

【汎用性】高
【難易度】易

良い言語だと思いますよ。未経験とのお話ですので、これらの中では最も学習しやすい言語となる筈です。

Java を学習することで Java 自体というよりもプログラミング技術の大事な部分を学ぶことが出来ます。



「C++」

【汎用性】高
【難易度】難

これは超絶言語です。あり得ないほど難しいです。そして、何でもできます。C++ が適していない分野に取り組むとして、その場合でも C++ の知識があればすぐに対処できると思います。殆んど勉強が必要ありません。C++ の中に全てが詰まっているようなイメージになるので。



「C」

【汎用性】?
【難易度】?

C++ に置き換わった後の蝉の抜け殻みたいなものです。ですので、もう汎用性がどうとか、そういう話をするのは適切でないと考えます。私自身としましても25年前にやめてます。C++ に切り替えたのです。以降、C には用事が無い状況が続いています。


難しいかどうかについて、これもどう評価すれば良いか迷ってしまいます。


C++ の難しさの1割ぐらいの(または1%程度の)難しさがあると見ても良いかもしれません。

その一方で、Java にある難しさ(Java でも難しいと感じる人も居るでしょう)はありません。Java よりも、ものすごく古い言語ですので、そういう小難しいものは含まれていないからです。(このため、逆に C から Java 等への切り替えに苦労する場合があるようです。考え方が古くなってしまって簡単な筈の Java が理解できなくなる現象です。)


C はプログラムを作らない人には適していると言えるかもしれません。コンピュータシステムの仕組みについて、かなり実態に近い理解が出来る可能性があるからです。一般教養の一つとして、これは結構大事かも。あるいは SE 志望の方とか。

でも、本当にプログラミングをやりたい人、実用のために何かしたい人、の場合は避けた方が良いと考えます。

あと、例外的なものになりますが、先々 C++ をやりたい人は、まずは C を完全に習得する必要があると考えます。そうじゃなければ C++ への入門は無理。これは最低条件になると思います。




《参考》


「データ分析やディープラーニング」

実務として取り組んだことは無いです。

ちょっと調べてみたところ、「ディープラーニング」は Python など簡単な言語で取り組むこともできるみたいですね。Java が使われることはそう多くは無いようですが、Python をやるにしても、その他の言語をやるにしても、Java の知識を持っていると役立つ可能性が大という気がしています。プログラミング界(?)での常識が身に付くと思うので。


特定の応用目的を想定すると、つまり、やりたいことが明確にあるわけですからね。出来るだけ簡単な言語が望ましいと言えます。

「データ分析やディープラーニング」をやりたい人は、正にその「データ分析やディープラーニング」というのが一番大事な目的なわけですので、言語はなるべく分かりやすいものが良い。ということから Python 等が喜ばれているんじゃないかと。


ただ、不都合が出てくる場合があります。

処理の遅さです。


超高速処理を考える場合は C++ を検討する必要が出て来ます。つまり、超高速処理を目指す場合は分かりやすい言語でどうにかしようというのは無理になってくるというわけ。


超高速処理をやりたくなるのは、実際にその応用に取り組んでしばらく経ってからになると思われます。でも、その時になってから C++ に取り組んでも上手く行かない。何年かけてもです。ていうか、何年もかけられないですよね。特定の応用目的がある場合は。



C++ まで行かなくても C で小さなサブルーチンを作るという手も考えられます。時間が掛かる処理の一部分だけでも C で作り込んでおいて、それを易しい言語から呼び出す。こういう仕組みでどうにかこうにか高速化が出来たりします。

C は抜け殻です。なので、普通はもう使いません。C++ を使えば良いのです。でも、C++ が出来ないという技術的な都合がある場合は、その代用として小規模な処理を C で誤魔化すという方便が、とりあえず今もどこかで行われている気はしています。

そのような点を踏まえると C という選択も悪くないかもしれません。

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

朝倉邦彦さん

2019/4/620:41:53

昔、平成前のころ、自分も同じように悩んでいて、
COBOL、アセンブラ全盛のころ、
オブジェクト指向に興味があって、
(正しくはオブジェクト指向がはやっていた、)
smalltalkかlispどちらを学習すればいいですか?
と悩んでました。
それと同じにおいがします。
こたえは突如として現れたまさかのJavaでした。
現代の若者へ言うならば、
悩まなければよかったと思っています。

cat********さん

2019/4/618:45:29

Pythonだよ、Python。
あと、初歩の機械学習として、ベイズ統計だよ、ベイズ統計。
Googleとかの検索エンジンとかにも使われてるから。

ベイズ統計は、大きめの図書館にはおいてあるくらいメジャーなんで、探して読むと良いよ。
古くても、関係ないから。

データ分析に興味があるのなら、統計手法は一通り読んでおいたほうがいいよ。
おいらも、下手の横好きだが、統計は大好き。

ただ、頭痛くなる。(笑

kon********さん

2019/4/615:15:08

講師の裁量で使用するプログラミング言語は
決められます。
ただ現時点でのプログラミング言語の好み
(しかも概ねまだ他人からの伝聞に過ぎない)
というか印象だけで受講講座を決定するのは
賢明とはいえないと思います。

例示されたどの言語も一年3~40回50時間
程度の時間では概要を習得するのですら困難
ではないかと。
プログラミング技術に関してどの言語の講座
を選ぶかで大差がつくということは期待しな
いほうが良いと思います

学部なり学科が向いている分野と調和しつつ
もそこそこ高密度なプログラミング体験が出
来る講座が期待されているでしょうし幸運に
もそういう講座があった場合はそれなりに人
気が高く情報が出回っているのではないかと

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

十郎さん

2019/4/605:58:01

Pythonがおすすめなのですが、選択肢にないようですから、C++かCですね。

C++は仕様が大きくいろいろと難しいです。
Cもバグがないように作るのはなかなか難しいです。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる