「プログラミングは難しいか?」という疑問に答えてみた

プログラミングは難しいか?

こんにちは、うぇぶ騎士@エンジニア大家です。

皆さんはプログラミングは難しいとお考えでしょうか?

Google検索で「プログラミング」と入力すると、サジェストで

「難しい」

とか

「挫折」

とかネガティブなものが表示されることが多いので、多くの人が難しいと思っているようです。

そもそも、IT業界やプログラマーという職種がブラックだという論調もあります。

でも一方でホリエモンや有名インフルエンサーが「簡単」と言ってます。
(また、それを反論する意見があったりもします)

今回は12年程WEBエンジニアを経験してみた私なりに「プログラミングは難しいか?」という疑問に答えてみました。

「プログラミングは難しいか?」という疑問に答えてみた

結論ですが「プログラミング」自体は簡単だと私も思います。

ですが、どこかの「複数人が開発する現場に加入して働く」のは難しいです。
(「その都度苦労する」という表現の方が正しいかも)

私の主張は上記ですが、世の中の論調についても述べたいと思います。

ホリエモンや有名インフルエンサーの方たちは「プログラミング」そのものを「簡単」と言ったり、

「フリーランスのwebエンジニアなら月給80万以上」という案件を受けることはよくあることなので「簡単に稼げる」、

と主張されているのだと思います。

それに反論する現役エンジニアの方達は「現場でエース級または並の人材以上に活躍できる」こと、

「月給80万以上の単価」で「継続して活躍すること」を「難しい」とおっしゃっていると私は思います。

私も現場で経験の浅いもしくは能力値の低いエンジニアさんが入ってこられたら非情に厄介でしたから。

足手まといになるだけでなく、尻拭いをした(させられた)ことも多々ありました。。

何が難しいの?

では、ネットの声で「難しい」と言ってる人は具体的にどの辺を述べているのかを考えてみました。

仕様をどのように実装に落とし込むかが難しい

例えばショッピングサイトの開発で、

発注者

商品A1000円2つと商品B1500円3つを同じカートに入れて買ったら割引が発生して1500円割引(5000円)になるようにしてちょ

みたいな「組み合わせ割引機能」とか。

正直実装したくはないですが、、、

商品IDと個数の組み合わせをDBに登録し、カートの中身の商品がその組み合わせかどうかを判定するようにしていました。

このタスクは更に難しい事がありまして、、

発注者

商品A1000円2つと商品C2000円2つの場合は3000円引き(3000円)もよろ

と、複数条件がある場合も考慮が必要で、

例えば商品ABCを3つずつカートに入った場合は「お得な組み合わせを優先する」、

というロジックも必要でした。
(どう解決したか忘れましたが)

既存の実装済みのソースも考慮(再利用、共通部分、クラス構成など)するのが難しい

複数人で開発している場合、上記(再利用、共通部分、クラス構成など)を意識しやすくするため最初からメンテナンスしやすくするための実装が必要です。

ちょっとした開発でもソースレビューで「この部分は再利用する可能性があるので別のクラスで定義してください」と指摘が入ります。

明らかに

「このタスク以外では二度と使われないよな。。。」

と思いつつも「万が一」に備える必要があります。

結構バカバカしいと思いがちですが後で、

「やってよかった!」

と思うときも多々ありました。

というわけで、実装では面倒でも常に万全を尽くす必要がありそうです。

その代わり、レビュワーが常に厳しく監視する感じになりますので、実装者との関係がギスギスしていきます。。

自動化した単体テストの実装

実装しただけじゃだめで、単体テストを求められる現場も多々あります。

毎回テストコードも試行錯誤して実装しないといけないので、とても苦しいです。

こういうのが好きな人も沢山いらっしゃるのも事実なので、私はプログラマとしてはふさわしくない人間なのかもしれません。

テストケースの考察と実行

結局のところバグの原因はテストケースの漏れです。

ゆるい現場やベンチャー企業の初期の頃は時間も金もないのである程度バグにも目を瞑って貰えるので、テストケースの漏れも容認されます(あとで苦労はしますが笑)。

でも厳しい現場や大企業になると責任感の強いプロパーさんが目を光らせています。

重箱の隅をつつくようにテストケースの不足に指摘が入ります。

「メンドクセーな、お前がやれよ。」と思うことも沢山あることでしょう。

これも金のためと思って諦めましょう。。

まとめ

  • 「プログラミング」自体は簡単
  • 「開発現場でプログラミング」は難しい(というか苦労する)

プログラマがブラックだと言われる所以は、いろいろなゆとり(時間やソースコードやテストケースやテスト実行のゆるさ)を極端に与えてくれない開発現場が少なからず存在するからだと思います。

もちろんその論調も正しいのですが、私は結局のところ現場(タスク)次第だと思います。

ある程度ゆるい現場で自分の実力の範囲内で事足りるタスクであれば、とても気分よくプログラミングができます。

それで高給貰えるなら最高です。

私もwebエンジニアになった最初の4年程は「これは転職だ!」と思って充実した毎日を送って来れました。

それでも時と場合によっては壁が出現し、思い悩むこともあると思います。

でもそれで良いと思います。だって人生だもの。

とりあえずエンジニアになって身を立てるのは悪くないです。

私がエンジニアになってみた感想を記事にしました。是非御覧ください。

webエンジニアやってみてよかったか???キャリア12年の私が語ります

 

あと、もしエンジニアを一生やるのは辛いと思う方は、私が今やってる副業(不動産投資)をnoteにまとめました。有料ですが最初の取っ掛かりとしては良い教材だと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です