はじめに
現在、案件探し中のフリーランスエンジニア(3年目)です。先日、新しいエージェントに登録した際、自分のスキルの説明で気付いた「できる・できない」じゃない大事な伝え方を考えました。
久しぶりの案件探しで、よみがえるトラウマ
私は「Ajax通信できますか?」という質問が苦手です。「Ajax通信」は初めての業務委託先で「できない」と答えたことでとても嫌な思いをし、嫌いな存在となっていました。そこからAjax通信について理解を深める努力もせず、「きっと非同期通信のかなり難しい技術なんだろうな」と思っていました。
そして久しぶりの案件探しで、「Ajax通信できますか?」と聞かれました。あの頃から何も変わっていない私は、単純に「できません」とだけ答えた結果、スキルのアピールが十分にできず、案件紹介に影響が出ていると感じています。
なぜ「できません」と答えたのがまずかったのか
Ajax通信にもチャレンジしてみるか、と重い腰を上げた本日、自分がものすごく悲惨な勘違いをしていたことに気がつきました。Ajax通信が「jQueryでよく使われていた非同期通信」であることを初めて知った のです。つまり、エージェントは「非同期通信ができるか?」と聞いていたのです。これに対して、今なら全く違った返答ができます。「jQueryを使わないで非同期処理ができます」 とか 「fetchでエラー処理にtry-catch使ってます」 とか答えていれば、全く違った結果になったと思います
Ajaxのトラウマからの解放
ここで自分が今まで行ってきた非同期処理を振り返ります。
- CMSを導入していないサイトで、一覧ページから読み込んで最新コンテンツを表示。 (jQueryの.load()でHTMLまるごと取得)
- fetch を使った非同期通信で、try-catchによるエラーハンドリングを実装。 APIサーバーが落ちていたときユーザーに「取得できませんでした」と表示。
- ユーザー情報をデータベースに登録・取得・更新・削除する一連の非同期処理 を、supabase.from(...).insert() などの関数を使って実装。
- ブラウザのローカルストレージにJSON形式でデータを保存 し、画面に反映するToDoアプリを開発
非同期処理、めちゃくちゃ身近でした。ちゃんとスキルの棚卸しをすれば、自信がつく。もっとアピールできる。胸を張って自分のスキルを説明できるようになりました。
モダンJSで勝負したい
自分のこれからのキャリアを考える
ES6以前のエラーとバグと隣り合わせだったJavaScriptにとても苦しみました。先人のコードを読み解き、エラーを解消する。そんな現場で苦しんだ中、ES6のJavaScriptとTypeScriptのエラー処理が素晴らしく、めちゃくちゃに感動しました。
「Ajaxできますか?」という質問には、jQuery主体の開発現場で働けますか と暗に聞いているようにも感じます。
私は、モダンな現場で働きたい。jQuery主体の現場は、もしかしたらモダンじゃない可能性が高い。
「jQueryを使わないで、JavaScriptで非同期処理ができます」と言えれば、開発環境や考え方の違いがはっきり見え、ミスマッチが減らせれるのでは と思いました。
ちゃんと伝えればきっとうまくいく
エージェントは「非同期通信ができるか」を聞きたかっただけかもしれません。
私はなんだかすごそう...と思って知らない単語をそのままにしてしまう傾向があります。例えば「Vanilla JS」とか「フルスクラッチjs」とか。でも言葉を理解すれば、自分のできることに当てはめることができます。
私は普段からJavaScriptでマークアップをしています。もうずっと前からjQueryは使っていないので、ライブラリを使わないでJavascriptを書いています。 これってきちんと説明しなければ、伝わりません。「できる・できない」じゃなくて「やっていること」を伝えるのが重要だと感じました。
単語にとらわれず、できることを正しく説明できる と、自分のスキルをより具体的に伝えられます。
- 自分の成果物を非エンジニアに向けて文章で説明できる こと
- 知ってるワードを並べて伝えた気持ちにならないこと
- できないじゃなくてできることを伝えること
おわりに
わたしは「Ajax通信ができません」と伝えたことで、自分のスキルを十分に説明することができませんでした。
自分の言葉で、自分がやってきたことを説明できていれば、違った結果になっていたと思います。
この考え方が、あなたのキャリアをより良い方向に導くヒントとなれば嬉しいです。