#はじめに
・以下の記事を発見して読ませていただいたところ共感できることが多く、エンジニア転職してから苦労したことを元に、入社前に準備しておけばよかったと思うことを書いてみます。
https://qiita.com/hnak0210/items/713839c3589599a95222
#簡単な経歴
・20代後半です。現在は未経験からバックエンドエンジニアに転職して3ヶ月ほど。
・前職でシステム企画の仕事をしていましたが、実装の部分の知りたいと思いエンジニアに転職しました。
・システム関連の経験があったのでとりあえず転職活動始めました。全て落ちたらポートフォリオ作成しようと思っていたら内定いただけたので結局作っておらず、全般的に実力が足りていないです。
#この記事で書くこと
バックエンドエンジニアとして仕事をする上で必須の知識、入社前に知っておきたかったことを重要度順に書いています。
※知ってて当たり前と思われるものも載せています。
※私の経験に基づくものなので全ての人に当てはまるわけではないです。
重要度【高】
たぶんどの現場でも重要です。絶対に知っておきたい範囲。
1. 現場で利用されるプログラミング言語の理解
現場で利用されているプログラミング言語の基本的な文法やFWについての理解は必須です。
現職ではpythonで開発を行っているのですが、同じ時期に入社された未経験の方はrubyの経験しかなかったようでだいぶ苦戦していました。
経験を積んでいる方であれば言語の違いは程度の差はあれど吸収できそうですが、実務未経験の場合は入社前に最低限の知識をつけておきたいです。
2. Git(Github・Gitlab)
1人で開発や学習しているときはあまり意識していなかったのですがGitの知識も必須です。
ステージング、コミット、ブランチ作成から、コンフリクト時の対応方法、git reset
の使い方、リモートブランチへ影響辺りは絶対に知っておきましょう。(リモートのmasterブランチを破壊することは絶対にないように)
Gitを理解していないととても非効率なことをしてしまったり、なによりもパニックになってしまうので絶対に理解しておきたいです。
3. LINUX
高度なコマンドやオプション都度調べればよいのですがcp
・mv
・ls
を始めとする基本操作は知っておきたいです。
できるだけ薄い入門書を一冊読みながら、実際に手を動かせると良いと思います。
4. サーバーの基本
基本的というと範囲が難しいですが、公開鍵および秘密鍵の生成・SSH接続・踏み台サーバーの利用・DNS・ポート番号・configファイルの設定辺りをなんとなく分かっていれば良いと思います。
重要度【中】
1. DB操作の基礎
「DML」の操作は知っている方が多いと思いますが、バックエンドエンジニアでは「DDL」や「DCL」の操作も必要になってくるので概要は知っておきたいです。
区分 | 正式名称 | 主な操作 |
---|---|---|
DDL | Data Manipulation Language | SELECT, INSERT, UPDATE, DELETEなど |
DML | Data Definition Language | CREATE, DROP, ALTERなど |
DCL | Data Control Language | GRANT, REVOKE, COMMITなど |
2. AWS
AWSが全く使われていない現場というのはほとんどないと思うので、以下の本の範囲を1周しておくと全然違うと思います。Linux同様に実際に手を動かせるならそれが良いです。
「Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版」
www.amazon.co.jp/dp/4296105442
3. クライアントツール
ツールは人によって使っているものが異なっているため、教えてもらいづらいので自身で合うものを見つけるのが良いです。開発効率は高めていきましょう。
・ターミナルソフト
「iTerms2」は使いやすいです。
・GitのGUIアプリケーション
「Sourcetree」や「GitKraken」などいくつかあるので好きなものを1つ選びましょう。CUIでGit操作をしなくて良いのでかなり楽になります。
・エディタ
「Visual Studio Code」や「Atom」など好きなものを選びます。職場にエディタの宗教戦争があったら指示に従うと事を荒立てません。
・その他
ブラウザに「Google Chrome」を利用するなら「JSON Viewer」や「Wappalyzer」は入れておくと便利です。
重要度【低】
1. フロントエンドの基礎
バックエンド開発とはいってもフロントとのやり取りが生じるのでシア低減のHTML・CSS・JavaScriptの知識はあったほうが何かとやりやすいです。
2. 社内ツールの把握
社内で利用するツールなので先立って知る必要もないのですが、gmail・backlog・slack・JIRA・confluence辺りは結構メジャーだと思うのでもし社内ツールが事前に分かるなら触ってみると戸惑わないです。
3. Docker
最初は作成側でなくても良いと思うのですが、配布されたDockerを利用できるぐらいにはなっておくと良いです。
#最後に
これまで紹介したことを知らなかったとしても、もし転職できたのであれば早く環境に飛び込むのが一番良いのかもしれません。
結局実務で利用することになったら嫌でも学習せざるを得ないのでその方が身につくと思います。
ただ、基本的前提が無い中で現場に入ると同僚に迷惑をかけてしまったり、予想以上の負担になってしまうこともあります。また自身のメンタルもキツイです。
これらのことから、できれば入社前に知っておけばと思ったことを書いてみました。
1人でも参考になる方がいましたら幸いです。