C言語を学ぶための初心者向けアドバイス

このQ&Aのポイント
  • C言語の学習方法や必要な知識についてまとめました。
  • C言語の授業スケジュールや到達目標について説明します。
  • C言語を学び始めるための書籍やサイトについての情報をお伝えします。
回答を見る
  • ベストアンサー

C言語を始めようと考えている者です

某国立大理学部数学科の1回生です 4月から2回生の講義でC言語の講義があります。 以下がその内容となります 授業の到達目標 (1) 2進整数の計算、浮動小数点数の計算ができる。 (2) コンピュータが計算を行う基本的な仕組みがわかる。 (3) (2)の内容を実際にC言語で確認できる。 (4) C言語で簡単な数学の問題を解くプログラムを書くことができる。 授業スケジュール 講義  1. 計算と計算機の歴史  2. 2進整数の計算  3. 補数の考え方  4. 浮動小数点数の計算  5. 基本的なデータ型  6. プログラムの条件分岐構造  7. 中間試験  8. プログラムの繰り返し構造I  9. プログラムの繰り返し構造II 10. 配列I 11. 配列II 12. 関数 13. 素数に関する問題を解くプログラム 14. 微積分に関する問題を解くプログラム 15. 学期末試験とその解説 僕は今まで全くC言語プログラミングをしたことがありません。 他の言語も同様です。 http://www.forest.impress.co.jp/library/software/gakucgengo/ このサイトに出ている文法を学ぶことができる開発環境はダウンロードしました。 卒業後はgoogleに就職したいので今のうちからC言語は学んでおきたいのですが 先ず、何を学べばよいのかわかりません… 「アルゴリズム」や、「コンピュータの計算の仕組み」などを学ぶ必要もあると思うのですが 何から手を付ければよいのでしょうか? 考えが煮詰まってしまっています。アドバイスなどお願い致します。 因みに、現在用いているOSはwindows7です。 もしよろしければ、C言語初心者が学び始めるにあたって力強い書籍、サイトなど ありましたら教えてください。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

こんにちは >某国立大理学部数学科の1回生です スゴ~い、私は某私立大学理学部物理学科中退の30回生です。 >卒業後はgoogleに就職したいので 私の聞いた話では、googleに就職するには「英語」の能力が非常に重要視されているみたいです。 未確認情報ですので、sin_cermonsさんご自身でそのあたりは調査してください。 プログラミングは、a_kwn さんが記入されているように、学校の授業より、サイトで学習しながら、どんどん実現したいことをプログラムすることが一番いいと思います。そのようにするのは楽しくプログラムできますね。 楽しい→脳が働く→技能が高まる。 学校の授業の場合は、なんか、いらないことをわざわざ時間をかけて教えたりしますね。 私も在学中に、たしか「FORTRAN」とかいうのを習ったような気がしますが、スゴ~くつまらない授業でした。 つまらない→脳が働かない→技能が低下 それと、学校って実践ではなにも役に立たないことを教えますね。 なぜでしょうかね~? ninoueさんが載せていますが、下記は調査には必須のサイトだと思います。 http://www.atmarkit.co.jp/ http://itpro.nikkeibp.co.jp/index.html http://codezine.jp/←ここはCはあまりありませんが、Web系の調査には便利です。

その他の回答 (8)

  • a_kwn
  • ベストアンサー率34% (8/23)
回答No.8

Google に就職したいということならば、まず、自分が『PCやネットを使って実現したいもの』を 『どんどん発想できる』という能力が必要です。 プログラム技術は、それを実現できる程度あればよいということです。 Google に就職したいなら学校の勉強なんかに頼らずに、やりたいこと・実現したいことを どんどんを思いついて、それをプログラムで組むことを目標に、プログラムの技術を磨くことを お勧めします。 (当然、思いついたことに基づいて、必要な技術を洗い出し、本なりWebなりを片っ端から 調べることから始めます。) たぶん、そんなことを始めたら、友達と遊ぶ間もなくプログラミングに没頭するしかない でしょうが、Googleに行くようなプログラム技術は、かなりの時間を割かないと 身につかないと思いますよ。 (まぁ、あなたがプログラムの天才級の才能の持ち主だったら別ですが…)

  • k_kota
  • ベストアンサー率19% (434/2186)
回答No.7

何から学べばいいかと言えば、自分で調べる方法じゃないですかね。 入門書も学習の手引きも腐るほどあります。 周辺技術にしたってそうです、インターネットは初期はそういう技術者が作って使ってたものなので情報だけは山ほどあります。 んでアルゴリズムにわざわざカッコを付けてるのは、まだ自分のものにできてないと言う事ですよね。 googleに就職、というのがなければ別にいいですけど理系でそれはだいぶ弱い気がします。 アルゴリズムってのはあくまでやり方の事なのでコンピュータによらないものです。 数学科とかならそれこそ工学系より得意なイメージがありますけどね。 まずは、とりあえず動かして見るとかが一つ。 本で体型的に学ぶのも並行でやる。 アルゴリズムの基本も抑える、ソートとかくらいは組めるように、そこから先はお好みで。 なれると言う意味ではもっとライトなものをやってみてもいいかもしれません。 プロセッサの動作についてまで必要かは分かりませんが、googleの中の人にはそこら辺精通してる人はもちろんいますし、勉強するなら基礎的な部分は大きいです。 私は基本情報処理とかで出る程度の問題は悩まず解けるのですが、技術系の職場では自慢にもなりません。その上にgoogle様がいるわけです。 まあ、全然違う分野の人材でも活躍できそうなイメージはありますけどね。 どっちにしろ、もうちょっと自分で調べる方がいいんじゃないかなぁと言うのは感想としてあります。 cは枯れてるので入門位なら図書館でもできます。amazonの評価を見てもいいわけですし。

回答No.6

はじめまして。 C言語を6年以上学んできたものです。 だいたいのC言語の学生時代の進捗具合としては、 コンパイルと実行環境の構築 →コーディング作法の習得 →素数を求めるアルゴリズムの習得 →ソートアルゴリズムの習得 →検索アルゴリズムの習得 →最短経路問題の解決 →最適化アルゴリズムの解決 →VisualStudioにて実務的な作法の習得 →C++におけるオブジェクト指向の習得 といった流れで4年ほど経過しました。 C言語といってもC,C++,VC,組み込み系のCなど、 いろいろありますが、まずはVCでなくCだと思います。 表面的にC言語を勉強されている方は、 半年間で習得するものかもしれませんが、 実際に深くC言語を習得するには、最低2年はかかると思います。 特にPointer,Objective指向は若干難しい部分もあります。 また、GoogleはCに類似したGoという言語を出しています。 おそらくGoogleさん的には今後Goという言語を用いて、 自社内の開発に当たる可能性が高いので、Goも少しだけ 読んでおくことをオススメします。 また、参考になる書籍とページとしては、 書籍:明解C言語 柴田望洋 著 ページ:C言語何でも掲示板 http://dixq.net/forum/viewforum.php?f=3&sid=d43a197c39ca629537debe7af286e4db です。 以上簡単ですが、ご参考までに。

回答No.5

>卒業後はgoogleに就職したいので プログラム自体は普通の人なら3ヶ月か半年くらいでマスターできます。 googleに入るような人なら1ヶ月位でしょう。 ということはgoogle当たりだと採用するスキルに入りません。 それよりりも解らない課題を人に聞かず独創的手法で解決する能力の方が重要になります。 つまりここで聞いているようではアウトです。

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.4

次等を参照下さい。 http://okwave.jp/qa/q7398476.html 情報関連の参考書について http://www.mindviewinc.com/Index.php このサイトではC,C++,Java等の言語についての詳しい解説書が公開されています。 数学ライブラリ等では次が充実しています。 http://www.nr.com/ http://www.nr.com/oldverswitcher.html エディタでは秀丸がお勧めです。 フルバージョンがお試し用としてダウンロード使用可能です。 http://www.forest.impress.co.jp/library/software/hidemaru/ サポートフォーラムやユーザー作成のマクロ等も充実しています。 数百MBオーダーのファイルアクセス、サーチ、旧版とのファイル同士の比較などが簡単に出来ます。 http://www.maruo.co.jp/hidesoft/ http://hide.maruo.co.jp/lib/macro/index.html

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.3

将来googleに就職したいとのこと。頑張ってください。 講義内容を拝見しました。 1から15のうち12までが基礎的な内容、それ以降は応用のようですね。でも15まで真面目に講義を受けて理解できたとしても社会に出て即通用するようには思えません。つまりC言語の文法書の半分位の内容かなという感じがするわけです。 googleに入社する時点で言語においてどれほどの知識が必要なのか私はわかりませんが、少なくともプログラマとして一般のソフトウェア関連の企業に就職した場合1から12の知識では即戦力にはなりません。多分入社後1~2年実践で鍛えられてやっと一人前という感じではないでしょうか? 記載の講義は単位をとるためにとりあえずやるとして、それでは十分とは思えませんから、それとは別にC言語の文法を一通り全て理解する積りで個人的に勉強した方が良いのかなという気がしました。つまり講義が15まで行った段階で個人的にはそれを追い越してC言語の文法を100%知っているという感じです。 色々と手を広げず、まずは文法をしっかりやってみてはいかがでしょうか。アルゴリズムの実現には文法を理解していることが必要でしょ? その後自分で数ヶ月かかるであろう課題を設定してそれを何が何でも完成させるべく実践すれば実力がついてくると思います。例えば、JPEGのコーデックの作成とかQRコードのコーデックの作成とかはいかがでしょうか。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.2

C言語の勉強なら、そのコンパイラで十分です。 またそのソフトを作られた方のサイトでも勉強出来ますので、 http://9cguide.appspot.com/ 見てみては。 とりあえず、習うより慣れろです。頑張ってください。

  • shsst14
  • ベストアンサー率40% (38/94)
回答No.1

Windows7をそのまま使われるのでしたら、コンパイラには、MinGWをお勧めします。無償でダウンロードできます。MinGWは、GCCコンパイラのWindows移植版なので、使用者も多くサポートを得られやすいです。Visual C++は、C言語の勉強には適していないと思います。コマンドラインからコンパイルしても有用なメッセージが殆ど出ないし、GUIから使うと正当なプログラムにもエラーが出ます(これはこれで正しいのですが、標準のC言語でないものを使わされるということです)。VC++にはバグが多くて...という開発者もいます。 BorlandC++Compiler5.5というのも無償ですが、インストール後の設定でつまずくと思います。 勉強の仕方は、「C言語 入門」等のキーワードで検索すればいくらでもヒットするので、ご自身で良いと思われるものを探してください。コンピュータ言語は言葉で伝えられるものでもなく、自分でプログラムをタイプして、コンパイル、実行するしかピンと着ません。ウェブサイトにはサンプルプログラムがいくらでもありますので、自分でタイプして実行してください。 エディタには、メモ帳が使えますが、機能が貧弱なので、適当なフリーウェア等を使用してください。 OSに、Linuxを使えば、適切なエディタやGCCコンパイラが最初からインストールできるので、便利ですね。

関連するQ&A

  • ★C言語の問題です★

    C言語のプログラムの問題なんですが、どなたか以下の問題の1問でも解ける方がいればご回答おねがいします! または、アドバイスだけでもいいのでよろしくお願いします。 【問題】 1 西暦1868年から2007年までの年号を入力して和暦に変更して出力するプログ  ラムを作成するプログラム。  例 入力 1868  出力 明治元年       2007     平成19年 2 整数配列が-32768から32767の範囲の数しか扱えないとしたとき、10桁の整数同士  の足し算を行うプログラム。 3 3桁の整数の値を入力していき、-9999が入力されたところで、それまでに入力  された数の個数と合計を整数で、平均を浮動小数点数で出力するプログラム。 4 3つの文字列”Happy”と“New”と“Year”をつないで1つの文字列として出力する  プログラム。 5 学籍番号、氏名、出席からなる10人分のデータがある。出席の悪いものから並び替  えて表示するプログラム。  例  CA180002 山田太郎 70  CA170001 山田次郎 60  データは、適当なものを使います。

  • C言語で

    C言語で複素行列の和と積を計算するプログラムを作りたいのですが、 よくわからないので教えてほしいです。複素数を構造体で定義して、配列を使えば いいと思うのですが・・・。 ちなみに実数の行列の和と積を求めるプログラムはわかっています。

  • C言語について

    倍精度の浮動小数点で与えられる4点の座標(x1,y1),(x2,y2),(x3,y3),(x4,y4)を入力して、その4点が頂点になる四角形の面積を算出して表示するプログラムをC言語を用いて書くとどういうプログラムをつくればいいのでしょうかm(__)m

  • C言語の書き方

    倍精度の浮動小数点で与えられる4点の座標(x1,y1),(x2,y2),(x3,y3),(x4,y4)を入力して、その4点が頂点になる四角形の面積を算出して表示するプログラムのC言語での書き方を教えて下さいm(__)m

  • データ型について

    VBに限ったことではないのですが、 データ型には、短整数型、整数型、長整数型、単精度浮動小数点数型、倍精度浮動小数点数型といろいろな型がありますが、 整数を扱うなら長整数型、小数も含めて扱うなら倍精度浮動小数点数型 を使えば良いと思うのですが、それにより桁数の小さな短整数型、整数型とかは何のためにあるのでしょうか? あまり大きな値を扱わないときにそちらの型を選ぶメリットは何なのでしょうか?

  • C言語イプシロン値

    現在使用中の開発環境(C言語使用)標準ヘッダfloat.hに単精度浮動小数点数イプシロン値が下記のように定義されています。 #define  FLT_EPSILON   0x8p-26F 「0x8p-26F」なる表現を初めて見たのですが、これはどういう意味で、具体的にどんな数字になるのでしょう? ご存じの方、教えてくださいませ。 よろしくお願いします。

  • C言語のプログラムについて質問です。

    C言語のプログラムについて伺いたいことがあるんですが5人くらいの名前、数学、英語、国語の点数を入力して各教科の最高点、最低点、平均点、それぞれの数+英+国の合計点を表示するプログラムを構造体を使って作りたいと思っています。 もしよろしければ事細かに教えていただけないでしょうか。 よろしくお願いします。

  • C言語で。。。。。

    C言語のプログラミングの勉強をしているのですが、 5.4のような小数点以下ありの数値の整数値を表示させる関数ってありますか??ネットを探してみてもよく分からなくて困っています(><)よろしくお願いします。

  • C言語初心者です。

    C言語初めて壁にぶち当たりました。下の問題がとけません。よろしくお願いします。 標準入力から整数値を4個,int型の配列へ読み込んで,これかの値を大きい順に配列上で並び替え,出力するプログラムを作成してください。ただし,for文の2重ループを必ず使用してください。

  • 関数はあるがC言語で書けないプログラム

    数学的に関数はあるがC言語では書けないプログラムを 探しています。 関数自体は偶数か奇数(0以上の整数)を返す関数で しかしプログラムでは書けないというものです。 よろしくお願いします。

専門家に質問してみよう