- 独学でプログラミングを学んでいるけど理解が進んでいる感じがしない……
- プログラミングの基礎はなんとなく身に付いたけど土台が不安定な気がする……
- だけどどうすれば良いのか分からない……
今回は今現在プログラミングを独学で学んでいるものの、このような悩みをお持ちという方に向けて、プログラミングやIT技術への理解を深めるためのおすすめの学習方法をお伝えします。
この記事を読むことで、現在プログラミング学習で成長できないと感じている方も次のステップへ進むことができるようになります。
僕自身、独学で3年ほどプログラミングと向き合っていますが、
今回の学習方法を取り入れることでIT技術への理解をさらに深めることができ、結果的に安定感を持ってプログラミングできるようになりました。
結論から申し上げますと、おすすめの学習方法とは
システムの「裏側の仕組み」に関連する本をたくさん読む
というものです。
タイトルでも使用している裏側の仕組みとは、サーバーやネットワーク、データベースのことを指します。
それら「裏側の仕組み」に関連する本をたくさん読むことで、広く浅く様々な知識を身に付けることができます。
え、それだけ……?
と、思われた方もいるかもしれません。
しかし、「裏側の仕組み」を正しく知ることはプログラミングスキルを成長させるためには不可欠なのです。
もしかしたらあまりしっくり来ないという方もいるかもしれません。
僕もプログラミングを勉強し始めて最初の1年半ぐらいは言語の学習にばかり時間を費やしていました。
しかし、あるyoutube動画をキッカケに、「裏側の仕組み」をきちんと学ぶことがプログラミングスキルを成長させる上で重要であることを知り、言語以外のIT技術書を読むようになりました。
そのお陰でプログラミングにおける応用力が磨かれるようになり、初心者から次のステップへと進み始めたという手応えを感じました。
この記事では、「裏側の仕組み」に関する本を広く浅く読むべき根拠と具体的な内容をこれからお伝えしていきます。
ぜひ最後までお読みいただけると嬉しいです。
なお、今現在プログラミングの基礎を学習していて「出来るようになっている気がしない」という方には、僕自身がPHPを独学で習得するまでの学習過程をまとめたこちらの記事もオススメです!
なぜプログラミングスキルの成長を感じることができないのか?
プログラミングを独学で学んできて「成長を感じられない」という方は多いのではないでしょうか。
その原因の1つは
プログラミング以外における裏側の仕組みを理解していない・知らない
ことです。
恐らく、独学でプログラミングを学ばれている方の多くは、プログラミング言語の学習に多くの時間を割いてきているはずです。
しかし、サーバーやネットワーク、データベースと言った、周辺要素、裏側の仕組みに関する学習にはあまり力を入れていないのではないでしょうか?
それはまったくおかしな話ではなく、むしろプログラミングを習得することを目的として学習を開始したのであればごく当然のことです。
僕もしばらくそうでした!
しかし、基礎文法を学び、テキストの課題をこなすなど、ある一定の学習を終えると、次第に次はどんな学習をすれば良いのかが分からなくなり、自分のプログラミングスキルの成長が感じられにくくなってきます。
その根本的な原因の1つは、
裏側の仕組みに関する知識への理解が弱く、プログラミングへの理解が浅いこと
です。
システムはプログラムだけで動いているわけではない
普段はあまり意識しないかもしれませんが、アプリやソフトウェアというのはプログラムだけで動いているわけではありません。
例えば、PHPで開発されたWebアプリを例に挙げてみると、実際のシステムの動きはこのようになります。
- ユーザがブラウザ(クライアント)上で操作
- ブラウザ(クライアント)がサーバーへリクエストを送信
- サーバー側でApache(サーバーソフトウェアのひとつ)が動き、表示するファイルを用意したり、必要に応じてデータベースと連携を取る
- サーバーがブラウザ(クライアント)へリクエストを返す
このように、ただプログラムだけが動くのではなく、その他の仕組みと同時に連携を取ることで、システムというのは成立しています。
プログラムはあくまでもシステムに必要な機能を提供するための仕組みの1つ
実際には、プログラミング言語以外にもサーバーやデータベース、ネットワークといった周辺要素を組み合わせることで、システムが成り立っています。
他にもCPUやメモリなどのハードウェアもシステムに欠かせない要素の1つです!
「理解が進んでいる感じがしない」
「プログラミングができるようになっている気がしない」
と感じてしまう原因を解消するためには、これら周辺要素に関する知識・理解を1つ1つ埋めていく必要があります。
仕組みを知ることで「受け皿」を広げる
これは僕自身の実体験でもありますが、
裏側の仕組みに関する様々な知識を知ると、次第にIT技術への理解に厚みが出てきます。
さらに、新しい技術に触れたときの理解スピードが明らかに速くなりました。
この理由は2つあると考えています。
- 関連知識が蓄積され、新しい知識を覚えやすくなったため(連想記憶)
- プログラミングをする中でもちょこちょこ関連知識が要求されるため
人の記憶の方式のひとつに連想記憶というものがあります。
名前の通り「ひとつの手がかりを元にその他の関連する記憶を連想して思い出す」というもので、プログラミング学習においても周辺要素の知識を得ることで、相対的にその後の記憶力が向上したと考えられます。
また、プログラミングをしていると周辺要素の知識が要求される場合があります。
例えばWebアプリで言うとHTTPリクエスト(POSTやGETなど)を使用することになりますが、それを少し掘っていくとHTTPヘッダというものが見えてきます。
ここまで来るとプログラミングではなくプロトコルやネットワークの領域にもなってくるため、ただプログラミング言語の学習をしているだけの場合は中々イメージも湧きづらいでしょう。
しかし、元々それらの知識があることで、例えばPHPのheader関数(HTTPヘッダの設定を行うための関数)の扱いにも抵抗が無くなるなど、新しい要素へのハードルが劇的に下がります。
このように「裏側の仕組み」を知っておくことで技術への理解に厚みが出たり、学習効率が上がるなどの大きなメリットが得られます。
- 理解に厚みが出る=土台が安定してくる
- 学習効率が上がる
具体的な学習方法
ここまで、システムの「裏側の仕組み」を理解することの重要性をお伝えしてきました。
重要性は理解したけど、具体的にはどう勉強するのが良いの…?
その答えは実に簡単で、冒頭でもお伝えしたように
システムの「裏側の仕組み」に関連する本を広く浅く読む
を実践することです。
この「広く浅く」という点が特に重要です。
というのも、技術書には様々なレベルの本が存在します。
しかし、初めてその知識に触れる場合、自分に適していないレベルの本を読んでしまうと、時間がかかるばかりか理解も中々進みません。
また、インフラエンジニアを目指すのでなければ、その分野の深い知識は不要で、プログラミングスキルの向上を目的とした場合には全体像がなんとなく分かる程度で十分です。
したがって、まず実践するべきは
様々な分野の技術書を広く浅く読む
ことです。
広く浅く読むことでより多くの本に目を通す時間が確保できます。
それが様々な切り口の説明に触れる機会を増やすことに繋がり、結果的にその知識への理解がより具体的になっていくというメリットもあります。
具体的には、以下のポイントを踏まえて多読するのがオススメです。
- 初めて触れる分野なら入門者~初心者向けあたりの本を選ぶ
- できればイラストが多い本を選ぶ
- 1分野につき2~3冊ほど目を通す
- 読むときは、まず全体にザっと目を通してイメージを掴む
- それから頭から読み通す
注意点は、完璧に理解しようとせず、ザックリとイメージを掴む程度の理解を目指すことです。
まずは「ちょっとした読み物を読む」ぐらいの感覚で読んでみましょう!
各ジャンルのおすすめの本
上記の条件を満たす本の中でおすすめの書籍をいくつかご紹介します。
ぜひ参考にして頂けますと幸いです。
サーバー
図解まるわかり サーバーのしくみ
1冊目にご紹介させていただく図解まるわかり サーバーのしくみは、カラー仕様となっておりイラストも豊富なため、初心者の方でもサーバーの役割が理解しやすい構成になっています。
イラスト図解式 この一冊で全部わかるサーバーの基本 第2版
2冊目のイラスト図解式 この一冊で全部わかるサーバーの基本 第2版は1項目につき見開き1ページで、左側に説明、右側にイラストという構成になっている本です。
まずは右側のイラストページでイメージを掴み、左側の説明ページで具体的な理解を進めるという読み方ができるのがおすすめポイントです。
ちょっとした隙間時間にイラストページだけパラパラ見るという読み方をするだけでも充分イメージが掴めるため、僕が今回ご紹介している学習方法と相性が良いです。
ネットワーク
図解でよくわかる ネットワークの重要用語解説
ネットワークに登場する用語にはイメージが掴みづらいものも多いですが、図解でよくわかるネットワークの重要用語解説ではイラストをたくさん使用し、初心者や学生の方にも分かりやすく重要用語が解説されています。
初めてネットワークに触れる方でも仕組みのイメージが掴みやすいかと思います。
イラスト図解式 この一冊で全部わかるネットワークの基本
サーバーのときにも登場した「この一冊で全部わかるシリーズ」のネットワーク版です。こちらも見開き1ページでテキストによる説明とイラストによる図解があり、1つ1つの項目が勉強しやすい構成になっています。
こちらもサーバーの本と同じくパラパラ読む本として最適です。
データベース
データベースはご紹介できる本があまり無く、1冊のみとなります。
図解まるわかり データベースのしくみ
「図解まるわかりシリーズ」のデータベース版です。こちらも図解が豊富に使用されており、イメージを掴みながら読み進めることができます。
データベースの基礎知識に留まらず、データベースの操作方法やシステム設計、運用知識まで網羅的に解説されている本です。一見すると「ここまでの内容は不要」と思われるかもしれませんが、薄く広く知るという観点から考えると、幅広い知識が網羅的に解説されている点がおすすめポイントです。
セキュリティ
セキュリティ対策は、特にWebアプリを開発される方にとって必須の学習項目です。
もしWebアプリ開発を目標としてきたけどセキュリティはノータッチだったという方がいらっしゃるとしたら、本を読んで基礎知識を学ぶことを強くオススメします。
イラスト図解式 この一冊で全部わかるセキュリティの基本
「この一冊で全部わかるシリーズ」のセキュリティ版です。
こちらもサーバー、ネットワーク同様に見開き1ページでテキストによる解説とイラストによる図解があり、イメージが掴みやすく大変おすすめできます。
また、これまでセキュリティのことは勉強してこなかったという方にとっても非常に分かりやすく解説されている本となっています。
図解まるわかり セキュリティのしくみ
「図解まるわかりシリーズ」のセキュリティ版です。
イラストが豊富に使用されており、初めてセキュリティを学ぶ方にとってもイメージが付きやすい一冊です。
セキュリティの基本的な考え方から始まり、暗号・著名と言ったセキュリティの基礎知識に加えて、最後には法律・ルールに関する解説があります。
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
しかし、Webアプリ開発をされる方ならば一度は必ず目を通した方が良いと個人的に強く思っているため、この場でご紹介させて頂きます。
通称「徳丸本(とくまるぼん)」と呼ばれている、プログラム界隈で超有名な一冊です。
徳丸浩さんというWebセキュリティの第一人者の方が手掛けられた本で、こちらを読むことでWebアプリを開発する際に実装すべきセキュリティ対策方法が分かります。
サンプルコードを使用してかなり具体的に解説されており、プログラミング初心者の方にとっては難しいと感じる部分が多々あるかと思います。
しかし、いずれは目を通す必要性を感じるときが必ず来るため、手元に置いておくのも選択肢の1つだと思っています。
それぐらい強くオススメできる一冊です。
イラストが多く使用されている初学者方向けに絞ったのもあり、あまり多くはご紹介できませんでしたがご参考になれば幸いです!
より多くの本に目を通したいならKindle Unlimitedもあり
ここまでは紙ベースの本をご紹介してきましたが、「薄く広く」学ぶという点を考えると、より多くの本にササっと目を通すだけというのも有効な手段です。
その場合、AmazonのKindle Unlimitedを利用するというのも選択肢の1つです。
月額料金かかるじゃん…
とハードルを感じられるかと思います。
さらに言えば、正直言って前項でご紹介した本は、Kindle Unlimitedでは追加購入になってしまうものばかりです。
しかし、それでもKindle Unlimitedを検討する意義は大いにあると考えています。
理由は次の通りです。
- 1ヶ月間の無料お試し期間がある
- タイミングによっては3ヶ月99円キャンペーンを実施している
- 広く浅く学ぶだけならば無料期間の1ヶ月だけでも十分
- 無料登録後は解約手続きを予め済ませておけば課金されてしまう心配もない
- 仮に無料期間をはみ出しても、技術書を1冊読んだ時点で元が取れるため損にならない
このように、広く浅く学ぶことを目的としてKindle Unlimitedを利用するのであれば、経済的負担は無いと言っても過言ではありません。
仮に無料期間を過ぎてしまっても、技術書ならば月に1冊でも本を読めば元は取れる計算のため、普通に本を買うよりもむしろお得です。
注意点は、Kindle Unlimited対象外の本だと別途購入が必要になることです。
とはいえ、時期によってはKindle版が割引キャンペーン対象になっていたり、Amazonポイントの還元率が高いなどのメリットもありますので、Kindle Unlimitedを利用するのもひとつの手だと思います。
まとめ
最後にこの記事の内容をおさらいしましょう。
- プログラミングスキルが成長しないと感じる原因の1つは「『裏側の仕組み』を知らない」
- これを解消するためにはサーバーやネットワーク、データベースといった関連する様々な要素について広く浅く学ぶことが大切
- システムの「裏側の仕組み」を広く浅く学ぶことでIT技術への理解に厚みが出て、さらに学習効率も上がる
- 具体的な学習方法は、各ジャンルの本を広く浅く読むこと
- この学習方法はKindle Unlimitedと相性が良い
アプリやソフトウェアはプログラミング言語だけで成立しているわけではありません。
その他の様々な要素が連携を取ることで初めて1つのシステムとして稼働することができます。
したがって、プログラミングの基礎を学び、行き詰まりを感じているという方が次に取り組むべきは「裏側の仕組み」を理解することです。
そうすることでIT技術そのものへの理解の厚みが増し、次のステップへと進むことが可能となります。
この記事を参考に、ご自身にあった本が見つかったなら何よりです。
ここまでお読みいただきありがとうございました!
また別の記事でお会いできれば光栄です!