みんなのプログラミング学習方法

C言語を学ぶ必要はある?

「プログラミングを始めるならまずは、C言語からでしょ?」
って言葉をよく聞きます。

「何故C言語を学ぶのか?」
をプログラマの知人に聞いてみました。

C言語を学ぶ理由

c%e8%a8%80%e8%aa%9e
C言語は大学などの情報系学部であれば必ずといっていいほどカリキュラムに組み込まれています。

その理由はC言語を学ぶことでコンピュータ、ハードのことを意識するようになりますし、C言語がプログミング言語の基本ともいっていいのでプログラミング言語がどのようなものなのか、どういった文法をとっているのかを知るのにいい機会になるからです。

また、C言語については書籍も多数出ており、大学の講師のほとんどがC言語を経験していますので、一番勉強しやすい環境が整っているプログラミング言語のひとつとも言えます。

とりあえずまとめてみるとC言語を学ぶ理由は

  • C言語が多くのプログラミングの基本といっても過言ではない
  • 先輩が沢山いるので書籍・教えてくれる人が沢山いる
  • コンピュータ・ハードのことを意識できるので後々、そのスキルが役に立つ

という理由です。

C言語の勉強方法について

C言語などのプログラミング言語はソフトウェアなのですが、ハードウェアの構造について知っていないとわかりづらいところが出てきますのでハードウェア関連の本と並行しながら勉強するとより一層おもしろくなります。

情報とコンピュータ (IT Text―一般教育シリーズ)がソフトウェアとハードウェアについて書かれた初学者向けの本になります。

大学の授業などでは、おそらくサンプルのソースコードを実際に打ってみて、課題をとくという流れになっています。

独学でもそうなってくると思いますが、サンプルのコードを打っている時はまず1行1行記述している内容が何を意味しているのかを考えながら進めていくと良いと思います。

この作業はとてつもなく重要です。

プログラムの動きを把握していくことで、自分でも何も見ずにコードが書けるようになるからです。

この作業が終わったら、問題に取り組むのがおすすめです。
問題ばかりを扱った書籍や、入門書にも「やってみよう!」みたいな感じで問題が載せられている場合があります。
それらを解いていきます。

問題を考える時は、アルゴリズムをどのようにすればいいかを紙に書き出して、どのようにプログラムを書けばいいか考えるといいです。

ただ、これはめんどくさいし、難しいと感じるかもしれません。
でも大丈夫です。

最初はわからなくて当たり前なので、答えをみて1行1行何をしているのか理解していきましょう。
様々な文法が次々と出てきますが1つ1つ記述方法を理解していきましょう。

守破離について

%e3%83%9b%e3%82%99%e3%82%af%e3%82%b7%e3%83%b3%e3%82%af%e3%82%99%e6%8c%87%e5%b0%8e
私はプログラムの勉強は守破離が大切だと思っています。

これは武道などでの学ぶ方法らしいですが、まずは師匠の型をマネする、守る段階です。(守破離の「守」)

そして、徐々に改良して少しずつ師匠の型から離れていきます。(守破離の「破」)

そして、完全に離れて自分でできるようにする。自分の型をつくります。(守破離の「離」)

武道の学び方はプログラミング言語に通ずるものがあります。

まず最初にやるべきオススメの本を1冊紹介します。
「新板C言語プログラミングレッスン 入門編 著結城浩」です。

この本は語り口調になっていて、やわらかい内容になっていてわかりやすいです。

おすすめポイントとしてはプログラムの1行1行しっかり解説がのっているのでサンプルコードもしっかり理解できるところがいいです。

問題も掲載されていてやったところの理解確認ができるので、その点もオススメです。

C言語をやっていてまず難関となってくるのがポインタだと思います。
メモリについて学んでいくことになりますが、ここでつまづく人が多いです。

しかし、ここは飛ばしてはいけません。
かなり重要な内容でプログラムを書く際に多く利用するからです。

ここでの勉強法としてはまずはプログラムを書くのではなく、ポインタがなんなのか自分で説明できるまで教科書などをひたすら読んで下さい。そして、メモリの役割なども解説できるようになってください。

コンピュータアーキテクチャ入門 (Computer Science Library)

これがメモリなどの働きやハードウェアについて書かれた本になります。こちらも初学者向けなのですが、少々難しい内容になっています。

それができたら次に紹介する本を学んで下さい。
「C言語ポインタ完全制覇 標準プログラマーズライブラリ」

この本1冊でポインタについて書いてあります。

読んで理解すればポインタの役割、プログラムでの記述などわかってきます。
私のまわりでC言語を学んだ人の大半がこの本でポインタを学んでいます。

重要な本なので是非これは読んでおきたいです。

次は、これでC言語についてだいたいはわかったのですが、プログラミング言語の極意としては本を大量に読んでサンプルソースコードを自分のものにしてしまうことです。

まずは知って、それから組み合わせを考えるようにしていくのです。

なので、この2冊を読み終わり本について何を聞かれても解説できるようになったら、C言語の入門書を3冊くらいあとは適当に選んで読みまくってください。

これらの勉強は守破離の守の段階になります。

クリアしたら次から専門的に学んでいくことになります。徐々に学んできたことから離れるために破壊していきましょう。

「C実践プログラミング 著Steve Oualline」をやりましょう。

この出版社(オライリージャパン)のプログラミング言語の本はかなり使えます。
C言語を本格的に学ぶのであればここからやっていくことになります。

難しめの内容を題材にしているので読んで理解すれば力がつきます。
実際、この本をやってみると明らかにプログラムを書く姿勢が変わります。

プログラムを仕事で使おうと思っても、本を読むだけではよほどの才能がない限りビジネスに応用できません。

派遣会社なり、会社なり、大学なりで先輩や先生に聞いて応用していくことがプログラムで飯を食うための秘訣です。
本気になり知識を人から奪うのです。

英語も人と喋って学ぶのが一番いいように、プログラムも人に聞いてエラーの読み方であったり、アルゴリズムであったり、記述方法について学んでいく方が一番手っ取り早いです。
ここまでくれば、守破離の「離」です。

最後に

今回、紹介したのは非常にオーソドックスなC言語の勉強法であると個人的には思っています。
私の周りのプログラマもこの勉強法に納得してくれています。

レベルが高い人になるとリファレンスブックだけあればなんでもできるという感じになります。
正しく勉強をすればこの程度までのレベルは誰でもなることができるので、頑張って欲しいです。

聞くは一時の恥聞かぬは一生の恥

ここまで記事を読んでいただきありがとうございます。

ここまで記事を読んでくれたあなたは、プログラミングを勉強中、もしくはプログラミングの勉強を始めようと思っている方ではないでしょうか。

何か解決したい問題を持って当サイトに訪れたかもしれません。

当サイトの情報であなたの問題が解決できていれば、嬉しいですが、もし、解決できていない場合はteratailで質問してみませんか?

当サイトの情報であなたの問題が解決できてiれば、嬉しいですが、もし、解決できていない場合はteratailで質問してみませんか?

プログラミング学習で意外と大切な「質問力」

プログラミングはわからないことだらけ。

どんなにベテランプログラマーでもわからないことは多く、日々、わからないことを調べています。 むしろ調べている時間の方が長いときさえあります。

ただ、調べても欲しい情報がないときや、聞いた方が早いと感じた場合は、さっさと質問します。

さっさと質問をした方が良いと思っても、独学している方は難しいですよね。

そこでぜひ利用して欲しいのがteratailです。

プログラミングスキルを上達させるには

  • 自分の中のスキルのストック
  • 検索するスキル
  • 人に質問するスキル

が必要だと思っています。

人に質問するスキルはteratailで磨いてみませんか?解決も早いですし、かなり便利ですよ!

teratailで質問すると1時間以内に回答がつくこともあります。

私自身も何度か質問していますが、今の所24時間以内に回答がつかなかったことはありません。

簡単な質問ほどつきやすい気がします。

おそらく、答えられる人が多いからだと推測しています。

初学者にぴったりのサービスです。

Leave a reply

*
*
* (公開されません)

Return Top