みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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言語初心者が学び始めるにあたって力強い書籍、サイトなど
ありましたら教えてください。

よろしくお願い致します。

投稿日時 - 2013-03-01 15:22:35

QNo.7970702

すぐに回答ほしいです

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

こんにちは


>某国立大理学部数学科の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系の調査には便利です。

投稿日時 - 2013-03-03 11:34:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.8

Google に就職したいということならば、まず、自分が『PCやネットを使って実現したいもの』を
『どんどん発想できる』という能力が必要です。

プログラム技術は、それを実現できる程度あればよいということです。

Google に就職したいなら学校の勉強なんかに頼らずに、やりたいこと・実現したいことを
どんどんを思いついて、それをプログラムで組むことを目標に、プログラムの技術を磨くことを
お勧めします。
(当然、思いついたことに基づいて、必要な技術を洗い出し、本なりWebなりを片っ端から
調べることから始めます。)

たぶん、そんなことを始めたら、友達と遊ぶ間もなくプログラミングに没頭するしかない
でしょうが、Googleに行くようなプログラム技術は、かなりの時間を割かないと
身につかないと思いますよ。
(まぁ、あなたがプログラムの天才級の才能の持ち主だったら別ですが…)

投稿日時 - 2013-03-03 09:50:31

ANo.7

何から学べばいいかと言えば、自分で調べる方法じゃないですかね。
入門書も学習の手引きも腐るほどあります。
周辺技術にしたってそうです、インターネットは初期はそういう技術者が作って使ってたものなので情報だけは山ほどあります。

んでアルゴリズムにわざわざカッコを付けてるのは、まだ自分のものにできてないと言う事ですよね。
googleに就職、というのがなければ別にいいですけど理系でそれはだいぶ弱い気がします。

アルゴリズムってのはあくまでやり方の事なのでコンピュータによらないものです。
数学科とかならそれこそ工学系より得意なイメージがありますけどね。

まずは、とりあえず動かして見るとかが一つ。
本で体型的に学ぶのも並行でやる。
アルゴリズムの基本も抑える、ソートとかくらいは組めるように、そこから先はお好みで。

なれると言う意味ではもっとライトなものをやってみてもいいかもしれません。

プロセッサの動作についてまで必要かは分かりませんが、googleの中の人にはそこら辺精通してる人はもちろんいますし、勉強するなら基礎的な部分は大きいです。
私は基本情報処理とかで出る程度の問題は悩まず解けるのですが、技術系の職場では自慢にもなりません。その上にgoogle様がいるわけです。
まあ、全然違う分野の人材でも活躍できそうなイメージはありますけどね。

どっちにしろ、もうちょっと自分で調べる方がいいんじゃないかなぁと言うのは感想としてあります。
cは枯れてるので入門位なら図書館でもできます。amazonの評価を見てもいいわけですし。

投稿日時 - 2013-03-02 10:02:40

ANo.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

です。
以上簡単ですが、ご参考までに。

投稿日時 - 2013-03-02 08:57:59

ANo.5

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

つまりここで聞いているようではアウトです。

投稿日時 - 2013-03-01 21:15:33

ANo.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

投稿日時 - 2013-03-01 19:21:13

ANo.3

将来googleに就職したいとのこと。頑張ってください。

講義内容を拝見しました。
1から15のうち12までが基礎的な内容、それ以降は応用のようですね。でも15まで真面目に講義を受けて理解できたとしても社会に出て即通用するようには思えません。つまりC言語の文法書の半分位の内容かなという感じがするわけです。

googleに入社する時点で言語においてどれほどの知識が必要なのか私はわかりませんが、少なくともプログラマとして一般のソフトウェア関連の企業に就職した場合1から12の知識では即戦力にはなりません。多分入社後1~2年実践で鍛えられてやっと一人前という感じではないでしょうか?

記載の講義は単位をとるためにとりあえずやるとして、それでは十分とは思えませんから、それとは別にC言語の文法を一通り全て理解する積りで個人的に勉強した方が良いのかなという気がしました。つまり講義が15まで行った段階で個人的にはそれを追い越してC言語の文法を100%知っているという感じです。

色々と手を広げず、まずは文法をしっかりやってみてはいかがでしょうか。アルゴリズムの実現には文法を理解していることが必要でしょ?

その後自分で数ヶ月かかるであろう課題を設定してそれを何が何でも完成させるべく実践すれば実力がついてくると思います。例えば、JPEGのコーデックの作成とかQRコードのコーデックの作成とかはいかがでしょうか。

投稿日時 - 2013-03-01 18:52:41

ANo.2

C言語の勉強なら、そのコンパイラで十分です。

またそのソフトを作られた方のサイトでも勉強出来ますので、
http://9cguide.appspot.com/
見てみては。

とりあえず、習うより慣れろです。頑張ってください。

投稿日時 - 2013-03-01 18:34:18

ANo.1

Windows7をそのまま使われるのでしたら、コンパイラには、MinGWをお勧めします。無償でダウンロードできます。MinGWは、GCCコンパイラのWindows移植版なので、使用者も多くサポートを得られやすいです。Visual C++は、C言語の勉強には適していないと思います。コマンドラインからコンパイルしても有用なメッセージが殆ど出ないし、GUIから使うと正当なプログラムにもエラーが出ます(これはこれで正しいのですが、標準のC言語でないものを使わされるということです)。VC++にはバグが多くて...という開発者もいます。
BorlandC++Compiler5.5というのも無償ですが、インストール後の設定でつまずくと思います。

勉強の仕方は、「C言語 入門」等のキーワードで検索すればいくらでもヒットするので、ご自身で良いと思われるものを探してください。コンピュータ言語は言葉で伝えられるものでもなく、自分でプログラムをタイプして、コンパイル、実行するしかピンと着ません。ウェブサイトにはサンプルプログラムがいくらでもありますので、自分でタイプして実行してください。

エディタには、メモ帳が使えますが、機能が貧弱なので、適当なフリーウェア等を使用してください。

OSに、Linuxを使えば、適切なエディタやGCCコンパイラが最初からインストールできるので、便利ですね。

投稿日時 - 2013-03-01 17:46:50

あなたにオススメの質問