【プログラミング】プログラマーとしてやってはいけないこと3選
これまで色々なプロジェクトで色々なプログラマーを見てきました。
中にはプログラマーとしてやってはいけないことをやってプロジェクトや周りの人に迷惑をかける人もいました。
これからプログラマーを目指す人や現在プログラマーの人の参考になれば幸いです。
カーゴ・カルト・プログラミング
カーゴ・カルト・プログラミングとは、プログラムの中身を理解せずに動いているからという理由だけで謎コードを利用しているプログラミングのことです。
保守系のコードで不要な部分と推測できる部分でも何が起こるか分からないので手を付けられない状態なら状況として理解できます。
しかし新規プロジェクトで一から綺麗なコードを書ける部分で、別な処理部分や別プロジェクトなどから謎コードをそのまま(もちろんコメントもそのまま)コピペしている派遣のプログラマーを見た時は衝撃的でした。
本人的には原理は分からないけどコードの処理は動いているし、作業時間も少なく楽できるので、毎回同じような感じでやっつけ仕事をしていたという恐ろしい状態でした。
せめてその汚いコピペされたどこから持ってきたか分からないコードを、綺麗に整理して新規実装してくれていたらまた違っていたと思いますが、コードの処理をそもそも理解していないので実装に合わせて整理出来なかったのでしょう。
そして案の定、特定の条件でFetal errorになりコードを修正しなければならない状況になった時その人は自力で解決できなかったようです。
チャットにまるごとエラーコードを貼り付けて他のエンジニアに聞きまくって迷惑をかけまくっていました。
PHPでしたがそのエラーメッセージにはちゃんとクラスが見つからない旨のメッセージが書かれていました。
教える方のエンジニアとしては「エラーメッセージもまともに見ていない、見ることができない、読んでいないのか」とあきれかえるばかりでした。
実装作業の基本がコードのコピペに頼っており、そのコピペしたコードの処理の本質を理解していないプログラミングは絶対にしない方がいいです。
分からないことを分からないままにしておく
カーゴ・カルト・プログラミングにもつながる部分なのですが、時々分からないことを分からないままにしておくプログラマーがいます。
分からない事に出会って何ぞやと思いつつもそのことを調べて消化しないといつまでも成長しないばかりではなく周りのプログラマーに迷惑をかける可能性があります。
プログラミングしているといろいろなスキルに出会いますので出会った時に消化していくのがスキル上達の基本だと思います。
時代によってスキルも言語も新しい物がでてきますので、追い付けなくなってきたらプログラマー引退の時期です。
仕様の確認を怠りやっつけで実装
プログラマーとしていつも頭を悩ませる問題のひとつに仕様があります。
「仕様があいまい」「仕様が決まっていない」「仕様が問題を起こしそう」ならとにかく仕様を決める人に懸念や問題点などを伝えて理解してもらい、「仕様を決めてもらう」「仕様を変更してもらう」必要があります。
しかし仕様を詰めるという行為は一般的に面倒なので、面倒を避けるため確認しないで勝手にプログラマーが楽な実装になる仕様ですすめることがあります。
運よく問題にならなければいいですがプロジェクト後半で仕様絡みで問題が露見してくると現場は大変な状況になります。
やっつけでスピード重視の実装をした結果、仕様が悪く処理が適当すぎてアルゴリズムもマシンパワーによる力技になっていて、処理が激重で実用にならないとかメモリーを使い過ぎて本番では動かないとかよくあります。
なるべくプログラマーは問題を運任せにしないように問題になりそうな仕様やシステム上の懸念点を潰したり変更してもらったりして、それを放置してはいけません。
まとめ
プログラマーとしてやってはいけないことを3つ書いてみましたが、いかがだったでしょうか。
この他にもいろいろとあると思いますが取り合えずこの3つを気を付ければプログラマーとして成長できるのではないかと思います。
常に自分を客観的にみてプログラマーとしてアップデートしていける人であれば、普通に実践できることなのかもしれません。
プログラマーを目指してがんばっているけど基本的なプログラマーとしての経験がないので不安を感じている方もいると思います。
そういった方で仕事の流れや考え方、プログラマーとしての役割に不安があるのであればプログラミングスクールで学習するのもおすすめだと思います。