作業者から設計者へ

プログラミングの現場では大きく、プログラマーとシステムエンジニア(SE)で業務内容が異なります。

プログラマーは基本的に設計をせず、渡された設計書通りのプログラムを書くのが仕事です。

一方でSEの仕事は顧客の要求分析から実際に作成するプログラムの仕様検討までをおこないます。プログラマーに比べてより上流の業務が中心になります。

必要なスキルは顧客から要求をヒアリングする能力とそれを実際の設計へ落とし込み能力です。

プログラマーからSEへは実業務の中で段階的のステップアップして移行するケースが多いようですが、前述した通り顧客とのコミュニケーションや要求を実際の設計落とし込むスキルが必要となりますので、ベースとなる技術的な知識はもちろんのこと、相手が何を求めているのかをよく理解し、実際に成果物としてアウトプットする能力を磨くことが必要です。

プログラマーの皆さんは今の業務の中で、より上位の開発者がやっている業務を少しづつ肩代わりして行くことでスムーズにSEに必要なスキルを得られると思います。

プログラマーからSEになる為の2つのこと

プログラマーからSEになる為の能力のうちの一つは、

チームをまとめる能力です。一癖も二癖もある人材が

多いプログラマーをまとめるには、経験や人望、スキルなど、人によって武器は異なりますが何かしらの長所があって、信頼や尊敬を得ることが重要だと思います。SEがしっかりしていないとプロジェクトが炎上します。

無理のない余裕のあるスケジュール、個々のプログラマーの能力の把握と仕事の割り振りが大切です。

仕様とアルゴリズムを考えられる能力プログラマーからSEになる為の能力のうち2つ目の能力は、仕様とアルゴリズムを考えられる能力です。

新人プログラマ時代は、上司から渡された、アルゴリズム思考済みの仕様書を見ながらその通りにコードを書いていればOKでしたが、SEに昇格すると、自分ではコードを書かず、仕様と処理の流れを考える能力が必要です。そしてプログラマ達と連携して、システムを作っていきます。

以上の2つがプログラマーからSEになる為の大事なことだと思います。

ステップアップしてITスキルを身につけました

ステップアップしたことでITスキルを身につけることができ、とても仕事の範囲が広がったのを実感できるようになりました。今まではプログラミングを中心とした作業を行っていましたが、仕事の縮小などもあり、商品開発は減少傾向になってきました。よって作業を行う上でかなり厳しい現状になってきたため、しっかりと取り引きを行うには、難しい条件になってきました。データーベースエンジニアなどは需要も多く、顧客先での障害対応などもスピーディに行う必要があり、仕事としてのやりがいを感じることも多くなったので、Oracleの業務はかなりスピード対応にて行うことができ、なかなか満足できるようになりました。データベースエンジニアとしてスキルアップすることで今までより更に上のスキルを手に入れることができるので、快適な仕事ができるようになりました。ITスキルを伸ばすことは何より大切になりますし、収入アップにもつながるので楽しいです。

SEとしてステップアップ

プログラマーとしてソフトウェアの作り込み作業など行っていましたが、最近は新しい製品の開発業務がかなり減ってきたので、仕事の限界を感じるようになりました。部署もだいぶ人員を減らし、業務の方向性を変えるような雰囲気になってきたので、自分にあった仕事を車内で探すことにしました。ネットワークの知識を持っていると環境構築などもできますし、顧客対応などスピーディに出来るので需要も多くあります。プログラマーからSEとして活躍したいと思ったので、ネットワークスペシャリストとしての資格を取得したり、業務も少しずつ変化していき、部署が変わることにしました。プログラミングの知識も持っていますが、ネットワーク構築業務もできるとなると、幅広く業務を開拓してくことができるので、新たな分野にチャレンジできます。SEとしてのキャリアを伸ばしていくことができるので、とても充実できる毎日を過ごすことができ、日々健康的に生活ができます。

プログラマーからステップアップしました

プログラマーとしてソフトウェアの商品開発に携わっていましたが、あまり増加傾向にないため、製品開発業務は下火になってきました。社内でも人員調整などもあり、できる仕事をふやしていかねばならず、プログラマー以外で仕事として何かできないかと思い、ネットワークスペシャリストとして資格を取得するなど、スキルアップすることにしました。他には様々な分野を開発するためにネットワーク構築業務やデーターベースのサポート業務など、環境構築を行い、顧客先でのサポートなどしっかり行うようにしました。やはり色々とサポートが必要になるため、計画的に業務を行うことは大切になります。プログラマーからステップすることができ、新たな知識を増やすことができたので、業務も次第に広がっていったのが自分でもわかるようになりました。色んな仕事ができるようになると、任される業務も幅広くなりチャレンジ意欲がでて、楽しく感じるようになりました。

システム開発の流れの多くを担当するSEはプログラミングだけではない

企業のシステム部門などでシステム開発の仕事に関わっている場合、全体的な流れをまず掴むことでPG職とも呼ばれているプログラマーからSE職とも呼ばれていて人気が高いシステムエンジニアへステップアップする道筋が見えてくると思います。
システム開発の流れとしては、まず、顧客から新しいシステムの要望や要件を具体的に聞き出してシステムの形を作っていくことから始まります。出来上がった形を基にプログラムを作るためのルール作ったのちに、このルールに基づいてプログラムを作り、これが正しいかどうかを確認して完成します。プログラマーが担当するのは、プログラムを作る部分のみであることが多いですが、システムエンジニアは、この流れの大半を担当することが多いです。
したがって、システムエンジニアにスキルアップするには今のプログラミング技術を高めるだけでなく、お客さんとの打ち合わせや部署間との連携が正しくとれるようなコミュニケーション能力を身につけたり、さらに高めたりする必要があります。

SEにはコミュニケーション能力も問われる

まず、SEと呼ばれているシステムエンジニアの仕事は、プログラマーのようにパソコンに向かって黙々とプログラムを打ち込んだり、バグというエラーを修正したりする作業も行いますが、それ以上に顧客と打ち合わせを通じて目的の製品の仕様を決めたり、方針を具体的に作成したりする方に時間が割かれます。
つまり、求められる能力としては、企業や分野によって異なりますが、専門学校や大学などで専門的に学ぶことができるプログラミングスキルに加えて、お客さんとの会話を通じて必要な事項を聞き出したり、場を円滑に進めたりする能力などのヒューマンスキル、所謂コミュニケーション能力に重点が置かれることが多いです。
したがって、プログラマー(PG)からシステムエンジニアになるためには、まずは、同じプログラマーとして働いている同僚や上司との報連相を確実なものにするなどして、コミュニケーション能力を磨いていこうと意識することが第一ではないかと思います。

プログラマーのスキルをアップさせるにはアウトプットも必須

プログラマーのスキルをアップさせる方法としては、「技術書を読む」「勉強会に参加する」などがありますが、そういったインプットだけでは不十分であり、アウトプットも必須です。
アウトプットの方法には、「ブログで技術の記事を書く」「勉強会で講師を務める」などがありますが、それらを行うことで、自然に自分の持っている知識が整理されます。
ただし、それらのアウトプットには、一定のクオリティーがなくてはなりません。
例えば、ブログに記事を書くとして、「自分用のメモ」レベルのサンプルコードを貼るだけなどは論外ですし、適当なことを書いたりすると、自分より上のレベルの人から突っ込みを入れられてしまいます。
しかし、それが妥当な物であれば、勉強の糧として、内容をブラッシュアップして行くことができます。
そうして、よいアウトプットを重ねて行けば、自然と知名度も評価も上がって行きますし、それがきっかけで、よい会社に転職できることもあります。

プログラマーのスキルを手早くアップさせる方法とは

プログラマーのスキルを手早くアップさせる方法としては、「有料のトレーニングを受ける」という方法が挙げられます。
いわば「お金で時間を買う」ということですが、「スキルをアップさせたいが、独学だと効率が悪すぎる」と考えているなら、これはよい選択肢といえます。
ただし、「どのようなトレーニングなのか」「講師のクオリティーはどのくらいなのか」ということは、しっかりチェックする必要があります。
「内容が実践的である(座学中心の物は避けるべき)」「講師に自由に質問できる」「受講者からの評価がよい」などの条件を備えていれば、まず大丈夫といえます。
もう一つの注意点は、「受講料にこだわりすぎない」ということです。
たとえ格安だったとしても、クオリティーが低ければお金と時間の無駄にしかなりませんし、それなりに値が張ったとしても、クオリティーが高ければ、お金をかけただけの価値はあるといえます。
むしろ、高額でもすぐに元を取ることができれば、投資としては成功といえます。

お金をかけずにプログラマーがスキルアップする方法とは

お金をかけずにプログラマーとしてのスキルをアップさせる方法には、以下のような物があります。
一つ目は、「独学でひたすらコードを書く」。
もっともお金がかからない方法です。
壁に当たることが多いですが、それを自力で乗り越えることで、確実にスキルが身に付きます。
ただし、時間を要しますし、おかしな癖が付くおそれもあります。
二つ目は、「技術書に目を通す」。
技術書に目を通すことで、書いた人の知識や経験を得ることができますし、体系的な知識も身に付きます。
ただし、読んだだけでは「できる」ようにはならないので、あくまでも実践と平行して行くことが必要です。
三つ目は、「現場で実績を積む」。
学生ならばインターンとして、社会人なら転職して、IT系の企業に入るということです。
どうにかして採用されれば、給料を貰いつつ、スキルを磨くことができます。
ただし、「行きたい部署に行けない」「求人内容と待遇が大きく違っている」などのリスクもあります。