エンジニアに転職するために身につけておくと良い技術3選

こんにちわ!boraです!(@bora_sns

エンジニアになるためにはjavascriptやphp、rubyといったプログラミング言語は勿論、各種FWの知識も必要ですが、それ以外にも抑えておいた方が良いスキルがあります。それがGit、Docker、AWSです。何で知っておいた方が良いのか?現場でほぼ絶対使うからです!

1. コードの変更履歴を管理する最も使われるバージョン管理ツール「Git」

web制作でもweb開発でもソースコードや画像ファイルなど様々なファイルを使いますよね、その全てのファイルの変更履歴を管理してくれるのが俗に言うバージョン管理ツールです。その中でも一番メジャーでどの開発企業でも使っているのがGitと呼ばれるツールです。もうね、使わないと仕事ができないです笑。エンジニアに転職する前に個人開発していた時も使っていましたがその時は一人でした。勿論個人の際も便利なのですが、チーム・複数人で開発する際に力を発揮します。

使い方としてはざっくり2通りあります。

それがGitのGUIツールである「SourceTree」もしくは、macであればターミナル(真っ黒い画面だわさ)になります。

前者はGUIツールなのでクリックやドロップ&ドロップなどツール上から感覚的に操作出来るので非エンジニアの方にとっても入りやすいのではないでしょうか?私も最初はSourceTreeから入りましたよ!でも結局今はターミナルで操作しております。

なんだろう、色々やろうと思うとSourceTree自体の操作方法が分からなくて「これならターミナルの方が結局分かりやすいしはえーや」と思って乗り換えたような記憶があります、でも今から学ぶならどっちでも良いと思いますよ!出来る事は一緒です!SourceTreeだと操作が感覚的な事に加えブランチと呼ばれる派生・枝分かれのルートが視覚化されるのでその点は直感的で分かりやすいです○

エンジニアに転職する前は当然一人で練習する事が多いと思うので、その際はチーム開発でのGit操作を想定して、一人二役でプルリクエスト(ざっくりとAさんがBさんに「このソースコードで問題ない?ねぇねぇ問題ない?」と確認、OKなら合体、NGなら「直せバカ野郎」とAに戻す事です)なども含めて勉強しておくとより現場に入った際に戸惑いが少なくなるかと思います!

  1. サル先生のGit入門
  2. LearnGitBranching

上記はGit勉強方法としておすすめのサービスです。

前者はGitを学ぶ人が皆一度は見るはずのサル先生のGit入門で文章のみではイメージしにくいGitを可愛らしいサルのイラストで図解してくれるので初心者の方も取っ付きやすいはずです!サル可愛い。

LearnGitBranchingはgit操作を行うとその結果どうなるのかをビジュアライズされるので目で見て「このコマンドはこういう動きをするのか」ととても分かりやすく理解する事ができます。

Gitは最初はつまづく事も多いかとは思いますが、ネット上にありとあらゆる情報があるので情報収集がとてもしやすいです。是非エンジニアとして必須ツールであるGit、マスターしてください!

2. 面倒な開発環境を高速で構築する仮想化ソフトウェア「Docker」

毎回思うんですよね、開発環境って結構作るのがめんどいなって。それを解決してくれるのがクジラアイコンことDockerと呼ばれる仮想化ソフトです。

Dokcerを使う事で、高速に、手軽に、PJ毎に隔離された環境(他を汚染しない)を実現する事が出来る!私もDockerウィ使い出したのは比較的最近でお恥ずかしいのですが、少し前まではVMWare, VirtualBoxと言った仮想化ソフトウェアよく使われていました。この2つは「ホスト側仮想化」と呼ばれ、それに対してDockerは「コンテナ型仮想化」と呼ばれます。前者に比べ後者は圧倒的にリソース使用量が少なく非常に高速に動きます。

DockerもGitと同様に求人の募集要項に記載されている事が多いので習得しておきたい技術の一つで近年非常に注目、且つ使用されている技術になります!

3. Amazonが提供する何でもあるクラウドサービス「AWS」

正式名称は「Amazon Web Services(アマゾンウェブサービス)」、通称AWSです!

AWSはざっくりと「web開発に必要なサーバー、DB、ストレージなどがネット環境さえあれば全て手に入る」クラウドコンピューティングサービスです。AWSなどのクラウドコンピューティングが登場するまでは、自社の中にサーバー機材を配置・利用する事が一般的でした、これを「オンプレミス」と呼びます。しかしこれは機材を用意したり物理的に配置したりとかなり大変な事だったりします。それをネット環境さえあれば全て解決できるのがAWS!Amazonが提供しており実に多種多様なサービスがあり(ありすぎて使いきれません)安全なセキュリティ、スピーディー・強力に開発をサポートしてくれます。

私がよく使うAWSのサービスは「ec2」「dynamodb」「elb」「cognito」あたりを直近良く使っております。ec2で仮想サーバーを立ててファイルをアップ・デプロイ、ec2インスタンスは2つ用意してelbで冗長構成(仮に一つが止まってもサービスが止まらないように対策!)、dynamodbでデータを管理、cognitoはユーザーの認証機能などなど。

非常に便利なサービスである事は間違いないのですが、サービス毎に課金される条件が違うため、正確に全ての使用サービスの料金を計算するのが何気に難しいです笑

また各サービスの使い方自体を覚えたり、各サービスと連携させる事も多いですがその繋ぎ込みであったりと勉強しなければいけない事も結構あります、しかしそれを全て含めても勉強する価値が非常に高いです、AWSに関する資格も色々ありAWSエンジニアと言った職種まであったりするのでそれだけ需要があるという事ですよね。

下記はAWSの計算ツールになり、1は公式のツールで設定でかなり詳細に設定する事ができるのですが、詳細すぎて何を言っているのかが分からない事もあります!後者は個人の方が開発されたサービス名通りざっくりと計算するためのツールで公式に比べてハードルがめっちゃ下がります、非常に使いやすいです、AWSで使用サービスの概算を出すときなどは私は下記ツールを利用しています。

  1. AWS公式計算ツール「AWS Pricing Calculator
  2. 個人開発AWSざっくり計算ツール「ざっくりAWS

AWSに関して調べものをすると必ずと言っていいほど見る事になると思うのがクラスメソッドの「developersIO」と言うサイトですが知識量も豊富で比較的分かりやすい説明で解説してくれるので大変参考になるので困ったときなどに是非見てください。

Git、Docker、AWSはエンジニア必須の技術なので習得して有利な転職を!

それぞれのサービスを説明しているととても一つの記事では説明仕切れないレベルの量になってしまうので、今回はざっくりとした概要「あ、そういう感じのサービスなんだ、ちょっと調べてみようかな」ぐらいに思っていただけると幸いです。

それぞれプログラミングとは別に使い方を勉強する必要がありますが、エンジニアには必須の技術なので面接時にアピールする事ができれば有利に働くかと思います。