C言語から学ぶ、楽しいプログラミング入門編

#初めに

この記事では、**C言語**を例として
**"プログラミングはとても楽しいもの！"**
ということを主張していきます。


まずは私の**プログラミング歴**を紹介します。

|年|言語|学習目的|
|:---|:---|:---|
|2017|C言語|学校の実習|
|2018|C++|興味本位|

**2017年**に**大学生**になり、そこで初めて
**"C言語"**を学び始めました！

その後、**C言語**の楽しさを知り、
**C++**へのめり込んでいきました。

では、レッツゴー！

#新しい言語を学ぶ時、本選びが１番大事

私がいいたいのはこれです。

**本**は、**先生**です。

**先生**って、
>この**先生**の授業は**楽しくてわかりやすい**けど、
>あっちの**先生**は授業が**つまらなくてわかりにくい**よね。

のように人それぞれ好みがあります。

私の場合は、**頭が悪い**ので
文章を読んでもなかなか理解が出来ません。
**本を読むのが苦手な人がいきなり文章だらけの入門書を読んでも**
**やる気が起きにくいと思います。**
**それが挫折につながってきます。**

ですが、本を読まないと知識は増えません。
じゃあ、どうすれば良いのか

簡単です。
**絵が沢山書いてある本を読めばよいのです。**

**かいけつゾロリ**が好きな子供が多いのも、
絵があるので**どんな場面**なのかわかりやすいし、
**絵があると楽しく読めるんですよ！**

つまり、**絵が沢山ある入門書を読むことで"楽しくわかりやすく"学ぶことが出来ます。**

#C言語を挫折する前にこれを読もう

###[Cの絵本](https://www.amazon.co.jp/s/?ie=UTF8&keywords=c%E3%81%AE%E7%B5%B5%E6%9C%AC&index=aps&jp-ad-ap=0&tag=googhydr-22&ref=pd_sl_806su4mtsm_e&adgrpid=53612150779&hvpone=&hvptwo=&hvadid=289157022451&hvpos=1t1&hvnetw=g&hvrand=1765744484484941727&hvqmt=e&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009293&hvtargid=kwd-333711456691)

[![BK-479815038X_3L.jpg](https://qiita-image-store.s3.amazonaws.com/0/213065/61156394-8fdd-6bbc-ff9c-25737becfd9f.jpeg)](https://www.amazon.co.jp/s/?ie=UTF8&keywords=c%E3%81%AE%E7%B5%B5%E6%9C%AC&index=aps&jp-ad-ap=0&tag=googhydr-22&ref=pd_sl_806su4mtsm_e&adgrpid=53612150779&hvpone=&hvptwo=&hvadid=289157022451&hvpos=1t1&hvnetw=g&hvrand=1765744484484941727&hvqmt=e&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009293&hvtargid=kwd-333711456691)

私の**大好きな"絵本シリーズ"**です。

私は**分厚い入門書**が嫌いです。
**出てくるのは知らない用語ばかりで全くわからない！**
**イメージ図がないとどんなものなのか全く分からない！**

**変数は箱である。**という例えが嫌いな人もいると思いますが、
私は好きです。なぜなら**変数**というわけがわからないものを
**イメージ**出来るようになると**変数という概念**の理解をとても助けてくれるからです。

**イメージ戦法**によって私は**C言語**の
**変数**を理解し、
**関数**を理解し、
**構造体**を理解し、
**ポインタ**を理解したのです。

理解できれば後は楽勝です。
他言語にも対応できます。

**理解できずに挫折していく……それを助けてくれるのが"絵本"なんです。**

#C言語の良いところ

ちなみに私は、
**初心者に初めてのプログラミング言語としてC言語をオススメすることに賛成です。**

こんな私でも**C言語の基礎を理解**できましたし……。

**C言語**の文法は**とても簡潔**なので、理解も**比較的簡単**だと思います。
それに**標準ライブラリ**も少ないので
覚えることが少ないです。

どうしてもわからない場合は**"絵本"を読んで処理手順をイメージ出来るようになりましょう。**

余談ですが、**C++**なんて覚えることが多すぎて半端ないです……。

また、**"C言語"**は簡単に**"バッファオーバーフロー"**を起こせるので、
**プログラミング言語の危険な部分**を学ぶことが出来ますし、
**最近のプログラミング言語**が、いかに**安全な設計**をされているのか理解することもできます。

私は何回起こしたかわからないくらいに**バッファオーバーフロー**を起こしました。
そのおかげで今は**安全設計**を意識してコードを書くようになりました。

#このプログラミングの世界で楽しいことを見つけよう

**プログラミング言語**を**楽しく勉強する**ためには
もちろん**"やってみたいこと"**が必要です。

**やりたいことがない人**よりも、**やりたいことがある人**のほうが
**成長が速くなります。**

私は**プログラミング言語でゲームが作りたい！**
と思いました。

**C言語**を学ぶと、ゲームを作れるようにもなれるんです！
そこで私は[以下のサイト](https://dixq.net/g/)で学び始めたおかげで
楽しく**プログラミング**を学ぶことが出来ました。

###[新・C言語 ～ゲームプログラミングの館～](https://dixq.net/g/)

**[このサイト](https://dixq.net/g/)**では**C言語**を使ってどうやって**ゲーム**が作れるのか
**丁寧かつわかりやすく**記載されています。

私は**["このサイト"](https://dixq.net/g/)**と**["Cの絵本"](https://www.amazon.co.jp/s/?ie=UTF8&keywords=c%E3%81%AE%E7%B5%B5%E6%9C%AC&index=aps&jp-ad-ap=0&tag=googhydr-22&ref=pd_sl_806su4mtsm_e&adgrpid=53612150779&hvpone=&hvptwo=&hvadid=289157022451&hvpos=1t1&hvnetw=g&hvrand=1765744484484941727&hvqmt=e&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009293&hvtargid=kwd-333711456691)**を並行して学習した結果、
**プログラミング言語**を理解でき、**楽しみながら知識を身に着けていきました。**

勉強して1年以上経ち、今では**このようなソフト**を作ることが出来るようになりました！
![dxsuku.png](https://qiita-image-store.s3.amazonaws.com/0/213065/8627084b-5deb-cfb9-4700-d683242a7bf5.png)


#最後に

最初に学ぶ**プログラミング言語**はなんだっていいんです。
学びたい**プログラミング言語の参考書**を買う際は
###**1. 自分に理解できる内容であるか。**
###**2. 持続して学習したくなるような要素は入っているか。**

このポイントを意識して**本を買ってみてはいかがでしょうか。**