昨今、ITエンジニアの不足が大々的に取り上げられることが増えてきた。
プログラマーという職種にしても例外ではない。
小学校の授業でプログラミングが必修化することもあり、プログラミングという分野への熱は今後も高まっていくことだろう。
必要に迫られてプログラミングを勉強する方もいれば、大人の教養としてプログラミングを学びたいと考えている方もいるはずだ。
プログラミングを学ぶからには自由自在にコードを操ってみたいところだが、スキルを高めて作りたいものを作るためには長い道のりが必要となる。
とはいえ学習を始めないことにはいつまで経っても書けるようにならないので、最初の一歩としておすすめと思える書籍をいくつかピックアップし紹介していく。
プログラミング入門講座
完全未経験者向けで、ITと関係ない仕事をしている人が教養として学び始めるケースや、これからプログラミングを扱えるようになるための"学び方"を知りたい人が想定ターゲットとされている。
この辺り、読者とのレベル感のずれを避けるために書籍内でも述べられていた。
簡単なプログラミングによりゲームを構築する内容が含まれているが、今後プログラミングを学ぶ意味やメリットにも言及されていて、むしろそちらがメインである気がする。
プログラミングを通して論理的思考力や問題解決能力を伸ばしていける点が強調されており、ITの現場以外でも大いに役立つ普遍的なスキルが身につくという。
ということで、初学者のモチベーションを上げるには非常に良い本だと思う。まあ動機付けの最初の1冊という感じか。
一方で、仕事でプログラミングを使う可能性がある方にとっては少しエントリーレベルすぎるかもしれない。
新人研修などで少しでもプログラミングをかじった方ならば、もう一段階上のステップに手を伸ばした方が良いと思う。
高校生からはじめる プログラミング
某有名アニメのキャラクターが表紙に登場している。
"高校生から"と題されているが、大人が読んでも全然いいと思う。
こちらはJavaScriptという、Web系のシステムで使われる言語をメインにhtmlやcssも少し載っているのでこの辺りに関心があれば丁度良い。
あまり分厚くなく分量的にライトな点と、高校生向けに書かれているということもありサクッと読めてしまうだろう。
レベル的にもかなり初歩的な内容のため、がっつり取り組みたい場合はこの本の後に別の技術書で学ぶ必要がある。
これからはじめるプログラミング 基礎の基礎
結構前の話になるが、僕が初めて読んだプログラミング関連の本がこちらだったと記憶している(改訂前のやつ)。
予備知識ゼロの読者を想定しているため、初学者も安心して手に取ることができる。というか初学者こそ読むべきか。
特定の言語に依らず、プログラミング全般に共通的に必要になる知識が解説されており、文体もかなり易しい。
なんなら子供向けの教科書にも使えそうなレベルで、この本で勘所を掴んだら好きな言語の専門書に手を出していこう。
文体が簡単とは言え、プログラミングを学ぶ本なのですんなりいかない部分もあるかもしれない。
僕も最初は確か配列かポインタあたりが理解できず挫けかけた気がする。
この本を最初の壁と思って取り組もう。
独学プログラマー Python言語の基本から仕事のやり方まで
タイトルに入っている通り、こちらはPythonをベースにプログラミングを学習していく。
Pythonを例にループ処理や分岐処理、配列や正規表現といった多くの言語で必要となる要素を実践形式で学んでいける。
この本は単にPythonの教本という位置付けではなく、プログラミング全般に必要な知識と、大切な考え方を教えてくれる。
中にはプログラマーとしての仕事の仕方についても記載されており、大変参考になるだろう。
ボリューム的にも程よく、初心者の方で、言語はPythonを勉強してみてもいいという方には非常にマッチしている1冊。
個人的にも、Pythonは最初に学ぶ言語としておすすめだったりする。
プリンシプル オブ プログラミング
こちらはやや実践的なレベルの本で、多少はコーディングを覚えたあたりをターゲットとしている。
可読性やメンテナンスの面で良いコードを書くための指南書となってくれるので、学習の初期段階で押さえておきたい。
まだプログラミングを始めたばかりで、コードは動けば良いという段階で手を出すべきではない。
プログラミングを使って仕事をすることが確定していたり、趣味レベルでも少しコーディングを実践するようになってきたあたりの方にはおすすめだ。
プログラミングの文法や技術的な解説というよりは、一定の知識がある前提でそれを正しく活かす指針が示されている
そういう意味では初心者向けとは言えないのかもしれないが、本当に大切なことが書かれておりできる限り早い段階で読み込んだ方が良いと考えピックアップした。
逆に、この本に書かれていることが理解できるように頑張るというアプローチも個人的にありだと思う。
最後に
プログラミング技術を身に着けるには、毎日少しでもコードを書くことが必要だという人もいる。
そのように聞くと敷居が高そうに思えるが、要は語学や他の資格と同じように記憶の定着が必要だということだ。
毎日と言わずとも、あまり期間を開けずにコードに触れた方が良いだろう。もちろん、無理のない程度に。
何か、プログラミングを通して作りたいものがあると良いと思う。
必要な処理をブレイクダウンし、わからない部分や迷ったところは調べながら進めていけば良い。
それから、職場や家族にプログラミングが得意な人がいるなら幸せだ。
僕の経験上だが、プログラミングが得意でレベルの高いコードを書く人は、結構人に教えることが好きである傾向が強いと思う。
どんどん相談に乗ってもらおう。
またプログラミングを書く上で、全ての要素を暗記したり理解している必要はない。
今は書籍でもインターネットでも情報が溢れているし、学習を進めていけば、的確で効率の良い調査の仕方というのが身についていくはずだ。
一つ言語をマスターすれば別の言語を覚えるのも早いというし、まずは一つ、言語を決めて作りたいものを作っていくところから始めよう。