やだなー、わかっちゃうのかなー、やっぱり大きな決意をした女って突然綺麗になるって言うもんねー
そうです、あたし、プログラミングを勉強する事に決めましたっ!
いつまでもぴょんぴょん草原を飛び跳ねるだけの夢見る子うさぎじゃいられないのよっ。
でもねー、正直、何から手をつけていいのかわかんないのよ。
こんな時は初心に帰ってとりあえず本でも買おうと思うんだけど、めちゃくちゃ種類あってどれを読んでいいかわかんないのよねー。
また行きつけの占い師のとこ行ってー、あたしにピッタリの一冊でも占ってもらうしかないかしらん?
こんな疑問にお答えします。
本記事の内容
本記事の信頼性
IT業界歴 20年、現役のプログラマーであり
会社の経営者でもあります。
結論・どの本を読むべきかは、貴方のレベルによります!
ついに40代に突入してしまった私なんかは、中学校でダンスの授業が始まったと聞いた時点で大いにたまげてしまったわけなんですが。
ついにプログラミングの授業まで必修科目になりましたね。
しかも小学校で。
と子供にまっすぐな瞳を向けられても、プログラミングに関して全くもって無知な方ですと目を逸らしてしまう様な事態になるかも知れませんね。
「積木くずし」の入り口です。
こうなってくると、「やったことないから知りません」では済まされない時代になって来たとも言えるでしょう。
プログラミングを学習するにあたり、本格的にスクールに通うのも一つの方法ですが、時間的・経済的な理由から難しい方もいらっしゃいます。
そんな方にはやはり、リーズナブルでかつ隙間時間に学習出来る「本」がおすすめです。
仕事としてプログラミングを選択する方もいれば、趣味としてプログラミングを学びたい方もいます。
学校等での経験があってすでにある程度のレベルに到達している人もいれば、まったくの素人さんもいる事でしょう。
どの本を読むべきなのかは、貴方の「プログラミング能力のレベル」と「目的」によって決まります。
というド素人さんがプログラミングのどっぷり深い所を追求した難解な書籍を手にとってもしょうがないですし、「ママ」って言葉を発する前にC言語を覚えてましたってレベルのナチュラル・ボーン・プログラマーが初心者向けの本を読んでも時間の無駄です。
今回はプログラミング学習の段階を4つに分けて、それぞれの段階で読むべきおすすめ本を3冊づつ、ご案内させて頂きます!
プログラミング学習における4つの段階
さて、今回は私の独断で「プログラミング学習」を下記の4段階にカテゴライズしております。
1 そもそもプログラミングが何なのかを学ぶ
プログラミングは現代において欠かせないものになりました。
専門的なものだけではなく、生活に密着したごくごく身近な物にもプログラミングが利用されています。
という人であっても「プログラミング」に全く関わらずに生きていくのは難しいでしょう。
しかしながら、多くの人は
そして、素性の知れないものだけに「得体の知れない、超絶複雑で難しいもの」というイメージを無意識のうちに植え付けています。
「小学校でのプログラミング必修化」と聞けば皆が驚く、というのがその象徴です。
プログラミングは容易いものからごく一部の天才しか理解できないものまで様々です。
まずはこの「素性の知れないプログラミングって奴」について学び、友達になる所から始めましょう。
そのためのオススメ本、3選です!
これからはじめるプログラミング基礎の基礎/谷尻かおり
プログラミング学習における独学において、誰もが最初に出鼻を挫かれるのが
という現実です。
そんな現実に打ちひしがれた、悩める子羊プログラマー達への入門書がこちら。
そもそもプログラミング以前に「コンピューターとはなんたるか」から教えてくれて、かつ専門用語をほとんど使わず身近な表現で書かれており、図による説明も豊富・・・バイブルどころか「第二の母」と呼んでも差し支えない程の優しさを感じる事でしょう。
その優しさに包まれたまま最後のページをめくり終えた時、貴方は「プログラミングの根幹」を理解し、知らぬ間にプログラマーとしての第一歩を無事に踏み出しているはずです。
現在販売されているのは「改帳3版」ですが、プログラミング界は進化・変化が著しいので情報の更新がされているのも安心ですね。
教養としてのプログラミング講座/清水 亮
現代において、特に若者の「本離れ」が深刻だと言われます。
エンタメとしてもサブスクや動画配信サイトに立場を奪われていますし、「学習」や「勉強」という面から見ても「動画や音声」で学んだ方が分かりやすいというメリットがあります。
当然、「書籍にしかないメリット」があるのでこの記事を書いているわけですが、何にせよ「読書」に免疫が無い人が「読むのに気合が必要な本」に挑戦するのは難易度が高いでしょう。
そんなわけで、本が苦手な貴方にも気軽に読めるのがこちらです。何てったって集中して読めば1時間かからないという気軽さ。
かつ、「プログラミングがどんなものなのか」という疑問について、より日常に照らし合わせた「最小公約数の表現」でわかりやすく書かれています。
簡単なだけでなく初心者に必要な情報が過不足なく盛り込まれており、ドラマ一本見るだけの時間で「プログラミングの基本」を学ぶ事ができちゃいます。
実際にパソコンを使ってごく簡単なプログラミングをするためのページもあり、初めて触れる本としてはバッチリですよ!
おうちで学べるプログラミングのきほん/河村 進
もー、こんだけ長いタイトルに漢字が一文字しかない時点で、容易く読めるんだろうなって期待しちゃいますでしょ?
「プログラミング」のみならず「ハードウェア」だとか「OS」だとか
と今更口にするのが照れ臭いあれこれについて一からきっちり学べて、かつそれらが互いにどんな風に関係して、どんな風に動くのかという所まで理解出来ます。
実際にパソコンを使いながらプログラミングがどう動くのかを体感しながら読むように書かれているので、
という方にも強くおすすめ致します。
2 プログラミングの基本的な考え方を学ぶ
さて、「プログラミングとはなんたるか」という最初の関門を越えたら次のステップに移りましょう。
とはやる気持ちを少々抑えて頂いて、次の段階では「プログラミングを生み出すための根本的な考え方」について学びます。
なんて言わないで下さい。
はっきり言いましょう。
なんて言ってるプログラマーは、二流、いや「六流」です。
プログラミングはおいて重要なのは「数や量ではなく思考」です。
根幹にある本質さえ正確に捉えられればいくらでも応用が効きます。
その事が分からず、枝葉の様な「末端の知識」ばかりをかき集め、「幹を太くすること」が出来ないが故にプログラマーとして成熟出来ない人が沢山います。
早い段階でその重要な「考え方」を知ることは、今後の学習に大きな影響を与える事でしょう。
プログラムはこうして作られる/平山 尚
ゲーム好きなら誰もが知るメーカー「セガ」のプログラマーさんが書いた本です。
ゲームメーカーのプログラマーらしく名作ゲーム「テトリス」を題材に、ゲーム開発の一連の流れの中でどんなプラグラミングが使われ、その時どんな風に思考が働いているのかを紐解いている。
プログラミングを志す全ての人に読んで頂きたい必読の一冊。
世界が変わるプログラム入門/山本貴光
という事は、「アルゴリズム」を深く理解すればするほど質の高い「プログラム」を作る事が出来る様になるわけですが、「アルゴリズム」を理解するためには「論理的な思考力」が必要になります。
本書はその「論理的思考」にフォーカスして書かれており、「論理的思考力」を鍛えればプログラミングだけではなく日常生活や仕事の様々な場面で役に立つ、という事が書かれています。
根本的なモノの考え方に影響を与える本ですので、プログラミングに関わらない人でも読む価値がありますよ。
タイトルにある通り、この本から「論理的思考」を学ぶ事で世の中が違って見える様になるかも知れません。
子どもを億万長者にしたければプログラミングの基礎を教えなさい/松林 弘治
私はいわゆる「本の虫」ですので幼少の頃から随分活字を読みましたが、「タイトルに心惹かれて」手にした書籍も少なくありません。
恩田陸さんの「三月は深き紅の淵を」というタイトルの小説は20年以上前の作品ですが、そのタイトルセンスに未だにシビれ続けています。
教養本においてタイトルにシビれる事は稀ですが、本作はなかなかのシビれ具合ですね!
もちろん、プログラミング学習書籍としてここでご案内させて頂くわけですから、タイトルだけではなく内容もちゃんとシビれております。
日本においても小学校におけるプログラミング必修化が始められた様に、世界中が「子供の教育にはプログラミングが必要である」と考え始めています。
もちろん、将来的に不足するプログラマーを生むためにという狙いもありますが、それ以上にプログラミング学習を通じて「論理的思考力」を身につけさせる事が優秀な人材を育てる為に有効な手段だと気付いたからです。
自らが学び、子供に学ばせ、さらに共に学んでいく為にはどうしたらいいのか。それを教えてくれる一冊。お子様と一緒に読みたいですね。
って言う記述にもシビれます!
3 選択したプログラミング言語を学ぶ
さあ、ビリビリしまくった貴方は次のステップに進む事が出来るでしょう。
この段階に来ていよいよ
まずはプログラミング言語の選択です。
数多く存在するプログラミング言語ですが、難しく考える必要はありません。
という目標設定さえ出来れば、学ぶべき言語は自ずと見えてきます。
学ぶ言語が決まればその言語に特化した書籍を選べばいいのですが、選択肢が多くて選べない、という方は、
- レビューや口コミを確認する
- イラストや図版が多く、理解しやすいものを選ぶ
- なるべく発行日が新しいもの(IT業界はすぐに情報が古くなるので)
などを目安に選んでみましょう。
好みもあるので試し読みしてみるのもいいですね。
言語は数限りなくありますので、ここではトレンドの言語3つについての書籍をセレクトしました。
独学プログラマー Python言語の基本から仕事のやり方まで/コーリー・アルソフ
せっかく言語を学ぶんだから、
っていう欲張りな貴方にピッタリ!
近年の最注目株言語「Python」についての書籍です。
なお、Pythonを媒体として書かれておりますが、「Pythonの使い方」を学ぶためだけではなく「プログラミングに関しての総合的な知識」について学ぶ事が出来ます。
プログラミング学習においては知識を取り入れるだけではなく、それを使った「実践」、いわゆる「アウトプット」が重要と言われますが、本書は各項目ごとにアウトプット用の課題が用意されておりますので、それを通じてより実践的な知識を身につける事が出来ます。
著者のコーリーさんはゼロから独学でプログラミングを学んだ努力家(しかもイケメン)ですので、これからプログラミングの道を歩む貴方の良き道標となるでしょう。
スッキリわかるJava入門 /中山清喬・国本大悟
「おすすめのプログラミング言語をいくつか教えて下さい」という質問の問いに対して、最も多く名前が挙がる言語の一つ、「Java」。
(おすすめプログラミング言語についてはこちら※「プログラム言語6選」)。
Javaプログラマーは世界で900万人を超えると言われており、もちろん求人数・案件数もトップクラスです。
何より「Javaを学べば他の言語の学習にも役立つ」と言われておりますので、本腰を入れて学ぶ価値のある言語です。
残念ながら、初心者が学ぶには「少々難易度が高い」という事もあり挫折する方も少なくない言語ですが、本書は初心者がつまずきやすい点を的確に押さえ、豊富なイラストを使って丁寧に、かつストーリーに沿ってわかりやすく教えてくれます。
エラー解決法を集めた虎の巻も実用的ですよ。
改帳がなされた第三版である所も安心。著者の一人、中山氏が書いた「実践編」も出版されており、こちらは実際のシステム開発現場において必要な知識が網羅された一冊となっております。
Javaは金融機関や交通機関などの大規模なシステムで使用される事が多いのですが、本書は大きなチームでのシステム開発についての記載も豊富であり実用的な一冊です。
スラスラ読める JavaScriptふりがなプログラミング/リブロワークス
なんだかんだ我々が「プログラミング」に関して本能的に苦手意識を抱くのは、我々が「日本語」を母国語としている事も大きな原因の一つでしょう。
本書はそんな我々が分かりやすく、かつ親しみを持ってプログラミングを吸収出来るような「あっと驚く手法」を用いて書かれた名作です。
本書において登場するあらゆるプログラムには全て「日本語訳」と「よみがな」が添えられており、プログラム一つ一つが何を意味しているのか、そして何のために存在しているのかを理解する事が出来ます。
「プログラミング言語」は我々人間とコンピューターの間に存在する言語ですが、本書はプログラミング言語と我々の距離を少なからず縮めてくれる。
という状態から挫折してしまう、というプログラミングギブアップあるある(PGAA)を回避出来る、画期的な一冊です。
参考までに、こちらの「ひらがなプログラミング」シリーズは他言語に関しても出版されておりますので、気に入った方は他言語の書籍を読んでみるのもいいですね。
4 どっぷり深いとこまで学んでみる
さて、ここまでは主に初心者向けの本をご案内させて頂きましたが、最後にプログラミングのかなり奥の方まで踏み込んだ本も紹介させて頂きましょう。
正直、初心者レベルでは何が何だか分からず
に感じるかも知れませんが、スポーツにおいても、音楽においても、アートにおいても、そしてプログラミングにおいても「トッププクラスの人達がどのレベルなのか」を見ておくのはいい刺激になると思いますし、大きなモチベーションを得る機会にもなり得ると思うのです。
もしかすると、生涯貴方の本棚に並ぶ一冊になるかも知れませんし、そうでなければ・・・メルカリメルカリ!!
達人プログラマー 職人から名匠への道/アンドリュー ハント 、デイブ・トーマス
タイトルからして振り切ってる感じが致しますよね。
著者が外国人という事もあって、我々が思うところの「プログラマー」の立場ではなく、システム開発に関してもっと大きな視野で、より実践的に書かれた本。
初版が2000年、新装版でも2016年の出版であり、変化の激しいこの業界においては
やや古いと感じる点もあるかもしれませんが、著者の哲学とも言えるべき教訓が網羅された一冊。
バイブルとして本棚に置いてあるプログラマーも少なくありません。
Coders at Work プログラミングの技をめぐる探求/ピーター・サイベル
これもね、「ダヴィンチとミケランジェロとラファエロ」という事でルネサンス期における「超絶天才達」が表紙になっているわけなんですよ。
というわけで内容も「伝説的な15人のプログラマー達へのインタビュー集」となっております。
そもそも、筆者のピーターさんもプログラミング界では著名なプログラマーなんですけどね。
「プログラミングそのもの」だけではなく、「偉大なプログラマーの人生」にも触れられる一冊。
インタビュー集ですし日本語訳も悪くないので、上級者向けの本としては読みやすい方かなとは思うんですが、読むのにインタビュー1人当たり2時間以上はかかりますので、しっかり気合入れてから読みましょうね。
ホッホッホッ。
人月の神話/フレデリック・ブルックス
こちらもシビれるタイトルでございますでしょ?
そのまま長編大作小説にも使えそうなタイトルです。
逆に、誰もプログラミングの本だとは思いませんよね。
タイトルの「人月」というのは、システム開発における「単位」なんですが、これが本質的に矛盾しているため「言わば神話」の様だ、という意味なんです。
難解な文章を読み解けば「システム開発の本質を知る事が出来る」と言われる「システム工学のバイブル」でありますが、「名前は知ってるけど読破した事がない」人がほとんど、というのが現実。
初版が1975年、新装版ですら1995年です。この数十年の間にどれだけの人がこの本を読破し、そして理解したのでしょう。
筆者のフレデリックは「皆がこの本を読むが、誰一人本の内容を実践しない」と嘆いているそうです。
この本を読む事で貴方が将来、現在のシステム開発における、根の深い様々な課題を解決する一人になるのかも知れませんね。
さいごに、「本なんて読まねえよ」って貴方へ
しかしながら、ネット全盛の現代では
最後に、本で学ぶ理由も話しておかなくてはいけませんね。
もちろん、ネットでのプログラミング学習方法も多数あります。
活字だけではなく音声や動画で学べますし、「実際にコードを書いて学べる」という、より実践的な学習にも特化しています。
しかし、出版社の厳しいチェックを経て出版される書籍と比較すると、説明が不十分であったり、間違いがあったり、断片的な知識しか与えない内容であったり、という事が多々あります。
いくら実践的であっても包括的な知識やスキルが身に付かなくては、将来的に全く応用が効かない、言わば「死んだ知識」になります。
別に、ネットか本かの二択に悩む必要はないんです。
どっちも利用すればいい。ネットで進めて、行き詰まったら本を読んでもいい。
ネットには本にはない長所がたくさんある様に、本にもネットにない利点がたくさんあるのですから。
上記の通り、現代において本離れは加速する一方ですが、「決して本から離れない人達」が少なからずいるのも事実です。
中には単純に
という稀有な人もいるかも知れませんが、それだけが理由ではありません。
かくいう私も、未だに本を買い続けている一人です。
突き詰めれば、本からは得るのは「情報」ではありますが、その情報には「質量」があります。視覚のみならず、五感に訴えるものがあります。
手に触れ、ページをめくる僅かな音を聞き、紙の匂いを感じる。
そうして得た情報は、ただの文字を羅列した「質量の無い情報」よりも、頭と身体のより深いところに収められる実感があるんです。
温故知新。
プログラミングは現代を象徴する「知識」であるが故に、古くから伝わるアプローチも必要なのではないかと強く感じるのです。