エンジニアとして知識を腐らせない方法 ~ 現場と同じ環境を自宅にも作るメリット ~

投稿日: 2022/04/26
更新日: 2022/04/26
シェア:

URL copied!


概要

エンジニアは一生勉強。 とよく聞きます。
しかし、勉強し続けるのは難しく、辛いものだと思います。
私が今やっている、楽しく知識を蓄え、さらに磨いていく方法をご紹介します。

やってはいけないこと

その前に、これだけは絶対やらないようにしましょう。

・現場のコードをそのままコピーして自身の PC に持ってきてしまう
・現場独自のもの(技術等)を持ち出さない

やって欲しいこと

現場でコードを書く中で知った言語・FW・その他アプリの

公開されている仕様書(ドキュメント)に書かれていることを自分のかたちで残す

ことをします。ドキュメントに書いてあることを全部知ろうとするのにも時間がかかりますし、みただけではどう使えるのかがわかりません。
ならば 実装しておいて動くものとして残そう ということです。

例えば、私が扱っている Python の FW Django のログイン機能の関数の一つである update_session_auth_hash を知ったとします。

Django - Using the Django authentication system - update_session_auth_hash

これを自分の作るシステムの認証に組み込んでみるのです。
このようにドキュメントもとに作って残すので、現場のコピペにはなりません。

具体的にどうやってやるか

PC は揃える必要はないでしょう。
Mac じゃないと、Windows じゃないとできない!はなくしておきましょう。
どちらかしか使えない現場もあります。

1. 環境を揃える

現場の検証・本番環境が Ubuntu なら Ubuntu で、CentOS ならCentOS を手元に用意しましょう。 環境が違えば少しずつコマンドにも違いがでくるので合わせましょう。
今は Docker や Windows Subsystem for Linux(WSL)もあるので簡単に環境は作れると思います。

2. 使用している言語・FW等のバージョンを揃える

システム開発を行っている場合言語やFWの バージョン管理 を行われていると思います。
(その他にも WebサーバやDBなどもバージョンを合わせていきたいところです)
設定ファイルやドキュメントに使っているバージョンを探して合わせましょう。
違うバージョンで腕試ししていますと、新しいバージョンにしかない関数があったり、逆もしかりなので同じバージョンを使いましょう。
ただ、先取りして新しいバージョンを勉強するのは大いにアリです!!

3. なんか好きなシステムを作る

なんでも良いと思います。私はこのサイトを立ち上げることにしました。
ただし、 自分がそこそこやりたいもので続きそうな分野 のシステムにしましょう。
また、 自分が日々使いたい(使う) ものにする方がなおお勧めです。なぜかと言いますと、触らないと「ここ直したいな」と思う機会が減ってしまいます。作っておしまいにするのはもったいないので何か使えるものがいいと思います。
思いつかなければ、勤怠管理やタスク管理などが発想しやすいと思います。

自分で作ったものを自分で使うとなんだか嬉しいような、楽しいような感じになります。

4. 現場でやった機能(関数)は自分のシステムにも実装

3で終わってしまってはもったいないです。
その機能自分で作れますか?
システム開発していて自分が担当した部分は体に染み付いていることでしょう。じゃあ、誰かが実装してくれた機能は自分で作れたでしょうか?
ログイン機能、パスワードリセット機能など hello world のままではないでしょうか?
言語や FW の機能を全て知っている全知全能な方は良いですが、日々発見があると思います。 その機能・関数を仕様書を再読して実装してみましょう。 もっとこうしたらうまく使える、こういうことだったんだというのが見えてきます。知識も増えます。
ただ、「やってはいけないこと」でも書きましたが、現場のコードそのまま持ってこないように。。。

おわりに

自分の GitHub(もしくは類似のサービス)に参考になるサービス(コード)を残しておくと、何かあった時の助けになると信じています。