以下に紹介するのは、私が今まで何度も受けている質問です。
「stringやintにはたくさん関数があるので、なかなか覚えられなくて苦労しています。」
「forループとかwhileループの書き方をいつも間違えてしまうんです。どうすれば覚えられますか。」
この悩みは意外と多いようです。私がメンターとして関わっていた方も同じ質問をなさっていました。
今回は、現場のSEはこの悩みにどう解決しているのかをお伝えしていきます。
現場のSEは、全然覚えていない・・・
結論から言いますと、覚えようとしているところから変えていきましょう!
現場のSEは、実はほとんど覚えていません。
forループを書きたいと思ったときは、「python forループ」のようなワードで検索して、「あ、そうそう。こうやって書くんだったね。」と言いながら書いています。
私も同じキーワードで今まで何十回と調べていますし、覚えようとも思っていません。
これには、IT業界の働き方が大きく影響しているかもしれません。
私たちの業界は、パソコンでの作業が主な仕事内容です。つまり、ネットがつながっていればいつでも調べることができる環境で仕事をしています。
また、コードを書いている間は、営業のように顧客に製品の内容や用語の意味を説明することもないため、いつでも思い出せる状態にしておく必要もありません。
このような都合から、実はSEはコードの書き方をほとんど記憶していません。
あれはどうやって書くんだったっけ?と思ったときには、近くのコードやネットで検索した結果からコピーして持ってきます。そうやって仕事を進めています。
今まで勉強というと、学校や資格を初めとして暗記がメインでした。そのため、プログラミングに関しても暗記しないとと思い込んでいる方が多いようですが、このような働き方をすると知れば、今まで以上にスピードをアップさせながら勉強を進められるかもしれませんね。
現場のSEは、何を覚えているのか?
そうは言っても、何も覚えずに仕事ができるわけはありません。それほど簡単な仕事でもありません。
現場で活躍しているSEは何を覚えているのかというと、以下の2つです。
「stringやintには、どのような関数があったのか」
「どう調べれば、その関数の書き方が分かるか」
どのような関数があったのかというのは、関数の名前ではなく、機能を覚えているということです。
たとえば「stringには、Substringという関数がある」ということを覚えるのではなく、「stringには、ある文字列を別の文字列に置き換える関数がある」ということを覚えている、ということです。
調べ方を覚えているというのは、検索エンジンにどのようなキーワードを入力すれば、求めている結果を得られるかを覚えているということです。先ほどの「ある文字列を別の文字列に置き換える」ことをやりたいと思っても、そのまま検索エンジンに入力して結果が出てくるかというと、思ったものは出にくいかもしれません。
現場のSEはこのような場合に、「文字列 置換」と検索します。「置換」というキーワードはあまり聞き慣れない用語かもしれませんが、IT業界ではよく使います。ネット上の記事も、置換という用語で関数の説明を書いてくれています。
このように、現場のSEは機能とその調べ方を覚えています。
実際は、覚えていると言うよりは知っていると言った方が適切かもしれません。
覚えようとして覚えている人は少ないです。何度も使う機能や何度も触れる用語だからこそ、自然と覚えたというのが実際ですね。
そして、機能と調べ方を覚えることであなたの学習スピードはさらにアップすることでしょう。
調べ方が分かっていることで、検索スピードが飛躍的にUPします。
また、機能を覚えていることで、次似たようなモノを作成する際にも「確か、こういうものがあったような・・・」で調べ始めてササっと作ることができます。
また、「Javaのstringには文字列を置換する機能がある」と分かっていれば、ほかの言語を学ぶ際にも「JavaでできるならC#でもできるかも」と思って調べることができます。
調べ方が分かっていれば、「C# 文字列 置換」のようにすぐに検索して結果を参照できるということです。
まとめ
もし、あなたがたくさん暗記しようと頑張っていたのであれば、少し気が楽になったのではないでしょうか?
調べて分かることは覚えなくて良いと思えば、学び方も変わってきます。
自分ですべて書ける必要はなくなります。存在と使い方を知ってさえいれば、それだけで十分だということになります。
この業界が経験を重視するのも、このような理由があるのかもしれませんね。知らなければ使えないという点が大きな意味を持つため、経験を積んでいる人が重視される傾向があります。
しかし、ここで紹介した学び方さえ知っていれば、あっという間に経験者と同等もしくはそれ以上のスキルを得ることはできます。
自分を信じて、突っ走っていきましょう。
次も、プログラムを書くうえで非常に大切になる考え方を紹介します。