プログラマーを目指す前に、仕事内容を正しく理解しよう

programmer 理想の働き方へのキャリアステップ

IT業界に興味を持つ場合、多くの方が最初に気になるのはプログラミングだと思います。SEになるには避けては通れない経験ですし、プログラムがどういうものかが分かっていなければ、この業界で長く活躍することは難しいでしょう。

しかし、プログラミングをする人がどういう働き方をしているのかを初めから理解している人は、意外と少ないです。ここの理解を誤ると、間違った方向に努力してしまって効率良くキャリアを築くことができなくなる危険性があります。

プログラマーという仕事はどういう働き方をするのか、どういう知識やスキルが必要なのか、どういう人が活躍するのか。勉強を始める前に、プログラマーという仕事の概要について理解を深めておきましょう。

  • プログラマーの仕事内容と責任範囲を理解する
  • プログラマーに求められるスキルを知る

プログラマーの仕事は、設計書をプログラムに翻訳すること

translation

システム開発には、大きく分けてシステムエンジニア(SE)とプログラマー(PG)がかかわります。お互いが両方の役割を担っていることもありますが、要求される仕事内容に違いがあるため、まずはそこから説明します。

システムエンジニア(SE)は、お客様の要望をシステムに変換するのが仕事です。自社の商品を販売するサイトを作りたいという要望をシステムでどうすれば実現できるか、その設計をするのがメインの役割です。お客様と会話をしながら、システムの設計書を一つずつ仕上げていくことになります。

プログラマー(PG)は、SEが作成した設計書をプログラムの形に変換するのが仕事です。設計書はもちろん日本語や英語など、人が理解できる言葉で記述されています。その設計書をもとに、パソコンが理解できる言葉に翻訳するのがプログラマーの仕事です。

ビルの建築に例えると、SEとPGの関係性は、設計士と建設現場作業員の関係性に似ているかもしれません。ビルを建てるにも最初に設計をします。設計士を中心にビルの広さ・高さなどの外観や柱の数・電気や水道などの導線設計をし、具体的な図面が作成されます。その後、建設現場作業員が図面をもとに実際にビルを建築していくわけです。

ちなみにですが、プログラマーはコーダーと呼ばれることもあります。プログラムもコードと、プログラミングもコーディングと呼ばれることがあります。どちらも同じことなので、頭の中で使いやすい方に変換して会話できるようになっておきましょう。

プログラマーの仕事の範囲は、どこからどこまでか?

work

プログラマーの仕事は、設計書をプログラムに翻訳することです。ただし、ただ翻訳したら終わりというわけではありません。プログラマーに求められる仕事の範囲は、「設計書をプログラムに翻訳すること+設計書通りにプログラムが動いていると保証すること」です。

たとえば、あなたが英語で書かれた本の翻訳をしているとしましょう。本に書いてある内容をどんどん日本語に翻訳していくことと思いますが、あなたはふと疑問に思います。

「私が書いた文章が、正しく翻訳できているとどうすれば分かるのだろうか?」

もしかしたら、別の翻訳家に依頼して正しいかを確認してもらうかもしれません。同じ業界の別の本の翻訳を参考にして、正しいことを確かめるかもしれません。
それでも本当に正しく翻訳できているというのは、もしかしたら分からないかもしれません。どうしても元のニュアンスや文化的背景が情報として抜け落ちることがあるからです。

それに対して、プログラムの場合は正しいか正しくないかが多くの場合はっきりします。1+1とプログラムを書けば、結果は必ず2となります。システムの世界にはあいまいな状態が存在しないことがその理由です。

プログラムの世界にはこのような厳密さがあるため、プログラマーには自分が書いた翻訳の精度を保証することも求められます。

具体的には、プログラムを書いた後にはテストをします。
テストでは、「Aという入力がされたら、CではなくBという出力がなされること」という確認を行います。1つのプログラムで、100個以上のテストをすることも普通にあります。このテストをすべて完了したところで、プログラマーとしての仕事は完了となります。

スポンサーリンク

プログラムを書けるだけでは、プログラマーにはなれない

programmer in trouble

これから何かのシステムを作るという場合、プログラマーはまずSEから設計書を受け取り、自分が担当する機能の概要説明を受けます。

  • システム全体は何を目的としているのか
  • その中でこれから作る機能はどのような役割を果たすのか
  • その作り方はどのように設計されているのか

少なくともこの3点についてSEから説明を受けます。プログラマーは説明を受けて内容を理解したら、自席に戻って作業開始です。ただし、いきなりプログラムを書き始めるわけではありません。多くのプロジェクトでは、プログラムを書く前に2つの資料を作成します。

  • プログラム設計書(フローチャート)
  • テスト仕様書

フローチャートとは、プログラムに書くことの順番を設計書よりも細かく書いたものです。フローチャートの順番通りにプログラムを書けば、プログラムは出来上がります。つまり、フローチャートがなければプログラムは書けません。フローチャートとはそれほど大切なものです。設計書とプログラムの間にはフローチャートがあるということは、今から知っておいてください。

テスト仕様書とは、プログラムが設計書通りに動いていると保証するために行うテストの一覧を書いた資料です。これも大事なことですが、優秀なプログラマーはプログラムを書く前にテストのことを考えます。どのような仕事でも、作業が正しいことを確認するためのチェックリストは、作業をする前に整理されているものです。失敗しないためにも、この癖は早めにつけておきましょう。

フローチャートとテスト仕様書が完成したら、プログラマーは実際にプログラムを書き始めます。といっても、フローチャート通りにプログラムを書けば仕上がるため、ほとんど頭を使わずにできる作業です。

実は、プログラマーの仕事内容の本質はプログラムを書くことではありません。
プログラマーの仕事は、プログラムを書き始める前にほとんど終わっているということです。プログラムを書く段階になれば、あとは機械的に文字を書いていき、テストと修正を繰り返して完了です。

ここは良く誤解される点なので、もう一度お伝えします。プログラマーの仕事内容の本質はプログラムを書くことではありません。
本に書いてあるプログラムを書き写して勉強している人がたくさんいます。プログラミング言語の文法や関数を記憶しようとする人もいます。プログラムの書き方に慣れることやどのような関数が存在しているのかを知るためには大切なことですが、こればかりするのは無駄が多すぎます。

それよりもフローチャートを作成したり、正しさを保証する方法を考えたりすることの方が何倍も大切な時間です。プログラムを書くことしかできないプログラマーは、誰にも必要とされません。手を動かすことではなく、考える力を伸ばしていきましょう。

プログラマーに求められるスキルとは

programmer skill

どの仕事にも言えることですが、スキルがあるだけでは役に立ちません。クレーン車を操縦できるだけではビルは建築できないのと同じです。設計書を理解し、自分がどの部分を作ろうとしているのかを理解し、どうすれば正しく作れたと証明できるかが分からなければ、正しく作ることはできません。スキルとは、これらを行うために必要となる前提知識の一つという立ち位置にあります。

設計書を理解するためには、SEと密に会話をする必要があります。プログラマーは一日中パソコンに向かって一人で作業しているという思い込みをしている方もたくさんいますが、それは間違いです。むしろ、人と自分の認識の違いを埋めるための会話力が求められるため、非常に高度なコミュニケーション能力が求められます。

また、テストのやり方を考える際には、抜け漏れを防ぐためにも高い論理的思考力が求められます。ほかのプログラマーやSEとも、論理的思考力の高さで比べられる場面が多々あります。能力の高いエンジニアと会話した後には、自分の思考力の低さに愕然とする場面に出くわすかもしれません。考えた結果は必ずプログラムの動作に現れますから、考慮漏れや認識の間違いは露骨に指摘されます。それが当然に起きる業界であるということも理解しておいてください。

まとめ

プログラマーとは一日中プログラミングをする仕事だと思っていたとしたら、プログラマーという仕事のイメージが変わったかもしれません。真実を知ることはとても大切です。

この業界には、人と話すのが苦手だからという理由で入ってくる人が少なからずいらっしゃいます。しかし、実際は人と話すことから逃れることはできませんし、年収1,000万円を超えるSEになりたいのであれば、人と話すことからは逃れられません。

プログラマーというキャリアをスムーズに築いていくためにも、プログラミングスキルだけでなく社会人として必要となるスキルも身につけながら成長していきましょう。

タイトルとURLをコピーしました