Harry World!!

カナダ留学(バンクーバー・トロント)と海外就職を目指す人のための情報、クラウドソーシングサイトやネットショップの活用方法などを初心者向けに解説するブログ。

プログラミング

文系SEが教えるプログラミング初心者向けC言語入門書など4冊

投稿日:2017年12月3日 更新日:

こんにちは、トロントでWebデベロッパーとして働くハリーです。

Webデベロッパーになる前は組込み系プログラマだった僕。最近、日本人の友達から「C言語を勉強してみたいんだけどどうやって始めればいい?」と聞かれたので、初心者向けの学習書と勉強法をちょっとだけ紹介しようと思います。

理系出身者には突っ込まれると思いますが、コンピュータ知識0の文系視点のラインナップとなっております。

ネットよりも書籍から入るのがおすすめ

まず、プログラミングの勉強を始めようと思った人は、きっと「C言語 入門」なんかでググったことでしょう。

それっぽいサイト、たくさん出てきますよね。確かに分かりやすく説明しているサイトはたくさんあります。入門書なんて買わなくてもぶっちゃけ勉強できちゃいます。

しかし、あえてプログラミングは入門書で勉強することをおすすめします。理由は本の方が教える質が圧倒的に高いからです。

書籍の方が質が高い

本を出版するってサイトを立ち上げるのと比べたら難易度が雲泥の差です。デザインセンスなんかは置いておいて、サイトは少しWebの知識があるだけで誰でも作れちゃいます。しかし本を出版するとなるとそうはいきません!

まず著者のバックグラウンドがしっかりしています。当たり前ですが、前提として技術を教えられる実力のある人に執筆が依頼されます。それに引き替え、サイトの製作者ってどこのだれだか分からないことも多いですよね。書籍であれば著者の学歴や業界での実績、その他の出版物などをちゃんと確認することができます。

また著者の書いた原稿も出版社の担当者によって入念に校正されることになります。プロのイラストレータに頼んで分かりやすい図も入れられます。そうしてたくさんのプロのチェックが入って、世の中に売れる本が作られます。

出版されたあともたくさん売れれば増版され、売れなければ絶版となります。

悪本は淘汰され、良本だけが生き残っていくのです!結果、一個人が作ったWebサイトと比べて大変質の高いものになります。

身銭を切って学ぶ

もう一つの理由はお金をかけて本を買うことで、学習意欲が湧くという点です。せっかくお金を払ったんだから勉強しないと!って思いますよね。技術は身銭を切って初めて身につくものだと思います。

コンピュータとは何かを知る

まずコンピュータとは何かを学ぶことがプログラミングを理解する近道です。

例えば車の運転を学ぶ時、エンジンとは何かを知らなければどうしてアクセルを踏むと車が動くのか理解できないですよね。

プログラミングの入門書を開くと必ず

CPUが演算処理を行います

と書いてあります。この「演算」とは何か、「CPU」とは何かを、今まで全くコンピュータの中身について考えたことのない人向けに、分かりやすく説明した本がこちら。

「BLOODY MONDAY」は天才ハッカーの高校生が主人公の漫画ですが、こちらはその派生本。漫画の内容は全然知らなくてもOK!

例えばCPUは日本語で「中央演算装置」といいます。パソコンの中に入っているすごく小さな部品の一つにしか過ぎないのに、なぜこんな仰々しい名前がついているのでしょうか。それは昔、CPUが部屋と同じくらい大きい装置だったからなんです!

開発された初期のコンピュータはそれは巨大でした。建物まるごと1軒分コンピュータ、のような時代です。建物の中にはCPUは置かれる部屋が存在して、中央演算室と呼ばれたのだとか。

ハッキングの本と銘打ってありますが、実際はハッキング技術など全く載っていなくて、コンピュータの中身と歴史に関する内容となっています。歴史に関してはある程度知識のある人でもおもわず「へぇー」、とうなる面白い内容満載です。

まずはこちらで今から勉強する内容について軽く肩慣らし。

絵本と侮るなかれ

少しC言語の学習に入っていきます。この絵本シリーズ(C言語だけでなくいろいろな言語の入門書が出ています)、絵本と侮るなかれプログラミングの基本の「き」を学ぶにはとっても良い入門書となっています。

さすがにこの本を読んだからと言ってC言語でプログラムが書けるようにはなりませんが、この本のあとで文法を学べば効率よく吸収することができます。

例えばいきなり

char str[10];

と書かれてている文法書を見ても、よほど理解力がある人じゃない限り「char型の10バイトの配列を定義した」「スタック領域に10バイトのメモリを確保した」ということをすぐに理解できる初心者はいないでしょう。

他にもメモリの概念を箱、データを箱に入れるアイテムとして説明するのはよくある説明ですが、それらを大変分かりやすくイラストで説明されています。「難しいことは文章ではなく絵で説明する」というやり方が、特に文系からプログラムを学ぶ人には適しているでしょう。

まずは文法を知ろう

いよいよC言語のソースコードをどのように書いていくか、具体的にその文法を学びます。文法の良い入門書はたくさん出回っていますが、僕が使ったのはこちら。

たぶんこの本を読んで分からなければ、他の本を読んでも理解できないんじゃないかと思います。その時はだれか近くのSE、プログラマに聞いた方が早いです。

C言語の書き方を勉強したら自分で書いたプログラムを動かしてみたくなりますよね。この本を読みながら実際に自分でソースコードを書いて実行してみましょう。

やり方はいろいろあるんですけど、普通は自分のパソコンで実行するためにはいろいろと準備が必要なので、てっとり早く試すならこのサイトがおすすめです。ちょっと動作が重いこともあるけど、ブラウザ上で自分の書いたプログラムがどう動くかを確認できます。

ideone.com

ちなみにこちらがideone.comで「Hello World!!」を出力したところ(このブログのタイトル、Harry World!!の元ネタです)。この文字列を出力することがプログラミング学習の第一歩。

プログラムが動くワケ

なぜプログラムが動くのか、あなたが.exeファイルをダブルクリックした時にパソコンが一体何をやっているのかを理解できるようになりましょう。

実際に自分でプログラムを書くようになると、この本が語っている「プログラムは、メモリーにロードされ、CPUによって解釈・実行されます」という意味が理解できるようになるかと思います。

こちらは第1版がVBで説明されていて、第2版がC言語に代えられているそうなので第2版がおすすめ。

初心者にとっては分かりやすくはないのですが、IT業界で働くなら知っておくべき内容です。

正直、文系SE、プログラマはなぜプログラムが動くのかを理解せずにソースを書いている人もたくさんいます。そんななんちゃってSE、プログラマにならないようにするための一冊。

まとめ

自分でC言語を勉強してみたいって人はこの4冊を読めば、ある程度プログラムが書けるようになると思います!

僕が勉強を始めたころまず勧められたのが「プログラムはなぜ動くのか」と「やさしいC」。この順で勉強したんですが、もっと単純なところから理解する必要があると感じたので、あとから買い足した本のうち役に立ったのが上で紹介した2冊です。

参考になれば幸いです。







-プログラミング
-, , , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

C言語プログラマが調べたJavaのオーバーロード

Contents1 オーバーロードって何?2 何が便利?3 定義時の注意点4 その他のポイント オーバーロードって何? 異なるパラメータの同名メソッドを定義できる機能 何が便利? ・「機能は同じだけど …

文系合格者が教える応用情報処理試験(AP)に受かる学習法

こんにちは、トロントでWebデベロッパーとして働いているハリーです。 今回はIT技術者向けの記事です。前回はIT技術者の登竜門、基本情報処理試験の学習方法について書きました。 文系でも学習期間1ヶ月で …

C言語プログラマが調べたJavaの配列について

目下、Javaを勉強中なので備忘録…C言語ができる人目線で書いてます。 Javaの配列はオブジェクトであるというのがポイント(たぶんここさえ押さえればOK)。あとで詳しく補足する。 Contents1 …

java初心者が調べたC言語との違い(備忘録)

組込みを7年、つまりC言語を7年やってきたけど、最近javaの勉強を始めたのでいろいろとメモっとく。 Contents1 C言語とjavaの違い1.1 オブジェクト指向か手続き型か1.2 インタープリ …

文系でも学習期間1ヶ月で基本情報処理試験(FE)に一発合格した学習法

こんにちは、トロントでWebデベロッパーとして働いているハリーです。 今回はIT技術者向けの記事です。今年の秋の情報処理試験、みなさんどうでしたか?IT技術者の登竜門、基本情報処理試験の学習方法につい …