エンジニアになったばかりの人は、
- プログラミングができる基準って何?
- しっかりプログラミングができるエンジニアになりたい
と思いますよね。
「できるエンジニア」になりたいと思うものの、どうすれば「できるエンジニア」になれるのかわからないという思いを抱えている人は多いように思われます。
僕も決してできるエンジニアというわけではありませんが、過去の自分を思い返すと同じようなことで悩んでいました。
なので、過去を今だからこそ分かることを踏まえて「プログラミングができる基準」についてお話していきます。
プログラミングができる3つの基準
プログラミングができる基準は大きく以下の3つの要素になるかと思います。
- 速く正確なプログラムを組める
- 美しいプログラムを組める
- パフォーマンスの高いプログラムを組める
速く正確なプログラムを組める
まず、速く正確なプログラムを組める人が、プログラミングができる人というのは異論の余地がないかと思います。
速く正確にプログラムを組むことができれば、スピードが求められる今の時代でも他の人より多くの機能追加や課題解決ができるため、価値が高いと言えます。
プログラムを速く組める人は、完成像をイメージしながらプログラムを組める人です。そして正確なプログラムを組める人は、どこでどんなエラーが発生しうるかを事前に予測できる人です。
これらを実現するためには、
- 手を動かしてプログラムを組んできた経験
- 言語やフレームワークの仕様への深い知識
が必要になります。
美しいプログラムを組める
また、他人に読みやすいコードを書く人もプログラミングができる人と言えるでしょう。
美しいプログラムを組める人は、他人がレビューする際の時間を短縮することができます。つまり、プログラムを組む自分の時間だけでなく、レビューをする他人の時間も短縮することができるのです。
美しいプログラムが組める人は、
- 多くのコードを読んできた人
- 美しいプログラムを書く知識と知識を体現できる経験
が必要になってくるでしょう。
パフォーマンスの高いプログラムを組める
最後に、パフォーマンスが高いプログラムを組めることも、プログラムができる人には必須要件です。
プログラミングができる人は、パフォーマンスの低いプログラムを書きません。例えば、JavaScriptで条件に当てはまる変数だけを取得するようなケースでも
const array = [1, 2, 3];
let result = [];
array.forEach(item => {
if (item > 2) result.push(item);
})
return result;
のように、いちいち新たにresultの配列を定義するのではなく
const array = [1, 2, 3];
return array.filter(item => {
return item > 2
});
のように、言語に合わせた最適なコーディングの方法を知っています。これは簡単な例ですが、パフォーマンスの高いコードが書ける人も言語仕様やアルゴリズムの豊富な知識がある人と言えるでしょう。
プログラミングができるエンジニアになるために
ここまでプログラミングができる基準についてお話してきましたが、どれも知識や経験がものを言うものばかりです。
では、よりスキルアップするために、どのように学習していくのか?は疑問に思われるかと思います。
ここでは僕がエンジニアになってから、いろいろ試行錯誤した中でも効果的だったと感じた学習方法についてお話します。
人によって、最適な学習方法は違うと思うので、参考程度にしていただければと思います。
動画学習
今まで触ったことのない新しい言語やサービスを触れるときには、動画学習をおすすめします。
理由としては、動画学習では全く知識のない状態から、ある程度の規模のサービスを作り上げるところまでを実現できるためです。
教材としては、Udemyの動画がおすすめです。以前までは、日本語の教材となると初学者だけの内容のものが多かったですが、最近は初学者から中級者レベルまでできるような学習教材も増えてきたように思います。
価格が高い!と思われるかもしれませんが、Udemyは月に1回くらいほとんど全ての講座が1,400円ほどになるセールをやっています。
一度セールをやっているか確認してみてもいいかもしれませんね。
書籍
続いて、自分の持っている知識をより体系化するために書籍での学習は効果的でした。
様々な勉強会などにも参加しましたが、やはり強いエンジニアの方ほど書籍での学習もしている印象でした。
最近まとめて買った本たち pic.twitter.com/5ribuIpjpu
— _ (@reoring) February 25, 2019
これを見たときは、次元の違いに絶句しましたが、その中でも書籍の学習は効果的という当たり前の教訓を得ました。
プログラムがしっかり組めるエンジニアになるため、その中でも初心者の僕でも比較的読みやすいと感じたおすすめ書籍も紹介しておきます。
まとめ
ここまでの記事のポイントをまとめます。
- プログラミングができる基準は以下の3つ
- 速く正確なプログラムが書ける
- 美しいプログラムが書ける
- パフォーマンスの高いプログラムが書ける
- プログラムができる人になるには知識と経験が必須
今回は、プログラミングができる基準についてお話しました。
僕もエンジニアとしてまだまだ学習することが多く、毎日悔しい思いをしながらプログラムを書いています。
とは言え、それがエンジニアのおもしろいところでもあるので、地道に学習していきましょう。