読者です 読者をやめる 読者になる 読者になる

SIer関連メモ書き

SIer関連のメモ書きをしておきます。お客様向けも、業界人向けも、ごっちゃまぜ。

未熟な職業プログラマが成長する方法

まだまだ未熟な職業プログラマ(以後、PG)の皆さん!

PGとしての成長に、何をすれば良いか迷っていますか?

そんな人向けに、何をすれば実力が伸びるかを、メモっておきます。

コピペするプログラマに足りないもの 〜 プログラミング脳の鍛え方 | Social Change!

ちなみに、このエントリーに刺激を受けて書いております。

 

最初に予防線を張っておきますが、この意見を裏打ちするような実験結果があるわけではないです。
ただし、PG教育担当をしていた何人かの意見の組み合わせなので、たぶん大外しはしてないと思います。

 

まずは、概要から。

  1. 仕事以外で勉強時間を持つこと
  2. 他人のソースコードを読むこと
  3. 正確にマニュアルを読むこと
  4. 言語やアルゴリズムを暗記すること
  5. レビューしてもらうこと
  6. テストコードを書くこと
  7. リファクタリングすること

特に目新しいことは言ってませんが、一応解説もしておきます。

 

1.仕事以外で勉強時間を持つこと

仕事は品質よりも納期優先になりがちです。
加えて、他人の書いたソースコードを使いまわして、まずは動かして、バグ取りして終了となるケースが多いです。(コピペPGですね)
これだと、正しい書き方、一から構築する力が備わりません。

 

2.他人のソースコードを読むこと

とにかく、これをやってない人は多いですね。
業務で求められる必要なソースコードのコピペしかしないから、いつまでたっても自分でソースコードが書けない。
そのためのナレッジを貯めるには、自分で考えて書くことも重要ですが、他人のソースコードを読む方がよっぽど早いです。

 

3.正確にマニュアルを読むこと

これも全然やられてないですね。
正確な言語仕様を理解せずに書いた「とりあえず動くソースコード」が量産されちゃうのは、Google検索の功罪でもありますかね?
例えば、Java8を使うなら、まずはこれを読みましょう。
https://docs.oracle.com/javase/jp/8/

 

4.言語やアルゴリズムを暗記すること

上記したリファレンスもそうですが、大抵、正確な言語仕様やサンプルのアルゴリズムが無料で公開されています。
「ざっと見る」とか「必要な時に読む」ではなく、重要なものは「暗記」しましょう。
Googleで検索して、見つけて、試して・・・」と、やってる時間で、1~2メソッドが出来上がります。

 

5.レビューしてもらうこと

自分の書いたソースコードを指摘してもらいましょう。
バグ発見、仕様の認識ミス防止にも有効ですが、それよりも「リーダブルである」ことと「正しい言語仕様である」ことが重要です。

 

6.テストコードを書くこと

「要望されたものを作る」のと「要望されたものをテストコード付きで作る」のとでは、レベルが1つ違います。
なぜかと言うと、テストコードを書くには、メソッドの役割を1機能に抑えてIN/OUTを明確にする必要があり、適当に作ると、そうはならないからです。

7.リファクタリングすること

1回書いただけで完璧に近いソースコードを書くのは難しいです。
何度も書き直して初めて完成度の高いソースコードが産まれます。
業務中にそんなゆとりは無いかもしれませんが、1回は書き直すつもりで、時間をとった方が良いでしょう。
その結果、どんどん実力があがるし、ソースコードを書く時間も短くなります。

 

まとめ

職業PGをやるなら、ずっと技術を磨かないと生き残れないので、まずは自分の基礎となる力を正しい訓練をして、付けましょう。

基礎力さえつけば、後は楽なもんです。

そこまで、頑張りましょう!