webエンジニアの日常

RubyやPython, JSなど、IT関連の記事を書いています

こいつは出来る!と思わせる新人プログラマ7つの習慣

f:id:s-uotani-zetakansu:20170822124329j:plain

こんにちは、エンジニアのさもです。

今年度で社会人3年目になりました。

職場では、経験年数も年齢も下の方と一緒に仕事する機会も出てきました。

そんな私が、実践していると「こいつはできる!」と思ってしまう、新人プログラマの習慣を書いてみます。

スポンサーリンク

メモリを気にする

ローカル環境で動かしているとあまりメモリのことは気にしないと思います。

ですが、例えば以下のような一連の処理はどうでしょう

新しい画像オブジェクトのインスタンス化

新しい画像を操作しない時間のかかる処理

処理結果を新しい画像へ書き込み

時間のかかる処理の間、画像オブジェクトはメモリの上で待機したままです。

大規模なwebサービスともなると、一気に同時アクセス数が増え、メモリ使用量も増えてしまいます。

画像がメモリ上に存在している時間を少しでも短くし、swap(メモリが足りなくなって代わりににハードディスクを使うため遅くなること)する確率を減らしたいですよね。

そんなときは、ほんの少しの修正でよくなります

新しい画像を操作しない時間のかかる処理

新しい画像オブジェクトのインスタンス化

処理結果を新しい画像へ書き込み

本番で運用することも見据えてプログラムできてる新人は凄い!

気にしていなかった方はぜひ今後気にしてみてください。

速度を気にする

処理速度はメモリよりも顕著に出てしまうので、ぜひ気にしていただきたい。

ですが、実際に処理速度を速くするコードを書くのは容易ではありません。

もし自分でかけないと思った場合は、先輩などに聞いてみましょう。

自分で書けなかったとしても、「処理速度まで気にしているなんてしっかりしてる!」と思ってしまいます。

リファクタリング

リファクタリングはすでに書いたコードを、もう一度見直しよりよくすることです。

速度やメモリを考慮したコードも一発で書く必要はありません。

まずはシステムが動くこと。そして、動いたコードに対して、より綺麗に、見やすく、速く、軽く(メモリ消費量が少ない)なるようにリファクタリングしてください。

先輩に見せるコードはリファクタリング済みのコードです。リファクタリング済みのコードを見せられると、こんなコードを書けるのか!とびっくりしてしまいます。

また、どんどん先輩の書いたコードをリファクタリングしてください。

不要なコードはないか、コメントの誤字脱字はないか、変数名が不自然ではなか・・・など。なんでもいいです。

もし先輩のコードをリファクタリングできるようになってきたら、先輩はあなたのことを後輩ではなく、一人のチームメンバとしてみるようになるでしょう。

テストコード

リファクタリングも、速度も、メモリもまだよく分からないというあなたへ。

プロジェクトでテストコードを書いているなら、テストコードを見直してみましょう。

考慮されていないケース、特異的な値などをみつけたら、絶好の機会です。テストコードは頑張れば頑張るほど成果がでます。

もし誰にも見つけられなかったバグを見つけたなら、あなたはそのプロジェクトのヒーローです。

テストコードを頑張って書くと、結果的に結合試験で見つかるバグが少なくなり、修正作業も短くなります。

先輩は、あなたの実装した機能のバグが少ないことにきっと驚くでしょう。

その後の改修や保守でもずっとあなたの書いたテストコードは役に立ち続けます。

テストコードをしっかり書いてくれる新人さん、大好きです。

タスク管理

タスク管理はどこへ行ってもついてまわる話ですが、ここでは、1つの与えられたタスク(機能の実装)をどう管理するかという話です。

私が実践している方法は、ありきたりですが、タスクを小さいタスクに分解する方法です。

小さいタスクはそれぞれ「大体の完了時間が分かって、やる作業も大体わかっている」となるように分解しています。

railsで画面を一つ追加する場合は、

  • ルーティングの追加
  • コントローラの実装
  • ビューの実装
  • テストコード

みたいな感じです。なれればタスクを分けなくても出来るようになってきますが、私はいまでもタスク分解をやっています。

もしbacklogでチケット管理しているなら、* [ ] ルーティングの追加と詳細に書けばチェックボックスになってくれるので、管理するのにとても便利です。

しっかりとタスクが分解されていて、聞かなくても進捗が分かるようになっていれば、先輩も一安心です。

ブログ or Qiita

プログラマは勉強しなければならないことが多いです。

ですが、インプットばかりではなかなか身につきません。

アウトプットすることが大切です。アウトプットの1例として、ブログやQiitaをオススメします。

日々の業務で起こったエラーや実装に苦労したときの知見などを、自分の中にためておくだけじゃなく、公開して役立ててもらいましょう。

先輩は、自分の知らないところで後輩が活躍していることを知ったら、チームメンバを超えて、一人のプログラマとしてあなたを見るようになるでしょう。

git

チームでプロジェクトを進める以上、gitは避けて通れないと思います。

ですが、初心者にはgitはとても難しいです。私も何度もチームメンバのコミットを消してしまいました(笑)

そんなgitを使いこなせる新人は凄い!

railsjavascriptは実際に動くものが作れて楽しいですよね。勉強のしがいがあります。

gitは複雑でややこしくて難しくて全然楽しくありません。楽しくないことも同じように勉強し、使いこなせるように慣れる人は凄いと思います。

gitは難しいですが、一度慣れてしまうとそれ以降は難しくありませんし、意外と覚えることも少ないです。

同期に差をつけたいと思っている方は誰よりも速くgitマスターになることをオススメします。

一度以下の記事も読んでみてください。

www.uosansatox.biz

最後に

どれも簡単に出来ることではありませんが、実践すれば、プロジェクトの品質とあなたの評価に直結します。

早くチームに貢献したいという方は試してみてはいかがでしょうか。

読者登録をしていただけると、ブログを続ける励みになりますので、よろしくお願いします。