【実践技術書】独学プログラマー
プログラマーとして働けるようになるまでの道のりを紹介した本です。「独学」というのがポイントになっており、0から独学でPythonプログラマーになる方法を前提としています。
プログラミングの基礎的なところから仕事の探し方まで幅広くカバーしています。プログラマーの仕事について全くわからない・経験がない人におすすめです。 著者の仕事・勉強上での経験談が書かれていることもわかりやすくて良いです。勉強に利用している言語はPythonで、本を通してPythonの知識を学んでいくことになります。
幅広く書いてあるのでそれぞれの内容はちょっと浅めです。すでにプログラマとして経験がある場合はあまり参考にならないと思います。 まだ仕事を初めていない学生や、全然違う業種からの転職を考えている人にはおすすめです。
プログラミング入門
この本ではPythonを使ったプログラミングを試します。文法の基礎から始めて実際に動かすところまで行います。未経験の方でもわかるように丁寧に説明しています。
Pythonはインストールさえできればすぐに動かせるので簡単です。インストールの方法など丁寧に説明があるので、なんか難しそうだなと思っている人にも簡単にできると思います。
Pythonはプログラミング入門に適した言語の一つだと思います。文法もわかりやすいですし、なんとなく書いてもそれなりに見やすくわかりやすい形になります。できればルールや慣習を確認してそれにしたがってほしいですが、まずは動かすところから挑戦してやりきりましょう。
この本ではあまり込み入った内容はやりませんが、とりあえず初めてみるのには十分だと思います。
オブジェクト指向
オブジェクト指向プログラミングの入門です。概念の導入としてほんの一部を紹介しています。 存在を認識しておくくらいの理解度の印象です。ですので、この本に書いてある内容だけでは実務には足りません。できれば他の書籍も活用して勉強しておくといいです。実際に使うときには現場でたくさんのルールや思想を教わることになります。
Pythonでプログラムを書く際には、たいていオブジェクト指向に沿った設計になると思いますので、知ってるほうがよいです。ただ、オブジェクト指向は座学で学ぶよりも実践して学んだほうが理解しやすいです。実務に挑戦しながら並行して学ぶのがおすすめです。 効率的な勉強方法として、オブジェクト指向で書かれたプログラムを読みながら理解していくのが一番速いと思います。教えてくれる先輩や同僚がいると良いですが、いない場合は都度調べましょう。聞きなれないクラス名や関数名が出てきたら、その旅立ち止まって調べましょう。
プログラミング関連ツール
OSのコマンドや正規表現など、プログラミングを支えるツールの紹介です。普段はあまり意識しないものだと思いますが、プログラマとして働くにあたっては避けて通れません。黒い画面に苦手意識のある人も多いと思いますが頑張って体験してみてほしいです。それほど難しくはありません。
これも使ってみる以外に克服する方法は無いです。よほどわからない状態でめちゃくちゃやらない限り、環境が壊れることってありません。やらかしたエピソードばかりを目にすると思いますが、うまく行ったことは誰もエピソードにしないので、失敗ばかり印象に残っているだけです。
ググって出てきたコマンドをただコピペして実行するのではなく、コマンドの意味や動作、オプションの意味などを調査・理解してから実行するようにしましょう。それだけでもだいぶ安全です。
Linuxをインストールして触ってみるのがおすすめ
心配な方は使っていないPCや安いPCを購入して、Linuxをインストールして遊んでみるのがおすすめです。わからなくなったらOSを再インストールしてまた作り直せます。サーバサイドのインフラの勉強にはこれが一番早くてわかりやすいです。私はずっと前からLinuxのPCを普段からつかっています。自分で環境立ち上げたりコマンドでアプリケーションをインストールしたりするのは意外と楽しいです。
アルゴリズム
コンピュータ・サイエンスの入門としてアルゴリズムにも触れます。いくつか簡単なアルゴリズムを再現して考え方を学びます。簡単なアルゴリズムの紹介ですが、実務で行うことになる設計のことも理解できると思います。ビジネスロジックやデータの関係などを読み解き、整理して設計する練習になります。
仕事のこと
仕事の探しかたやチームでの動き方などを学びます。プログラミングはたいてい一人ではなくチームで行う活動です。実際の仕事の現場ではここがとても大事になると思います。
現場ごとのルールもありますのでそこに入って学ぶことも多いですが、基本的な考え方は知っておきましょう。と言っても大抵は当たり前のことなのですが、意外とうまくいかないことややってみたら出来ないことが多いかもしれません。忙しくて余裕がないとか、進捗が良くないけど報告しなかったとかあるあるだと思います。やっぱり報連相とか、見積もりとか、準備とか、当たり前のことが大切になってきます。
Web関連の情報は少ない
この本ではHTMLやCSSのことはほとんど学びません。ですのでWEB系ではない業務が想定されます。DBやインターネットの基礎知識などもありません。
利用する言語がPythonなので学術や科学・物理、機械学習系を想定しているのだと思います。これらの業界は初めてだと難しいと思いますので、最初はWEB系のことを学んでおきWEBシステムの運用・改修の仕事を探すのがいいと思います。
そう考えるとこの本だけでは、ちょっと足りないのではないかという印象を受けました。WEB関連の知識も一緒に身につけるのがおすすめです。
エラーの読み方やデバッグのコツがあればより良い
エラーの対処方やバグの探し方といったことが、内容に含まれていればよかったかなと思います。結構おろそかにしがちですが、初心者には一番大切な部分だと思います。
Pythonは簡単に動かすことができるので学習にはちょうどいいと思います。ソースコードもふんだんに出てきますが、どれも簡単です。読めばすぐに理解できるようになりますので、頑張って読み進めましょう。
おわりに
本の内容は極めて親切で分かりやすかったです。未経験の人であればこれを参考にプログラミングを始めることができると思います。実務をするためにはもう少し深い知識が必要になると思いますが、現場で教えてもらうのがおすすめです。間違えながら試行錯誤して学んでいきましょう。
基礎的なことは十分にこの本で学ぶことができます。あとは、それぞれの業界や領域に合った応用の知識を学ぶことができれば、初心者としてのスタートは切れると思います。