はじめに:新卒、焦らなくてもいいかも。
過去の投稿を読んでくださった方は「何回言うねん」と思うかもしれませんが、 私はコーディング未経験の新卒としてこの会社に入社しました。
周りは優秀な人たちばかりで、同じくコーディング未経験でも、「明らかに自分よりできる」人がごろごろいて
- 置いていかれたくない焦り
- 「できないやつ」だと思われるのが恥ずかしい気持ち
この2つが、入社してからだいたい 7月〜1月くらいまでずっと頭の中を占めていた記憶があります。
焦って、方向を間違えていた頃
当時の私は、基礎がわかっていないのにとりあえず AWS の勉強に飛びついたり、休みたいときも無理やり言語の勉強を詰め込んだりと、にかく行動していないと不安で進む方向性を完全に見失っていました。
「成長したい」という、ものすごく抽象的な目標だけを掲げて、何もできない自分は、とにかく時間と量で頑張るしかないと思っていました。
今振り返ると、その根っこにあったのはできないやつに見られたくないっていう見栄的な気持ちだったなーと思います。
でも、入社して1年ほど経った今振り返ってみると、「あのとき、あんなに焦らなくてもよかったのかも」と思います。![]()
ここで言いたいのは「勉強しなくていい」という話ではありません。
- 自分がなりたい像
- 会社・チームから求められている像
をちゃんと 言語化・明確化 して、そこから逆算していくことだと私は思います。
なので落ち着いて自分と将来を見つめ直すことの大事さに気づいた今、なぜ私がそう考えるようになったのかを書いてみようと思います。
※あくまで新卒1年目の個人的な気づきですが、一つのサンプルとして読んでもらえると嬉しいです。
結局、エンジニアとしての成長も「勉強」としくみは一緒?
私は大学生の頃、予備校の講師をしていて、受験生から「どうやったら最短で合格できますか?」と聞かれたとき、必ず以下を伝えていました。
どんなにわからなくても、まずは 3年分くらい過去問を解いてみて
「何を勉強しなきゃいけないのか」を知ってから、知識を深めていくのがいいよ
つまり
- まずはゴール(=試験で問われるもの)を知る
- そこから逆算して勉強する
- 自己学習のあとにまた過去問に戻って確認する
のサイクルを回してみよう!ってことです。
だって受験はどれだけ頭がいいかの勝負ではなく、「共通テスト」や「その大学の問題」をどれだけ解けるかの勝負だから、問題の傾向やレベル感を知らないまま勉強するより、「出るもの」を知ってから勉強したほうが、圧倒的に効率がいいから…が私と予備校の持論でした。
そして社会人になって会社の研修などを受けているうちに、その感覚を一度忘れてしまっていましたが、 よく考えると、
- 受験
- 資格試験
- そして、会社でのエンジニアとしての成長
これらはすべて同じ構造なんじゃないか?と思うようになりました。
エンジニアとしても受験の過去問を知ってから細かいところを詰めよう理論と同じように
- (市場の)「当たり前」を知る (自分の会社・業界で求められる知識やスキル、開発スタイルなど)
- そこで必要と思った範囲で、細かい分野を自己学習する
- 個人開発やチーム開発など、実際の書いてみて(市場に出て)壁打ちする
- ぶつかった課題を持ち帰って再度自己学習する
この繰り返しが、一番自分を成長させてくれると現在は感じています。
学習は「能動的に」やると効いてくる
高校までの勉強って、ざっくりいうと小・中学校の勉強がベースになってそれを応用していくという流れだと思います。
コーディングも同じで、文法や書き方だけを暗記しても限界があって
- 「そのコードがどう動いているのか」
- 「どういう仕組みでユーザーに届いているのか」
- 「そもそも会社はどういうスケジュールで製品を作っているのか」
といった周辺の仕組みを知らないと、コーディングの幅はなかなか広がっていかないのかな、と感じています。
高校数学に例えるとわかりやすくて、答えはひとつでもそこに至るアプローチは、正確性を重視するのか、計算速度を重視するのか、などによって変わりますよね。
コーディングも同じで、
- 保守性
- パフォーマンス(軽量化)
- 可読性
など、何を重視するかによって、最終的にやっていることは一緒でも 書き方や設計の仕方が変わってきます。
だからこそ、 基本情報技術者試験で問われるようなインターネットの基本的な仕組みや開発プロセスや開発スケジュールの考え方は開発者が持っていてほしい基礎知識として位置づけられているのだと思います。
基本情報技術者試験(FE)は、IPA(情報処理推進機構)が実施するITエンジニアの登竜門となる国家試験です。ITの基礎知識や実践的な技術(アルゴリズム、セキュリティ等)を問う試験
7月ごろの私の失敗
当時の私は「クラウドって何?」レベルだったのに、周りに流されて AWS Certified Cloud Practitioner(CLF)の勉強をしていました。基礎がない状態で応用を学んでも理解できるはずがなく、自信と体力だけが削れていきました。
そこで一度、目の前の研修だけ本気でやろうと割り切ってみました。
そして研修で Java がある程度書けるようになり、 簡単なシステムを 1 から自分で作ってみたところ
- 「リクエストスコープとセッションスコープを状況で分けて使ってみたけど、 本当にこれでよかったのかな?」
- 「エラーを吐かない不具合にぶつかったとき、 自分の力では何もできなかったな…」
- 「このデータの受け渡し方は正しかったのか?」
→→「この疑問がうまれるのは、仕組みを理解していないからだ」
と一度実践したことで市場が知れ、「だから基本情報の知識が必要なんだ!」と、自分に必要な知識が理解できました。(※まだ受験も合格もしていませんが笑)
つまり、 自分の部署・会社で何を学ぶことを求められているのか(研修内容)をまず体感したことで、その市場の「当たり前」が少し見えた結果として、じゃあ、自分が今つけるべき知識は何かがようやくクリアになってきたのだと思っています。
経験したことは、あとからちゃんとつながる
今、基本情報の勉強をしていると、
- 「あのときのあの挙動って、そういう仕組みだったのか」
- 「今の開発スケジュールって、この考え方をベースにしていたんだな」
と、過去の経験と知識が少しずつ線でつながっていく感覚があります。
何もわからず焦っていたあの頃の自分に、「焦らなくても大丈夫。今の経験も、あとでちゃんと意味が見えてくるよ」と言ってあげたいです。
おわりに:新卒のみなさんへ
新卒で IT 系の会社に入社される方は、会社ごとにいろいろな研修があると思います。
- 研修のレベル感
- 周りの同期のスキル
- 担当するプロジェクト
など、環境によってプレッシャーの種類は違うと思いますが、会社での「当たり前」を体感する前に、 「できるやつ」に見られなくても大丈夫です。
それよりも、
- 自分のペースを大事にすること
- 「なぜこれを学ぶのか」をできるだけ言語化してから取り組むこと
- 目の前の経験をちゃんと咀嚼して、あとから知識で回収していくこと
このあたりを意識しておくだけで、無駄な焦りや自己否定は少し減らせるのかなと思います。
私もまだまだ1年目の途中ですが、同じように不安を抱えている新卒の方と、焦らず、でもちゃんと前を向いて、ゆっくり一緒に進んでいけたらいいなと思っています。![]()
追記
私がこの会社の普通と思われたらどうしよう…(レベル下げていないか心配)と思っていましたが同期がほぼ同じようなこと書いてましたので、この記事もぜひ参考にしてください