Help us understand the problem. What is going on with this article?

実務未経験エンジニアはDockerを最低限勉強しておく。という提案

こんにちは。

おかげさまで先日めでたく駆け出しエンジニアとしてのスタートを切りました。
就職するまでの経緯については
【実体験をもとに】30歳未経験から独学4ヶ月でバックエンドエンジニアとしてWeb系自社開発企業へ転職するまでのロードマップ
こちらに記載してます。

さてさてそんな私が出勤初日から「勉強しておいてよかった〜」と思ったスキルがありまして、それがDockerです。

内容をYouTube動画でも投稿してるので是非見ください

https://youtu.be/j0jXUIF9KKk

これから駆け出しプログラマーとしての転職を目指す方々は是非学んでおいたほうが良いと感じたので、私自身の振り返りも含め紹介します。

併せて、「これちゃんと勉強しておけばよかった…」と後悔している技術も紹介します。

なぜDcokerを勉強しておいて良かったか

スタートで躓かなかった

入社初日の挨拶等が終わり、帰宅したあと会社からGitHubの招待がきました。

会社にジョインして最初にやることは(挨拶とか説明を抜きにすると)開発環境の構築というのはきっとどの企業でも同じでしょう。

昨今のモダンなWeb企業ではDockerでの環境構築が主流なので、例に漏れず招待されたGitHubのREAD MEにもDockerでの構築を行う旨が記載されていました。

入社して最初に打ったコマンドがGit clone
そして次がdocker-compose buildです

ここでもし私がDockerについて学んでなければ、開発環境の構築をするための勉強からスタートすることになったでしょう。

「仕事をスタートすることができない」という状況は評価者からのイメージも良くないですし、自分自身のメンタルにもかなりのダメージだと思います(汗)

どんな勉強をしておけばいいのか

Dockerはただ構築に使うだけなら簡単なものです。
コマンドを打つだけですからね。
しかしDockerの概念や構造をそれなりに学んでおかないと後々に困ることがあります。

いざエラーが発生した時にlogの確認ができなかったり。
DBの中身を確認したくてもどのコンテナにどう入れば良いか分からなかったり。

仕事をする上で必ず触れるポイントなので、入社前に学習しましょう。

とりあえず入社前は以下のような内容を学んでおけ良いのではないでしょうか?
- コンテナの概念
- Dockerfileの内容
- docker-compose.ymlの内容
- docker-composeコマンドの使い方
(build.up.down.runをとりあえず)
- dockerコンテナへの入り方(docker exec -i -t コンテナID bash)

ハードルが高く感じがちですが、ネット上に情報がたくさん落ちてますので参考にすれば初学者でもちゃんと扱えるようになります。
というか、Dockerfileやdocker-compose.ymlはテンプレがたくさん落ちてるのでとにかく構築してポートフォリオに導入してみるのが早道でしょう。

コンテナの概念については文章で見るより説明を受けたほうが早い。

ネット上には図を使って説明している記事など多くあり情報ソースに事欠かないDockerですが、なかでもYoutubeで解説動画を出しているベテランエンジニアさんがいます。
私がヘビーローテションしていたオススメのYouTuberさんを紹介します。

くろかわこうへい さんの「目指せコンテナマスター!」シリーズ

今から追いつくDocker講座!AWS ECSとFargateで目指せコンテナマスター!〜シリーズ1回目〜

IMAGE ALT TEXT HERE
※くろかわさんご本人の許可を得て掲載しています。

とても丁寧に説明してくださっているので、わざわざ他で調べる必要がないくらいです(๑❛౪❛๑)
まずは前半のコンテナについての概要をサックリと理解すると良いのではないでしょうか。

他にもAWSについての解説を出していらっしゃるので必見です。

個人的にはくろかわさんの喋り方がクセになるんですよね〜w

SQL

ついでにSQLも勉強しておいてよかったな〜と思ったので紹介します。

入社してたった数日間ですが、一日中DBを触ってた日もありました。
難しいことができる必要は無いですが、基本的な動作は行えるようにしておいて良かったと思います。

基本的な動作って何?って言うと、以下のサイトに書いてある内容くらいは把握していれば良いのではないでしょうか。
https://yukun.info/category/sql/

SQLクエリを打って検索や追加を行えるって感じですね。

※ちなみに私はmigrationエラーするので、入社時もschema_migrationsを見に行ったりダブってるmigrationファイルをinsertしたりしてました。

勉強しておけば良かったと後悔したこと

rails consoleの使い方

未経験エンジニアがポートフォリオを作る過程でデバッグ作業をしっかり行なう。ということは少ないのではないでしょうか?

既存の商材にもバグは必ず発生しますし、その際には他人が作ったコードが実際にどう動作しているのか知らなければ直せません。

私はポートフォリオ作成においてrails consoleをしっかりと使用していなかったので、メソッドの動作確認がスムーズにできませんでした。

リファクタリング

環境構築が終わったら、既存のソースコードの内容を把握する作業が必要だと思います。

恥ずかしながら僕はまともにリファクタリングの勉強をしていなかったので、まさにちんぷんかんぷんでした…

scopeで式をメソッドとして定義したりviewを2ファイルに分割するなど、ちゃんと勉強や活用をしておかないとコードの把握に時間がかかりメンタルが・・・。

mailer

「開発をしていれば100%mailerを使う機会がある。」ってなんで思いつかなかったんだろう…。
と後悔する限りです。

未経験者のポートフォリオにはユーザー登録時にメールが届くくらいの機能は付けておくべきでしょう!

終わり

入社して1週間になりますが、正直「何もできなかった・・・」というのが感想です。
転職前は転職を有利にするスキルを身につけることに頭がいっぱいでしたが、実践に役立つスキルに対しアンテナを張って学ぶことも未経験エンジニアには大切なことだなと思いました。

WATARU_GP01
Youtube https://www.youtube.com/channel/UCRQhEo14-dOt99wCIt5Ap7w Twitter https://twitter.com/WATARU_GP01 MENTA: https://menta.work/user/13215 未経験プログラマーの助けになれればと思います
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした