プログラミング学習日記

エンジニア転職への道

転職活動をしていて気づいた自分の課題

10月からエンジニアになるための転職活動を開始しています。

6社カジュアル面談と2社1次面接を受けて、自分の課題に気づきました。

それは、「技術に関した質問に対して十分な説明ができない」です。

たとえば以下のようなものです。

  • webサービスが動く一連の仕組みを説明できますか?
  • データベースは作りましたか?どのような設計で作りましたか?
  • 最近使っているクラウドサービスは?
  • テストは書きましたか?どのようなテストを書きましたか?

説明できない原因はどこにある?

説明できない原因は以下の3つに集約されると思っています。

  1. 用語や概念の理解が足りない
  2. やったことがないのでわからない
  3. やったけど思い出せない

3つの中でも特に1.「理解が足りない」が最大の原因であると感じています。 たとえば「webサーバーとは何か説明してください」と言われて、「ええっと...」と詰まってしまう感じです。

これでは現場に入って関わる方々も困ってしまいます。

説明できるとはどういう状態か

「どうすれば説明できるようになるか?」を考えたときに、
そもそも説明できるとはどういう状態かというと、 「頭の中の情報をすぐに取り出して取得し操作できる」だと思います。

アプレンティスのメンターさんはこれを"再現性"と言っていました。

先ほどの「webサーバーとは何ですか?」と聞かれて、
「ちょっと待ってくださいね。今調べます」と言ってググるのは、
そもそも頭の中のメモ帳に「webサーバー」がない状態です。

例えばこれが「Rubyとはなんですか?」だったら、
何も見なくても「プログラミング言語の1つです。書き方がメソッド名がシンプルでわかりやすいです」と答えられます。

では、説明できるようになるにはどうすればいいのでしょうか?

説明できるようになるためにやっていること

僕がやっているのは、お題だけ用意して何も見ないで話す、です。 たとえば、「webサーバー」というお題で、真っ白な状態で話す、です。
コワーキングスペースで学習しているので、実際に話すというよりは、頭の中で話すあるいは書き出したりすることが多いです。

何も見ないで話すと、自分がどこまで理解していて、何が理解できていないのかがわかります。
たとえば、「webサーバーは、ユーザーからインターネット経由でhttpリクエストが送られると、それに対してhttpレスポンスを返します」とします。
そしてその後、この回答が正しいのか、ググって調べます。
それで間違っているところを修正したり、足りないところを補います。

今までの学習法の反省および改善点

今まで、用語や概念でわからないことがあると、すぐ検索して調べたり、ChatGPTに聞いたりしていました。
その解説を見てわかった気になっていました。
しかし、その瞬間はわかった気になっても、次の日同じ質問をされたらまた調べないと答えられません。
つまり、理解していない=知識が自分のものになってないですね。

知識や情報を自分のものとして扱えるようになるには、ノーヒントあるいはキーワードのみでどこまで説明できるか?
を繰り返しやったほうがいいと思いました。

まだ始めて3日ぐらいなので、効果とか確認するには早すぎると思っています。 エンジニアとして生きていくために、ずっとやっていこうと思っています。

最後に

面接で「落選」の通知を見た瞬間は少し凹みますが、どの面接も必ず学びがあるので、とてもありがたいなと感じます。 エンジニアとして働き始める前に「説明できない」という課題に気づけたことで、「いつ質問されても答えられるように準備しよう」というつもりで記事やドキュメントを読むようになったので、プラスに捉えています。
現状は意識と少しの行動しか変わってないので、これを習慣にして、結果につなげたいと思います。