この職種の求人情報を見る

プログラマの仕事研究

アプリ開発、システムソフトウェア開発、システムエンジニア、現代社会の花形ともいえるプログラマ職ですが、システムエンジニア(SE)などのIT系職種の入り口でもあります。他業種からIT系の業界に転身したいという希望をもつ人は、まずプログラマを目指してみるのもいいでしょう。

プログラマとは?

システムエンジニア(SE)など、上流の工程で策定された設計を元にして、実際にプログラム作成を行うのが仕事内容です。ITエンジニアの入門職といった位置づけです。用途によって最適なプログラミング言語が異なるため、それぞれを使い分けています。

プログラマの仕事内容

目的に応じて様々なプログラミング言語を使い分けて、システムやソフトウェアなどの開発を行います。スマートフォンアプリの開発を例にするなら、企画→要件定義→内部設計→プログラミング→ベータテスト→審査提出→リリースというような行程になることが多いですが、プログラマは通常、このうちの内部設計からベータテストまでの部分を主に担当します。

しかし、本人の能力によって、あるいは会社やプロジェクトの規模によって、その範囲は広くなることもあれば狭くなることもあります。 ここではプログラマーが主に担当することが多い内部設計からベータテストと、その一つ前の行程である要件定義を例としてプログラマの仕事内容を見ていきます。

要件定義

企画として降りてきた、そのアプリで何ができて何ができないのかというイメージを「どうやって実現するのか」という形に落とし込む行程です。仮に、企画段階で「顧客のユーザー体験を向上させる」という目的が掲げられていたとすれば、それを達成するためにどういった技術を使ってどんな機能をどの程度の水準で満たすかを決める段階です。顧客や経営サイドと意見を擦り合わせながら、プロジェクトの最終的な着地点を定めていきます。

要件定義はSEの領分ですが、どんなプログラミング言語を使うか、プロジェクトの規模は、予算は、ロードマップは、といった判断にプログラマとしての知見が必要になります。このため、プログラマとして経験を積んだ人がSEになって要件定義に携わったり、あるいはプログラマがSEを兼ねて参加するといった例もあります。

内部設計

要件定義に従ってシステム全体を組み上げるために、小さな機能単位ごとに区切ったプログラム群(モジュール)をどのように実装していくかを検討します。 この段階では顧客や経営サイドは関与せず、プログラマだけ、あるはSEを含めたチームで作業を行います。

プログラミング

実際にプログラムを書く段階です。機能単位ごとに作り上げ、テストを行い、そして問題がなければ組み上げて全体テストを行います。モジュール単位でバグが起これば当然その場で修正を行います。

また、それぞれのモジュールは他のモジュールからデータを受け取ってそれを処理してさらに他のモジュールにデータを渡すといった具合にそれぞれがつながっていますので、他の部署の作業変更が自分の部署にも影響してくることが少なくありません。納期直前にそうした仕様変更が行われると休日返上、徹夜などで多忙を極めることもある段階です。

ベータテスト

実際の運用場面を想定して様々な環境でテストする段階です。社内の関係者や社外の希望者にアプリをダウンロードしてもらって、実際に運用される現場で試用してもらいます。そして、その使い勝手のフィードバックやバグの指摘をもらったりして、最終リリース前に可能な限りすべての問題点を洗い出して解決します。

プログラマになるには?

エンジニアの職種は敷居が高いように感じるかもしれませんが、プログラマに関しては未経験者の求人も多く存在します。もちろん学校などで言語を学んでいるとプラスに働きますが、それよりも、論理的思考力をはじめとするプログラマとしての適性の有無が重視されます。以下の資格をとっておくと、より選択の幅が広がるでしょう。

プログラマの関連資格をとる

C言語プログラミング能力認定試験

主要なプログラミング言語の一つであるC言語のプログラミング能力を計る民間の資格です。プログラムを書くことに加えて、人間が書いて読めるプログラミング言語からコンピューターが読める機械語に変換するコンパイルを行い、さらにバグを発見して克服するデバッグまでの行程を行って、プログラムを作り上げる総合的な能力を計ります。

PHP技術者認定初級試験

PHPというプログラミング言語に関しての知識を問う民間資格です。PHPはWeb開発でよく使われるサーバー側のプログラミング言語です。

基本情報技術者試験

経済産業省が所管する国家資格試験です。この資格の保持者は情報処理技術者としての一定水準の知識や技能を持つと見なされます。試験ではネットワークやデータベース、セキュリティなどに関しての基礎的な知識や実践的な活用能力を保有しているかどうかが試されます。

また、以下の資格を取得していくと、プログラマとしての知識や技術を保有していることの証明ができるだけでなく、より上流の工程を担当するSEへのキャリアアップも視野に入ってきます。

システムアーキテクト試験

以前は「アプリケーションエンジニア」という名前だった国家資格です。アーキテクトとは元々は建築家や建築士を差します。システムアーキテクトとは、情報システム全般の上流階層の構造設計者といった意味合いです。この資格の試験ではシステム開発を主導する能力などがテストされることになります。

ネットワークスペシャリスト試験

ネットワークシステムを構築して、セキュリティ性を確保しつつその運用を担うネットワーク系のエンジニアなどを目指す人のための国家資格です。

中小企業診断士

中小企業の経営診断をしたり、または助言を担うための国家資格で、プログラミングとは直接関わりのない資格です。しかし、SEの仕事はIT技術を用いてクライアント企業の困りごとを解決することです。つまり、「ビジネスの現場の困りごと」と「IT技術によってできること」をリンクさせる役割がSEには求められます。そのため、プログラミングとは一見関わりがなさそうに見えるビジネス系の資格の保有が仕事に結びついてくることになります。

先々を見据えていった時、プログラマにもこうした視点があるとキャリアアップに役立つでしょう。逆にいうと、他業種ですでにこうした視点を備えている人材は、この点がアドバンテージになって、プログラマからSEへの転身が早期に実現するかもしれません。

プログラマにはどんなやりがいや身につくスキルがある?

プログラマにはどんなやりがいがあるのでしょうか。また、プログラマという仕事で身につくスキルにはどんなものがあるのでしょうか。順番に見ていきましょう。

プログラマのやりがい

まずはプログラマのやりがいをご紹介いたします。

作ったプログラムが動いた時の達成感

自分の作ったものが動いたという達成感は多くのプログラマがやりがいとして上げることです。他業種、例えば、チームで営業をしていて予算を達成できたとしたら、それはサポートしてくれたチームの力があってこその達成ですし、なによりもご支持くださった「お客様のおかげ」です。

しかし、プログラミングの現場では、プログラムが所定の機能を満たしたのは自分の努力が実った結果です。個人的な作業であり、偶然がいっさい介在しないコンピューターを相手にする仕事ですので、その出来/不出来がストレートにフィードバックされてきます。

プログラマとして身につくスキル

次にプログラマとして身につくスキルをご紹介いたします。

論理的思考力が鍛えられる

やりがいのところと一部重複しますが、プログラミングの技術は自分の成長がストレートに感じられます。人を相手にする仕事と違って朝はNoだったけれど夕方はYseだった、ということはいっさいありません。プログラムが動いたとしたらそこには動いた理由がありますし、動かなかったとしたら動かない理由があります。こうすればうまく動くだろう、と仮説を立てて検証をする、これを繰り返していくことを通じて論理的思考力が鍛えられていきます。

どのような人がプログラマに向いているの?

専門の学校に通わなくても、資格をもっていなくても、独学でプログラマになることは可能です。では、どんな人がプログラマに向いているのでしょうか?

論理的な思考ができる

適切に組んであげればプログラムは必ず同じ動きをします。結果に振れ幅があるといったことはありません。

動くかどうか検証するために適切な仮説を立てて実験が行える、そうした論理的な思考ができる人はプログラマに向いています。慢性的に人材不足の業界なので、すでに経験がある人はもちろん優遇されますが、論理的思考ができる人は未経験でも適正ありとして採用される可能性があります。

ITに関する最新情報をチェックしている

それぞれのプログラミング言語には向き/不向きがあり、用途によって言語を使い分ける必要があります。また、進化が早い世界であり、数年前の最先端の技術が現在ではすでに陳腐化しているということも珍しくありません。

そうした理由からプログラマは常に新しくて有用な技術を学習し続けなければならず、必要があれば自分が得意とする慣れ親しんだ技術を捨て去って新しい技術を習得していかなければなりません。そうした常に新しいものを取り入れ続けていく努力がプログラマには必要ですし、それができる人はプログラマへの適正があります。

試行錯誤が好きで根気強

プログラミングはトライ&エラーの繰り返しです。エラーが出るのは当たり前、それを克服していくことでプログラムも、プログラマの技術も磨かれていきます。エラーがでても根気よく一つ一つのエラーを克服していけることはプログラマとしての適正の一つです。

まとめ

IT系技術の入門職としてのプログラマは、適正さえあれば未経験でも飛び込んでいくことができます。実務の中で経験を積んで資格を取得していければ、より上流の工程を担うSEやプロジェクトリーダーへの昇進も可能でしょう。

また、自分のスキルの上達を常にコンピューターがフィードバックしてくれますので、個人的な技術の熟達にこだわりのある職人気質の人には向いた職業かもしれません。