見出し画像

【20代ラストチャレンジ】プログラミングスクールRUNTEQ生活の振り返り

はじめに


初めまして、20代ラストチャレンジとしてWebエンジニアへの転職に挑戦した山口と申します。
プログラミングスクールRUNTEQでの学習の末、晴れて都内の受託開発企業へ就職が決まったので、RUNTEQ生活を振り返ろうと思います。
スケジュール的なところで大まかに記すとこんな感じになります。

  • カリキュラム(卒業要件まで) 約1ヶ月半

  • フロントエンド学習期間 約1ヶ月半

  • PF作成期間(アイデア出し〜) 約4ヶ月

  • 就活期間 約4ヶ月

長距離走を短距離走のスピードで走って途中で息切れしたみたいな感じですね。
振り返る内容としては各期間において意識したことや、やっておけばよかったことをメインに振り返っていこうと思います。

カリキュラム


自分は6ヶ月のコース(今はもうありません)で入学しました。なので基本的には入門ステップはほとんどせず(入学前に学習済)に基礎編、応用編をやっていきました。

意識したこと

  • 「点」で理解するのではなく「線」で理解する

ただ、ここではコンピュータの成り立ちから順を追って理解するまでの必要はないと思うので、Webアプリケーションに関することだけを切り取って、「線」で理解することに努めました。とは言ってもRailsに関してだけ言えば、ブラックボックス化していてどう動いているのか分かりづらい部分もあったのでそこは入り口と出口だけ把握して理解していました。(カリキュラムの内容によってはそこを掘り下げる必要があるところもありましたが。。。)
「線」で理解することでエラーが起きてもすぐにあたりがついたり、そこについて深堀りするにはどこを辿れば良いのかなど考えることができるので、結果として早くカリキュラムを終わらせることができたのかなと考えています。

  • 人に教えることで理解を深める

これに関してはコミュニティに積極的に参加して人が悩んでいるところに突撃するしかないと思います。首を突っ込んでたら質問してくれる人が増えてWin-Winになります。
その中で改めてカリキュラムを振り返ることで学んだ内容が定着していき、細部まで理解を進められました。
言語化の練習にもなるのでおすすめです。

やっておけばよかったこと

  • 技術面談を使い倒す

自分はほとんど技術面談を使わずにカリキュラムを進めましたが、今になっては使えるもの使っておけばよかったなと思います。
自分の場合は質問してくれる人が増えたおかげでこれってこういう役割があったんだ!など気付くことができましたが、技術面談を使って自分の理解で合ってるかなど質問がなくても理解度チェックみたいな形で使っておけばよかったなと痛感しています。

フロントエンド学習期間


PF案が全然浮かばないのでとりあえずやってみるでスタートしたフロントエンド学習期間です。
この期間に基本的にやったことは、以下2つの教材です。

ボリュームはすごいですが、めちゃくちゃ分かりやすいのでおすすめです。

とにかく話すのが早い方なので向かない人もいるかもしれません。
今であればReactを学ぶ方が多いと思うので、そちらのおすすめ教材も貼っておきます。
【2022年最新】React(v18)完全入門ガイド|Hooks、Next.js、Redux、TypeScript

意識したこと

  • フロントエンドで避けては通れないJavaScriptはガチで学ぶ

React.jsを学ぶにしてもVue.jsを学ぶにしてもJavaScriptを学ばないと後々ネックになると考えていたので、JavaScriptを完全に習得するつもりで学習しました。おすすめした教材では深くまでJavaScriptについて教えてくれるのでボリュームはすごいですが、めちゃくちゃためになります。
事実、Vue.jsを学習する際もそこまで引っかかることなく理解できたのでしっかり学んでよかったと思ってます。

  • 自分の言葉でメモする

JSに関しては膨大な量だったので、Notionを使ってまとめていました。ここで意識したことはコードの流れを一つ一つ自分の言葉でメモすることです。
以下に例を記載(同期処理と非同期処理についてのコード)するので、こんな感じでまとめてたんだくらいで見てもらえるとありがたいです。自分の言葉なので間違ってることや意味がわからないこともあるかもしれませんが暖かく見守ってください。

new Promise(function promise(resolve) {
  console.log('promise'); // 1番目に出力される(同期処理)

  setTimeout(function task1() { // 非同期処理,Macroに格納
    console.log('task1'); // 3番目に出力される
    resolve(); // Macro終了後にMicroをセット
  });

  setTimeout(function task2() { // 非同期処理,Macroに格納
    // Microをセットした後に呼ばれるので先にMicro(job1~3)が実行される
    console.log('task2'); // 7番目に出力される

    const p = Promise.resolve(); // Microにセット
    p.then(function job5() { // セットされた順番に出力される
      console.log('job5'); // 8番目に出力される
    })

    queueMicrotask(function job4() { // Microにセット
      console.log('job4'); // 9番目に出力される
    })
  });

}).then(function job1() { // Microに上から順番に格納される
  console.log('job1'); // 4番目に出力される
}).then(function job2() {
  console.log('job2'); // 5番目に出力される
}).then(function job3() {
  console.log('job3'); // 6番目に出力される
})

console.log('global end'); // 2番目に出力される(同期処理)

こういう風にまとめることで定着しやすかったです。
Railsなどのフレームワークでは線で理解するのであまりメモは必要ありませんでしたが、JSなど新しい言語を理解するには点で理解していく必要があるのでメモが必要になったのかなと思っています。
(※個人の感想です。)

やればよかったこと

  • 特になし

取っ掛かりとしてフロントエンドを体系的に学ぶには学習難度を考慮しても良い学習ができたと思います。

PF作成期間


2ヶ月半以上がアイデア出しで消えていきました。
アイデア出しの間はチェリー本に逃走したりして学習はしてるんだという免罪符で自我を保ちました。

意識したこと

  • issueを切ってタスクを可視化する

没頭するとずっと開発を続ける癖があったので、あらかじめ理解できてる範囲でissueを切って作業をしていました。
今ここをやっていてここまでやればいいななどの計画を明確に立てられるので、やってよかったと感じました。
ただ、今考えれば以下の記事を参考にしてコミットメッセージなどにも気を遣えればよかったとは思っています。
僕が考える最強のコミットメッセージの書き方 - Qiita

やっておけばよかったこと

  • 調べて全く分からなければすぐに技術面談で聞く

PFでエラーにはまって3日間検索し続けて、もう無理だと思った頃には関連記事が全部紫(アクセス済)になってました。お手上げです。
なのでにっちもさっちも行かなくなって技術面談を入れて質問すると、1日もせずに回答が返ってきて解決しました。
これはPFなので3日間の時間をとっても問題ありませんでしたが、エンジニアとして実務に入ればこんなことはなく、すぐ聞く必要があると思います。
今となっては、そう言った線引きについても考えて、スピード感も意識しながら開発をすればよかったと思います。

  • アイデアのメモをとっておく

常日頃からアイデアを考えて貯めておく習慣があれば、もっとスムーズにPF作成にいけたかなと思います。

  • CTさんを全力で頼る

RUNTEQのCTさんはめちゃくちゃ頼れるので、面談を入れてアイデアを聞いてもらう機会を多く取ればアイデア出しももっと早く終わったかなと思います。

  • チーム開発も視野に入れる

全くアイデアが浮かばなければチーム開発をすることも考えればよかったと感じました。
実際に就活でもチーム開発の経験はウケがよかったので、人を募ってアイデアを出し合ってやるのもありだと思います。目下の目的は就職なのでしっかり技術的な理解を深めながら開発に関われば、それを提げて就活に挑むのもありだと思います。あくまで個人の感想です。

就活期間


意識したこと

就活期間で意識したのは、「アピールできることをやる」ことです。
以下に自分が就活期間にやっていたことを記していきます。

  • 学習の継続

未経験からの転職であれば、継続的に学習を続けられるというアピールができる意味というのはエンジニアという職種の性質上とても大きいと考えました。実際に面接でも今何を勉強しているかを聞かれるタイミングというのは多々ありました。
そんな中でじゃあ何をすればいいの?という話になると思いますが、自分は自分のやりたい学習(DBの設計やReactなど)を優先して学習していました。
理由としては自分のやりたいことを学習した方が、面接で熱意を持ってより具体的に話せるからです。はじめはコーディング試験などを通過するためにアルゴリズムの勉強もしましたが、自分の気持ちも乗らない&面接でもあまり語れないという経験をして方向性を変えました。

  • イベントへの参加(チーム開発)

結果こそ奮いませんでしたが、東京都のオープンデータハッカソンに出場し、チーム開発に取り組みました。これもチーム開発の経験として自己紹介のタイミングに盛り込みました。ただ、比較的重めではあったのでそこは自分のモチベーションや状況(面接の回答に不安があるなど)を鑑みて、できる範囲でやればいいと思います。

  • 面接の振り返り

自分が就活で意識した中で、これが一番重要だと思います。面接の中でこの伝え方ダメだったなという所は頭に残っていると思うので、どう改善するかを考えて実行し、修正していくことで面接通過率も上がってきました。

やっておけばよかったこと

  • Qiitaなどでの技術記事or個人開発記事の執筆

記事の執筆などは面接内での話のネタとして最高だと思います。
ですが、自分が記事を書いた経験がないため満足する記事が書けるか自信がなく、結果書けませんでした。
今では、自信がなくても積極的に書いておけばフィードバックをもらいつつ自信の無さも改善できたのかなと思いますし、面接でも話せるネタとして最適だったなぁと反省しています。

さいごに


最後になりますが、自分が納得のいく形で就活を終えてエンジニアのスタートラインに立つことができたのは、RUNTEQで学習し受講生同士で支え合いながら楽しく学習できたことが大きな要因だと思っています。
あくまでRUNTEQの掲げるCREDOを意識して、自分なりに咀嚼しながら行動に落とし込むことで得られた結果です。最初から自分で考えられた訳ではありません。
無事スタート地点には立てたのでこのチャンスを無駄にせずに、RUNTEQのコミュニティで仲良くなった人たちと楽しみながら、エンジニアとして楽しく仕事を続けられるように頑張ろうと思います。
想像以上に長くなりましたが、この記事の振り返りを読んで誰かの挑戦を後押しすることになると嬉しいなと思います。

RUNTEQ入学に際して、しっかり相談したい方は無料でオンラインキャリア相談会を申し込めるので、以下にリンクを貼っておきます。

読者の皆様が満足のいく就活ができれば幸いです。

この記事が気に入ったらサポートをしてみませんか?