- ベストアンサー
C言語を好きになりたいのでメリットなどを教えてください!
学校でC言語の授業があることや、私が狙っている国家資格でC言語の問題が出ることなどから、Cを深く学びたいと思います。 春休みなんでちょうど勉強どきなんです。 しかし、C言語がうまくなるとどういうことが起きるのかよくわかりません。 C言語がうまくなると何が作れたりするんでしょうか? C言語は素晴らしいのでなんでも作れる・・・でしょうか?笑 まあとりあえず、要は私にC言語を好きにさせてみてくださいということです。 よろしくお願いいたします!
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
VB…????謎だ。Officeとの連携が強いという意味でのメリット…?うーん、なるほど。プログラマとしては決してVBなんてオススメしたくないけれど、「好きにさせる」という観点ではそれも悪くないかもしれない。 要するにプログラミングが役に立ったり、面白かったりすれば「好き」になれますよね。Excel・Wordとの連携に強いVBAを使えると、仕事に役立つ定型処理とかもできるようになり、直に作業効率に影響してくるでしょう。そうすると仕事早いし同僚にも自慢できるしで、役に立つこと尽くし(笑)。それくらいにVBAを使えるようになりたいと思えば、プログラミングも好きになれるんじゃないですかね? で、C言語に戻す。C言語でも基本的に同じです。ちゃんと使えるようになれば、簡単な定型処理ぐらいなら自分で書けるようになります(あまりCが定型処理を書くのに向いているとは思えないが、それはまた別の話)。それに学校で学ぶということは、今から勉強しておけばプログラミングにおいて他の生徒よりも大分advantageを取れますよね。そしたら少し友達に教えたりとかできるかもしれません。で、優越感にひたr…ごほん。 ダメだ、邪な考えしか浮かばないorz でも結構プログラミングできない(てかやりもせず拒絶反応を示している)人は多いので、ある程度できるだけでも実際advantageになるんじゃないでせうか。 で、目標のことですが、「四則演算の式を計算する」とかどうでしょう?普通の電卓は数・演算子を交互に入力しますが、そうではなく"1+6/3"のような式を入力したら、それを計算してくれるようなものです。非常に目標としても具体的で分かりやすいですし、基礎知識もまんべんなく必要とします。まぁ最初の課題として難しすぎるかもしれませんが…。 あまり説得力のない文章でしたが…。参考になれば幸い。では。
その他の回答 (9)
- junkUser
- ベストアンサー率56% (218/384)
中級プログラマを目指すのであればCのメリットはほとんど享受できないと思いますが… とりあえず参考URLに速度比較に関するブログがあります。 Cが最も高速で、メモリ使用量を少なく記述できるという結果ですね。 まあ、C言語最強ってことで。 (アセンブラを除く) プログラミングを学ぶのであれば、言語そのものよりアルゴリズムを理解する方が重要です。 学校の授業や試験では、ステートメントの誤りを指摘する問題はほとんどなく、アルゴリズムを問う問題のほうが多いはずです。
お礼
目指すなら上級を目指したほうがよさそうですか。 まあ、中級程度あたりまでいく頃にはすっかりCが好きになっちゃってて、自然と上級を目指す人間になっていた、という流れになってくれればうれしいですね笑 わかりました、アルゴリズムの勉強のことも考えてみますね。 回答ありがとうございます!
- S117
- ベストアンサー率40% (18/45)
なぜCが学校の授業で取り上げられたり、資格試験で使われるのかを説明してみます。 まず、Cはそれ自身はずいぶんと古い言語です。しかし、当時は実行効率や生産性のバランスがよく、また応用範囲の広さ(組み込み機器からサーバーなど、OSからアプリケーションまで)から大きく普及しました。また、後発の言語の多くはCを参考にしています。(参考のwikipediaのCのページにはCの影響を受けた言語が載っています) また、それらの言語はさらにほかの言語に影響を与えました。 学習の面においてはCは古い言語であるために、学ぶべき概念が後発言語よりも少なく、一方で基本的な考え方であれば十分に学ぶことができます。このために学習が容易という面があります。(マスターするとなると難易度はずいぶん上がりますが) 資格試験で使用されるのは、Cを理解できる技術者は多いことが期待できるためです。また、先述の通り基本的な考え方はCで表現可能なために、問題作成の題材として適しています。 以上から、Cの学習に対するメリットは ・プログラミングの基礎的なことが学習できる。 ・Cの影響を受けた多くの言語で学習が容易になる。 ・資格試験でよく使われるので有利。 ということになります。なお、実用面としては組み込み機器やOSなどのハードウェアよりのプログラミング、複数の言語間での連携のためのインターフェース、後発言語では速度面で問題が出る場合の高速化のために利用されることが多いでしょう。 一方で一定規模以上のアプリケーションや、ツールなどをさくさく作りたい場合にはあまり向いていません。しかし、これらのために後発言語を利用する際にも、Cの知識は無駄になりません。 Cで何でもできるとまではいえませんが、Cができれば何でもできるようになれるでしょう。
お礼
なるほどー。 プログラムの基礎的なことがわかるようになるというのはいいですね。 Cの知識が他のことをするにあたって無駄にならないのですね。わかりました。 回答ありがとうございます!
- zwi
- ベストアンサー率56% (730/1282)
C言語で何が作れますかって所にポイントを置いて答えます。 ・OS(オペレーティングシステム) WindowsOSやLinuxOSやMacOSなどパソコンで動く大半のOSはC言語で作られいます(最近はC++言語の部分もありますが)。 ・コンパイラ C言語自体のコンパイラもC言語で書かれています。 ・Windowsで動いている大半のソフト。 市販やフリーソフトも含めて大半はC言語で開発されています(最近はC++言語も多いです)。 ・携帯電話などの機能。HDDレコーダーなども同様。 携帯電話の機能もC言語やC++言語で組まれています。 ・WEBサーバ。 あなたが見ているホームページを表示する機能を提供しているWEBサーバーのシステム自体はC言語で書かれています。その上に乗っかる形でJAVA言語やPHP言語などが動いています。 ・ゲーム機のゲームやWindowsゲーム。 これもC言語かC++言語で書かれています。 こう書くと世の中のIT系の大半がC言語かC++言語で動いているように見えますが、実際には色々な言語で動いていること書き添えておきます。
お礼
携帯なんかに組み込めるものなんですね。 OSやゲームなど作るレベルになってくると相当ハイレベルなあたりに行かないといけなさそうですね。 でも参考になりました。 回答ありがとうございます!
- Alice022
- ベストアンサー率37% (3/8)
私は、勉強中の身の新米プログラマーなので、C言語をokajunさんに好きになって貰える程の回答は書けませんが…。 C言語は、だいたいのプログラム言語のベースと言われています。 なので、C言語を覚えていると、だいたいの言語へも入り易いらしいです。 あとは、言語のジャンルから、C言語の開発というのは結構多い方であると思いますので、「C言語がバリバリできます!」となると、IT系でPG、SE募集であれば、採用されやすいかもしれません。かもですが…。 ただ、C言語というのは、極めても、極めても奥が深く、実践と勉強では結構違いがあります。 C言語ができれば、何でも作れるかと言えば、スキルを極めていけば、果てなく、結構、何でもできると思います。 モノづくりが好きな方なら結構楽しいと思いますよ!
お礼
>新米プログラマーなので、C言語をokajunさんに好きになって貰える程の回答は書けませんが いえいえとんでもない、十分参考になります。 非常にありがたい回答です。 C言語はわかっているとやはり会社で役立ちそうですね。 回答ありがとうございます!
RPGのダンジョンにたとえると、それぞれこんなタイプにお勧めのようです。 Basic : 一直線に目的地点を目指す。寄り道しないと見つからない宝箱には目もくれない C : 隅々まで探索し、宝箱は全て見つけ出す Basicでもプログラムは組めますし、習得もCより簡単といわれています。さらにVBしか知らなくてもプログラマで食っていけます。 でもCに強くなると、ソフトウエア、ひいてはコンピュータ全般についてより深く理解できるようになると思います。アドレスの概念とか。 理解が深まれば、よりいっそう面白く感じるでしょう?
お礼
>Cに強くなると、ソフトウエア、ひいてはコンピュータ全般についてより深く理解できるようになると思います。アドレスの概念とか。 おお、そうなんですね。 そういうアドバイス待ってました。 その一言だけで「C大好き!!今から超がんばれるぜ!!」となったわけではありませんが、そういう一言でやる気は確実に増えるんです。 No.2さんのような考え方をしている方がこの回答や私のお礼を読むことを願います。 アドバイスありがとうございます!
- shikaruni
- ベストアンサー率20% (19/95)
私なら、実用的なもの?とりあえず家計簿とか…。 あなたは、どういうのに興味があるんですかね? ゲームを作るとか、 (アプリ関連) ロボットを動かすとか、 (組み込み系)
お礼
私はぶっちゃけゲームにもロボットにも関心がなく、それ以前にCが世の中でどのように使われているか全く知らないのです。 しかし家計簿がつくれるといいですね。 簡単な家計簿なら私でもチャレンジのしがいはありそうです。 回答ありがとうございます!
- shikaruni
- ベストアンサー率20% (19/95)
まず、何を作りたいかを決めたらいいんじゃないでしょうか? 目指すところがあって、勉強して、その結果、面白いとかの判断ができるのでは? 何、作りましょう?
お礼
そうですね。作るプログラムがあると目標になりますよね。 ただ、私は初心者ですので、いきなり「本格的なゲームが作りたい」というわけにもいきません。 ですから簡単に「2つの数値を入力して、その積を求めたい」といった(さすがにこの例は簡単ですからわかりますが)程度の、実生活に無関係(というか役立たない?)レベルの目標から設定しないといけませんよね。 だからどういう目標をたてればいいのかがわからないんです。 しかし、言われてみれば、「C言語の初心者入門の教科書をマスターする」という目標を今思いつきました。 結構いいかもしれませんね。 回答ありがとうございます!
- asuncion
- ベストアンサー率33% (2127/6289)
>質問者さん 人に好きにさせてもらう、という受け身の形では、 結局好きにはなれないでしょう。 >#1さん なぜCよりVBなのか、の根拠が薄弱です。 興味がある話ですので、具体的に説明していただけますか?
お礼
>人に好きにさせてもらう、という受け身の形では、 >結局好きにはなれないでしょう。 はい、そのような回答がくることも予想していましたし、自分でもそう思っている部分はあります。 しかし、受け身でも好きになれる可能性はあると思います。 人間が何かを好きになるのは、結局つまるところ誰かの影響を受けてますよね? 私は趣味で楽器を演奏していますが、それは好きなアーティストがかっこよく楽器演奏をしていた影響です。 これは「アーティストに楽器を好きにさせてもらった」という受け身になるのではないですか? それに、「結局好きにはなれないでしょう。」という結論が正しいとするならば、私にはCの勉強をあきらめろということでしょうか。 世間は子供たちに対し、学校の勉強をがんばれと叱咤激励します。 だから私は、好きな科目はもちろん頑張りますが、興味のない科目も、これから興味を持とう!とポジティブに考えているんです。 それなのに、「好きにはなれない」という考えで一蹴されてしまっては、私にはもう「嫌々勉強をやる」という選択肢しか残されていないのでしょうか・・・。 それは悲しいことだと思います。。
- orangezzzz
- ベストアンサー率35% (401/1119)
こんにちは。 愕然とさせる回答ですが、メリットを考えるならCよりVBですよ。
お礼
あー。そういう回答くるかもとは思ってましたがきましたね^^; 極端な話、メリットを考えるならプログラミングをやるより自分がもっと興味あることをやったほうがいいんですが。 ただ質問で述べた通りCは「学校の授業」+「資格の問題」で必要なので、Cが好きになりたいんです。 別にCで食べていけるほど極めようとは思いません。 将来ちょっとしたことで役立てばいいな、という程度です。 仕事(IT系企業目指してるので)に応用したりとか。 中級者程度を目指している、といったところでしょうか。 まあそのような感じで、どうにかCにやる気を持ちたいので…。 よろしくお願いいたします。
お礼
いや、説得力ないことないですよ。非常に参考になります。 他の友達に教えることで優越感にひたれることって、邪な考えだとユーモアを含めて自虐的に仰っていますが、真面目な話すると、そういうのって重要なポイントだと思うんですよね。 人間、他より優れていたいっていうのは基本的な欲求だと思います。 ていうか、ぶっちゃけ、その一言でかなりやる気でてきた気がします笑 あと、「やりもせず拒絶反応を示している人は多い」というのも正解ですね。 私のクラスでも、そういう人が大半を示しています。 私はそんな人があふれているなか、孤軍奮闘して「Cを好きになって頑張ってやろう!」とポジティブに考えているのに、「好きになれるわけない」と怒られてはたまりませんよ・・・。 優越感のためにCをがんばる・・・はい、邪道です!でもいいです!笑 アドバイスありがとうございます!