三カ月の研修、いや、研修という名の試練
こんにちは!新卒のMTです。
社会人になって早くも三カ月が経ちました。
気づけば朝に弱い私が7時半には起床し、満員電車で毎日押し寿司状態になりながら出社することも板についてきた(…気がしています)。
しかし、最近になり社会人として初めて、待ちに待った初任給が振り込まれました✨
「これは自己投資に使うぞ!」と意気込んでいたのですが、いざふたを開けてみると…
コスメに服に靴、そして気が付けばクレジットカードの支払いでほぼ消えていました👼(あるあるですよね…?)
本当は「初任給で購入した服やアイテムのみで出社するんだ...!」みたいな計画もあったのですが、届いた商品はまだ袋の中。もはや袋の中身が何だったか覚えてない説まであります。
そんな社会人三カ月目の私が直に感じた、研修での日々を簡単に紹介していきます!
研修を振り返っての感想
この三カ月間は、未経験からエンジニア職として必要な基礎を学ぶ研修を三カ月間行いました。
内容は、プログラミング言語の基礎や開発ツールの使い方、後半には自主アプリ制作も含まれていて、実践的な要素も多かったです。
「研修という名の試練」というタイトルを付けた理由、それは覚えることが本当に多くて、大変だったからです。
正直、毎日が情報の洪水で、頭がついていかない瞬間もたくさんありました( ;∀;)
特に最初のころは、何がわからないのかをうまく言葉にできず、そもそも「何がわからないのかすらわからない」状態で、周囲との会話にすら焦ることがありました。
しかしながら、少しずつ「前よりは理解できたかも」と思える瞬間が出てきました。
調べ方のコツもなんとなく掴めてきて、「自分なりに前進してるな」と感じられるようになってきたのは、嬉しい変化です。
とはいえ、まだまだ分からないことも山ほどあります。
でも、焦らずに、一歩ずつコツコツ進んでいけたらと思っています。
ある日、突如研修のスケジュールが変わった
研修中盤、ある日突然スケジュールが変更になりました。
それまで予定されていた複数の言語の学習を一旦ストップし、「Javaを集中して進める」という方向に切り替わりました。
背景には、私自身の進捗が思うように進んでいなかったこともあり、先輩方が「今この段階で無理にいろいろな言語を触るより、まずはJavaをしっかり理解することが大事!」と判断してくださった、という経緯がありました。
変更を聞いたときは、あ、やばいなって素直に感じました(笑)
予定していたスケジュールが急に変わることに対しての戸惑いや、周囲に遅れを取っている自覚もあったので...
でも、その中で「やるしかない」という気持ちも同時に強くなり、切り替えて前に進む覚悟を決めました。
そこからは、通勤の電車の中や、エレベーターを待っている数分間など、すき間時間を使って参考書を読み込んだり、自分なりのノートを整理したりと、少しでも理解を深める努力を続けました。
また、先輩方と「○日までにここまで終わらせる」とゴールを決め、逆算して毎日のタスクを組み立てるようにしたことで、以前よりも集中して取り組めるようになりました。
スケジュール変更を通して、少しづつ理解できるきっかけになったと思います。
研修の集大成!自主制作
研修後半では、座学だけでなく実際に手を動かして開発を進める「自主アプリ制作」の課題がありました。
私は、ファッション好きの方に向けた WEARのようなコーディネート投稿アプリを作成することに挑戦しました。
実装した機能
・投稿登録機能...ユーザーが自分のコーデを画像、説明文、カテゴリ、性別とともに投稿できるようにしました。
・一覧表示機能... カテゴリ別」「性別別」「ランキング別」を機能ごとに反映できるようにしました。
・編集、削除機能... 使用を修正、削除できるように実装し、後から見直ししやすいようにしました。
・いいね機能...投稿に対して「いいね」を押すことで、コーディネートに対して気軽に反応を返せるようにしました。
・ランキング画面...「いいね」の数を集計し、人気順に投稿を表示できトレンドを把握しやすい、好みにあった投稿を見つけやすくしました。
こだわり
特に編集画面で、「毎回「画像ファイルをもう一度選び直す」の手間が生じると感じたため、以下の条件分岐処理を行いこだわりました!
if (imageFile != null && !imageFile.isEmpty()) {
imageBytes = imageFile.getBytes(); // 新しい画像があるときだけ更新
} else {
imageBytes = original.getPictureImage(); // 空なら元の画像を使う
}
条件分岐
先ほどお話しさせていただいた「条件分岐」ですが、条件に当てはまっているか、当てはまっていないかで、その後の処理を分岐させる処理のことです。
public class App {
public static void main(String[] args) {
int num = 5;
if(num == 5) {
System.out.printf("numは%dです。", num);
} else {
System.out.printf("numは5ではありません。");
}
}
}
出力結果 numは5です。
これは何をしているの?
このif文はnumが5の場合(true)、「numは5です。」と表示し、numが5ではない場合(false)、「numは5ではありません。」と表示するようになっています。
このコードでは、「もし変数numが5ならば」という条件になっており、「=」が2つ連続で書かれており、「==」となっています。
これは「等しい」という意味になります。
他の条件を指定したい場合は、他の関係演算子を使う必要があります。
演算子 | 記述例 | 意味 |
---|---|---|
== |
a == b |
aとbは等しい |
!= |
a != b |
aとbは等しくない |
> |
a > b |
aはbより大きい |
>= |
a >= b |
aはb以上 |
< |
a < b |
aより小さい |
<= |
a <= b |
aはb以下 |
最後に
今回の研修を通して、技術的な知識だけでなく「わからないことに向き合う姿勢」や「調べて自分で解決する力」の大切さを学ぶことができました。
まだまだ未熟で、分からないことだらけではありますが、この経験を糧にして、少しずつでも「できること」を増やしていきたいと思います。
今後は、研修で学んだことを活かしながら、たくさんの経験も得てより実践的な開発の場でしっかり貢献できるよう努力していきたいです。
ゆくゆくは「この人に任せてみた、任せてよかった」と思ってもらえるようなエンジニアを目指して、これからも日々精進していきます!