PHP
MySQL
初心者

新卒未経験エンジニアとして半年間学んだ振り返り

はじめに

細々とQiita投稿していた元未経験エンジニアです。
4月に新卒として入社して半年が経ち、しっかりとしたトレーニング期間が終了しました。
この半年に学んだこと、行った業務、感じたこと、こうしておけばよかった、こうしてもらえたらもっとよかったなどを備忘録として残しておきたいと思います。今回は技術面に限定します。
来年以降に活かせるように。

4月

学んだこと

内容

  • HTML/CSS
  • PHP(基礎)
  • MySQL(触り)

方法

ドットインストールでひたすらPHP入門を見る。その後メンターにアウトプットの目的で簡単な問題を出題してもらう。
HTML/CSSは調べながらひたすら書いていくという、必要最低限を身につける方式。
SQLはターミナルでコマンド打って見る。これもメンターからの出題形式で慣れていった。

行った業務

  • ひたすら勉強(技術的な業務はなし)
  • 簡単なBMI測定アプリを作成(PHP/HTML/CSS)

ひとこと

勉強詰だったわりには、楽しく過ごせた。おそらく全てが新しく吸収が嬉しかったから。また、BMI測定アプリは社内に公開し、ポジティブな反応を多くいただけたため嬉しかった。PHPはforeachの理解に時間を要したが、出題形式にして多くのパターンに触れることができたことが後々の業務につながったと思う。

5月

学んだこと

内容

  • HTML/CSS
  • PHP
  • MySQL
  • git(概念)
  • MVC(軽く)
  • コードレビュー

方法

上三点に関しては引き続き継続学習を行った。
gitについては業務で必要になるとのことで、コマンドと概念をウェブサイトで学習
MVCは概念を軽くメンターに説明してもらった
コードレビューは後述の家計簿アプリで行った

行った業務

  • ひたすら勉強(技術的な業務はなし)
  • MVCで簡単な家計簿アプリを作成(PHP/HTML/CSS/MySQL)

ひとこと

5月はSQLも使用して家計簿アプリを作成。CSSもライブラリを用いることで綺麗なウェブサイトが一つ完成して、エンジニアになったんだなあと感じることができた月だった。今振り返るとこの二ヶ月での小さいが多くの成功体験を積めたことが、エンジニアとしての仕事に対して前向きな姿勢をもたらしてくれたと思う。また、MVCに早くから触れることができたのは後々の業務に入りやすくなった。

6月

学んだこと

内容

  • JavaScript
  • Ajax
  • JSON
  • git

方法

全て業務で必要なところを都度調べながらという感じで行った。
gitも初めてしっかりと使った

行った業務

  • 広告配信システムのレポート画面の改修

ひとこと

いきなり難しい案件に当たってしまったということもあるが、かなり苦労した。業務で使われているPHPの修正はほぼ行わず、研修でやらなかったJS、Ajax、JSONなどが出てきたため調べながらの業務となった。この後にもJSを使うことは多々あったため、研修内容に基本的なところはあってもよかったなと感じた。とはいうものの無事業務をこなすことができたという経験はやっと社会人になったのだと感じることができた瞬間だった。

7月

学んだこと

内容

  • JavaScript
  • Vue.js
  • Laravel
  • 要件定義
  • 設計

方法

JavaScriptについては前月の反省を活かし、基礎研修を行っていただいた。
Vue.jsは対応箇所が少なかったため他のコードを見よう見まねで記述
Laravelは簡単に概要の説明を受け、触って慣れる方式で勉強

行った業務

  • 社内用広告配信管理ツールの新機能開発

ひとこと

初めての自分が主体となった機能の開発であった。そのため要件定義、設計、工数見積もり、テストなど新たな経験が盛りだくさんだった。ただのプログラマーで終わらないエンジニアとしての第一歩となったかなと思う。ビジネスサイドとの要件のすり合わせ等のビジネススキルも身につけることができ、視野が広がったと感じた。今になって考えると、Laravelの基本的な機能は使っているものの、活かしきれていない感が強いため、Laravelの使い方であったりそもそものチームでの運用方針をしっかりと策定することがよりスピーディーかつ今風なチームになるのかなと感じている。

8月

学んだこと

内容

  • サーバーとは
  • 仮想化
  • テストの大切さ

方法

上記2点は講義形式で概要の説明を受けた。vagrent upくらいはできるようになった。
テストの大切さは不具合を出したことで身にしみて感じることができた。

行った業務

  • 広告配信システムの改修数件

ひとこと

上記のテスト漏れに関しては、インデントを1行直しただけの改修だったために起こった。smarty templateがJavaScriptのタグとして読み込んでしまうという事象で、テスト環境でストップしたから損失は出さなかったものの、冷や汗が止まらない苦くも大きく大切な経験になった。以下エラー内容

正しいコード

 $j.ajax(
                {
                    url:"/ajax/

誤ったコード

 $j.ajax({
              url:"/ajax/

これでエラーが出るのでSmartyは気をつけます。

9月

学んだこと

内容

  • 綺麗なコード
  • 速度を気にした開発

方法

DRYであったりDIを意識したコードを書く。例えばメソッドは細かく分けるであったり、タイプヒンティングをきちんとする、メソッド名をきちんと考えるなどをして地道に慣れさせ身につけていった。
速度をあげることに関してはDBアクセスをなるべく減らして時間がかからないようにした。99%以上速度が速くなった(7月の開発の自分が書いたコードが汚すぎたというナイスアシスト)。

行った業務

  • 7月に行った新機能開発のリファクタリング

ひとこと

リファクタリングはビジネスサイドからすれば、動いているものをわざわざ綺麗にする必要はないため敬遠されがちだが、処理を軽くするということで証明できてよかった。綺麗なコードもだいぶかけるようになってきて、4月に書いていたコードを見ると吐き気がする。人は半年足らずでこんなにも成長できるのかと感じることができた。

半年のトレーニング期間を終えての感想

メンターの方には付きっ切りでトレーニングしていただいて非常に感謝している。小さなエンジニア組織だからこそ○○エンジニアという肩書きではなくフルスタックにこなせなければいけないという認識はあるものの、まだまだカバーできていない範囲が多すぎる。特にサーバー周りであったり環境構築など。ただ、そこはチームとしてコミットするために言語の勉強を優先するという方針で指導していただき、早期からコミットすることができたため業務の中で、また自習で少しずつキャッチアップしていければいいかなと思っている。学び続ける姿勢を忘れずにチームでも目立てるような存在になれるようあと半年間、一年目としてフルコミットしていきたい。