前回に続いてIT関連の仕事です。今回はプログラマー。
システムエンジニア(SE)はシステムの仕様書を作成するとご紹介しましたが、プログラマーはそれに基づいてプログラムを作り上げるのが仕事です。
プログラマーが携わる「システム」は、物流システムや金融システムなど大きなものから、個人が使うWEBサイトやアプリケーションなど様々です。
現代社会ではテレビやスマートフォン、電子レンジなどに至るまで、ほとんどすべての機械や装置がコンピュータープログラムを内蔵しているので、SE同様、プログラマーという仕事もますます重要なものになっていくでしょう。
プログラマーの仕事は大きく分けて二つあります。プログラミング言語を使った開発
プログラミング言語を使った開発
プログラミングの言語を使ってプログラムを組むというのが代表的な作業です。
ただ、SEからの仕様書には開発に必要な情報のすべてが詳細に記載されているわけではありません。
プログラマーが仕様書に記載されている内容を元に、それをうまくプログラムに落とし込んで行く必要があり、ここがプログラマーの腕の見せ所にもなってきます。
プログラムの動作確認
作成後の動作確認です。仕様書どおりに動作するかのテストとなります。
このテスト作業はSEが行う場合も多々ありますが、現実の場面では両者の役割が厳密に区分けされていることはむしろ少なく、プログラマーもこの動作確認には多いに関係してきます。
当然きちんと動作するまで修正を重ねます。
この仕様書通りにシステムが動かないことを「仕様バグ」といいますが、この仕様バグを見つけるのもプログラマーの重要な仕事の一つです。
以上2点がプログラマーの仕事ですのでSEに比べるとこの点はシンプルかもしれません。
しかしSEが組んだ構想を実際に作業するので質量ともにその作業は膨大なものになります。
さてプログラマーと一口に言っても実はいろんな種類があります。
ざっと紹介します。もちろん以下のように厳密に分かれているわけではありません。
WEBをやる人はスマホをやらないということでもありません。対応する仕事の種類と言った方が正しいですね。
プログラマーの種類について
1.Webプログラマー
WebアプリやWebサービスを手掛けます。
2.スマホアプリプログラマー
AndroidやiOSなどのスマートフォンアプリケーションの開発をします。
3.業務系プログラマー
経理や法務、営業支援など、企業業務で使用するシステム開発に関わります。
4.組み込み系プログラマー
家電製品やカーナビなどに組み込まれるプログラム開発です。
5.汎用機系プログラマー
企業向けに構築されたメインフレームと呼ばれる大型コンピュータシステム向けのプログラマーですが、最近では汎用機は減少傾向にあります。
プログラマーの求められるスキル
最後にこれらのプログラムに携わるプログラマー、一体どんなスキルが求められるのでしょうか。
1.プログラミング能力
これがプログラマーの仕事そのものですから必須です。
プログラミング言語は多数ありますが、普通プログラマーは1~3種類くらいに精通しているようです。
そしてその他にも精通はしていないものの読み書きができる程度の言語がいくつかある、そんなスキルは必要ですが、これは特に最近ではシステム開発は単一の言語で行うことは減り複数の言語で構築されているからです。
2.プログラミングの言語特性の理解
プログラミング言語をうまく処理することによって、コンピューターがプログラムを処理する際に負荷がかからないように工夫するスキルが必要です。
3.アルゴリズムの理解
プログラミング言語の特性に限らず、プログラミング言語を使って効率的な問題解決を行う手法のいわゆる「アルゴリズム」を理解しないといけません。
システムには様々なアルゴリズムが使われていますが、よく使われるアルゴリズムについての理解が必要です。
4.デバッグ
プログラムに不具合が発生した場合、その原因調査とプログラム修正を行うことをデバッグと呼びます。これも必要なスキルとなります。
5.コミュニケーションスキル
黙々と作業するだけではプログラマーは務まりません。システムエンジニアなどと頻繁にやりとりして意思疎通を図りながら進めて行きます。よってコミュニケーション能力は必須となります。
プログラマーについてのまとめ
システム開発の今後の傾向として、経験を積めば積むほど「SE兼プログラマー」「プログラマー兼SE」のように境目が無くなっていくようです。
詳細設計をプログラマーが作成するケースが多くなっていますし、そもそもSEとともに基本的なシステム設計から開発に携わるケースも増えています。
SE同様、プログラマーは難しくて自分には無理とあきらめる人もいるかもしれませんが、特に資格が必要なわけでもなく、そもそも最初は誰でも未経験でもありますから気持ちの問題かもしれません。
それにプログラミング言語を覚えるのは大変と言っても、英語よりは簡単です。
文法の数だって、実際の言語よりは少ないわけです。
ただ人間の言語と違って新しい技術が次々出てくるので、常にスキルアップしていく姿勢が必要です。
そういうチャンレンジ精神のある方は今の時代、大きなチャンスです。
そうは言っても的確は情報がないとなかなか考えづらいのも確か。求人情報サイトや派遣会社などでキャリアアップ情報を入手し、相談するのもおすすめです。