Web開発のエンジニアとして働き始めて1カ月が経過しました。
初心忘るべからず、ということで個人的な備忘録も兼ねて、未経験でエンジニアに転職して感じたギャップを書き出してみます。
転職するためにスクールに通ってる方もたくさん居ると思いますので、まあこんなやつも居るんだなーという一例として読んでいただければ。
入社時の私のスキル感
まず簡単に私が入社した当時のスキル感を書いてみます。
- テックアカデミーのフロントエンドコースを2カ月受講してHTML、CSS、JS、jQuery、Vue.jsなどの基礎的な部分を勉強
- その後独学で8カ月ほど、コーダー目指してデザインカンプのコーディング練習して簡単なデザインの見た目は再現できるようになる
- ボタンやスクロールの制御やアコーディオンメニュー、スライダーなどはググってコピペしながら実装できるレベル
- WordPressを使用したサイトの構築をUdemyや書籍でざっくり理解している
- PHPでGET,POSTできることは知っている
- gitはバージョン管理に使われることは知っている
勉強していたころはコーダーからフロントエンドエンジニアになることを想定していたのでバックエンドはほとんど触ったことない状態でした。入社が決まってから2週間くらいで突貫で勉強した程度です。そもそもフロントとバックの境目も良く分かってない状態でした。
では、以下にギャップを書いていきます。
ギャップ①プログラミングスクールと実務の違い
そもそも、フロントエンドの勉強してきたのに今開発で使ってるのはLaravel(PHP)なのでその時点でズレがあるんですがそこは割愛します。
速度への意識
スクールや独学で勉強していた時は、要件を満たしていれば課題は合格だったのでレスポンスの速度とか、処理の速度とか意識せずコード書いてました。
しかし、実務では処理速度遅いとか、画面の描画が遅いと必ず改善してくれって話になります(そりゃそう)。
なのでそもそも、テストしてあまりにももっさりしてたら例え要件通り動いていてもロジック考え直すなり、別の実現手段を考えなきゃいけません。
処理速度というのは実務で初めて意識した部分です。
誰でもエンジニアになれるという言葉の裏に何があるか
私はネットの広告見て、勉強さえすれば副業できるんだな、エンジニアになれるんだなと思って勉強始めたカモなんですが、実際エンジニアとして働き始めた今、この謳い文句には先の言葉が書かれてないなと思っています。
相応の努力を続ければ未経験からエンジニアになれるというのは合ってるけど、エンジニアとして仕事を続けていくにはなるまでよりもさらに努力も勉強も必要だしそれが苦だとやっていけないなというのが私の肌感です。
そして、商売としてやってるスクールなどは間口を狭めるようなことは当然書かないので誰でもなれるという部分だけ書かれてますが、未経験でエンジニアになった人間は最初の数年は死ぬほど勉強しないとダメだなと自分は思ってます。
その書かれてない部分は転職してから挫折する原因にもなり得るなとも思います。
スクールの課題は当時めちゃくちゃ大変だったんですが振り返ると今より楽だったなと。
ただ、誤解無きように書くと、スクールに通わず(なれるかは置いといて)エンジニアとして働いてたら耐性無くてそれこそ挫折してた思うので自分はスクール受講して良かったと思ってます。ただ、就職した先を想像するのはスクール単体では難しいのでギャップに感じるかもという。
ギャップ②教えてくれない前提
これは会社によってかなり差があると思いますが、私の場合、未経験ですと面接で言って入社させてもらったので、しばらくはコード書かずに先輩の書いたコードのテストとかして1カ月くらいは自分ではコード書かないんだろうなーと思ってたら、最低限の環境構築とか社内ルールなど教えて頂いて、分からなかったらググってそれでも分からなかったら聞いてーという感じで初日からコード書かせてもらってびっくりしました。
もちろん、手取り足取り教えてもらえるとは思ってなかったですが、ここまで個人に任せてもらえるとは…と驚いた次第です。
でもそれは、放置じゃなくて、基本的に自己解決できないとこの仕事できませんよってことだと私は解釈してます。
最初は面食らいましたが今では考える&調べる時間をいただいてありがたいなーと思ってますし、教えてもらって1時間で実装したロジックより、エラーと丸1日闘いながら苦しんで実装したロジックの方がはるかに記憶に残るし勉強になりましたし、自己解決できるまで考え続けるってことが苦だとやっぱりエンジニアとしてやってくには厳しいと思うので適正見るうえでも、ある程度の放置プレイは正しいのかなと思います。
もちろん、いつまでもこの調子じゃ駄目なので作業スピード上がるよう日々精進ですけども。
ギャップ③人の書いたコード読む力めっちゃ必要
改めて言葉にすると実務なら当たり前だよなーって感じですが、スクールや独学で勉強してるときって解説とセットでコード読むか、自分で考えて一からコード書いてみようってパターンが多くて、他人の書いたコードの意図を読み解く練習ってする機会あまりないですよね。
私はここがめちゃくちゃ躓きました。
例えば、この変数$fって何のためにあるんだろう?とかこのif文は何を判定してるのか?とか読み解く力がめちゃくちゃ必要(かつ自分に圧倒的に足りない)と感じました。
機能追加で結果的にたった一文追加するだけだったとしても、Webシステムの膨大な量のコードの中からどの行に新しいコードを追加するのが適切か、見極めるのに1時間かかったりします。
ここにコードを追加したことでどこまで影響範囲があるのか調査するのにさらに1時間かかったりします。
力不足をめちゃくちゃ実感します。
総括、先は長いのでひたすら頑張る
書いてて凹んできましたが、入社して感じたギャップって全て自分の経験や知識の無さから来てるんですよね。
ただ、ありがたいことに今のところ全部モチベーションに繋がってるのでいい環境で仕事させてもらってるなと改めて思いました。
実装に時間かかってひたすら申し訳ない気持ちなので早く経験積んで成長して貢献したいなと思っております。
[rakuten:book:20472810:detail]