【IT未経験・転職】必ずエンジニアになるための「おすすめ勉強本」【プログラマー・SE】

疑問

  • 新卒だけどエンジニアになる勉強は必要?
  • アラサーなんだけど、エンジニアになるにはどうすればいい?
  • 未経験でエンジニアに転職って難しいの?


本記事では、これからエンジニアになりたい方に向けたオススメの勉強本を紹介します。
※AIエンジニアについては、本記事では触れていませんがご了承ください。
※ゲームプログラマーについては、詳しくないため触れていません、ご了承ください。








はじめに

管理人は20代後半から、IT業界に興味をもち、アラサーで未経験のエンジニアへ転職をすることにしました。
現在は、PL(プロジェクトリーダー)/SE/アプリエンジニアとしてベンチャー企業で働いています。

そこで、別業界からIT業界移った経緯を紹介したいと思います。
少し長いですが、未経験から転職した1例として参考にしていただければと思います。

前業界では、大手で環境コンサルをメインに仕事をしておりました。
その業務の中で、ホームページを複数個作る機会がありました。

ホームページは、WP(WordPress)というCMS(フレームワーク)を用いて、テンプレートをゼロからすべて自作しました。
使った言語は、HTML/CSS/JavaScript/jQuery/PHP等で、独学で学習をして、ホームページを複数個作成しました。
レンタルサーバーを借りて、そこに作ったサイトを乗っけていろいろと作ります。

はじめはわからない事だらけでしたが、WEBサイトというものに興味があり、挑戦してみた!という感じです。

この経験をしたことで、ITに興味が湧き、せっかく仕事をするのだから、興味があることをやってみよう!
とITの世界に転職することに決めました。

ただ、20代も後半で、そう簡単に転職できるのか?笑
そこで、まずは業界研究をしました。

その結果、エンジニアといってもさまざまな種類があることがわかりました。
簡単なイメージは次項のようになります。 (初心者でもわかるように、ざっくりな説明です)



IT・WEBエンジニアの職種別の仕事内容

WEB制作
→HTML/CSSや、jQuery、Wordpressなどを使って簡単なコーポレートサイト等を作る仕事
※これからの時代これだけで生きていくのは少しつらいかもしれません。
※デザイナーとWEB制作をできると良いかもしれません。

プログラマー
→WEB制作のスキル等を持っていて、さらに、会員管理や裏側のシステムなども作る仕事
→詳細には、見かけに関わる部分をフロントエンド、内部のロジック部分をバックエンド・エンジニアといいますが、プログラマーにはどちらの基礎知識も必要なので、プログラマーとします。
※PHPやRubyや、JAVA
※アプリエンジニア(iOS/Androidなどもこの枠かと思います)
※ゲームプログラマーもありますが、詳しくないため割愛します

SE(システムエンジニア)
→プログラマーの経験を生かして、全体の設計を行う仕事
※実際にはプログラマーの経験がない方もいて、その場合は、悪い意味で、大変で、いろいろ影響が出るようです笑

インフラエンジニア
→データベースや、サーバなどの完全に裏方のインフラにあたる仕事

セキュリティエンジニア(アプリの診断をメイン紹介します)
→アプリの情報漏えいなどがないように、セキュリティ診断をしたりする仕事です。
※開発会社が作ったアプリは、セキュリティ会社の脆弱性診断(セキュリティ診断)を年に1度など受けたりします。
※セキュリティにも、仕事としては、5種類ほどありますが、今回は一番メジャーそうなアプリ診断にフォーカスしています。

だいたいですが、エンジニアには、上記のような種類があります。
管理人は、プログラマー・SEをメインにしており、インフラやセキュリティは基礎程度のスキルです。
※副業で、WEB制作等は受けたりしています。

また学習は、基本的には独学です。
ただし、セキュリティについては、都内の専門スクールを修了(卒業)しております。

上記の管理人の経緯・経験から、「非エンジニアまたは、未経験の状態から、エンジニアになるために必ず理解しておきたい本」を紹介したいと思います。
※ゲームやAIエンジニアについては、今後更新していく予定です。



WEB制作の勉強本

プログラマー、SE、エンジニアや、WEBデザイナー等、すべての人に学習必須なのが、WEB制作の知識です。
WEB制作では、「見かけ部分」のみのHTML/CSSがまずは必須です。

まずは、HTML/CSSで、いろいろなデザインを作ってみましょう。
HTML/CSSにサーバの準備は不要です。

デスクトップに適当なフォルダを作って、「test.html」と「test.css」という2つのファイルを作って、「test.html」をブラウザにドラッグ&ドロップすれば、見ることができます。
htmlとcssのファイルの中身は、本の内容を入力していけば、あとは自然と身につきます。
※IT業界に興味がある・・・くらいの人は、まずはHTML/CSSをやってみて、自分に合っているか?を判断すればOKです。

プログラマーの勉強本(フロントエンド)

※「WEB制作の勉強」が終わったら、プログラマー(フロントエンド)の勉強が可能です。

WEBサイトのプログラムを大きく分けると、フロントエンドとバックエンドに分割できます。

フロントは、WEBサイトの見かけ部分の「HTML/CSS」に「動き」をつけて操作するイメージです。
例えば、WEBサイトを見ている時に、画面の下あたりに、「一番上に戻る」ボタンがありますよね。
それを押すと、「一番上までスクロール」しますが、それがフロントの仕事になります。

フロントの言語としては、「JavaScript」が基本になります。
JavaScript以外にも、「jQuery」がありますが、これはJavaScriptのコードを「短くかけるよう」にした言語です。
jQueryの基本は「JavaScript」なので、同時に使うこともできます。

まずは、JavaScriptを学習し、続いてjQueryの本を学習するとしっかり理解も深まります。

以下の本は、JavaScriptがメインですが、jQeuryの初歩も乗っていますので、最初の一冊としてオススメです。
※この1冊をマスターしたら、「次項のバックエンドを学習してOKです」

また、Vue.jsやReact.jsなども耳にするかもしません。
これらもJavaScriptをベースに作られていますが、これはJavaScriptとjQueryをある程度マスターした後がオススメです。
VueやReactは、フロントエンド・エンジニアを専門の職種にしたい場合に学習すれば良いでしょう。

プログラマーの勉強本(バックエンド)

※事前に、「WEB制作の勉強」で、HTML/CSSを学習しましょう。
※事前に、「プログラマーの勉強本(フロントエンド)」で、JavaScript/jQueryを学習しましょう。

さて、フロントエンドまでの学習が終わったら、バックエンドの学習が可能です。

バックエンドのイメージとしては、例えば、ブログなどをイメージしてみましょう。
ブログは、記事の「タイトル、本文、画像、日時」などで構成されています。

これらのデータをサーバ内のデータベースに保存しておきます。
データベースとは、図書館の本棚みたいなイメージですね、要は、たくさん保存できる場所です。

記事ごとに、データベースから「タイトル・本文など」を抽出して、見かけ部分「HTML/CSS」に渡しています。
この「このデータベースからデータを受け取って、見かけ部分に渡す」部分がバックエンドの仕事になります。

バックエンドの言語としては、「PHP」または、「Ruby」のどちらかを学習するのが良いでしょう。

言語の選び方は、例えば、入りたい会社が決まっている場合は、その会社がどちらを使っているのか調べてみたりすると良いかと思います。
例えば、求人募集のページやブログなどに主な「開発言語が記載されている」場合は、そこを見る感じです。

とは言え、入りたい会社が決まっていることもあまりないと思います。

そんなときには、以下のイメージで選ぶと良いと思います。

Ruby=シンプルにわかりやすく学習したい。
PHP=昔ながらの職人気質よりな言語で学習してみたい。

だいたいですが、上記のようなイメージで簡単に決めちゃいましょう。

なぜこんな適当かというと、いくつかのバックエンド言語を学習していくと、どれも基礎的な部分は同じことに気づきます。
そのため、他の言語もすぐにマスターできるようになるからです。
(※ちなみに管理人はPHPをメインに使っています。)

Rubyのオススメ本↓↓

PHPのオススメ本↓↓

いずれの書籍にも、ローカルサーバ(自分のPC上でサーバを立てます)のやり方も掲載されていたと思います。

実際の運用では、自前のサーバをAWS等で、用意したり、レンタルサーバなどで借りたりします。
実践に入るまえに、こういった練習にもなりますので、良い一冊になるのではないでしょうか。

サーバ・ネットワークの勉強本(インフラ)

前項までの「WEB制作の勉強」、「プログラマーの勉強本(フロントエンド)/(バックエンド)」を学習を終えたら、プログラマーとしては最低限クリアしています。

とはいえ、一般に公開したいですよね?
そのためには、「サーバを作って、そこに作ったプログラムを載せる」必要があります。

サーバには、オンプレミス(自宅や会社に設置)と、クラウド(WEB上にサーバが設置できる)の2種類があります。

オンプレミスでも駄目なわけではないのですが、サーバ用のPCを用意したり、電気代がかかったり、火災の原因にもなりますので、基本的にオススメしません。

また、これからは必要のない時代になります。
そのため、クラウドのみ考えればでOKです。

2020年現在の(実質)標準的なクラウドのサーバとして、「AWS(Amazon Web Services)」が一般的です。
AWSは、実務でも多用されており、さまざまな企業も導入しているので、転職に有利ですし、学習しておいてまず間違いないでしょう。
※アカウント登録から「12ヶ月の無料利用枠」がありますので、有効活用しましょう。(※2020年7月時点)

また、AWSでサーバを構築していくと、「ネットワークの基礎」から、「サーバの設定」、「データベースの構築方法」まで、プログラミング以外のWEB基礎スキルをほぼすべて学ぶことができます。
このため、AWS以外にも様々なサービスや、レンタルサーバ等もあるのですが、管理人が一番オススメする学習方法はAWSになります。

管理人が何度も読み込んだ本、通称「紫本」と言われているのですが、AWSを使うなら最初の一冊として必須になります。

ここまでの学習を終えると、サーバ設置からプログラム(WEBサイト)の設置まで一通り完了です。

セキュリティの勉強本(安全なプログラムを書く)

さて、実際にWEBサイトを公開するにあたって、セキュリティは必須になります。
セキュリティで重要なことは、「大切なWEBサイトのデータなどを改ざんされたり、盗まれたり、削除されたりしないよう対策」することです。
これはネットワーク、サーバ、プログラムのすべてに該当します。
そのため、自分の趣味であっても、仕事であってもエンジニアは常にセキュリティに問題がないかを考慮する必要があります。

以下の本は、WEBサイトを構築する上で、かならず知っておくべきセキュリティの内容が網羅されています。
分量は多いですが、全エンジニア必須のスキルになりますので、必ず学習することをオススメします。
(セキュリティを考慮しないで仕事をすると、膨大な賠償金等が発生する可能性も十分ありますよ!・・・怖い)

さて、ここまでの学習で、基礎的なWEBサイト(アプリケーション)は理解できているはずですので、独自の簡単なTODOアプリや、会員制サイトなどを作って、ポートフォリオ(作品)として、転職の材料に使って行きましょう。

セキュリティ・エンジニアの勉強本(脆弱性診断)

アプリケーションを作る側の人ではなく、診断側のお仕事もあります。
脆弱性診断(セキュリティ診断)などと呼ばれることもあります。

実際には、プログラマーを経験してからなる人が多いですが、基礎知識や、スキルがあれば、いきなりこの仕事につくこともできるかもしれません。

いずれにせよ、セキュリティ・エンジニアを目指す方は、ここまでの知識は基礎的な範囲で構わないので、最低限学習しておく必要があります。

脆弱性診断に興味がある方は、まずは以下のテキストを学習して自分が本当にやりたいことか?
まずは判断してみることをオススメします。

そのあとに、転職や必要であれば、セキュリティスクールなどに通ってみるのもありでしょう。

Android(Android Studio)の勉強本

スマホ(Android)のアプリを作る仕事もあります。
(管理人は最近こちらを仕事が多いです)

Androidのアプリは、基本的にAndroidStudioというIDE(統合開発環境)というソフトがあり、それで作っていきます。
言語は、JAVAまたは、Kotlinです。
Kotlinは、JAVAを書きやすくしたもので、JavaScriptとjQueryの違いみたいなものです。

Androidで管理人のオススメ本を紹介します。

これから始めるなら、Kotlin言語のものが良いでしょう↓↓

すでにJAVA学習経験がある方は、JAVA版でも良いかもしれません↓↓
(内容はKotlinと同じです)

Androidアプリ単体で動作するものもありますが、世の中のほとんどのアプリが、会員情報等、何かしらサーバと連携しています。
そのため、仕事になると、ほぼ確実にWEB側(サーバ・アプリ)の知識も必要になってきます。
Andoridの本を学習したあとで良いので、WEBの方もかならず学習しておきましょう。
※趣味の場合は、WEB側の勉強は、もちろん不要です。



iOS(Xcode)の勉強本

iPhone(iOS)のアプリを作る仕事もあります。

iOSのアプリは、基本的にXcodeというIDE(統合開発環境)というソフトがあり、それで作っていきます。
言語は、Objective-Cまたは、swiftです。
いまから始めるなら、swiftにしましょう。
※Objective-Cは古い言語で、いまから使う理由が全くありません。また、コードの書き方も他の言語と比べて独特なので、オススメしません。

iOS開発で管理人のオススメ本を紹介します。

iOSアプリ単体で動作するものもありますが、世の中のほとんどのアプリが、会員情報等、何かしらサーバと連携しています。
そのため、仕事では、ほぼ確実にWEB側(サーバ・アプリ)の知識も必要になってきます。
iOSの本を学習したあとで良いので、WEB側の方もかならず学習しておきましょう。
※趣味の場合は、WEB側の勉強は、もちろん不要です。



さいごに

本記事では、管理人が別業界・未経験の状態から、ITベンチャーに転職するにあたり、どんな経緯だったのか?
また、どんな学習をしたのか?
また、IT業界で、エンジニアといっても非常に幅広い種類がある、ことも解説しました。

本記事を通して、学習手順と、その手順に「最低限必須」な本を紹介させて頂きました。
実際に学習していくにあたり、本の中で、わからないところがあったら、ググってみてください。
このググるということが、エンジニアにとって必須のスキルになってきますので、ググる力を身に着けましょう。

また、本以外に、WEB動画など、WEB上で学習できるサイトもありますので、そちらも併せて活用していけばより理解が深まるのではないでしょうか。

管理人は、基本を本で、身につけ、そのあと味付けで、ググったり、WEB学習サイトを活用していました。
これがもっとも個人的に効率的でしたので、本記事もその流れで紹介させて頂きました。

おまけ:スクールについ

最近ではエンジニアになるためのスクールが流行っていますが、効率や、転職の速さを求めるのであれば、活用するのも十分にありでしょう。
(以下2個のリンクは、大手の有名なテックキャンプさんのリンクです)






↑ テックキャンプは、業界で有名どころなので、HPを除くだけでも学べるところはありますよ。

以上です、お読み頂きありがとうございましたー!

シェアする

  • このエントリーをはてなブックマークに追加

関連記事

スポンサーリンク

ユースフルビーとは


「わからないを30秒で解決したい!」をモットーに、ガジェット好きのWEBエンジニア、便利グッズ好きのSEの2人で運営しています。

「ネットには情報が多すぎて、何を信じていいの?」
「商品が多すぎて、どれがベストかわからない!」

そう感じることってありますよね?

情報社会の日本、情報が多すぎることが、便利であり、逆に困りごとだったりします。

当サイトは「わからないを30秒で解決」できるよう日々運営しています。

詳細はこちら

スポンサーリンク

スポンサーリンク

スポンサーリンク