オープン系プログラマーとは、オープン系システムで稼働するアプリケーション開発を担当し、主にソフトウェア製造とデバッグ・テストを担当します。ここでいうオープンシステムとはUNIX/Linux/Windows等のx86プロセッサで稼働する環境を指します。
したがって、ソフトウェア開発の際はオープンソースプログラムを転用したり、必要なシェルスクリプトを取り入れてアプリケーション実行環境と合わせて実装していきます。
オープン系プログラマーと同様に、Web系のシステムはWeb系プログラマーが担当します。Web系プログラマーの主な業務内容は、スマートフォンやPCで動作するWebクライアントを活用して業務端末として表示・操作させたり、Web表示の電子商取引やショッピングサイトを構築したりします。
開発は、主にHTMLやJavaScript/VBScript等やJavaやPHPを用いて、アプリケーションを開発しサーバー側で実行させます。
汎用系プログラマーとは、汎用機と呼ばれる汎用系システム上で業務アプリケーションをCOBOLやPL/IやRPGで開発したり、科学技術計算用にFORTRANやPL/Iを用いて計算処理をさせるものです。これまで大規模システムを中心に、大手企業や官庁系システムに多数採用されていました。
現在は開発したアプリケーションのメンテナンス作業を中心に引き続き需要があり、新規システム開発やシステム移行時にはその経験者がプロジェクトに求められることが多くなっています。
先のオープン系プログラマーやWeb系プログラマーあるいは汎用系プログラマーは代表的なプログラマーの分類ですが、その他にもプログラマーの分類は多岐に渡り細分化されて需要が高まっています。以下に具体的な職種を紹介していきます。
ゲーム系プログラマーとはゲーム処理のプログラムを担当する職種です。具体的には、シナリオライターと連携し、キャラクターの動作やBGMを連携させるものが多いです。
特にスマートフォンで動作するゲームアプリケーションは、遊休時間の活用のため爆発的に需要が伸びています。開発は主にスマートフォンのOSであるiOSやAndroidの開発環境を用いてSwiftやUnityを用いて効率的に開発していきます。
各プログラマーはゲームディレクターに従い、全体の進捗を調整しながら仕上げていきます。
制御系プログラマーは機械や装置をコンピュータ制御するもので、C言語やアセンブリ言語等で制御に必要なセンサー入出力を行い論理制御します。
組み込み系プログラマーは、コンピュータシステムを動作機器に組み込んで活用する形式を取り、C言語やC++あるいはJavaを用いて機能を実装したり、外部ネットワークとの通信を行ったりします。
通信プログラマーは、ネットワーク機器を実装するためにソフトウェアモジュールを開発したり、ネットワーク機器のアクセスプログラムを開発します。
また、ネットワーク機能をソフトウェアで実装することが増えてきていますので、TCP/IPやVPNあるいはパケットフィルター等の機能をオープン系OS上にプログラミングしたり、通信プロトコルのトレースを行ったりします。
開発はC言語やC++およびJavaが多く用いられますが、通信規約やプロトコルに精通している必要があります。
プログラマーはソフトウェアエンジニアになりますので、ソフトウェア開発知識が求められます。しかし近年ソフトウェアモジュールは、自社で全て開発するのではなくオープンソースプログラムを転用したり、ジョイント開発したりすることも増えています。ここでは、オープン系プログラマーに求められる要件を見ていきましょう。
オープン系プログラマーは、主としてソフトウェア開発の製造工程(プログラミング)とテスト工程(単体・結合)を担当します。そのため採用したプログラム言語の特徴を理解した記述が求められます。プログラミングの際は詳細設計で記載されている内容を理解し、記述する必要があります。
そのため、所定の手続きと機能実装を正しいロジックとして反映していく実装スキルが必要となります。また、テスト工程では処理結果の妥当性が判断できるデバッグ能力が必要となります。
特に自身の作成したコード以外のライブラリーをオープンソースから転用する場合は、オープンソースソフトウェアの機能や実装を正しく理解する必要があるでしょう。同様にプログラムの保全性を高めるために適切なモジュールを選択する必要もあります。
オープン系システムでは、稼働環境となるOS認定がLinuxやWindows向けに提供されています。開発言語単位での認定が設定されていることもあり、多岐にわたる認定制度が設けられています。また、ネットワークやDBにおいても各種用意されており、担当するシステムによっては認定資格の優先度が変わるでしょう。
ここでお勧めするのは、情報処理推進機構(IPA)の情報処理技術者試験の1つである応用情報技術者試験です。応用情報技術者(AP)はアプリケーション開発全般の理解と設計・開発・テスト・導入の一連の流れが理解できる技術者を想定しています。応用情報技術者試験に合格することにより、プログラマーの上位技術者として全体の工程を理解し担当できることが証明されます。 参考:LinuC認定制度 参考:Android技術者認定試験 参考:マイクロソフト認定制度 参考:情報処理推進機構(IPA) 情報処理技術者試験
システムエンジニアは顧客の要求を要件化し、設計・開発・テスト・導入の一連の流れを担当します。そのため、プロジェクトサイクルの理解が求められます。プログラマーは、システムエンジニアの作成した設計フェーズの成果物である概要設計と詳細設計に基づき、開発工程でソフトウェアモジュールの製造を担当します。
そのため、詳細設計の工程への関与とコミュニケーションが求められます。さらに製造したソフトウェアのテスト工程で単体テストおよび結合テストを主導します。そのため、プログラムデバッグにより正しい結果が得られることを確認していきますのでテスト工程での正確性が求められます。
現在プログラマーは求められる職種がどんどん細分化されてきています。そのため要求されるアプリケーションに追従していく姿勢が求められるでしょう。ここでは気になる年収や将来性について触れていきます。
オープン系プログラマーの年収は求人サイトによると300万円から700万円となっており、大手顧客の求人では800万円を超えるケースがあります。プログラム言語別に見ていきますと、AIプログラミングの主要な言語であるPythonの求人は、約650万円前後となっています。
一方で、Perlでは約630万円、汎用的なC言語では約600万円、Javaでは約500万円がおよその相場となっています。また、グーグルをはじめとするIT成長企業では1,000万円を超える求人が多数見られるようです。
プログラマーの求人は将来性が高い市場向けに活性化しています。具体的にはAI分析やIoTあるいは自動制御については市場予測も高く求人が増えています。したがって該当領域で求められるプログラム言語をマスターし、アプリケーション知識を高めることにより市場に求められるプログラマーとなるでしょう。
オープン系プログラマーに必要とされるのは、汎用性の高いプログラム言語であるC言語やC++あるいはJavaを中心としたプログラミング能力です。よって、より市場性のあるAI分析やIoTあるいは自動制御で求められるアプリケーション要件を学ぶとチャレンジの幅が広がります。
現在日本では、デジタルトランスフォーメーション(DX)により、あらゆる業種でITによる働き方改革が進んでいます。そのためプログラム言語スキルに加えて新規要求への対応力向上により、新しいニーズにも対応できるプログラマーあるいは全体工程に関与するシステムエンジニアへと、活躍の場が広がるでしょう。
アンドエンジニアへの取材依頼、情報提供などはこちらから
アンドエンジニアへの取材依頼、情報提供などはこちらから