🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

7回答

1107閲覧

C言語をマスターする意味について教えてください

meacrev

総合スコア34

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

2クリップ

投稿2021/03/28 05:46

C言語学習の意味についての相談

今までは「将来AIに奪われづらい職業に就くために必要なスキル」という文句につられて漠然と目指していたので、自分が何のためにC言語を勉強しているのかを分からずにいました。
C言語を記述出来るようになる事は、将来企業に就職した時、どういった形で役に立つのでしょうか。「~を操作出来るようになる」や「~を開発する際に役立つ」など、どんなに些細な事でも良いので教えて頂けると幸いです。
因みにですが、私は、コンピュータの操作は大好きです。
宜しくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/03/28 06:43

とりあえず、「プログラミングが好きでやっていると言うほどではなくて、将来と就活に役に立つかも。」と言うスタンスでしょうか。質問者さんの背景が質問文からはまったく分からないので、現時点でどれくらいC言語に習熟したか、あるいは時間をかけたかを示すと回答を得やすいかもしれませんね。C言語に限らず、大抵の場合「どんなことでも、知らないよりは知っていた方が良い」はずです。費やした時間に見合った満足を得るかどうかはまた別でしょう。また、操作(使う)ことは好きでも、作ることには実は興味が無い場合もあります。ゲームをするのは好きだけど、ゲームを作ること自体には興味が無いというようなことと同等です。
dodox86

2021/03/28 06:46

(たくさん回答がいただけていたので勝手な心配は杞憂に終わった感)
guest

回答7

0

あなたが大好きという

コンピュータの操作

っていうのはどんなことですか?
同じ操作を、コンピュータのチューニングによって少しでも早くしたりマクロを組んで効率化したり?
それとも、なんかすごい動きをする動画を生成させたりとか?

以前から、すご~く大雑把に
「コンピュータ'を'いじるならC言語が標準的に使われる武器」
「コンピュータ'で'なにかやるならもっと抽象的な記述が出来る他の高級言語を使え」と私は言うことにしています。

最終的には動くのはコンピュータなので、C言語を知っていることは後者でも役に立つことは無くもないでしょう。
コンピュータの能力が低かった時代は、高級言語が人間に寄せていることによる「非効率」が無視できず、結局コンピュータのはらわたをかき回してでも性能を引っ張り出さなきゃ使い物になりませんでした。だから、何をするにもC言語を使わざるを得なかった。
でも、コンピュータの性能が上がったら...多少の無駄はコンピュータの能力によって覆い隠されて、「人間がコンピュータのために気を使う」C言語はもはや足かせにしかならなくなります。もちろん、C言語で常套手段として使われる「こうやったらコンピュータが動きやすい」というテクニックを他の言語でも活かせればそれはメリットではあるでしょう。でも、そのメリットが活かせる場面も、コンピュータの性能がさらに上がれば減ってくるでしょう。そんなテクニックによって得られる差がなくなってしまうのです。

将来企業に就職した時、どういった形で役に立つのでしょうか。

いうまでもないですが、あなたが(エンジニアとして就職する話として)何を役割とするかによります。
コンピュータ'で'なにかをすることにかかわる場合、C言語はほとんど役に立たないことが予想されます。昨今黙って「プログラマ」というとWeb関連を指している気配をなんとなく感じますが、そんなような世界で働くのであれば、C言語なんてものが顔を出すことはまずないでしょう。
一方、CPUを直接ドライブするOSを作ったりするような、あるいはもっとベタにCPUそのものを作るとかのコンピュータ'を'いじる仕事であれば、C言語を知らずに仕事にはならないと思います。
コンピュータの能力が低すぎて人間が面倒を見てやらなきゃいけないマイコン周辺もC言語がまだ当分使われるのではないかと思いますが、別にAI自体がマイコン上で動くわけでないプログラム開発という面では将来的にはAI導入の目はあるんじゃないかと私は思っています。

まぁ、いずれにしろC言語の未来は洋々としたものとは言い難いのでは。C言語しか選択肢がなかった時代に作られたプログラムのメンテナンスなんてのを除いたとして

「~を操作出来るようになる」や「~を開発する際に役立つ」

なんていう具体的メリットを求めるなら、その期待値は低いと思います。学習をやめたければやめればよいのではないでしょうか。

投稿2021/03/28 09:24

thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C言語自体は、組み込み系の開発をするとか、OSや言語処理系などアプリケーションじゃないプログラムを書くとかでない限り、使わないと思います。

ということで、これから勉強しようかどうしようか?ということならしなくて良いと思います。
が、避けて通るほど難しいことは無いので、勉強を始めたのなら、入門書最後くらいまではやっておいて損は無いと思います。ポインターで躓く人が多いようなのですが、躓いて通り抜けられないようなら、すっぱりあきらめて、「自分はコンピューターの仕組みとかは苦手だ」という認識をもって別の分野のプログラミングをやれば良いかと。

投稿2021/03/28 06:32

otn

総合スコア85888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

※個人的意見なので、間違いがあるかもしれないうえにまとまりもないので、話半分に聞いてください。

「将来AIに奪われづらい職業に就くために必要なスキル」ということでC言語をやるというのは、違うのではないかと思います。

C言語のメリットとしては「機械の仕組みに近い言語」ということが挙げられます。
これをもって「AIに奪われづらい」ということなのかもしれませんが、これよりももっと近い、アセンブリ言語というのもあります。
ただ、現在ではアセンブリ言語はほとんど使われません。
というのも、現在ではプログラミング言語を使ってコンパイルすれば、コンパイラによって最適化されたプログラムが出来てしまうからです。
つまり、アセンブリ言語はAIが一般に広まる前から淘汰されてしまったといってもいい状態です。
C言語も同じような境遇にあり、今では機械の仕組みをあまり気にせずに、分かりやすい言語を使うほうがよいというケースが多いです。

ただ、ここで気になるのは、あなたが具体的に何をしていきたいかによります。
例えば、Web系であればフレームワークというものを使うことが多く、それに対応した言語のほうが適切でしょう。
この場合、機械の仕組みよりもデータベースについて学習したほうがいいのではないかなと思います。
他方で、組み込み系であれば、機械に近い分野なので、今でもC言語が使われることも考えられます。

また、AI云々についても、むしろAIを作るとか使うとかしたほうが、目的に沿っている場合も考えられます。
結局は「AIに奪われづらい」というよりかは「何をしたいのか」ということを考えた方がいいのではないかと思います。

投稿2021/03/28 06:42

fiveHundred

総合スコア10152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

イマドキ、C言語というのは組み込み系に行くとかでないとする理由がありません。
C#とかJAVAとかpythonとか、スマホ系とかに行くのがよろしいかと

投稿2021/03/28 05:48

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

なんかコンピュータのことをわかったような気になれる。

投稿2021/03/28 11:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

C言語は、歴史ある言語ですし、コンピュータを学ぶためには、一番良いと思います。
有名なLinuxのOS部分は、大半はC言語で書かれており、コンピュータのベースとなるハードウェアを
操るためには、C言語を使うのが良いと思います。

C言語を学び、ハードウェアに強くなると、就職や転職をする場合、自分のスキルとして
ハードウェアとソフトウェアを両方知っていますと宣言できると思います。
また、IT企業やWeb系の企業では、あまり利用されていないと思いますが、処理を高速化する場合等、
ハードウェアに頼ることも多いと思います。その場合も、ハードウェアに強いというのは、利点となると思います。

投稿2021/03/28 07:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

最初のスーパーコンピュータといわれるCray-1の性能は、160MFLOPS(1秒間に1億6000万回の浮動小数点演算が行なえる)でしたが、クロックは80MHzでした。メモリは8MByte搭載できたようです。
そういう時代には、性能を出すためにC言語のようなプログラミング言語が多くの分野で必要とされていました。

現在のスマホのCPUは2GHz以上で動いていますし、マルチコアですので、Cray-1の100倍程度のスピードです。メモリもCray-1の1000倍程度あります。
Pythonなどで書く、性能はC言語の数十分の一になるものも多いですが、ハードウェアの性能向上で性能が問題になることはあまりありません。

そのため、現在では、極端な高性能を必要とするスーパーコンピュータ、コスト重視の組み込みコンピュータ、OSや言語処理系(C/C++コンパイラやPythonとかRubyとかの処理系)を開発するのでなければ、C言語の必要性はまずありません。

他の方も言われているように、そういう分野に進むのでなければ他の便利な言語を覚えている方がずっと役に立つでしょう。

投稿2021/03/28 06:46

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問