投稿者「it-future」のアーカイブ

フリーランスエンジニアとはー自由な働き方が選べる独立型エンジニア

政府が号令をかける働き方改革の影響もあり、場所や時間の自由があるフリーランスに注目が集まっています。IT業界も例外ではなく、独立をしフリーランスエンジニアになりたいと考える人も増えてきました。

ここでは、フリーランスエンジニアとは何か、働き方はどうか、フリーランスエンジニアに向いている人、会社員エンジニアとの違い、メリットやデメリットなどを解説します。

フリーランスエンジニアとは何か

フリーランスエンジニアとは、1つの会社に所属せず、独立してエンジニアをする働き方です。会社勤めがないので、朝ゆっくりスタートし、満員電車に乗ることなく好きな場所で仕事ができる夢のような働き方とあこがれを持っているエンジニアもいるようです。実際は会社を介さない分、自分で案件を確保しなければ収入がないといった面もありメリットもデメリットもあります。

エンジニアの働き方の種類と特徴を改めて確認します。

エンジニアの雇用形態について

ITエンジニアはどの分野であってもスキルや能力が重視される仕事です。このため、正社員だけでなく、多様な働き方が選択しやすい職業です。ここでは改めて、代表的なエンジニアの働き方を見ていきます。

・会社員エンジニア

一般的な働き方で、会社に所属し基本は与えられた案件をこなしていきます。会社員エンジニアと言った場合、通常、自社のシステムを管理する自社内在席型、SIerや開発会社のように他社のシステムの案件を行うが席は自社内にある(必要に応じて現地訪問)、データセンター常駐などを指すことがほとんどで、派遣エンジニアは別の形態と考えます。

・派遣エンジニア

派遣会社や、請負型IT企業に所属し、案件ごとに顧客に常駐する働き方です。派遣会社の場合、案件ごとの契約になり、案件がない場合は収入がありません。請負型の場合、会社との契約形態により異なりますが仕事が無いときの給与はないか減額される場合がほとんど。スキルよりもマンパワーを求められるケースが多いため、収入は低い傾向がありますが経験が少なくても採用されやすいメリットがあります。

・フリーランスエンジニア

会社に所属せず、自分で案件を得て仕事をし、納品・請求まで行う独立型のITエンジニアを指します。能力が重視されるIT系職種では、フリーランスという言葉が広まる以前から独立して仕事をする人も少なくありませんでした。現在大手となったIT企業にも、元々は独立してフリーランスや数名のベンチャー企業から始まっている会社もたくさんあります。現在はフリーランスエンジニアと呼ばれることが多く、自分で仕事を選べること、時間が比較的自由に使えるということで改めて注目を集めています。

※フリーランスエンジニアと派遣エンジニア

一見すると似たような働き方に見えるフリーランスエンジニアと派遣エンジニア。どちらも特定の仕事や会社に縛られず仕事の自由があるように見えますが、一番の違いは求められる能力やスキルです。
派遣エンジニアは人手が足りない場合に求められることが多く、単純作業やルーティンワークなどが中心。開発案件であれば大型案件の一部だけ担当したり、インフラエンジニアであれば保守要員と、派遣エンジニアは指示された仕事をこなす人が求められます。
これに対し、フリーランスエンジニアは自分で案件を選び、ヒアリングから納品まですべての工程をこなせる能力が必要になり、技術力に加えマネジメント能力や交渉力など、自分で動いて仕事ができなければなりません。このため、派遣エンジニアは経験が浅い人や未経験者の求人もありますが、十分な経験とスキルがなければフリーランスエンジニアとして成功することは難しいでしょう。

フリーランスエンジニアと会社員エンジニア

フリーランスエンジニアと会社員エンジニアは、会社に所属するかどうかだけではなく仕事への向き合い方をはじめ大きな違いがあります。どちらの働き方にもメリットやデメリットがありますので、フリーランスエンジニアのメリット・デメリットを中心に違いを確認していきます。

フリーランスエンジニアのメリット

フリーランスエンジニアのメリットは以下のようなものがあります。

  • 自分で案件を選べる
  • 自分で働く時間や場所が選べる
  • 契約単位で仕事ができる
  • 経費など会計面での優遇が利用できるようになる

フリーランスの最大のメリットは、自分で仕事を選べることです。会社員エンジニアは上から与えられた仕事をするのが基本なので、やりたくない案件や作業を断るのは難しいです。社内システムの構築がしたくて入社したのに、実際は保守で毎日ウイルス対策をしていた、という社内SEの声もあります。フリーランスエンジニアであれば、苦手な作業はあっても案件自体は自分で選ぶことができるため、ストレスをへらすことができます。

また、常駐型の案件でなければ好きな場所で好きな時間に仕事ができます。常駐型であっても、契約時に交渉すれば出勤時間を遅らせるなど朝の通勤ラッシュ時間を避けられる可能性はあります。夜のほうが集中して作業ができる、というような人にはフリーランスエンジニアの働き方はピッタリです。

契約単位で仕事ができることから、集中的に仕事をした後、一定期間仕事をしないなどのスケジュール調整も自分でできることから、会社員時代にはできなかった長期休暇を取ることも不可能ではありません。常駐型でなければ、旅行先で仕事を継続することも難しくないでしょう。

フリーランスエンジニアに限らず独立して働く人の大きなメリットは経費が自由に使えること。仕事に関係のあるものは税控除できることも多いので、早めに税理士などから情報を得てフリーランスのメリットを最大限に利用したいです。

フリーランスエンジニアのデメリット

フリーランスエンジニアは大きなメリットがある反面、デメリットも少なくありません。以下、働き方を中心としたフリーランスエンジニアのデメリットです。

  • 収入が不安定になる
  • お金のために望まない仕事をしなければいけないこともある
  • 仕事と私生活を分けにくくなる
  • お金の管理を自分でしなければならない
  • 社会的信用を得にくい
  • 教育環境を得るのが難しい
  • 福利厚生がない

フリーランスエンジニアは自分で仕事を選べる反面、仕事がない時は収入がなく、案件によって上下することもしばしば。このため、収入が不安定になりがちです。一定額の給与が保証された会社員エンジニアと比べると収入面での不安は残ります。このため、お金のためにと結局は好きでない仕事をしなければならないこともあるでしょう。収入を取るか仕事の満足感を取るかの悩みは尽きないです。

時間と働く場所の自由があるということは、良い面も悪い面もあります。最近はセキュリティの観念から会社員エンジニアが仕事を家に持ち帰ることを制限されることも多く、会社外では仕事を忘れることもできるでしょう。フリーランスエンジニアは時間の制限がないため、気がついたらずっと仕事をしていて何日も休みを取っていない、というケースもあります。このため自己管理がうまくできずプライベートがなくなってしまった、という人もいます。

経費の裁量が増える反面、お金の管理はすべて自分でしなくてはいけないのがフリーランスエンジニア。使ったお金は管理できても、いままで会社がしてくれていた請求がうまくできない、という人も少なくありません。請求処理が苦手な人はフリーランスエージェントなどを上手く活用するなど対策が必要になります。

独立した人や自営業者が抱える悩みの1つ、社会的信用を得にくいという問題はフリーランスエンジニアも同じです。お金を借りる予定がなくても、単純にクレジットカードが作れなかったり、アパートが借りれなかったという話もあります。社会的信用が必要なものはフリーランスになる前に済ませておくことが賢明です。

意外なデメリットとしては、教育環境の喪失です。IT企業はベンダーのライセンス契約などの関係もあり、資格取得を推進する会社が少なくありません。教材や先輩からの指導だけでなく、高額な受験料を負担してくれたり、資格取得後に報奨金や給与がアップする場合も多いです。フリーランスエンジニアになると、資格取得にかかる費用は経費にできるとしても、それが収入につながることはあまりなく、モチベーションも低下しがち。気がついたら最新技術を得る姿勢がなくなっていた、ということにならないよう気をつけたいです。

デメリットの最後は福利厚生です。会社員エンジニアであれば当然のように利用できていた福利厚生が使えなくなるのが意外と痛いものです。特に健康保険や年金の積立は個人ですると意外と高く、フリーランスエンジニアになった後にありがたみを感じる人もいるでしょう。

フリーランスエンジニアに向いている人

フリーランスエンジニアに向いている人を考えてく中で真っ先にあがるのか、未経験者や経験が浅い人。フリーランスエンジニアに求められるものは業務を遂行できるスキルと管理能力。向く向かない以前に、経験の少ない人は仕事を得ることが難しいと思ったほうが良いでしょう。単純に業界経験の長さで成功するとは言えませんが、経験量は最大の力になることは頭に入れておいたほうが良いでしょう。

次にマルチタスク能力です。フリーランスエンジニアに限らず独立するということは、いままで会社がしてくれていた雑多な仕事もすべて自分でしなければなりません。開発だけがしたいからとフリーランスエンジニアになっても、案件の獲得、ヒアリング、スケジュール管理、開発、テスト、納品、請求、とすべてを自分でしなければなりません。特に請求ができなければ収入になりません。フリーランスエージェントを利用してもカバーしきれない部分は自分で管理できるマルチタスク能力がある人はフリーランスエンジニアとして成功できる可能性が高くなります。

また、スケジュール管理も含めた自己管理能力も書かせません。納品スケジュールだけでなく、自分のプライベートの時間を確保できるか、体調管理をしながら仕事をできるかなど総合的な管理能力がないと仕事に追われるだけで体を壊してしまう場合もあります。プログラミングは楽しいからいつまでもやっていたい、という人も自分の体調を冷静に見れる目は持っていたいです。

フリーランスエージェントについて

解説の中で何度か出てきたフリーランスエージェント。うまく利用できればフリーランスエンジニアとして成功できる可能性が高くなります。具体的にフリーランスエージェントでできること、メリットはなにがあるのでしょうか。

フリーランスエージェントがしてくれることは、主に案件の開拓、紹介といった営業部分と、請求に関する部分です。どちらもフリーランスエージェントが成功するために欠かせない業務ですが、技術職として働いてきた人が苦手とする分野。ここを代行してくれるのはありがたいです。

フリーランスエージェントはこういった業務を代行することで手数料を得ています。しかし自分では見つけられないような案件を持ってきてくれたり、納品完了後請求業務を自動的に代行してくれることを考えれば当然のこと。営業と請求に使う時間を手数料で払うと思えば安いものです。

ただし、中には法外な手数料を徴収しているような悪質なエージェントも存在します。大手であれば案件も多く抱えており、比較的信頼性は高くなります。レビューなどを参考に、よいフリーランスエージェントを見つけ複数登録しておくのがおすすめです。

> 他のIT・エンジニア職種の解説へ

Web系エンジニアとは?-Webアプリケーションのスペシャリスト

IT職種の中でも比較的新しい分類に入るWeb系エンジニア。漠然とWebの仕事をするのだろうとイメージしている人は多いですが、実際は何をしているのか説明できない人も少なくありません。Web系エンジニアはエンジニアとついていますが、プログラマーに近い役割です。

ここではWebサービスの拡大やスマホ・タブレットの普及で需要の高まったWeb系エンジニアについて、仕事内容やスキル、必要な資格などを見ていきます。

Web系エンジニアとは?

Web系エンジニアはWebサイトのシステムや、Webベースのアプリケーションを制作するエンジニアです。プログラマーの中でもWeb系に特化しているスペシャリストを指します。プログラムにはOS、ミドルウェア、アプリケーション、ゲームと種類がありますが、この中でもWeb系エンジニアが作成するのはWebやスマホなどで動くアプリケーションとゲームです。

Web系エンジニアの役割

一般的なプログラマーに比べ、Web系エンジニアの役割はやや範囲が広めです。Webアプリケーションは個人や少人数で開発することが多いため、一人ひとりが受け持つ業務量が多くなるからです。

顧客から依頼されて作成するWebアプリケーション開発の場合、大まかに以下の工程に分けられます。

・ヒアリング
・デザインの確認
・基本設計
・詳細設計
・プログラミング
・テスト

実際はそれぞれの作業が明確に分かれていることは少なく、個人の作業範囲も明確でないことがほとんどです。プロジェクト全体を管理できる能力も必要とされることから、システムエンジニア的な面もあると言えます。アプリを自社開発する場合、ヒアリングの代わりに企画提案が含まれることもあります。

Web系エンジニアが作成するアプリケーション

・Webサイトで動くアプリケーション

すぐに思いつくWeb系エンジニアが作るWebサイトで動くアプリケーションで身近な例はショッピングカートシステムです。ショッピングサイトで商品を見ながらクリックひとつで商品をカートに入れ、最終的に会計まで進むカートシステム。表から見えているのは普通のWebサイトと同じですがボタンの1つ1つにプログラムが埋め込んであります。ショッピングサイトで言えば、お問合せフォームも代表的なWebアプリケーションの1つです。

普段何気なく使っているインスタグラムやFacebook、YouTube、ツイッターなどのSNSも単なるWebサイトではなくアプリケーションの上で動いています。今やほとんどのWebサービスはプログラム埋め込まれているのが当たり前といっても言い過ぎではないかもしれません。Webサイトで動くアプリケーションは、利用している人がアプリケーションを触っているという感覚があまりないのが特徴です。

・スマホやタブレットのアプリ

Web系エンジニアが関わるアプリケーションのもう1つの代表はスマホやタブレットのアプリです。すべてタッチパネルで操作するためコンピュータという認識がない人もいますが、スマホもタブレットもパソコンとは異なるOS(オペレーションシステム)を利用したコンピュータ。アプリの1つ1つがWeb系エンジニアの作成したプログラムです。

パソコンで動くソフトウェアも基本的な概念は同じですが、スマホやタブレットの上で動くアプリはWebベースのテクノロジーを利用しています。このため使用するプログラミング言語や開発工程も通常のプログラミングとは異なる場合がほとんどです。

ゲームアプリ

Web系エンジニアが作成するアプリには、ゲームも含まれます。ゲーム機で動くものではなく、Webやスマホ・タブレットで動くゲームです。ゲーム会社が家庭用ゲーム機で動いていたものを移行するような大掛かりなものもありますが、一般的にWeb系エンジニアが担当するゲームは、スマホ専用のゲームが中心になります。

主なプログラミング言語やツール

Web系エンジニアが作成するアプリはWebを介することを前提としているため、使用するプログラミング言語もやや偏りが見られます。ここではWeb系エンジニアが覚えておきたいプログラミング言語を紹介します。

・HTML、CSS

HTMLとCSSはWebの表側を作るために必要になります。HTMLで文章構造を、CSSでデザインを組み立てるため、通常はセットで利用します。特別な開発環境も必要とせず、少し勉強すれば簡単に習得できるためHTMLとCSSは必要最低限の言語

大手企業のWebサイトなどではWebデザイナーがデザインをし、WebエンジニアがHTMLとCSSに置き換えた後、各種プログラムを埋め込むこともありますが、スマホアプリなど高度なデザインを必要としない場合はデザインもWeb系エンジニアの仕事の一部になります。

・PHP

PHPはHTMLに埋め込んで使用できることから、Webアプリケーションでよく利用される代表的なプログラム言語の1つです。PHPはサーバーサイドで動くプログラム言語のため、サーバーにPHPをインストールする必要がありますが、始めからインストールされたレンタルサーバーも多く手軽に利用できることもメリットの1つです。

・Java Script

Java ScriptもWebアプリケーションで利用されることの多いプログラム言語です。PHPと同じようにHTMLの中に埋め込んで使用できます。HTMLやCSSと同じように特別な開発環境を必要としないのが特徴。動的なWebサイト作成の基本でもあるため習得しておきたいプログラム言語です。

・Ruby

日本人のまつもとゆきひろ氏が開発したオブジェクト指向スプリクト言語で、Web系アプリの開発でよく利用されます。スクリプト言語なのでわかりやすく習得しやすいこと、Ruby on Railsを使うことで効率よく開発ができることから利用が広がっています。基本的なWebサイトの制作からショッピングサイト、SNS、スマホアプリ、AIの開発まで幅広く利用できるため、Web系エンジニアを目指すのであれば是非覚えておきたいプログラム言語です。

・Java

プログラム言語の代表とも言えるJavaは通常のプログラマーだけでなく、Web系エンジニアを目指す人も習得しておきたい言語です。Javaはデスクトップで動くアプリ、Webアプリやサービスだけでなく、スマホアプリの開発にも利用されています。特にスマホでもAndroid用アプリの多くはJavaで作られているため、アプリ開発をしたい人には必須です。

Web系エンジニアに必要なスキルや資格

Web系エンジニアに求められるスキルや、持っていると良い資格はあるのでしょうか。ここではスキルと資格をそれぞれ見ていきます。

Web系エンジニアに必要なスキル

Web系エンジニアの役割でも書いたとおり、Web系エンジニアの仕事範囲は多岐に渡ります。ヒアリングから開発、リリースまでマルチタスクをこなせる器用さと柔軟性は持っておきたい能力の1つです。また顧客を含め外部と接することも多いためコミュニケーション能力が高いことも求められます。

Web系はトレンドが早いため、常に情報をキャッチしようとする姿勢があることが望まれます。デザイン、技術、アプリの趣向だけでなく、セキュリティに対しての意識も必要です。

また、どのIT職種にも言えることですが、新しい言語の習得に励んだり、他のプログラムの研究をしたりと自主的に学ぶことができる人はWeb系エンジニアに向いています。

Web系エンジニアに必要な資格

ハードウェア系のエンジニアに比べ、資格よりも実績や経験が重視されるWeb系エンジニアには求められる資格はあまりありません。Web系エンジニアになりたい人は資格の勉強よりも実際に手を動かすことが必要です。

未経験者がWeb系エンジニアになりたい場合、1からプログラムが書けることよりも、書かれたプログラムの意味が理解できるか、カスタマイズができるかが重要になります。HTMLやCSS、Java Scriptはパソコンがあればすぐに実践ができますし、レンタルサーバーを利用すればPHPやRubyも試すことができます。

Web系エンジニアの実績がない人はプロモーション用のWebサイトを自分で作成することによって、何ができるか、どんなセンスがあるかを示すのがよいでしょう。アプリは開発環境を用意するのが大変ですが、iPhoneアプリにかかわりたいのであれば最低限Macが使いこなせなければスタートラインに立てません。AndroidアプリであればJavaをスクールで学んでおけば、他の未経験者よりも優位に立てます。

> 他のIT・エンジニア職種の解説へ

ネットワークエンジニアとは?ー快適な通信環境を作るネットワークのスペシャリスト

現代の生活になくてはならないものとなったインターネット。インターネットを含むコンピュータのネットワーク環境を設計・構築し、快適に運用できるよう監視するのがネットワークエンジニアです。最近ではセキュリティも重大な課題となり、再び高度な技術力を持つネットワークエンジニアの需要が高まっています。



ここではネットワークエンジニアの役割を始め、ネットワークエンジニアを目指す人に求められる資格やスキルを解説します。

ネットワークとは?

ネットワークには人や物のつながりという意味があります。IT業界でネットワークと言うと、主にコンピュータやサーバーなどの機器の接続のことを指します。例えば、個人で使っているコンピュータは単体ですが、インターネットというネットワークを利用することにより世界とつながることができます。

ネットワークの種類

ネットワークと一言で言っても接続形態により名称が異なります。ここではよく耳にするネットワークの種類を簡単に説明していきます。



・有線

ネットワークの接続形態の1つで、コンピュータとネットワーク機器など他の機器をLANケーブルで物理的に接続したものをさします。インターネット初期は、パソコンを電話やモデムなどにLANケーブルで繋ぐ有線が主流でした。物理的につなげるため簡単に接続できる反面、機器の設置場所がケーブルの長さに依存したり、ケーブルが増え配線が複雑化するなどの問題もあります。通常無線よりも接続状態が安定し、接続速度も早くなります。



・無線

有線に対し、ネットワークの接続に物理的なケーブルを使わない方法を無線といいます。物理的な制限がないので、無線の届く範囲内であれば好きな場所でコンピュータをインターネットにつなげます。有線に比べ自由度が高い反面、セキュリティ対策が必要なこと、無線が不安定で突然繋がらなくなったりするなどのトラブルが起きやすくなります。スマホやタブレットは基本無線でネットワークに接続します。



・LAN

Local Area Networkの頭文字を取ったものがLANで、各家庭や事業所、建物など比較的狭い範囲のネットワークのことを指します。各機器の接続方法により無線LANと有線LANがあります。ファイルやプリンターの共有などに使われます。



・WAN

World Area Netoworkの頭文字を取ったものをWANといい、複数のLANをつないで広域で構築したネットワークのことを指します。インターネットはWANの世界規模版とも言えます。



・インターネット

世界中のコンピュータやネットワークをつないだ巨大なグローバルネットワークのことをインターネットといいます。インターネット上で提供されるWebサービスやホームページなどの利用を指すこともあります。元々は米国国防省がカリフォルニア内にある4つの大学のコンピューターを接続したところから徐々に拡大し、現在の規模になりました。



・イントラネット

通常の生活ではあまり耳にする機会が少ないイントラネットという言葉ですが、ネットワークエンジニアを目指す人であれば覚えておきたいネットワークの形態の1つです。インターネットがグローバルに世界とつながっているのに対し、閉ざされた組織内のコンピュータだけを接続し構成されたネットワークをイントラネットと呼びます。組織内だけで共有される情報伝達、スケジュールや社内連絡簿の共有などに使われグループウェアなどと合わせ利用されることも多いです。外部から接続できないため、セキュリティが高くなります。



※LANとイントラネットの違い

イントラネットとLANは一見似たものに見えますが、イントラネットはインターネットの技術を利用していることが大きな違い。1つの建物内だけでなく複数の支店や事業所にまたがるイントラネットもあるため、まったく別のネットワーク形態です。LANによくある単純なファイルやプリンタを共有しているだけのものはイントラネットとは呼ばないため注意が必要です。

ネットワークエンジニアの役割とは?

ネットワークエンジニアはインフラエンジニアの中でもネットワークに特化したスペシャリストです。ネットワークエンジニアの役割は主にネットワークの設計・構築、運用・保守などのメンテナンスに分けることができます。それぞれの仕事内容を更に詳しく見ていきます。

ネットワーク設計

ネットワークエンジニアの第一の仕事はネットワークシステムの設計です。お客様の要望をヒアリングし、ネットワークの概要を設計後、必要な機器の選定、IPアドレスの設定、運用や保守の体制をどうするかなどを設計書に起こしていきます。



ネットワークに関する幅広い知識が求められるため、通常は経験のあるネットワークエンジニアが担当します。顧客との接触も増えるため、コミュニケーション能力も求められます。

ネットワーク構築

設計書に基づき実際のネットワークを構築していく作業です。ネットワーク機器は細かな設定が必要なため、大規模ネットワークの構築の際はオフィスで仮環境を作成しIPアドレスや詳細設定などを行いテスト後、客先でラックなどに設置、最終調整することが多いです。



ネットワーク機器はケーブル類が多く、運用・管理がしやすい配線ができることも求められる能力の1つ。LANケーブルを選ぶときも色や長さなどを配慮していないと無駄が多く管理しにくい配線になることもあり、現場でのネットワーク構築の経験が設計に生かされます。

運用・監視

通常ネットワーク環境は一度出来上がってしまうと頻繁に作り変えるものではありません。このため、ネットワークエンジニアが日々行う仕事の中心はネットワークの運用・監視がほとんどです。



ネットワークエンジニアのいちばん大切な役割、快適な通信環境を維持するためには監視作業は欠かせません。といっても一日中画面に張り付いているのではなく、通常はアラートを設定しておき、異常があれば確認と対応がすぐできる状態を保ちます。



運用・監視ではこれ以外に、セキュリティパッチの対応、定期的なネットワーク監視、顧客のリクエストに応じアカウントの追加や削除をするなどがあります。複数の会社を同時に担当することがほとんどです。



運用・監視を通してネットワーク機器の追加や更新をする必要はないか、ライセンスの追加購入や更新のタイミングなど必要であれば適宜顧客に提案していくのもネットワークエンジニアの役割です。

保守・トラブル対応

ネットワークエンジニアの大切な仕事の1つがトラブル対応です。通常の運用・監視以外に顧客からの連絡でトラブル対応することは多く、代表的なものがウィルス対応やネットワークが止まったというものです。



ネットワークが止まると会社の業務が止まってしまう場合がほとんどのため、速やかな対応が必要になります。遠隔で対応できない場合は、現場に入り原因の追求、問題解決を行います。同じような問題が頻発するようであれば、機器の追加購入なども含め対応策を顧客に提案することも必要です。



ウィルス対応も被害の拡大を防ぐための初期対応が重要になり、問題の発生したPCをネットワークから切り離すこと、ウィルスの除去、破損したデータの復旧などを速やかに行います。



最近では外部からの攻撃によるトラブル対応も多く、どこの会社も速やかな対応、解決のできる上級ネットワークエンジニアを求めています。

ネットワークエンジニアになるには?

以前に比べセキュリティ問題が増えている現在、ネットワークエンジニアの需要は高まっており、未経験者から育てていこうという会社も増えています。ここではネットワークエンジニアになるための方法をスキルや資格などから見ていきます。

ネットワークエンジニアに必要な資格

未経験者からネットワークエンジニアを育てようという会社が増えたとは言え、全く知識がない人を一から教育することは多くありません。資格を持っていれば最低限の知識があることを証明できるため、採用されるチャンスが増えます。



ネットワークエンジニアを目指す人が最初に取っておきたい資格は、IT資格の王道、基本情報技術者試験です。ITに関する基本的な知識を網羅するこの資格は、受験勉強を通して必要な知識を身につけることもできるため、未経験者には必須の資格とも言えます。



「基本」と名前がついていますが、IT関連機器の基本的な知識からプログラミングやデータベースまで幅広い内容をカバーしている試験です。基本情報技術者試験は国家資格で、年に2回試験が実施され合格率は平均20%台です。受験回数が少ないため、しっかり準備してチャレンジしたいです。半年から1年集中して勉強しても合格できない場合、独学で学ぶよりもスクールに通うことをおすすめします。



この他インフラエンジニアや他のIT職からの転職などステップアップを目指している場合は、国家資格のネットワークスペシャリスト試験応用情報技術者試験もあるとよいでしょう。



ネットワークエンジニアはベンダー資格で評価されることも多く、特にCisco技術者認定試験CCNA、CCNP取得者は有利になります。CCNAはネットワークエンジニアとしての基礎的な知識が問われ、指示を受けながら作業できるレベルを証明できます。CCNPはCCNAの上位資格。ネットワークエンジニアとして自主的に作業ができることを証明するものですがかなり難しいため、まずはCCNAの中から必要な資格を取り、さらなるステップアップを目指す人はCCNPを目標にすると良いでしょう。



参考)情報処理技術者試験についてはこちら

参考)シスコ技術者認定試験についてはこちら

ネットワークエンジニアに求められるスキル

資格やIT技術以外で、ネットワークエンジニアに求められるスキルの1つはコミュニケーション能力です。ネットワーク設計の段階だけでなく、運用・監視や保守などの場面で電話やメールを通して顧客と接触する機会も多く、コミュニケーション能力は問題解決能力の一部としても必要になります。



また、定期的な客先訪問が保守契約に入っている場合も多く、対面で話をする機会も少なくありません。ネットワークと向き合っているだけではなく、会話の中から問題を拾い出したり解決する能力があれば高い評価に繋がります。



IT業界の中でも最新機器や技術の進歩が激しいのがネットワーク。常に新しい情報を取り入れたり、資格を取り続けることのできる向上心のある人はやりがいを感じる仕事です。また、IT機器のベンダーの多くは海外なこともあり、最新情報は英語で配信される場合がほとんど。今後のネットワークエンジニアは英語ができることは大きな強みになるでしょう。

> 他のIT・エンジニア職種の解説へ

プログラマーとは?ープログラム言語を操るIT業界の職人

様々なサービスをIT化するために欠かせないプログラミング。プログラマーはプログラム言語を操りアプリケーションを作り上げるIT業界の職人です。どんなハードウェアもアプリケーションがなければ意味がないため、熟練のプログラマーの需要は常にあります。



このページでは常に人手不足が叫ばれるプログラマーについて、仕事内容や資格など詳しく見ていきます。

プログラマー(PG)とは?

プログラマーとは、プログラミング言語を用いシステムやソフトウェアを開発する仕事です。コンピュータが動くためにはOSを始めとしたソフトウェアが必要ですが、これらはすべてプログラマーが作成したもの。所属する会社により開発するプログラムの種類は多岐に渡ります。

プログラムの種類

プログラマーが開発するソフトウェアはいくつか種類があります。



OS(オペレーションシステム)

WindowsやOS X、LinuxやUNIXなど、サーバーやコンピュータが動くための基盤となるソフトウェアです。入力や画面表示、キーボードやマウスコントロールなど基本的な操作がプログラムされています。



ミドルウェア

OSの上に乗る大きな業務を管理するためのソフトウェア。OSとアプリケーションの中間に位置します。データベース管理システムやWebサーバーなどはミドルウェアになります。



アプリケーション

各業務を実行するためのソフトウェアで、通常プログラマーが開発するソフトウェアと言う場合はアプリケーションを指す場合がほとんどです。EXCELやWordなど市販のアプリケーションの他、各企業が自社の業務に合わせて開発する基幹システムがあり、一から作り上げる場合とカスタマイズして各企業にニーズに合わせる場合とがあります。



ゲーム

ゲームもアプリケーションの1つです。ゲームプログラミングは一般の業務用ソフトウェアとは性質が大きく異ることから開発もゲーム会社が行う場合がほとんどです。最近増加しているアプリやWebで利用するゲームの開発者をWebプログラマーと呼ぶこともあります。

PGとSEの違いについて

システム開発、プログラミングと聞くと頭に浮かぶのがシステムエンジニアという人も多いです。プログラマー(PG)とシステムエンジニア(SE)の共通点と異なる点を確認していきます。



システムエンジニアとは?で解説しましたが、システム開発の工程はいくつかに分かれています。システムの要件定義から始まり、基本設計、詳細設計、プログラミング、テストを経て完成しますが、システムエンジニアはすべての業務を俯瞰し、スケジュールや工程管理、製品管理を行います。



プログラマーは主にプログラミングを担当し、場合によっては作成したプログラムのテストをします。システムエンジニアが開発の工程全体に関わるマネージャー的存在であるのに対し、プログラミングに特化している専門家がプログラマーです。



システムエンジニアはプログラマーの仕事を兼任することもありますが、プログラマーはシステムエンジニアの全行程を代わりにすることはほとんどありません。キャリアパスで言えばプログラマーが経験を積みシステムの設計ができるようになり、システムエンジニアとして成長していくと考えればよいでしょう。ただし、すべてのプログラマーがシステムエンジニアになっていくわけではありません。開発が好きだからとシステムエンジニアにならずにプログラマーを続ける人もいます。



収入面で言えば、全体をまとめることのできるシステムエンジニアのほうが高収入の場合が多い場合がほとんどです。

主なプログラミング言語

プログラマーが扱うプログラミング言語は、開発の目的や開発環境により多種多様です。ここではよく利用されているプログラミング言語をいくつか取り上げて開設します。

利用頻度高いのプログラミング言語

C言語

C言語はシステム開発に使われるプログラミングの基本とも言える言語です。色々なプログラム言語の元になっているため覚えておくと他の言語を覚えるのが容易になる反面、簡単なタスクの実行に複雑なコーディングが必要だったりと欠点もあります。歴史のある言語ですが、今でも需要が高いため業務用システム開発を目指す人は習得しておきたいです。



C++

C++はC言語を元に拡張版として開発された言語です。ゲーム開発でも用いられることがありますが、難しい言語のため初心者向きではありません。C言語との互換性があることが大きな特徴。現在は規模の大きな業務システムや公共システムの開発などに利用されることが多いです。



Phython

Phythonは海外でよく使われる初心者にも導入しやすい開発言語の1つ。デスクトップアプリやWebアプリケーションの構築にも向いています。少ないコードでプログラムが書けるためコードが読みやすく、開発効率が高いのが特徴。AI、科学技術、教育の分野で実績があり、将来性が高い言語の1つです。



Swift

SwiftはAppleが開発したiOS開発向けのプログラム言語です。iPhoneやiPadのアプリ、Mac向けアプリの開発に利用します。コーディングが簡単で初心者にも習得しやすい開発言語の1つですが、開発に使用するXcodeが動かせるMacパソコンが必要。スマホアプリの開発をしたい人におすすめの言語です。



Java

Javaは世界で最も開発に使用されている言語の1つです。人気の理由はJavaで作成したプログラムが特定のOSに依存しない汎用性の高さにあります。習得したい言語のランキングでも常に上位に入り、Android用アプリやデスクトップアプリ、ゲームだけでなく企業のバックエンドシステムの構築にも利用されます。オブジェクト指向が特徴で、グループで開発をするときの作業効率がよい反面、作業環境の設定などコーディング以外の作業が煩雑なデメリットがあります。



Ruby

Rubyは日本人のまつもとゆきひろ氏が開発したオブジェクト指向言語です。Ruby on RailsというWebアプリケーションフレームワークを使いWebシステムを効率的に開発できるのが特徴。開発工程が短縮できることからコストが削減できます。また開発者が日本人なので日本語の資料や参考書が多くあり、特に日本のスタートアップ企業で利用されています。Webベースの業務システムやWebサイトの開発をしたい人は覚えておきたい言語です。



PHP

PHPは動的にWebページが作成できるスクリプト型の言語です。他の言語に比べてわかりやすくシンプルな文法のため、初心者が習得しやすい言語の1つ。HTMLに埋め込んで使用できることから、WordPressを含めたWebアプリケーションの開発に利用されます。またデータベースとの連携が得意な点も特徴です。



・Java Script

Java Scriptは動的なWebページを作るための開発言語です。Javaと名前が似ていますが関連はありません。HTML、CSSとともにプラウザが翻訳できる言語であること、開発環境が簡単に用意できることが特徴です。Node.jsなどJava Scriptの技術を応用した進化系のテクノロジーの登場でさらに利用範囲が広がっています。

Webに関わるプログラミング言語

上記以外にHTMLやCSSという名前を聞いたことがある人は多いと思います。これらもプログラム言語ですが、利用方法が大きく異なります。HTMLはマークアップ言語といい、文章の構造を伝えるための言語。HTMLとセットで利用されるCSSはレイアウトをデザインするためのスタイルシートです。この2つは何をどのように表示させるかだけで、データのやり取りをするにはPHPやJava Scriptなど他の言語と組み合わせなければいけません。



この2つの言語は開発環境も簡単に用意でき、結果がすぐに見えることから初心者向けの簡単な言語である反面、これだけではシステムを動かすことができません。プログラマーが使用できることから、この2つができてもプログラマーに転職することは難しいです。少なくとも利用頻度の高い言語に上げたプログラム言語のうち1つができることがプログラマー転職の条件と言えます。

今後注目のプログラミング言語

プログラマーの能力をテストし外資系ITの転職の際に必須とも言われているサービス、HackerRankのレポートでは今後注目されるプログラミング言語を3つ挙げています。Googleの開発したGo公式Android開発言語として採用されたKotlin、上記利用頻度の高い言語にも上げたPhythonです。



Goはシンプルで読みやすく、拡張性が高いことなどに加えAndroid、iOSのどちらにも対応していることが強み。Webサーバ構築やマルチプラットフォーム向けWebアプリケーションなどに使用され、今後PHPの代わりになっていくことが期待されています。



Kotlin(コトリン)は2009年にできたばかりの新しい言語。Javaとの互換性がありシンプルなコードにわかりやすい文法で初心者にも習得しやすいこともあり、Javaを習得した人が次に覚えたい言語です。



以前から海外を中心に人気の高いPhython(パイソン)は、今後AIやディープラーニング分野での開発で欠かせない言語として注目されています。比較的初心者にもわかりやすいシンプルな文法なので、キャリアアップを望む人におすすめです。



HackerRankについてはこちら

プログラマーに求められるスキルや資格

最後にプログラマーに求められるスキルや資格を見ていきます。人手不足のため未経験者の求人も増えているプログラマーになるには何が必要なのでしょうか。

プログラマーに求められるスキル

プログラミングに必要とされるスキルの1つ目はプログラミング能力です。HTMLやCSSではなく、システム開発に使える言語を最低限1つ、できれば複数理解していることが望まれます。始めは1からコーディングができなくとも既存プログラムを読み解け、カスタマイズや修正ができれば次へのステップに繋がります。



次にデータベースに関する知識です。ほとんどのシステムはデータベースが必要となります。このためデータベースの基本的な知識、特にSQLと呼ばれるデータベース言語を理解していれば開発できるシステムの幅が広がります。プログラム言語と並行して勉強しておきたい知識の1つです。



最後はコミュニケーション能力です。プログラミングは一人で黙々とする作業というイメージを持っている人もいますが、実際はチームで開発することが多く他のプログラマーやシステムエンジニアとの連携は必須。また、経験を積んでくれば顧客から直接ヒアリングや操作説明をすることもあります。コミュニケーション能力があればよりスムーズな開発ができ、顧客や製品の満足度も高くなります。

プログラマーが持っていたい資格

プログラマーになるために絶対必要な資格というものはありません。しかし、未経験者が採用されるには資格は求められるスキルを示せる便利なツールになります。



基本情報技術者試験はITに関する最低限の知識があることを証明できる便利な資格です。プログラム言語やデータベースに関する知識も問われますので、資格取得のための勉強を通して必要なスキルを身につけることができます。プログラム言語はC、Java、Phython、アセンブラ言語(CASLⅡ)が選択できます。



受験機会が年に2回しかないこと、未経験者が独学で身につけるのは難しいので、スクールを上手く利用して短期間で合格を狙いたいです。


基本情報技術者試験について詳しくはこちら




この他ベンダーの認定資格もありますが、転職の際に有利になることはあっても必須ではありません。プログラマーはどれだけの案件を開発したかの実績が問われることのほうが多いため、自分の関わった案件を記録しておくことは大切です。



システムエンジニアへのキャリアアップを考えている場合はデータベーススペシャリスト試験やプロジェクトマネージャー試験、システムアーキテクト試験などの国家資格の取得を目指すとよいでしょう。

> 他のIT・エンジニア職種の解説へ

サーバーエンジニアとは?ーサーバ周りのプロフェッショナル

企業で使用するシステムや、社会で便利に生活するための公共的なシステム、スマホアプリなどIT化の進んだ現代社会はサーバーがなければ動かないと言っても過言ではありません。サーバーはプログラムを稼働させたりバックアップをしたりと多様な機能を持ちながら、ネットワークや各端末をつなぎます。



このサーバーを中心とした機器のプロフェッショナルがサーバーエンジニアです。ここでは今後様々なサービスがネットやWebにつながっていく中、ますます重要な役割を求められるサーバーエンジニアの仕事とサーバーエンジニアになるための方法について見ていきます。

サーバーエンジニアとは?

サーバーやネットワークなどITインフラの構築や運用・保守を行うエンジニアをインフラエンジニアと呼びます。中でもよりサーバーに精通したエンジニアをサーバーエンジニア、ネットワークに精通したエンジニアをネットワークエンジニアといいます。



実際の現場ではここからがサーバーエンジニアの仕事で、ここから先はネットワークエンジニアに任せる、といった明確な区分けはありません。特にサーバーエンジニアはサーバーを中心に接続される機器全般を見ることが多く、よりインフラエンジニアとしての要素が強いといえます。所属する会社の規模により、仕事範囲が大きく変わる傾向もあります。



サーバーに接続される機器はネットワーク機器、クライアント端末(PC、タブレット、POSなども)、バックアップ装置やプリンターなど多岐にわたるため、ITの広い知識があればより活躍の幅が広がります。

サーバーエンジニアの役割とは?

サーバーエンジニアの役割とは主にサーバーの設計・構築と運用・保守の2つに分けることができます。ここではそれぞれの役割を更に詳しく見ていきます。

サーバーの種類について

サーバーエンジニアの具体的な役割に入る前にサーバーの種類を確認します。サーバーと一言で言っても、例えば一般的なWEBサービスには以下のようなサーバーが不可欠なものになってきます。

・WWWサーバー(Webサーバー)

Webページを表示するためのHTMLやCSS、画像ファイルなどを収めるために使われるサーバー。Webサービスには不可欠です。

・メールサーバー

メールの送受信に使われるサーバーで、通常送信用サーバーと受信用サーバーに分かれています。

・ファイルサーバー

ファイルを保存するためのサーバー。PCに保存したファイルはそのPCでしか見ることができませんが、ファイルサーバーに保存すれば、他の人とファイルを共有しやすくなります。

・データベースサーバー

Webサービスには顧客情報や商品情報と言ったデータベースを使うことが多く、これらのデータを管理・保存するためのサーバーです。

この他ファイル転送のためのFTPサーバー、セキュリティに使用するSSHサーバー、IPアドレスとドメイン管理のためのDNSサーバーなどがあります。

サーバーの設計・構築

サーバーエンジニアが行うサーバーの設計は、必要な要件からそのシステムがスムースに動くための機器の選定から始まります。少人数が使うファイルサーバーであればハイスペックは必要ない、データセンターならばハイスペックかつバックアップの仕組みはどうすればいいか、などサーバー機器だけでなくバックアップの装置など周辺機器、搭載するOSやソフトウェアも考慮します。



機器の選定ができれば、構築に入ります。構築は組み立て、ラックへの配置、周辺機器との接続など物理的なものから、OSの基本設定、ネットワークやバックアップソフトの設定と言ったソフトウェアの設定も含まれます。通常社内で仮想的に環境を構築し設定を済ませてから、現場で最終調整をすることが多いです。



物理的な構築ではサーバーも意外と重く、配線や運搬など力仕事もあることから、IT業種の中では頭脳だけでなく体力も必要なタフな仕事の1つとも言えます。

サーバーの運用・保守

サーバーの運用・保守はそのサーバーの役割によって変わりますが、主な目的はサーバーが遅延や問題なく円滑に運用されるためのサポートになります。定期的に行う保守業務と不定期に発生するトラブル対応の大きく2つに分けられます。サーバーの運用・保守の仕事は比較的マニュアル化しやすいこともあり、新人や未経験者が最初に担当する仕事になることも多いです。



定期的に行う保守業務には、セキュリティパッチの更新などOSのメンテナンス、バックアップシステムがきちんと稼働しているかの確認などで、比較的マニュアルに沿ったルーティンワークです。



不定期に発生するトラブルの代表はウイルス対応や障害対応などのトラブルシューティングです。最近では外部からの攻撃に対応しなくてはいけないこともあり、単純なマニュアルだけの対応では済まないケースも多くあります。トラブルの頻度によりセキュリティ対策の見直しなどが必要になることもあります。

サーバーエンジニアになるには?

IT業界の深刻な人手不足で、未経験者や異業種からサーバーエンジニアを目指す人やその採用も増えてきています。一般職種に比べると高収入も期待できるサーバーエンジニア。ここでは求められるスキルと資格を見ていきます。

サーバーエンジニアに求められるスキル

サーバーエンジニアに求められるスキルは、なんと言ってもOSに関する知識です。OSと言ってもWindows系から始まり、OS X、Linux、UNIXとあり、どれに対しても広く深い知識が望まれます。これらは単純に本を読めば身につくというものでなく、資料やマニュアルを勉強しながら実際にサーバーに触れ、設定や運用を通してより深く理解が深まります。座学と実務を通して得た知識を元に資格を取ることで、よりサーバーエンジニアとしての経験値が上がっていくと考えて良いでしょう。



また、サーバーはあくまでもインフラ。利用目的により必要な設定や知識が異なります。例えばデータベースサーバーであればデータベースの知識が必要ですし、バックアップサーバーならばバックアップ装置、バックアップ用ソフトウェアなどに詳しくなければ機器の選定や設定をすることができません。



サーバーエンジニアは幅広い知識が必要ですが、一度にすべて覚えることはできません。案件ごとに必要になる知識を自分の物にしていく好奇心と貪欲さは欲しいところ。また、サーバーを始めとした機器やソフトウェアは海外メーカーの場合も多く、オリジナル資料を読み解くための英語力があるとより深い知識を得ることができ有利です。

サーバーエンジニアになるための資格

サーバーエンジニアに必要な資格は多岐にわたりますが、未経験者であれば必ず取っておきたいのが基本情報技術者試験です。これはどのIT職種でも持っていたい資格なので、他業種から漠然とIT業種への転職を考えている人は最初に取得を目指したいです。基本情報技術者試験があれば、IT業界に必要な最低限の知識があることが証明できます。



その他国家資格であればネットワークスペシャリスト試験、データベーススペシャリスト試験などもあれば望ましいですが、実務経験のない未経験者の合格はかなり難しく、運用・監視などの仕事でサーバーエンジニアとして採用されてから、少しづつ勉強して取得を目指します。



参考)情報処理技術者試験についてはこちら


数多くあるベンダー資格の中で、最初に取得したいのはOSに関する資格です。Linux技術者認定試験やMicrosoftのMCPの2つで、どちらも初級から上級まで複数のレベルがあるため、経験を積みながら上位試験合格を目指します。



OS以外で持っていたいのがネットワーク系資格で、CiscoのCCNA、CCNPがあります。CCNAの下にエントリーレベルの資格もありますが、試験料が高い割に評価が低いため、ネットワーク設定の経験を積んでからCCNAの中から必要な資格を合格、さらに上位のCCNPを目指すのがよいです。



サーバーエンジニアを始めIT職種が資格取得をするもう1つの理由は、転職や高収入などより良い待遇が目指せることにあります。会社によっては資格取得に助成金を出したり、報奨金を出すこともあります。給与自体が上がる場合もあります。もちろん転職の際好条件を引き出すこともできるので、ステップアップを目指す人はサーバーエンジニアになってからも積極的に資格取得を心がけると良いです。

> 他のIT・エンジニア職種の解説へ

SE(システムエンジニア)とは?ーシステム開発プロジェクトのリーダー

システムエンジニア(System Engineer:SE)の仕事を一言でいうと、システム開発プロジェクトをまとめるリーダー、マネージャー的存在です。顧客とプログラマーの間でシステム設計や構築、スケジュール管理などを行いシステム開発の重要な仕事を担います。



ここではシステムエンジニア(SE)の仕事内容と、転職の際に必要になる資格などを紹介します。

SEとは

IT職種として知名度の高いシステムエンジニア(SE)ですが、IT業界以外で働いている人は何をする仕事か具体的にわからないという声もあります。



システムの開発にはたくさんのスタッフが必要になります。顧客からの要望をヒアリングし、要件としてまとめる人。それを実際のプログラムに作り上げる人。出来上がったらテストをする要員も必要です。



システムエンジニアとは、これらのメンバーをまとめ上げ、システム開発がスケジュール通りに進み、顧客の求める製品を作り上げていくためのまとめ役です。プロジェクトチームのリーダーと置き換えても良いかもしれません。



小規模なチームではSE自らがプログラムを書くこともありますが、それよりも重要なのが品質管理とスケジュール管理。プロジェクト全体を広い視野で見渡せ、個々のプログラマーや顧客とコミュニケーションをうまく取れる能力が求められます。

システムエンジニアの仕事内容について

ここではシステムエンジニアの仕事をシステム開発の流れに沿って見ていきます。

1. 要件分析・定義

システム開発の第一段階は顧客へのヒアリングから始まります。単純に顧客が作りたいシステムを聞くのではなく、どんな問題があり何を解決したいのかを上手く聞き出し、分析、必要要件をまとめていくことができるのが良いシステムエンジニア。



この段階でどういったハードウェアが必要になるか、どのOSやデータベースを使用するかといった選定も行い見積もりを作成します。予算やスケジュールなども確認し、必要であれば交渉や調整します。

2. 基本設計

顧客からヒアリングした情報を元に、どういったシステムを構築していくかの基本設計です。システム全体の大枠を設計します。例えばどんな画面が必要になるのか、どんな情報をデータベースにしていくか、出力が必要な情報は何かといったことを具体的に設計していきます。

3. 詳細設計

基本設計が大枠だったのに対し、個々のプログラムの内部処理を具体的に設計していく作業が詳細設計です。設計書を作成し、これを見ればプログラマーがプログラミング作業をできると言ったところまで詳細をまとめます。

4. プログラミング

詳細設計で作られた設計書を元に、プログラマーがプログラミングをします。SEはプログラマーがスケジュール通りにプログラミングが進んでいるか、問題がないかなど進捗確認をします。

5. テスト

プログラミングが完了したらテストを行います。各項目が仕様どおりの設計になっているか、画面遷移に問題がないか、など個別のプログラムだけでなくそれぞれのプログラムの連携も確認していきます。問題があればプログラマーに修正を依頼します。



個々のプログラムのテストはプログラマーが行う場合もありますが、単純なテストの場合テスト要員を使うこともあります。また結合テストなど最終的な確認のテストはシステムエンジニアが行ったり、品質管理担当者が場合もあります。



出力テストなどはプリンターの仕様によって結果が変わってしまうこともあるため、ハードウェアなど実際の稼働環境と同じ状態で行います。

6. 稼働、運用・保守

システム全体のテストが完了したら顧客へ納品しますが、これで終わりではありません。通常は納品後もエラーやバグが見つかる場合や、新しいシステムに慣れずサポートが必要になる場合がほとんどだからです。



運用面ではサポート専門の部隊が対応することもありますが、システム自体に関わるトラブルの場合はシステムエンジニアが直接対応します。プログラマーに再度修正を依頼をするか、状況によりSE自らがプログラムの修正を行う場合もあります。

客先常駐エンジニア(SES)とは?

システムエンジニアの働き方の1つにSES(システムエンジニアリングサービス)と呼ばれる客先常駐という形態があります。通常システムエンジニアの勤務地は自分の勤める会社内ですが、顧客の会社内に席を置きシステム開発をすることを客先常駐といいます。プロジェクト単位や期間契約で客先に常駐し、出張先のチームのメンバーとして働く他、フリーランスや派遣社員などのSEが期間契約で働く場合も客先常駐の1つとしてみなされます。



客先常駐にはメリットとデメリットがありますので、順番に見ていきます。

客先常駐エンジニアのメリット

客先常駐のメリットとして一番に挙げられることは人脈の構築です。自社内だけで開発をしているよりも多くの人と知り合うことができ、場合によっては転職の可能性にも繋がります。また、自社では使わないようなツールや言語、システムにふれるチャンスもあります。うまく関わることができればスキルアップになります。



また、比較的経験の浅いエンジニアや、未経験の人でも採用されやすいため、他業種からの転職者が入りやすいポストです。

客先常駐のデメリット

デメリットの1つは給料。一般的に客先常駐エンジニアは通常のシステムエンジニアに比べ給料が低い傾向にあります。経験の浅いエンジニアであればよいですが、経験の長いSEには客先常駐はあまりメリットがありません。



客先常駐SEの給料が安い理由の1つは、短期間でいなくなってしまうため常駐先がコアな仕事ではなく誰でもできる仕事を依頼することが多いから。マニュアルに沿ってできる運用保守などが中心で、常駐先が機密保持を意識し核心部分の開発をさせてくれないケースもあります。



給料が安いもう1つの理由は雇用形態が派遣に近いため。時間給の場合は残業をさせてもらえず給与が安くなり、月額固定の場合もエントリーレベルのSEは外国人労働者との価格競争で安く設定されてしまうことが多いからです。



また、プロジェクト単位や短期間で職場を移動することもあり、連続性のあるキャリアが作りにくいこともデメリットに挙げられます。新しいスキルやツールに出会えるということを裏返すと、1つのスキルを極めにくいということもあります。スキルを極めることが高収入や高待遇につながるシステムエンジニアに取っては大きなデメリットと言えます。



給料やスキル以外のデメリットは、給料の項目でも書きましたが現場でお客さん状態になってしまい、作業内容を正しく伝えられなかったり、重要な仕事を任せてもらえないことがあるということ。コミュニケーション能力の高い人には問題になりにくいですが、そうでないと居心地が悪いまま常駐期間が終わってしまったということになりかねません。



客先常駐SEのデメリットをカバーするには、募集条件で短期間で常駐先を転々とするようなものではなく、ある程度じっくりと1つの仕事に取り組めそうな仕事を選ぶこと。また、経験が足りないため長期間常駐の仕事を選べない場合は経験を積むまでの数年と割り切り、その後別の会社に転職を目指すのが良いでしょう。また高収入と良いキャリアを掴むためにも客先常駐SEに限りませんが、システムエンジニアは使える資格を取り続けることが大切です。

SEになるには?

IT業界の深刻な人手不足もあり、未経験からシステムエンジニアになる人も増えてきています。SEになるには何が必要でしょうか。求められるスキルと資格について見ていきます。

システムエンジニアに求められるスキル

システム開発のプロジェクトリーダー的存在であるシステムエンジニア。仕事内容から求められるスキルが見えてきます。第一に、チームをまとめるためのコミュニケーション能力。顧客との接触も多いこともあり、必須のスキルと言えます。



次に、顧客のヒアリングから問題解決を導き出すための推察力や論理的思考、問題解決能力。また打ち合わせのたびに作成する報告書、仕様書の作成など何かと書類作成が多いことからも文章作成能力があることが望まれます。



プロジェクト全体を俯瞰してみることのできるプロジェクト管理能力、開発がスケジュール通り動いているかを常に意識できるスケジュール管理能力も必要です。



システムエンジニアに限りませんが、日進月歩のIT業界、常に情報収集をしスキルアップや資格取得のための勉強ができる人は高収入も望めます。また、担当したプロジェクトに必要や業務内容が把握できるための業務スキルもあれば、より顧客の臨むシステムが作れます。



最近では情報収集以外にも、外国人労働者や海外へのアウトソーシングをすることもあり、英語力も必要となる場合が多くなりました。より上級のSEを目指すならば今後は英語ができることも必要なスキルとなっていきます。

システムエンジニアに必要な資格

最後にSEに必要な資格です。未経験からの転職や、新卒者が採用後突然システムエンジニアになることはありません。通常プログラミングができることは必要最低条件。一般的にシステムエンジニアを志す人はまずはプログラマーになることを目指します。



未経験者や新卒者がプログラマーや将来的にSEを目指す場合持っておきたい資格の第一は情報技術者試験です。情報技術者試験は国家資格で、基本情報技術者試験と応用情報技術者試験の2段階に分かれています。年に2回しか試験が実施されないこと、どちらも合格率が低いことから難易度の高い試験ですが、未経験者であれば基本情報技術者試験に合格していないと面接までたどり着けない可能性もあります。



基本情報技術者試験は毎年の合格率は20%台(平成30年度で25.6%)。合格率10%台の応用情報技術者試験に比べ、頑張れば合格の目指せる試験です。半年から1年真剣に勉強すれば独学でも合格の可能性はありますが、IT業種未経験の場合スクールを利用したほうが確実です。最近では社会人が受けやすい講座も増えていますので、上手く利用したいです。



この他、すでにシステムエンジニアであったりプログラマーがSEへのステップアップを目指すならばデータベーススペシャリスト試験も持っていたい資格です。更に上級を目指す人はプロジェクトマネージャー試験やシステムアーキテクト試験も将来的に取得すると良いでしょう。



情報処理技術者試験について詳しくはこちら



システムエンジニアに必要な資格には、国家資格の他ベンダー資格があります。ベンダー資格は実際に操作経験がないと合格が難しいことも多いため、未経験者がシステムエンジニアになるための必須資格ではあく、プログラマーとして活躍しながらSEにステップアップする過程で取得していきたいものが多くあります。

データベースであればOracleのオラクルマスター、CiscoのCCNAやCCNPなどもあれば業務だけでなく転職の際も有利になります。

> 他のIT・エンジニア職種の解説へ