Programming

【脱初心者】プログラミングが少し理解できた頃に読みたい本6選

投稿日:

学習を始めて、少し自分でもコードらしきものが書けるようになると、プログラミングはぐっと身近に面白く感じます。そんなときは、学習意欲も高まり、脳が「もっと情報をくれ!」という状態。

プログラミングの理解が少し進んだ段階でぜひ読んで欲しい本を紹介します。私もまだまだ学習中ですが、プログラミングへの理解と視野が広がりました。

プログラミングが少し理解できた頃に読みたい本6選

おすすめ書籍

  • リーダブルコード
  • Scratchで学ぶ プログラミングとアルゴリズムの基本
  • ユーザー要件を正しく実装へつなぐシステム設計のセオリー
  • 知識ゼロから学ぶソフトウェアテスト
  • プログラミングの基礎
  • IoTセキュリティ

プログラムが少し書けるようになると、次のステップとして以下のことが考えられます。私なりに学習してきた順で紹介したいと思います。

  1. 読みやすく、メンテナンスしやすいコードを書く
  2. アルゴリズム(よりよい計算方法など)を学ぶ
  3. システムの組み立て方(設計)を学ぶ
  4. ソフトウェアテスト方法を学ぶ
  5. マイコン(CPU)の中の処理を学ぶ
  6. セキュリティを学ぶ

下記で紹介する本は、プログラミングを始めたばかりの方には難解です。すこし自分でプログラムが書けるようになった段階で読むと、理解も早く、「そうだったのか」と納得できます。そうはいっても、何回も読まないとわからない内容もありますが、プロのプログラマーでなくとも、読みやすく、明快で安全なプログラムを書くために必要な知識を学べます。

リーダブルコード

この本では、プログラミングをする上での作法が体系的に学べます。言語を問わず、プログラムする上での命名ルールやコードの可読性を上げるための具体的なテクニックが書かれています。かなり実践的な内容になりますので、初心者というよりは初級者向けの内容です。

プログラムは「メンテナンスを引き継ぐ誰かの為に」「3か月後の自分の為に」読みやすく書くと良いと言われています。読みやすく書くテクニックは知らなければ書けません。一度目を通しておくだけでも、リーダブルコード(読みやすいコード)を意識できるようになります。

kindle(電子書籍)版が無いのが残念ですが、ぜひ手元に置いておきたい1冊です。

Scratchで学ぶ プログラミングとアルゴリズムの基本

私の息子にプログラミングを覚えさせようと購入した書籍です。Scratchという教育向け言語の解説書になりますが、アルゴリズムについての解説部分が非常にわかりやすいため、大人にも有効と思い紹介します。

アルゴリズムとは

問題を解決するための方法や手順のこと。問題解決の手続きを一般化するもので、プログラミングを作成する基礎となる。

引用:コトバンク

アルゴリズムはプログラミングするうえで避けて通れない考え方です。上記解説の通り「方法や手順」となりますので、手順によってはものすごく時間がかかるプログラムができたり、逆に一瞬で終わるような手順を考えたりできます。「同じ結果を生むプログラムでも、作者の考えた手順で速くも遅くもなる」ということです。

スピードを求めないプログラムにおいては、「動けばいい」ということになります。しかし、人に提供するようなプログラムではアルゴリズムは非常に大切です。当著では子供向けとあり、できるだけ優しい文章でかかれていますので、大人なら尚読みやすいはずです。私にはScratchプログラミングの部分は冗長でしたが、アルゴリズムの基本を学べた良い機会となりました。

ちなみに、子どもにこの本を渡しても理解できません。親(大人)が理解しながら一緒に学習していくような本となっています。

ユーザー要件を正しく実装へつなぐシステム設計のセオリー

プログラムは「誰がどんな使い方をし、どんな結果が得られるのが理想なのか」といったシステム全体を見通してプログラミングする必要があります。

当著は、システムの設計段階において、「どんなUI(ユーザーインターフェース:画面)が使いやすいのか、どういったデータ構造にしておくべきか」といった道筋を示してくれる本です。

リリースしたプログラムの使用に応じて、後から後からプログラムを改修するのではなく、設計段階で仕様と構造を決め込んでおくことの重要性が学べます。システム設計の普遍的な考え方が盛り込まれており、大きなシステムを作る場合でなくとも役に立ちます。

プログラムのデータ構造を後から変更することは容易ではありません。システムの正しい組み方と、その順序を確認する意味で、私もプロジェクト毎に読み返しては参考にしています。

特に一人で設計開発を担当することになったエンジニアにおすすめします。システム全体を俯瞰して考える癖がつきます。

知識ゼロから学ぶソフトウェアテスト

ソフトウェアテストとは、プログラムのバグや想定外の動きをリリース前に検出することです。

当著はテストの手法や考え方を紹介している本です。実際のテスト方法やプログラミング方法については詳しく書かれていません。ソフトウェアテストの初心者向けの内容で「なぜソフトウェアテストが必要なのか」「テストするにはどういった手法があるのか」が理解できます。「知識ゼロから」のタイトル通り、これからソフトウェアテストを学ぼうとしている方向けの書籍です。

また、ソフトウェアテストは完ぺきではないことも書かれています。どこまでテストすれば良いのか、といった見極め判断をつけるためにもよい書籍となっています。ソフトのリリース後にデバッグであたふたしないためにも、テストの手法は学んでおきたいですね。

プログラミングの基礎

当著は、プログラミングとは、といった章から始まり、コンピュータの仕組み、処理の内容、オブジェクトについての解説と内容が多岐に渡ります。初歩的な内容というよりはプログラムの成り立ちや仕組みを解説した基礎書籍になります。私が特に参考になったのが「プログラミングで書いたコードが、コンピュータ(CPU)の中では実際にどんな処理がされているのか」が理解できたことです。

コンピュータ内部の処理は、知らなくてもプログラミングはできます。しかし、「プログラムはなぜ動くのか」「コンピュータの中ではどんな処理が行われているのか」といった部分に興味が向けば、この本は大きな助けとなるでしょう。

ビットや2進数、16進数といったワードが頻繁に出てきますので、頭が痛くなります。1回読んだだけでは意味がわからない章も多いです。しかし、コンピュータの処理系統をここまで詳しく解説してくれている本は貴重ですので、プログラミングの基礎を固めたいなと思ったタイミングで読んでみることをおすすめします。

IoTセキュリティ

ITとセキュリティは切っても切れない関係となりました。プログラミングにおいても、セキュリティを意識した構造で書く必要があります。セキュリティはf-ムウェアやハードの問題でしょ?などと考えていると痛い目に合います。

プログラムの脆弱性をついたサイバー攻撃は後を絶ちません。実際に世の中でどんなセキュリティ事故がおこり、どんな被害が出ているのか知ることで、プログラミングにおいて何ができるのか考えることができます。

たとえばIoTデバイスの組み込みプログラミングの際には、デバイスにSSH接続します。このようなケースではログインの方法やユーザー権限の設定など、システムの運用そのものに気を配る必要があります。

プログラマーとしての能力だけでなく、セキュリティ意識も向上させていかなくては、サイバー攻撃の脅威に立ち向かうことはできません。

まとめ

プログラムを学ばれているあなたも、本はよく読まれていることと思います。最新情報はSoftware designなどの月刊誌で学べますが、基礎的な内容はやはり専門書が正解ですね。

私は文字を読むことが苦手でした。しかし、本は自分のペースで読めますし、時間をかけて少しずつ進めれば徐々にわかってきます。難解な部分もありますが、いつか参考になると思って目を通しています。今はほとんどの本が電子書籍でもリリースされ、持ち歩きやすく、購入しやすい価格になりました。

ありがたいことです。あなたがプログラミングを学ぶうえで参考になった書籍があれば、ぜひ紹介してください!

タグ

カテゴリー

  • この記事を書いた人
アバター

from-age35

中小企業エンジニアです。35歳で急遽プログラミングを覚えることになり、PythonやJavaScriptなどをゆっくりマイペースに覚えています。先端スキルには疎いですが、楽しくコーディングしてます♪最近の興味は【WEB開発】です

-Programming
-,

Copyright© 35からのプログラミング , 2019 All Rights Reserved Powered by AFFINGER5.