• 締切済み

C言語学習について

大学4年生で研究室に配属されています。プログラムをする学科にいますが、あまりプログラムを作れません。 C言語の文法書を読んだり、サンプルプログラムを見たりしてはいます。独学はなかなか難しいです。 特にC言語でつくりたいものもありません。 C言語を使えるようになりたいのですがどうしたらいいでしょうか。C言語のいろいろな本を借りたり見たりはしています。実際に作った方が身につくとは思うのですが。サンプルプログラムを打つのも飽きてしまいます。 C++とかJAVAとかありますが、C言語しか使ったことがないのですが気になります。 近くにプログラムを教えてくれるような教室もありません。 助言お願いします。

  • Psan
  • お礼率48% (29/60)

みんなの回答

  • nobe
  • ベストアンサー率66% (59/89)
回答No.7

こんにちは。 ソフト業界で働く者です。 役に立たないかもしれない経験談ですが参考になれば幸いです。 まず上達のコツは、 人様の作った高度なプログラムを修正したり するとスキルは格段に上がります。 野球の下手な友達とキャッチボールをしても 上手くならないのと一緒です。 私の時代の人たちは 今ほど書籍やソフトがありませんでしたので 皆、独学で覚えました。 自分の場合ですと、 参考書代わりにgnuという団体 ◆linuxで有名です、gccとかgpp もそうですね。  →http://www.gnu.org/ で配布されるソース付のいろんなプログラムを 貰ってきたりしてパソコンに移植したりしました。 ソースを解析しながら修正するのでプログラミングや 手法を学ぶには一石二鳥です。 また作ったソフトが気に入らなければそこを自分で 治せるのでとても重宝します。 さらに、参考書と違って解説が無い分、 自分で解析してプログラムを作った人の意図を 把握する必要があるので思考力が付きます。 また解析をして日本語でコメントを入れてゆくのも 方法です。 ご存知と思いますが、gnuのプログラムは一般的に 国外の人がつくったプログラムがほとんどです。 これらを見ていると、海外の皆さんは 脳ミソの構造が違うのだと実感できます。 近頃の参考書に載っているプログラムを 見て思うのは、日本人の作るプログラムは未だに お粗末なものが多いということです。 これではスキルは身につきません。 洋モノもあるのですが日本人好みの選定がされて 販売されているのでやっぱりお粗末です。 つまり、本場のプログラムを見ることが一番 近道だということです。 いきなり敷居の高い挑戦ですが、このぐらいでないと 多分覚えないだろうと思います。 せっかく覚えるのですから変な日本人癖のついた プログラミングより世界で通用するプログラムを 作れるようになりましょう。 私は現場でつくづくそう思っています。 話は変わって、C++についてですが C++はCのサブセットですので、 拡張であって別言語ではありません。 言語としてはCと同じものです。 『オブジェクト指向プログラミング』という考え方を 取り入れただけものですね。 Javaもそうです。 基本的に同じですので まずはCに慣れたほうが、という人が多いですが 私は、最初から覚えたほうが良いだろうと思っています。 その理由のひとつに、 C++はオブジェクト指向でないという人がいます。 つまりC++は使い手によって如何様にもなる幅の広い 言語なわけですがこういう人が居る背景には、まだ、 Javaのように規制されていないとオブジェクト指向を 認知すらできない人が多いと言うことなのです。 それぐらい「オブジェクト指向」は難しいとされて きましたが、そもそもが、従来の考え方に囚われすぎて いるために彼らには理解できないのです。 よって今の若い世代の人が 積極的に、我々にとって新しいオブジェクト指向を 取り入れることによってオブジェクト指向 という考え方を取り入れていくべきだと思っているのです。 もうひとつの理由には、 今はC言語が主流ですがこれから段々と消えつつある言語です。 私の時代にアセンブラが主流でいまや誰も使わないのと同じです。 Javaなどは元々機器組み込み用のネィティブな言語ですので そのうちアセンブラなどに取って代わりC言語も使わなく なるでしょうね。 将来Javaをやるならやっぱりオブジェクト指向を 先に知っておいたほうが良いでしょう。 プログラミング自体はコツをつかめば誰でも 出来ます。 裏を返せばプログラムより設計主案や手法が 大切で、オブジェクト指向とは 正しく設計手法を実態化するプログラミングなのです。 もし興味を持ったら調べてみてください。 興味が無くなったらごめんなさい(泣)。

  • domi_rb
  • ベストアンサー率39% (60/152)
回答No.6

#1で回答したdomi_rbです。 Psanさんは、「ACM」はご存知でしょうか? 私は、大学時代、このプログラミングコンテストを受けていました。これは、万国で行われるもので、英語の出題となりますが、世界レベルの人たちと戦うことができます。 ここの問題は、シンプル且つ難題もあります。 挑戦する価値はあります。 以下に、過去の問題のURLを記載しますので、 解いてみてください! ちなみに、時間制限も本番ではありますので、自分で時間を決めて試験してみるのも良いかもしれません。 がんばってください!

参考URL:
http://www.lab2.kuis.kyoto-u.ac.jp/~yanagis/acmicpc/past/index.html
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.5

言葉足らずでした。 >VC++はC++のクラスについて、ある程度わかっている人でなければ >意味もわからずプログラミングすることになります。 はMFCを使って、GUIをプログラミングする場合を意味したつもりです。 普通のコンソールアプリなら、どのコンパイラでもあまり変わりません。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

>c++やJAVAの方が面白そうに思います。 独学はなかなか難しいです。 C++をマスターするということは包括的にCの知識も必須だと私は思います。 あとC/C++を教えてくれる塾なんて聞かないですよ。基本的には独学です。 もし院に進む気であれば研究員としてCは欲しいスキルですし 独学で勉強できなければプログラム言語自体も進化しつづけるわけですし 取り残され結局挫折します。特に研究機関はUNIXがメインなので Cを扱えない人ってまずいません。 あといきなりVC++はお勧めしません。 VC++はC++のクラスについて、ある程度わかっている人でなければ 意味もわからずプログラミングすることになります。 自分の研究のテーマに関係する計算については 電卓やエクセルはやめてすべてCで行ってみては?

Psan
質問者

お礼

研究室ではwindowsをつかってるので、visual c++でc言語をつくってます。

回答No.3

大抵の人は書かなきゃ覚えないですよ。 参考書とか見るひまがあったらひたすら打つしかないでしょう。 覚えたいけど、勉強はいやだっていうわがままな君には ぜひゲームやツールを作る事を勧めます。 人間は楽しい事や楽する事が大好きですから夢中になって打つと思います。 Windows環境ならVC++でブロック崩しが推奨です。 CUIとかJavaなら五目並べとかオセロなど簡単ですよ。 慣れてきたらツールでもつくって..

Psan
質問者

お礼

やっぱ自分でなにかCで書いて作った方がいいですよね。

  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.2

>>特にC言語でつくりたいものもありません。 作るテーマがあると身に付くのが早いんですけど・・ >>C++とかJAVAとかありますが、C言語しか使ったことがないのですが気になります。 Cをマスターすれば差ほど大きな障害なく入れるはずです。 テーマを作ってコーディングすることが早道ですね。

Psan
質問者

お礼

何かテーマが欲しいですね。研究室でやらされることは面白くありません。

  • domi_rb
  • ベストアンサー率39% (60/152)
回答No.1

こんにちわ。 IT関係の仕事に就いている者です。 PC言語は、実践にならないと、なかなか身につかないものだと、就職してから感じています。ですので、Psanさんのお気持ち、よくわかります。 まず、C言語の開発環境があることに感謝しましょう。環境がなかったら、開発さえできませんからね。 >サンプルプログラムを打つのも飽きてしまいます そうですね、打つだけでは、飽きてしまいますよね。 私が持っている本の中に、C実践プログラミングというのがあります。分厚い本で、牛の絵が表紙です。オラリージャパンという会社から出版されています。こちらの本は、解説しながら、問題も出ています。 「このような結果を出すには、どのようなプログラムを書けばいいか?」というような感じです。 難易度は、少し高めですが、C言語を学習した大学4年生ならば、大丈夫でしょう!! 正直言って、今は、オブジェクト指向がはやってきているので、JAVAの勉強もお勧め致しますが、C言語を身につけたいと思ったら、問題を解いてみてください。もし、問題が足りないようでしたら、私から問題を数問出してもOKですよ(笑) 私もC言語がパーフェクトなわけではありませんが、必要に迫られたほうが身につくと思います。問題集のようなものもでていますので、TRYしてみてください! C言語のスペシャリストを目指してがんばってくださいねー!

Psan
質問者

お礼

C実践プログラミングは最近買いました。研究室ではC言語を使っているのでC言語を勉強するつもりですが、c++やJAVAの方が面白そうに思います。 何か問題を出していただければありがたいです。あとwebを使って調べたりもします。

関連するQ&A

  • C言語の学習について

    私は、PC初心者なのですが、C言語を独学で勉強しようと思っています。 初心者向けで易しい本はありますか。 教えてください。

  • C言語でのファイルの作成について(超初心者です)

    C言語を独学で勉強しています。 のちのち、C++も使えるようにと思い、ソフトも購入し使っています。 本(C言語のみ)などを見てサンプルプログラムを入力して実行はできるのですが、 フォルダとファイルの関係が全くわかりません。 1つサンプルプログラムを作るごとにフォルダを作成して 実行を繰り返しているのですが、 本当にそうしないといけないのでしょうか? 例えば、2つ以上のファイルを使ったプログラムは どうしたらいいのでしょうか? 超初心者なので コンパイルした後にできるファイルの意味も よくわかりません。 うまく説明できないのですが、このあたりのファイルの流れと意味を わかりやすく教えてもらえませんか? また こうした方がいいというものがあれば教えてください。 よろしくお願いします。

  • C言語って何に使うの??

    僕は中2で、C言語を独学で学んでいるのですが、よく考えるとC言語って何に使うんですか?? 本に書いてあるのは簡単な計算や石取りゲームなどの実用的ではない物です。 どんなことに使っていますか?

  • プログラム言語の文法を覚えた後?

    プログラム言語で何を作っていいか、どう始めればいいかわかりません。 PHP、javascriptの本を読み(java、cなども) 文法やオブジェクト指向の概念は ある程度勉強しました。 実際、本のサンプルを発展させて データベースも使って家計簿や 動的サイト(ajaxなども使い)を作りました。 ただ、現状はそれ以外のものは どう作っていいかが全くわかりません。 PHPではwebサイト構築が主ですが 例えばC言語ならPHPで出来ない、 カーナビやゲーム、家電など 日常のありとあらゆるものが作れると聞きます。 プログラムのお作法は、 ある程度身に付いたとは思いますが いざ、じゃあカーナビを 作ってみようと思って作れるかと言えば 業務レベルの出来栄えでなくても現実は出来ません。 カーナビは端末など プログラム以外に機材がいると思うので 機材がいらないPC内で動くソフトウェア (レジューム付ダウンロードツールなど)でさえ どう作り始めればいいか見当がつきません。 ネットで検索するにしても 何を調べればいいか ワードもわかりません。 言語を習得した後の、 どう作る?という次のステップで止まっています。 詳しい方おられましたらよろしくお願いします。

  • ゲーム作りたいがC言語かJAVAか迷う。

    私は将来、ゲーム・デザイナーになりたくて、プログラミングの勉強をしたいと思っています。それに向けて、学習するべき言語というのはCなのかJAVAなのかでまよっているのです。よくプログラミング言語など似たようなところがあり、ひとつの言語を身につければ他の言語も身につきやすいともいいますが、なるべく効率的に学んでいきたいですし、一番使用されることの多い言語を選びたいです。私が作りたいのは携帯電話用の比較的簡単なゲームでなく、ある程度大掛かりなというか、本格的なゲームを開発してみたいという思いがあります。これは特殊な例かもしれませんが、例えばコンピュータ将棋のプログラムなどではほとんどC、C++で開発されています。JAVAなどで作成されたソフトは見かけませんでした。やはり、JAVAの利点もあるでしょうが、結局、一番普遍的なというか、汎用性のあるプログラミング言語としてはC言語を選択するのが最良の策かなと考えています。これは妥当な筋道なのかとお尋ねしたく質問させていただきました。

  • directxとC言語?

    大学の研究で制御の勉強をしています。 そこでジョイスティックを用いて研究をすることになり、そのプログラムを組むことになりました。 といっても、作るプログラムは、「ジョイスティックの動きに合わせて画面上の点が動く。」といった簡単なものでいいようです。 それで、DirectxとC言語でプログラムを組むことになったのですが、研究室にお金が無く、開発環境については全て無料で済ませたいのですが、可能でしょうか? もし可能なら参考になる本や、ホームページなど教えていただくと幸いです。

  • C言語の入門書について

    やさしいCという本を中古(1800円)で購入したんですが、C言語の学習を始めるにはこれだけで十分でしょうか? 今もう一冊よさげな本を中古本屋で見つけてどうしようか考え中です その本は10日でおぼえるC言語入門教室という本で、 http://www.seshop.com/detail.asp?pid=4912 サンプルのソースコードがたくさんあって、詳しい説明というより作りながら雰囲気を覚えて行くという感じのようです やさしいCが詳しい説明という感じなのであわせて読むといいのかなーと思うんですがどうでしょうか? ちなみに10日で覚える気はなくじっくり覚えていこうと思っています 付属のCDに魅力は感じないので中古でも問題ありません 1500円で売ってるんですが買ったほうがいいでしょうか?

  • C言語のステップアップ

    これまで、C言語、C++、Rubyの勉強をしてきて、だいたい200~300行ぐらいのプログラムは組めるようになりました。C言語で、これ以上の技術を身につけたいのですが、どのようにすれば良いでしょうか?オススメの方法とか、本とか、サイトとかあったら教えて下さい。お願いします。

  • 解きながら覚えるC言語 の次の教材

    こんにちは。 文系出身の社会人1年目の組み込み系システム開発のプログラマです。(来年度社会人2年目) 新人研修をパスし、四月頭からお客様先にてLinuxのファイル管理等を行ってきました。 今、未稼働になり言語の未修得に不安を覚えた為、 BorlandC++を使用し、 柴田望洋著の"解きながら覚えるC言語"を独学でやっています。 そろそろ上記の教材をマスターするので、ステップアップできる教材を 探しているのですが・・・何か良い教材はないでしょうか。 本来ならば、柴田望洋著の"新版 明解C言語 中級編 明解C言語シリーズ "に移行すべきでしょうが・・ 懸念点がありまして足踏み状態です。懸念点を記載します。 (下記の懸念点は、あくまでも個人的な観点であり、著書を批判しているわけではございません。) <懸念点> "解きながら覚えるC言語" のサンプルプログラムが要所要所でコンパイルエラーになる。 ⇒良書だと思って勉強したけれど ・・・独学の身である私には、 発生したコンパイルエラーに数日間躓きました(涙 "続編である中急編もそんな仕様であれば、購入を検討する" と考えています。 <教材に求めるもの> ・応用力をつけられる本 (例:カレンダー作成 等) ⇒もし今後C言語の案件がきたときに、きちんとC言語でプログラムを組める力がほしい。 基礎をマスターしたばかりの私には、"どんなプログラムを組みたいか" なんて・・・案が思い浮かばない。 ・掲載されているサンプルプログラムにコンパイルを通るものを使用し ている本 本当に困っている状況ですので、批判・中傷はご容赦願います。 以上 先輩方のご教授の程 宜しくお願いいたします。

  • C言語の勉強

    私は現在情報系の大学に通っていてC言語を学んでいます。そして一般的な文法、アルゴリズムの勉強が終わったところです。 次なる課題としてC++またはjava言語のどちらかを勉強しようと思っているのですが、どちらがいいでしょうか? 実際にIT業界で働いている方の意見が聞きたいです。よろしければご回答お願いします。