はじめに
新人プログラマ応援 - みんなで新人を育てよう!
ということで、今月から社会人となり、エンジニアになる方も多いのではないでしょうか?
今月は上記イベントに合わせて初心者応援をキーワードとして記事を書いていこうと思います。
今回は初心者応援第2弾、新人エンジニアに必ず伝えている重要な2つのスキルに関して記事にしていこうと思います。
重要なスキルその1:検索技術
まず1つ目にお伝えする重要な技術は検索技術です。
一見エンジニアのスキルと関係なく感じ、疑問に持たれる方もいらっしゃるかもしれませんが、日々業務を遂行していく上で大変重要なスキルです。
普段何気なく日常の中で検索し、情報を得ていると思いますが、エンジニアの場合も同様に検索から情報を得ていますよね。
ただし、普段とはまた違った検索技術が必要です。
不具合を例に出すとわかりやすいかもしれません。
例えば、ログを元に不具合の原因を追うとします。
極端ですが、ログを全部検索欄に貼り付けて検索したら何も出ない、なんて事になりますよね。
これをログの重要な要素だけを切り取り、以下のような形で検索ワードに並べてみると類似した情報が出てきます。
例:kotlin XXXXException XXXX など
つまり検索ワードをできる限り最適化し、適切な内容で検索する事で欲しい情報になるべく目を向ける事ができる状況を作る、これがとても重要になります。
初心者の方であれば、知見が少ない事が理由で正しい情報を抜粋する事ができず、検索から情報を得るまでに時間がかかるなんて事がよく起こります。
そんな中で少しでもみるべき情報を検索時に絞る事ができれば、迷ったとしても、失敗が少なくなるはずです。
クオリティの高い情報を吸い上げる事ができるようになれば、スムーズに検証に移る事ができるようになるので、気持ち的にも余裕ができます。
検索技術は経験値に基づく要素が大きいですが、初心者の方であればあるほど、わからない事に溢れているはずです。
その点において、検索すべき事項というのはたくさんあるはずなので、最初のうちは余す事なく調べ、ただ調べるだけではなく、検索方法も毎度工夫する事で少しずつ検索技術を向上させる事ができるかと思います。
もちろん、周りの先輩エンジニアに検索方法を聞いてみたりするのも、良い方法だと思います。
是非開発の中で検索にも意識を向けて業務と向き合ってみる事をオススメします。
重要なスキルその2:検証技術
2つ目にお伝えする重要な技術は検証技術になります。
エンジニアであれば、学習中にも当たり前のように行っている検証作業ですが、改めて日々の業務フローで考えてみると重要だという事がよくわかります。
例えば、不具合修正を行うとします。
まず報告を受けた事象を再現させる為、検証しますよね。
その後、検証した結果得た情報を使用して検索します。
検索した結果、吸い上げた情報を使用して再度検証します。
これはエンジニアであれば当然の事を述べていますが、基本的な作業のルーティンは検証→検索→検証と、これを繰り返しているので、業務の大半を占めている検証技術は遂行している業務のクオリティに直結する重要な要素だという事です。
ただし、上記作業を機械的に述べるのは簡単ですが、実際の作業では検証する上で現状のコードを深く理解する必要があったり、ブレイクポイントなどのシステム的検証方法を理解する必要があると思います。
システム的検証方法であれば覚えれば良いだけですが、左記以外で初心者の方がよりクオリティの高い検証を行う為にはどうしたら良いのでしょうか。
私がよくお伝えする方法はとてもシンプルで、とにかくコードを読むという事です。
まず検証時において重要な要素を担っているのは、コードのリーディング力です。
初めて参画したプロジェクト、初心者の方であれば、想像しているよりも難しく感じる事がほとんどです。
そんな中でなるべく早く適応し成果を上げていくには、リーディング力から参照しているコードの動きがイメージができる事が重要です。
その点において、普段からコードを読み、まずは目を慣らすというのはとても良いトレーニングになります。
GitHubなどで公開しているプロジェクトのコードを読んでみたり、言語のリファレンスを覗いてみても良いかもしれません。
最初のうちは理解できていなかったコードも、少しずつこんな事しているのかな?、とイメージできるようになり、リーディング力が高まるはずです。
是非本を読むような感覚で、色々なコードを読んでみる事をオススメします。
さいごに
私は新人の方には必ず、検索技術と検証技術は重要なスキルとお話していますが、このスキルは日々業務を進めていく上で切り離すことのできない重要な技術です。
もちろんエンジニア間のコミュニケーションも重要ですが、最終的にそのタスクをこなすのは自分なので、是非言語の勉強と合わせて上記スキルも高めてもらえると良いかと思います。