これからエンジニアとして仕事を始める方や、エンジニアを志望している人向けの記事になります。
未経験からSEになって早3年経ったので、この3年で読んだ本をご紹介いたします。
この記事は以下のような方を対象にしています。
- 新人・初心者エンジニア向けの書籍を探している方
- Webエンジニア向けの書籍を探している方
- 新社会人としてシステムエンジニア(SE)になる方
- 異業種から未経験でシステムエンジニア(SE)に転職する方
ぶっちゃけ本は読まなくても現場で学べば何とかなります。けど、読んだ方がいいです。絶対。
ちょっと経歴を踏まえて理由を書かせてください。
筆者は、以下のような残念な経歴でSEとしての一歩をスタートしました。
・国家公務員から未経験でSEに転職
・ITに関する知識はほぼなし
同じ年齢の人は既に脂が乗ったSE。私は遅れて&0からのスタートだったので、戦力外野郎です。
この状態で何もせずにいたら、ヤバイ!と焦り、日々書籍(だけではないですが)で学習を継続しました。
最初こそ置いてけぼり状態でしたが、3年経った今は周りが持っていない知識を得ることができ、会社からも案件の立ち上げを任せていただけるようになりました。
継続した学習は必ず未来の自分の糧になります。
IT業界は技術の移り変わりが早く、今まで一般的だった技術が気づいたら過去のものになっていることもあります。逆に言うと、未経験でも今から学習すれば、その分野の第一人者になれる可能性だってあるのです。
でも、ずーーと『学ばなきゃ!ウォォ!』と学習に追われていると精神衛生上よくないので、時には息抜きしつつ、『知っていることが増えた!楽しい!』のアッパーマインドで無理のない継続ができたらいいですね。(それができたら苦労しねーよ!って感じかもしれないですが。笑)
前置きが長くなりましたが、率直にレビュを書いてみたので、ぜひ参考にしてみてください。
SEの基礎
『SEってどんな仕事?』『どんなスキルが必要?』『チームワーク』『マネジメントスキル』『ヒューマンスキル』『必要な心構え』について、深堀りしている良書です。
僕がSEになる前に買った最初の本です。
正直、最初読んだときは書いていることがチンプンカンプンすぎて、笑った記憶があります。
でもこの本を読んで、「SEはただプログラムをコーティングするだけではなく、プロジェクトを推進するために多岐にわたる能力が求められる面白い職業だ」とも思わされました。
これからSEを目指そうとしている方には、是非読んでもらいたい本です。
ある程度、プログラミングの基礎がわかる方向けの本です。
コーディングや設計をするうえでの注意点が、アンチパターンとともに記載されています。
初心者のうちは、引き出しの少なさから『悪いコードが今後に与える影響』を軽視しがちで、思うがままにコーディングすることもあるかと思います。
そのコードが、後のバグ・生産性の低下を生み出してしまうことがわかりやすく記載されているため、経験が浅いエンジニアの方にはぜひおすすめしたい一冊です。
こちらも、ある程度プログラミングの基礎がわかる方向けの本です。
何の値か一見してわかる変数名や、 関数から早くreturnして可読性を向上させる等、プログラムを書いているうちに自然とやっていくようになる「読み易さ」に対する技法がまとめられています。
この本の良い点は、技術本だけど読みやすいところかと思います。200ページ弱ほどの薄さで、まるで職場の先輩や同僚と話しているような気分で読めます。
身近な範囲から実践できる情報が詰まっているため、経験の浅いうちから読んでおきたい一冊です。
エクセル
SEは、エクセルに触れる機会が非常ーーに多いです。
設計書を書いたり、障害の調査結果まとめたり。用途はまちまちですが、慣れているに越したことはありません。
見やすい資料の作り方、SUM・VLOOKUPなどのよく使う関数、ショートカットキーなど、Excelを使ううえで知ってきたい情報が詰まっている一冊です。
この本に書いてある情報を知っているかどうかで、生産性が全然違います。Excelビギナーの方は必読です。
ただ、マクロについてはサラっとしか触れていないので、「マクロを使って自動化を進めたい!」っていう人には、物足りないかと思います。
SEになる前に一応読みました。体系的に知識が学べる&簡単&資格を取ればちょっと面接時にアピールできるので、時間に余裕があればとっちゃってもいいと思います。(意外と持ってる人は少ないんじゃないかな?。)
Web開発
私自身、Webアプリケーションに接する機会はそこまで多くありませんが、SEとして働くうえで絶対に知っておいた方がいい知識が詰まってます。
「そもそもWEBって?」とか「HTTPってなに?」とか「JSONってなんだ?」とか。知ってる人にとっては基本的な内容かもしれませんが、この本に書いてある情報は業務で登場します。図解されてて非常にわかりやすいので、Webに関する体系的な知識は、まずはこの本で身に着けてみるといいと思います。
もう一歩Web開発に踏み込んだ本です。
業務用Webアプリケーション開発で幅広く利用されている「サーブレット」と「JSP」について、実際に手を動かしながら理解を深めることができます。
最近はJSPは古い技術となりつつありますが、まだまだ現役で使っている現場も多いため、Web開発をする方はこの本で仕組みを知っておいて損はないと思います。
考え方・話し方
SEは黙々とコードを書くわけではなく、お客様・チームメンバー・上司等のステークホルダとコミュニケーションを取る機会が非常に多いので、『簡潔に認識齟齬なく伝えられるようになりたい』と言う気持ちから手に取りました。
相手が一番知りたい情報(具体的な数字なのか?もっと抽象的な全体像なのか?)を説明したり、相手が言っている抽象的な情報を具体的なタスクに落とし込んだり、と。『一を聞いて十を知る』に至るまでの思考のプロセスが4コマ漫画で学べます。私自身コミュ障村の出身なので、『察する力』は長けている方ではありませんが、この本を読んで少し『察する力』が身についた気がします。(気がするだけかも。笑)
『学んだことをアウトプットして、いかに自分のものにするか』は、技術職のSEにとって一生ついて回ると思います。自分自身アプトプットはそこまでしない方だったのですが、この本を読んでから考え方が少し変わり、積極的に情報を発信するようになりました。
本のレビュで「書いてることが浅いんじゃ!」みたいなことも書かれてますが、個人的にはアウトプットの重要性が具体的に書かれた良書なんじゃないかと思っています。
ここにコメント
Git
未経験の方には馴染みがないと思いますが、SEはチーム開発するうえで、主にGitという資材管理ツールを使います。避けては通れない道だと思うので、学んでおきましょう。
漫画で描いてあって、初学者はまずこの本を読めばいいと思います。
私が現場に入って最初に恐怖を覚えたのがGitです。なんてったってコマンド一つで下手すればみんなが書いたコードを吹き飛ばすことをできてしまうんです。
そんなテロ行為をしないためにも、現場に入る前にGitの最低限の知識は蓄えておくべきなので、この本を推します。なによりわかばちゃん可愛い。最高。
Java
この言語は、『オブジェクト指向』と言う初見殺しの考え方で作られているので、学び始めは躓くと思いますが、Javaさえ書ければ当面食いっぱぐれないです(たぶん)
Javaの学習はまずはこの本からでいいかなと思います。
自分で開発環境を作っている人は不要だと思いますが、「dokojava」と言う専用サイトでガリガリコードを書くことができるので、すぐにでも書いてみたい!って人にはいいですね。
プログラムを書いたことがない人でも、ゲーム感覚で学ぶことができます。
文字列の操作、DBやネットワーク通信などなど、より実践的な内容が学べる一冊です。
個人的な感想としては、まずは全体をサラッと見ておいて、業務で関連する内容にぶつかったら都度この本で理解を深めるスタイルがいいかな?と思います。(600pとボリューミーなので)
読了してないですが、さらに一歩踏み込んだ本です。ちょっとムズイ。
可読性や処理速度向上など、パフォーマンスの向上にも焦点が当たっており、実務を意識した内容になっています。Javaをある程度知っていて、ガッツリ学びたい人は買うべし。
プログラミングには、『こういう作り方したらいいぜ!』って言うパターンがあり、デザインパターンなんて呼ばれています。そのデザインパターンの使い方やメリデメがぎっちり詰まった本ですが、正直初学者にはキツイです。ある程度理解が深まったときに真価を発揮する本だと思うので、これからの方は手を出さないようにしましょう。
ある程度経験を積んだ方は、この本で一歩先の景色が見えるはず。
データベース
DBってなんだよ!って最初なりますが、端的に言うとデータの集まりです。エクセルの表のようなものをイメージしてくれればいいかと思います。どこの現場でも使うので、基本的なことから学ぶべし。
DBの役割・種類などについて図を交えて書かれており、初学者には良いです。細かい用語を覚えるのではなく、概念や考え方からDBを理解できます。
ただ、DBを操作するためのSQLについてはそこまで書かれていないので、ガンガンSQLを書きたい人向けではないです。
SQLのドリルです。「DokoQL」と言う専用サイトからガリガリ学習でき、基礎固めにはもってこい。部活に行っている気持ちで没頭できたので、この本は個人的に気に入っています。
後述しますが、基本情報の試験にもSQLが登場するので、実務では使わなくても試験対策の一環としても役にたつ側面もあります。
クラウド
「近頃流行りのクラウドってなんだよ!雲?」
ぐらいの理解度だったので、お客様と会話できるぐらいの基本的な知識ぐらいは身に着けておこうと思って何冊か読んだ中の2冊を紹介します。
『クラウドって何?』『クラウドのサービス』『クラウドを実現する技術』など、クラウド周りの基本的な情報を書いてくれている本です。AWSとかAzureとか、よく聞くクラウドサービス事業者の情報なんかも載っているので、まずは概要を知りたい人にはいい本かと思います。
業務でAWS(AmazonWebServices)を使う機会があったので、手に取ってみました。AWSで実現できることの概要はこの一冊で理解を深められます。実際に手を動かしてクラウドを構築するところまで踏み込んだ本ではないですが、開発でAWSを使う方は最低限読んでおいた方がいいかと思います。
デザイン
お客様に説明する機会はない方はそんなに意識しないかもですが、『どうやったらわかりやすい資料を作ることができるのか?』と考えさせられる機会が多かったので、必要に応じて資料の見やすさを追究する時間を作るようにしました。
『パワポはこうやったら見やすくなるよ~』が詰まった本です。シンプルでわかりやすい資料を作るために意識することが書かれています。私は美的センスが皆無ですが、この本で少しは見やすい資料を作ることができるようになった気がします。笑
プレゼンまでする上流SEの方は、読んでおいて損はない一冊かと思います。パワポ1枚で何を見せたいのか、悪い例と良い例で比較しながら学ぶことができます。
メール
Outlookを多用する現場に配属される機会があったので、『いかに時短できるか』を考えたときに読んだ一冊です。正直、ググって知っていた内容も結構書いてあったのですが、この本で更にショートカットを活用することができるようになりました。タイトルにも書かれている通り、業務でoutlookを使ってて、あまりショートカットを活用していない人が読むと、誇張ではなく年間100時間は軽く時短できると思います。
開発手法
アジャイル開発の案件にアサインされた時に読んだ本の一つ。『時代の変化が激しくユーザのニーズもよく分からない状況で、フィードバックに対して常に素早く(Agileに)反応できるようなやり方にしないとダメだよね。』が知れる本です。現場の経験に基づいた実践的な内容が網羅的に書かれているので、これからアジャイル開発に入る人にとっては、ぜひ読んでもらいたい一冊です。
機械学習
機械学習案件を立ち上げる機会があったので、その時に読んだ本の一部です。
昨今のブームであるAIとか、ディープラーニングとか、響きがもうカッコいいですよね(だから何だ)
AIのプロジェクトの進め方が学べます。体系的に学べるという点で、ビジネス寄りの業務に携わる人は本書を読む価値があると思います。が、手を動かして機械学習したい人にとっては物足りない内容になっているので、お気をつけください。
すっきりシリーズは本当にハズレがない!小難しい数学の話や複雑なアルゴリズムを省いているので、初学者に優しいです。ディープラーニングには触れられていないので、まずは基本的な機械学習をやってみたい人に推したい本です。
モバイル開発
モバイル開発に触れる機会があったので、読んだ本たちです。
昨今はスマホが必須の時代なので、モバイル開発のエンジニアは安定して需要が見込めそうですね。
アクティビティ、フラグメント、ライフサイクル、DB等、Android開発に必要な基礎知識が網羅的に学べるので、まずはこの本から入ってみることを勧めます。ただ、紙面の都合かサンプルコードの一部が省略されている箇所もあり、躓きました。が、サンプルソースがダウンロードできるので、見比べながら進めることで、底力を身に着けることができる一冊。
今あるAndroidアプリ開発の書籍の中で、一番詳しく書かれていると思います。かつ、内容はとても分かりやすいので、Android開発をこれから始める方も問題なく進められるでしょう。
『1つ目で紹介した本とどっちかしか買えない』って状況だったら、間違いなくこっちの本を選びます。
『IPhoneアプリの基礎知識』『Xcodeの使い方』『Swiftの基礎』から始まり、演習としてアプリ開発してみることができます。一連の流れで学ぶことができるので、iPhoneアプリをこれから作る人は、この本から始めるととっつきやすいかなと思います。
一応、Appleの公式にテキストはあるのですが、動画が英語だったり、ボリュームが多すぎたりとちょっとヘビーなので、気軽に始めるにはこの辺りから手を付けるとモチベが保てると思います。
swiftの知識が不足しているので、もっと深めたい!と思い購入。正直、Javaとかが書ける人は本を読まなくてもある程度かけてしまうとは思うんですが、もう一歩swiftを深めたい方はこの本を読んだ方がいいです。
例えば、『オプショナル型をアンラップするとき、guard letとif letと強制アンラップどれ使うのがいい?』みたいなところから学べるので、この本を読むことで自信を持ったコーディングができるようになると思います。
資格試験
資格は取らなくたって現場で何とかなりますが、私が一番資格のありがたみを感じたのは転職活動の時です。未経験の時に基本情報を取り、何とかIT企業への転職の門を開くことができました。転職後のIT企業の1社目では、Javaや応用情報やAIの資格などなど、色々な資格を継続的にとっていたことで、色々な会社からオファーをいただくことができました。
転職が当たり前の時代になった今、継続的に学習できる人材だと一目でわかる資格を取ることは、非常に重要です。
基本情報技術者の午前試験の対策本です。
個人的にはこの本が一番わかりやすく書かれているかな?と思います。この本を読了した後、『基本情報技術者過去問道場』でひたすら詰め込みましょう。
午後試験の対策本です。午後はなかなか勉強しづらい(勉強しても身についた実感が湧きづらい)ですが、この本で解くために意識すべき考え方を学ぶことで、底力を身に着けられると思います。
応用情報技術者試験の午前試験の問題集です。この参考書を一通り理解して、『応用情報技術者過去問道場』をひたすら回せば8割ぐらいは問題なくとれるようになると思います。
応用試験の午後試験の問題集です。この本は、過去に出た内容を出題率のランキング形式で載せているため、優先的に勉強すべき分野を絞って学ぶことができます。
この本で自分が選択しようと思っている分野を重点的に学習して、午前試験と同じように『応用情報技術者過去問道場』で何回か実践してみることで突破することができると思います。
Javaを少し触った後に、改めてJavaを体系的に学ぶために取りました。
色んなIT企業で推奨している資格のため、認知度はあります。また、体系的に学べるいい資格かと思いますこの黒本さえ完璧に理解していれば、問題なく受かります。
実務で使う機会はありませんでしたが、OracleDBを学んでみたかったので読みました。
正直、Oracleを使う機会がない人にはあまりおすすめはしない資格です。例えば、画面上でどのボタンを押したらどんなチューニングができる等、Oracleに特化した範囲もあるので、時間が無駄です。
ただ、基本的なコマンド(SELECT、DELETEなど)等の章もあるので、まったく使えないこともないです。
G検定は、昨今流行りのAIを知識を体系的に学習できる資格です。
この資格を取ることで、『AIってなんでもできるすごい!』から『AIって意外と普通のことしかしてないんじゃないか』に考えが変わります。
公式テキストと謳っているだけあって、試験にフォーカスした内容が記載されているので、全体的な流れを知るうえで、まずはこちらから学習することを勧めます。
言わずと知れた黒本。この本をとりあえず3週回しておけば間違いないです。
まとめ
エンジニアの勉強におすすめの本をご紹介しました。
初心者はもちろん、スキルアップしたいエンジニアにも、本での勉強は有効です。
エンジニアが本で勉強をするときは、自分のレベルや目的に合わせて本を選ぶことが大切になります。
初心者なのに難しい専門書を読もうとしたり、あるテーマについて詳しく知りたいのに入門書を読もうとしたりしては、目的の情報を得られません。
自分に合った本を選び、有効に活用しましょう。
ここまでお読みいただき、ありがとうございました。