コーディング上達。職場のソースコードを読みまくれ。
この記事はコーディングが上手くなりたい方向けの記事です。
仕事や趣味でプログラミングをしていると、
「もっとコーディングが上手くなりたい。どうすればいいだろうか?」
「コーディングを上達のためにどんな勉強をすればいいだろうか?」
と思ったことはありませんか?僕は職場で他人のソースコードを見るとよくそんな気持ちになっています。自分の書いたプログラムがダメなわけではないのですが、なんとなく整理されていないとか、汚ない(読みにくい)とか考えてしまうのです。
どうにかしたいなと思ってググってみると、
- 「コーディングの量が大切だから、とにかくコーディングしましょう」
- 「お手本にしたいソースコードを見つけて写経しましょう」
- 「githubにあがっているソースコードを読み込む」
と出てきます。この方法がしっくり方もいると思いますが、どうも自分には馴染まないなぁと感じるものばかりです。
自分では上手く解決できそうになかったので、職場の先輩に教えてもらいました。その方法を数年取り組んでみて、ちゃんと自分のものになると自覚できた方法を紹介します。
この記事に書いてあることは、
職場で教えてもらったコーディングを上達させる方法
です。
何故コーディングが上手くないと感じるのか
どうして自分のコードは汚い(読みにくい、整頓されていないなど)と感じて、コーディングを上達させようとするのでしょうか?
僕の場合だと、次のような理由が浮かんできます。
- 知識や経験不足だから、どうも自信が持てない
- Webサイトに掲載されているきれいなコードを自分のコードと比較してしまう
- いつまでたっても妥協できず、きれいなコードを求め続けてしまう
理由があるなら対策すればいいので、次のような方法が思いつきますね。
書籍を購入して知識をつけましょう。構文を知っていることも大切だと思いますが、設計段階でアンチパターンをやってしまわない程度には学習しておきたいです。書籍にも解説用のソースコードが載っているので、読めば読むほど自分の中にサンプルコードを貯めていくことができます。
Webサイトに載っているコードはさんざん推敲を重ねた結果出来上がったものと考えて、安易に自分のコードと比較しないようにしましょう。たくさんの人の目に触れているソースコードなので、どんどん洗練されていったものかもしれませんよ。
きれいなコードを求め始めたらキリがないので、バグを作りこまないし、自分以外の誰かが読んでも理解できるコードが書ければよしとする、といった妥協点を作ってしまいましょう。不具合が無く、設計通りに動き、初心者でも読めるソースコードが書ければ十分だと僕は思います。
この様にして、コーディング上達したいと感じる理由に対処していけばいいのですが、職場の先輩から教わった方法は別のアプローチを取っていました。その方法を次に紹介します。
職場のソースコードをひたすら読む
職場の先輩から教わったコーディング上達方法はとてもシンプルなものでした。
職場で自分が触れることのできるソースコードをたくさん読み込んでいくだけです。
仕事で扱うソースコードなので、どのような振る舞いをするソフトウェアなのかある程度理解できているはずですから、読んでいるソースコードとソフトの挙動の紐づけが比較的簡単にできます。
そのため、上手にコーディングされているものと、あまり上手でないコーディングがなんとなく見えてくるので、成功パターンと失敗パターンの両方を学習することができてお得です。
仕事で扱わない分野のソースコードは慣れていないため読みにくいのでは?
いいえ、そうでもないと思います。分業体制でソフトを開発している職場ならば、レビューを円滑に進めるためにも、飛びぬけて高度な文法が使われることが無く、分かりやすく書かれているためことが多いはずです。
色んな人のコードを見ることができるので、自分が普段書かないようなスタイルを見かけることもあります。こうして色んなスタイルのコードを見た経験が自分のコーディングを上達させてくれます。
読み込んでいくなかで、これはいいなと思う文法があれば、参考コードとして控えて、自分がコーディングする時の参考にすることもできます。
また、よく分からない部分は質問しやすいというメリットもあります。書いた本人に問い合わせるのが一番ですが、ケチをつけているような気がして、なかなか質問できない場合は別の人に質問すればいいのです。その人も上手く答えられないかもしれませんが、一緒に考えてくれるかもしれません。自分以外の考えに触れるだけでも、勉強になると思います
まとめ
職場で教えてもらったコーディングを上達させる方法について紹介しました。
ネットで検索すると、HTML/CSSのコーディングについての記事はたくさん出てくるのですが、C/C++についての記事はそれほどたくさん出てこなかったので、自分が取り組んでいて、そこそこ効果のある手法を紹介しました。
コーディングが上達する以外に、仕事で有効することもできるのでおススメです。
C/C++で組み込み系ソフトウェア開発の仕事を10年以上やっています。怪しげなデジタルガジェットが大好きです。