【実践メイン】プログラミングスクール卒業生を現場で戦えるWebエンジニアにします

できること
「現場がほしがるエンジニア」とは
「プログラミングスクールは卒業したけど、初案件獲得が難しい」
「プログラミングスクールは卒業したけど、エンジニアとしてやっていける自信がない」
このコースは、受講生を以下のような 「現場がほしがるエンジニア」 にすることを目的としています。
- バグに対処できる。
- 分からない情報を自分で調べることができる。
- エラーメッセージを自分で読み解くことができる。
- スタックトレースの中から該当箇所を把握し、何がおかしいのか考えることができる。
- チーム開発ができる。
- プルリクエストベースで開発を行うことができる。
- なにかしらのタスク管理ツールを用いて、issue整理を行うことができる。
- GitHub, Trello, JIRAなどのツールを用いてプロジェクトの進捗管理をすることができる。
- コードベース・ソフトウェアの品質を担保することができる。
- CI/CD の環境をセットアップすることができる。
- 必要なテストを書くことができる。
- linterやformatterを適切に設定し、コードの一貫性を担保することができる。
採用現場のホンネ
ところで、
なぜ、プログラミングスクール卒は、採用担当者に敬遠されてしまうのでしょうか?
何を隠そう私自身も、実は8年ほど前に某有名プログラミングスクールに通ったのが、
エンジニアとしての人生の始まりでした。
しかし当時、卒業したての状態でスクールでせっかく作ったポートフォリオを送っても、どこにも採用してもらえず、本当に悲しい気持ちになったことを今でも覚えています。
私がこれまでに10を超える会社と一緒にお仕事してきた中で、
1番よくある現場エンジニアの叫びはこんな感じです:
「プログラミングスクールで作ってきたポートフォリオなんて、用意されたものを写しただけじゃない?」
「チームで開発しているんだから、git/GitHubはちゃんと使いこなしてほしい」
「ただでさえ手が足りていないのだから、 分からないことを自分で調べられる人 に入ってきてほしい」
プログラミングスクールは初歩的なことは一通り教えてくれる反面、
実際の仕事で求められる水準までには大きな乖離 があるのを私は毎日感じています。
採用現場が 実務未経験者を採りたがらない 傾向が高いのは間違いないですが、
とはいえ、どこもエンジニア不足の中ですから、
「この人は実務経験こそないけど、少し教えたら 2ヶ月ぐらいで一人前のパフォーマンスを出してくれそう だな」
と採用担当者が判断できるだけの材料を準備できれば、
必ずうまくいきます。
ですのでこのプランでは、
そうなれるような「自走できる」エンジニアを育成するため、
実践メイン で行います。
自分で作って頂くことがメインになるため、多少苦しい道のりにはなることは間違いないと思いますが、
「何をすればいいのかすら分からない」 という状態になってしまった人のサポートはビデオ通話・チャットツールなどを通じて、いつでも親身にサポートさせて頂きます。
コースについて
このコースを受講するにあたり、
何かしらのプログラミング言語について一通りの機能を学習したことがある ことを条件といたします。
(※実務経験はなくても大丈夫です。)
目安としては、Paiza のプログラミングスキルチェック課題で Cランク 程度の問題を解ければ大丈夫です。
最終的に就職活動・転職活動・フリーランスとしての案件獲得を目標として、
以下のような方針で行います。
- 最初にビデオ通話でヒアリングし、受講者のスキルや目指している分野を勘案しつつ、それぞれにふさわしい目標・ロードマップを策定します。
- 実際のチーム開発の現場についていけるよう、制作物のレビューは全てGitHub上でPR(プルリクエスト)の形でコードレビューします。
- (これは状況次第ですが)もしも、ちょうどよく協業ができそうな(frontend/backendで担当を分けることができるような)他の受講生がいる場合、相互にコードレビューをしたりすることで、 一緒にチーム開発を体験して頂く ような調整をすることも、希望があれば可能です。
- Googleで調べればわかるような情報は、 極力自分で調べて頂きます 。
- 特に、私は可能な限り 英語で学習をすること を推奨しているので、正しい情報を得るための調べ方のコツなどはなるべくサポートします。
実際に作って頂くものの内容については、受講生のスキル次第でもありますが、
たとえば、以下のようなものを0から設計して作り上げられるとよいかと思っています。
(とはいえ、フロントエンドエンジニア志望の場合はバックエンドを、バックエンドエンジニア志望の場合はフロントエンドを、ある程度サポートします。)
- TODOアプリ(frontend/backend共通)
- 使用技術
- frontend
- HTML/CSS
- なんらかのSPAフレームワーク(React, Vue, Angularなど)、あるいはVanilla JSによるDOMの操作
- fetch API あるいは axiosなどのライブラリを使用したAPIの呼び出し操作
- Promiseが解決するまでの間のローディング表示や、リクエスト失敗時のフォールバックまで制御できると尚よし
- frontend
- 概要
- 定番中の定番ですが、様々な追加機能を作りこみやすいので、オススメです。
- よくある追加機能の例:
- タスクに締切を設定し、ソートすることができるようにする。
- タスク間の依存関係を設定することができるようにする。
- 使用技術
- ブログサイト(backend)
- 必須
- 認証機能
- 記事の新規作成・取得・更新・削除(CRUD)の実装
- あるとより良い
- 他ユーザーの記事へのコメント機能
- 必須
- チャット(あるいはビデオ通話)サービス(frontend/backend)
- WebSocket/WebRTCなどの技術を使って、リアルタイムで他ユーザーとコミュニケーションができるアプリケーション
また、基本的に制作物は、Vercel / Netlify / GitHub Pages などの上に常にデプロイしてもらった上で、そのソースコードをGitHubなどの上に公開した状態にすることで、採用面接時にアピールできるようにしましょう。