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

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

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

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

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

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

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

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

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

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

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

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

SE次第でアプリのクオリティが違ってくるほど重要なポジション

一般的にSEの方がプログラマよりも高い報酬をもらえます。プログラマはSEから指示されたコードを書く仕事なので自分でアプリを作るためのアイデアを出さなくていいケースが多いです。SEになるとプログラマに何のコードを書くかを指示する仕事をしなくてはならないので責任が非常に重くなります。プログラマのときとは違っていろいろな範囲の知識を身につけておかないといけないので何年も経験を積んだ人でないとSEになることは難しいです。きちんとした計画を作ってからアプリを制作しないとクライアントから頼まれた期限に間に合わなくなってしまうリスクがあります。どのプログラマに何のコードを書いてもらうかを決めることをしなくてはならないのでどのプログラマがどんなスキルを持っているかを把握することもSEの大事な仕事です。SEの仕事の出来次第でアプリのクオリティが違ってくるので、高いスキルがあるプログラマのみがSEになることを目指した方がいいです。

SEになるとクライアントの要求通りのアプリを作れるように全体像を考えるスキルが必要

プログラマからSEにステップアップするために必要なスキルはどんなアプリを作るかという全体像を考えるスキルです。プログラマは決められた目的に沿ったコードを作るだけでいいですが、SEはまずどんなアプリを作るかを考える必要があります。きちんとした全体像を作らないと何をしたらいいのかプログラマが分からなくなり困ってしまいます。そのため、クライアントの要求通りのアプリを作れるように全体像を考えるSEの仕事は非常に大事です。また、クライアントとしっかり打ち合わせをすることもSEの大切な仕事です。クライアントがどんなアプリを望んでいるか正確に知ることでクライアントを満足させるアプリを作ることができます。せっかくアプリを作ってもクライアントから不満がでれば何度も作り直さないといけなくなるリスクがあるので、SEがしっかりクライアントと打ち合わせをすることは大事です。また、クライアントにどんなアプリを作ったほうがいいかアドバイスをするのもSEの大事な役割です。

プログラマからSEにステップアップするために必要となる能力とは

SEの仕事は案件を全体的に把握して動かしていくことなので、プラグラマに指示を出したり、クライアントと条件面などについて交渉したりしなければいけません。そのため、SEにはプラグラミングに関する知識だけでなく、マネジメント能力やコミュニケーション能力も求められます。
マネジメントスキルを身に付けるには普段からわかりやすく説明するように心がけたり、部下や後輩ときちんと向き合って相手の長所や短所を把握したりすることが大切です。また、部下や後輩を管理するには常に冷静に物事に対処していかなければいけないので、ある程度は自分の感情もコントロールできるようにしておく必要があります。
コミュニケーション能力を身に付けるには相手の目線に立って物事を考えるようにすることが大切です。そうすれば、相手が今して欲しいことやして欲しくないことがわかってくるので、円滑にコミュニケーションが取れるようになります。また、円滑にコミュニケーションを取るには相手に自分の言っていることを納得させる必要があるので、論理的に物事を説明できるようにしておくことも大切です。