IT・エンジニア職種辞典IT・エンジニア職種辞典このサイトはIT系企業に就職したい!未経験からでもエンジニアになりたい!という方向けに、IT系エンジニア関連の職種を解説するサイトです。未分類フリーランスエンジニアとはー自由な働き方が選べる独立型エンジニア政府が号令をかける働き方改革の影響もあり、場所や時間の自由があるフリーランスに注目が集まっています。IT業界も例外ではなく、独立をしフリーランスエンジニアになりたいと考える人も増えてきました。ここでは、フリーランスエンジニアとは何か、働き方はどうか、フリーランスエンジニアに向いている人、会社員エンジニアとの違い、メリットやデメリットなどを解説します。フリーランスエンジニアとは何かフリーランスエンジニアとは、1つの会社に所属せず、独立してエンジニアをする働き方です。会社勤めがないので、朝ゆっくりスタートし、満員電車に乗ることなく好きな場所で仕事ができる夢のような働き方とあこがれを持っているエンジニアもいるようです。実際は会社を介さない分、自分で案件を確保しなければ収入がないといった面もありメリットもデメリットもあります。エンジニアの働き方の種類と特徴を改めて確認します。エンジニアの雇用形態についてITエンジニアはどの分野であってもスキルや能力が重視される仕事です。このため、正社員だけでなく、多様な働き方が選択しやすい職業です。ここでは改めて、代表的なエンジニアの働き方を見ていきます。・会社員エンジニア一般的な働き方で、会社に所属し基本は与えられた案件をこなしていきます。会社員エンジニアと言った場合、通常、自社のシステムを管理する自社内在席型、SIerや開発会社のように他社のシステムの案件を行うが席は自社内にある(必要に応じて現地訪問)、データセンター常駐などを指すことがほとんどで、派遣エンジニアは別の形態と考えます。・派遣エンジニア派遣会社や、請負型IT企業に所属し、案件ごとに顧客に常駐する働き方です。派遣会社の場合、案件ごとの契約になり、案件がない場合は収入がありません。請負型の場合、会社との契約形態により異なりますが仕事が無いときの給与はないか減額される場合がほとんど。スキルよりもマンパワーを求められるケースが多いため、収入は低い傾向がありますが経験が少なくても採用されやすいメリットがあります。・フリーランスエンジニア会社に所属せず、自分で案件を得て仕事をし、納品・請求まで行う独立型のITエンジニアを指します。能力が重視されるIT系職種では、フリーランスという言葉が広まる以前から独立して仕事をする人も少なくありませんでした。現在大手となったIT企業にも、元々は独立してフリーランスや数名のベンチャー企業から始まっている会社もたくさんあります。現在はフリーランスエンジニアと呼ばれることが多く、自分で仕事を選べること、時間が比較的自由に使えるということで改めて注目を集めています。※フリーランスエンジニアと派遣エンジニア一見すると似たような働き方に見えるフリーランスエンジニアと派遣エンジニア。どちらも特定の仕事や会社に縛られず仕事の自由があるように見えますが、一番の違いは求められる能力やスキルです。派遣エンジニアは人手が足りない場合に求められることが多く、単純作業やルーティンワークなどが中心。開発案件であれば大型案件の一部だけ担当したり、インフラエンジニアであれば保守要員と、派遣エンジニアは指示された仕事をこなす人が求められます。これに対し、フリーランスエンジニアは自分で案件を選び、ヒアリングから納品まですべての工程をこなせる能力が必要になり、技術力に加えマネジメント能力や交渉力など、自分で動いて仕事ができなければなりません。このため、派遣エンジニアは経験が浅い人や未経験者の求人もありますが、十分な経験とスキルがなければフリーランスエンジニアとして成功することは難しいでしょう。フリーランスエンジニアと会社員エンジニアフリーランスエンジニアと会社員エンジニアは、会社に所属するかどうかだけではなく仕事への向き合い方をはじめ大きな違いがあります。どちらの働き方にもメリットやデメリットがありますので、フリーランスエンジニアのメリット・デメリットを中心に違いを確認していきます。フリーランスエンジニアのメリットフリーランスエンジニアのメリットは以下のようなものがあります。自分で案件を選べる自分で働く時間や場所が選べる契約単位で仕事ができる経費など会計面での優遇が利用できるようになるフリーランスの最大のメリットは、自分で仕事を選べることです。会社員エンジニアは上から与えられた仕事をするのが基本なので、やりたくない案件や作業を断るのは難しいです。社内システムの構築がしたくて入社したのに、実際は保守で毎日ウイルス対策をしていた、という社内SEの声もあります。フリーランスエンジニアであれば、苦手な作業はあっても案件自体は自分で選ぶことができるため、ストレスをへらすことができます。常駐型の案件でなければ好きな場所で好きな時間に仕事ができます。常駐型であっても、契約時に交渉すれば出勤時間を遅らせるなど朝の通勤ラッシュ時間を避けられる可能性はあります。夜のほうが集中して作業ができる、というような人にはフリーランスエンジニアの働き方はピッタリです。契約単位で仕事ができることから、集中的に仕事をした後、一定期間仕事をしないなどのスケジュール調整も自分でできることから、会社員時代にはできなかった長期休暇を取ることも不可能ではありません。常駐型でなければ、旅行先で仕事を継続することも難しくないでしょう。フリーランスエンジニアに限らず独立して働く人の大きなメリットは経費が自由に使えること。仕事に関係のあるものは税控除できることも多いので、早めに税理士などから情報を得てフリーランスのメリットを最大限に利用したいです。フリーランスエンジニアのデメリットフリーランスエンジニアは大きなメリットがある反面、デメリットも少なくありません。以下、働き方を中心としたフリーランスエンジニアのデメリットです。収入が不安定になるお金のために望まない仕事をしなければいけないこともある仕事と私生活を分けにくくなるお金の管理を自分でしなければならない社会的信用を得にくい教育環境を得るのが難しい福利厚生がないフリーランスエンジニアは自分で仕事を選べる反面、仕事がない時は収入がなく、案件によって上下することもしばしば。このため、収入が不安定になりがちです。一定額の給与が保証された会社員エンジニアと比べると収入面での不安は残ります。このため、お金のためにと結局は好きでない仕事をしなければならないこともあるでしょう。収入を取るか仕事の満足感を取るかの悩みは尽きないです。時間と働く場所の自由があるということは、良い面も悪い面もあります。最近はセキュリティの観念から会社員エンジニアが仕事を家に持ち帰ることを制限されることも多く、会社外では仕事を忘れることもできるでしょう。フリーランスエンジニアは時間の制限がないため、気がついたらずっと仕事をしていて何日も休みを取っていない、というケースもあります。このため自己管理がうまくできずプライベートがなくなってしまった、という人もいます。経費の裁量が増える反面、お金の管理はすべて自分でしなくてはいけないのがフリーランスエンジニア。使ったお金は管理できても、いままで会社がしてくれていた請求がうまくできない、という人も少なくありません。請求処理が苦手な人はフリーランスエージェントなどを上手く活用するなど対策が必要になります。独立した人や自営業者が抱える悩みの1つ、社会的信用を得にくいという問題はフリーランスエンジニアも同じです。お金を借りる予定がなくても、単純にクレジットカードが作れなかったり、アパートが借りれなかったという話もあります。社会的信用が必要なものはフリーランスになる前に済ませておくことが賢明です。意外なデメリットとしては、教育環境の喪失です。IT企業はベンダーのライセンス契約などの関係もあり、資格取得を推進する会社が少なくありません。教材や先輩からの指導だけでなく、高額な受験料を負担してくれたり、資格取得後に報奨金や給与がアップする場合も多いです。フリーランスエンジニアになると、資格取得にかかる費用は経費にできるとしても、それが収入につながることはあまりなく、モチベーションも低下しがち。気がついたら最新技術を得る姿勢がなくなっていた、ということにならないよう気をつけたいです。デメリットの最後は福利厚生です。会社員エンジニアであれば当然のように利用できていた福利厚生が使えなくなるのが意外と痛いものです。健康保険や年金の積立は個人ですると意外と高く、フリーランスエンジニアになった後にありがたみを感じる人もいるでしょう。フリーランスエンジニアに向いている人フリーランスエンジニアに向いている人を考えてく中で真っ先にあがるのか、未経験者や経験が浅い人。フリーランスエンジニアに求められるものは業務を遂行できるスキルと管理能力。向く向かない以前に、経験の少ない人は仕事を得ることが難しいと思ったほうが良いでしょう。単純に業界経験の長さで成功するとは言えませんが、経験量は最大の力になることは頭に入れておいたほうが良いでしょう。次にマルチタスク能力です。フリーランスエンジニアに限らず独立するということは、いままで会社がしてくれていた雑多な仕事もすべて自分でしなければなりません。開発だけがしたいからとフリーランスエンジニアになっても、案件の獲得、ヒアリング、スケジュール管理、開発、テスト、納品、請求、とすべてを自分でしなければなりません。請求ができなければ収入になりません。フリーランスエージェントを利用してもカバーしきれない部分は自分で管理できるマルチタスク能力がある人はフリーランスエンジニアとして成功できる可能性が高くなります。スケジュール管理も含めた自己管理能力も書かせません。納品スケジュールだけでなく、自分のプライベートの時間を確保できるか、体調管理をしながら仕事をできるかなど総合的な管理能力がないと仕事に追われるだけで体を壊してしまう場合もあります。プログラミングは楽しいからいつまでもやっていたい、という人も自分の体調を冷静に見れる目は持っていたいです。フリーランスエージェントについて解説の中で何度か出てきたフリーランスエージェント。うまく利用できればフリーランスエンジニアとして成功できる可能性が高くなります。具体的にフリーランスエージェントでできること、メリットはなにがあるのでしょうか。フリーランスエージェントがしてくれることは、主に案件の開拓、紹介といった営業部分と、請求に関する部分です。どちらもフリーランスエージェントが成功するために欠かせない業務ですが、技術職として働いてきた人が苦手とする分野。ここを代行してくれるのはありがたいです。フリーランスエージェントはこういった業務を代行することで手数料を得ています。自動的に代行してくれることを考えれば当然のこと。営業と請求に使う時間を手数料で払うと思えば安いものです。中には法外な手数料を徴収しているような悪質なエージェントも存在します。大手であれば案件も多く抱えており、比較的信頼性は高くなります。レビューなどを参考に、よいフリーランスエージェントを見つけ複数登録しておくのがおすすめです。it-futureWeb系エンジニアとは?-WebアプリケーションのスペシャリストIT職種の中でも比較的新しい分類に入るWeb系エンジニア。漠然とWebの仕事をするのだろうとイメージしている人は多いですが、実際は何をしているのか説明できない人も少なくありません。Web系エンジニアはエンジニアとついていますが、プログラマーに近い役割です。ここではWebサービスの拡大やスマホ・タブレットの普及で需要の高まったWeb系エンジニアについて、仕事内容やスキル、必要な資格などを見ていきます。Web系エンジニアとは?Web系エンジニアはWebサイトのシステムや、Webベースのアプリケーションを制作するエンジニアです。プログラマーの中でもWeb系に特化しているスペシャリストを指します。プログラムにはOS、ミドルウェア、アプリケーション、ゲームと種類がありますが、この中でも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、CSSHTMLとCSSはWebの表側を作るために必要になります。HTMLで文章構造を、CSSでデザインを組み立てるため、通常はセットで利用します。特別な開発環境も必要とせず、少し勉強すれば簡単に習得できるためHTMLとCSSは必要最低限の言語。大手企業のWebサイトなどではWebデザイナーがデザインをし、WebエンジニアがHTMLとCSSに置き換えた後、各種プログラムを埋め込むこともありますが、スマホアプリなど高度なデザインを必要としない場合はデザインもWeb系エンジニアの仕事の一部になります。・PHPPHPはHTMLに埋め込んで使用できることから、Webアプリケーションでよく利用される代表的なプログラム言語の1つです。PHPはサーバーサイドで動くプログラム言語のため、サーバーにPHPをインストールする必要がありますが、始めからインストールされたレンタルサーバーも多く手軽に利用できることもメリットの1つです。ScriptもWebアプリケーションで利用されることの多いプログラム言語です。PHPと同じようにHTMLの中に埋め込んで使用できます。HTMLやCSSと同じように特別な開発環境を必要としないのが特徴。動的なWebサイト作成の基本でもあるため習得しておきたいプログラム言語です。・Ruby日本人のまつもとゆきひろ氏が開発したオブジェクト指向スプリクト言語で、Web系アプリの開発でよく利用されます。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からプログラムが書けることよりも、書かれたプログラムの意味が理解できるか、カスタマイズができるかが重要になります。Scriptはパソコンがあればすぐに実践ができますし、レンタルサーバーを利用すればPHPやRubyも試すことができます。Web系エンジニアの実績がない人はプロモーション用のWebサイトを自分で作成することによって、何ができるか、どんなセンスがあるかを示すのがよいでしょう。アプリは開発環境を用意するのが大変ですが、iPhoneアプリにかかわりたいのであれば最低限Macが使いこなせなければスタートラインに立てません。AndroidアプリであればJavaをスクールで学んでおけば、他の未経験者よりも優位に立てます。it-futureネットワークエンジニアとは?ー快適な通信環境を作るネットワークのスペシャリスト現代の生活になくてはならないものとなったインターネット。インターネットを含むコンピュータのネットワーク環境を設計・構築し、快適に運用できるよう監視するのがネットワークエンジニアです。最近ではセキュリティも重大な課題となり、再び高度な技術力を持つネットワークエンジニアの需要が高まっています。ここではネットワークエンジニアの役割を始め、ネットワークエンジニアを目指す人に求められる資格やスキルを解説します。ネットワークとは?ネットワークには人や物のつながりという意味があります。IT業界でネットワークと言うと、主にコンピュータやサーバーなどの機器の接続のことを指します。個人で使っているコンピュータは単体ですが、インターネットというネットワークを利用することにより世界とつながることができます。ネットワークの種類ネットワークと一言で言っても接続形態により名称が異なります。ここではよく耳にするネットワークの種類を簡単に説明していきます。・有線ネットワークの接続形態の1つで、コンピュータとネットワーク機器など他の機器をLANケーブルで物理的に接続したものをさします。インターネット初期は、パソコンを電話やモデムなどにLANケーブルで繋ぐ有線が主流でした。物理的につなげるため簡単に接続できる反面、機器の設置場所がケーブルの長さに依存したり、ケーブルが増え配線が複雑化するなどの問題もあります。通常無線よりも接続状態が安定し、接続速度も早くなります。有線に対し、ネットワークの接続に物理的なケーブルを使わない方法を無線といいます。物理的な制限がないので、無線の届く範囲内であれば好きな場所でコンピュータをインターネットにつなげます。有線に比べ自由度が高い反面、セキュリティ対策が必要なこと、無線が不安定で突然繋がらなくなったりするなどのトラブルが起きやすくなります。スマホやタブレットは基本無線でネットワークに接続します。Networkの頭文字を取ったものがLANで、各家庭や事業所、建物など比較的狭い範囲のネットワークのことを指します。各機器の接続方法により無線LANと有線LANがあります。ファイルやプリンターの共有などに使われます。Netoworkの頭文字を取ったものをWANといい、複数のLANをつないで広域で構築したネットワークのことを指します。インターネットはWANの世界規模版とも言えます。・インターネット世界中のコンピュータやネットワークをつないだ巨大なグローバルネットワークのことをインターネットといいます。インターネット上で提供されるWebサービスやホームページなどの利用を指すこともあります。元々は米国国防省がカリフォルニア内にある4つの大学のコンピューターを接続したところから徐々に拡大し、現在の規模になりました。・イントラネット通常の生活ではあまり耳にする機会が少ないイントラネットという言葉ですが、ネットワークエンジニアを目指す人であれば覚えておきたいネットワークの形態の1つです。インターネットがグローバルに世界とつながっているのに対し、閉ざされた組織内のコンピュータだけを接続し構成されたネットワークをイントラネットと呼びます。組織内だけで共有される情報伝達、スケジュールや社内連絡簿の共有などに使われグループウェアなどと合わせ利用されることも多いです。外部から接続できないため、セキュリティが高くなります。※LANとイントラネットの違いイントラネットとLANは一見似たものに見えますが、イントラネットはインターネットの技術を利用していることが大きな違い。1つの建物内だけでなく複数の支店や事業所にまたがるイントラネットもあるため、まったく別のネットワーク形態です。LANによくある単純なファイルやプリンタを共有しているだけのものはイントラネットとは呼ばないため注意が必要です。ネットワークエンジニアの役割とは?ネットワークエンジニアはインフラエンジニアの中でもネットワークに特化したスペシャリストです。メンテナンスに分けることができます。それぞれの仕事内容を更に詳しく見ていきます。ネットワーク設計ネットワークエンジニアの第一の仕事はネットワークシステムの設計です。お客様の要望をヒアリングし、ネットワークの概要を設計後、必要な機器の選定、IPアドレスの設定、運用や保守の体制をどうするかなどを設計書に起こしていきます。ネットワークに関する幅広い知識が求められるため、通常は経験のあるネットワークエンジニアが担当します。顧客との接触も増えるため、コミュニケーション能力も求められます。設計書に基づき実際のネットワークを構築していく作業です。ネットワーク機器は細かな設定が必要なため、大規模ネットワークの構築の際はオフィスで仮環境を作成しIPアドレスや詳細設定などを行いテスト後、客先でラックなどに設置、最終調整することが多いです。ネットワーク機器はケーブル類が多く、運用・管理がしやすい配線ができることも求められる能力の1つ。ネットワーク環境は一度出来上がってしまうと頻繁に作り変えるものではありません。このため、ネットワークエンジニアが日々行う仕事の中心はネットワークの運用・監視がほとんどです。ネットワークエンジニアのいちばん大切な役割、快適な通信環境を維持するためには監視作業は欠かせません。いっても一日中画面に張り付いているのではなく、通常はアラートを設定しておき、異常があれば確認と対応がすぐできる状態を保ちます。運用・監視ではこれ以外に、セキュリティパッチの対応、定期的なネットワーク監視、顧客のリクエストに応じアカウントの追加や削除をするなどがあります。複数の会社を同時に担当することがほとんどです。運用・監視を通してネットワーク機器の追加や更新をする必要はないか、ライセンスの追加購入や更新のタイミングなど必要であれば適宜顧客に提案していくのもネットワークエンジニアの役割です。保守・トラブル対応ネットワークエンジニアの大切な仕事の1つがトラブル対応です。通常の運用・監視以外に顧客からの連絡でトラブル対応することは多く、代表的なものがウィルス対応やネットワークが止まったというものです。ネットワークが止まると会社の業務が止まってしまう場合がほとんどのため、速やかな対応が必要になります。遠隔で対応できない場合は、現場に入り原因の追求、問題解決を行います。同じような問題が頻発するようであれば、機器の追加購入なども含め対応策を顧客に提案することも必要です。ウィルス対応も被害の拡大を防ぐための初期対応が重要になり、問題の発生したPCをネットワークから切り離すこと、ウィルスの除去、破損したデータの復旧などを速やかに行います。最近では外部からの攻撃によるトラブル対応も多く、どこの会社も速やかな対応、解決のできる上級ネットワークエンジニアを求めています。ネットワークエンジニアになるには?以前に比べセキュリティ問題が増えている現在、ネットワークエンジニアの需要は高まっており、未経験者から育てていこうという会社も増えています。ここではネットワークエンジニアになるための方法をスキルや資格などから見ていきます。未経験者からネットワークエンジニアを育てようという会社が増えたとは言え、全く知識がない人を一から教育することは多くありません。資格を持っていれば最低限の知識があることを証明できるため、採用されるチャンスが増えます。ITに関する基本的な知識を網羅するこの資格は、受験勉強を通して必要な知識を身につけることもできるため、未経験者には必須の資格とも言えます。国家資格で、年に2回試験が実施され合格率は平均20%台です。受験回数が少ないため、しっかり準備してチャレンジしたいです。半年から1年集中して勉強しても合格できない場合、独学で学ぶよりもスクールに通うことをおすすめします。ネットワークエンジニアはベンダー資格で評価されることも多く、特にCisco技術者認定試験CCNA、CCNP取得者は有利になります。CCNAはネットワークエンジニアとしての基礎的な知識が問われ、指示を受けながら作業できるレベルを証明できます。CCNPはCCNAの上位資格。ネットワークエンジニアとして自主的に作業ができることを証明するものですがかなり難しいため、まずはCCNAの中から必要な資格を取り、さらなるステップアップを目指す人はCCNPを目標にすると良いでしょう。ついてはこちら参考)シスコ技術者認定試験についてはこちらネットワークエンジニアに求められるスキル資格やIT技術以外で、ネットワークエンジニアに求められるスキルの1つはコミュニケーション能力です。ネットワーク設計の段階だけでなく、運用・監視や保守などの場面で電話やメールを通して顧客と接触する機会も多く、コミュニケーション能力は問題解決能力の一部としても必要になります。定期的な客先訪問が保守契約に入っている場合も多く、対面で話をする機会も少なくありません。ネットワークと向き合っているだけではなく、会話の中から問題を拾い出したり解決する能力があれば高い評価に繋がります。IT業界の中でも最新機器や技術の進歩が激しいのがネットワーク。常に新しい情報を取り入れたり、資格を取り続けることのできる向上心のある人はやりがいを感じる仕事です。IT機器のベンダーの多くは海外なこともあり、最新情報は英語で配信される場合がほとんど。今後のネットワークエンジニアは英語ができることは大きな強みになるでしょう。様々なサービスをIT化するために欠かせないプログラミング。プログラマーはプログラム言語を操りアプリケーションを作り上げるIT業界の職人です。どんなハードウェアもアプリケーションがなければ意味がないため、熟練のプログラマーの需要は常にあります。このページでは常に人手不足が叫ばれるプログラマーについて、仕事内容や資格など詳しく見ていきます。プログラマー(PG)とは?プログラマーとは、プログラミング言語を用いシステムやソフトウェアを開発する仕事です。コンピュータが動くためにはOSを始めとしたソフトウェアが必要ですが、これらはすべてプログラマーが作成したもの。所属する会社により開発するプログラムの種類は多岐に渡ります。プログラムの種類プログラマーが開発するソフトウェアはいくつか種類があります。X、LinuxやUNIXなど、サーバーやコンピュータが動くための基盤となるソフトウェアです。入力や画面表示、キーボードやマウスコントロールなど基本的な操作がプログラムされています。・ミドルウェアOSの上に乗る大きな業務を管理するためのソフトウェア。OSとアプリケーションの中間に位置します。データベース管理システムやWebサーバーなどはミドルウェアになります。・アプリケーション各業務を実行するためのソフトウェアで、通常プログラマーが開発するソフトウェアと言う場合はアプリケーションを指す場合がほとんどです。EXCELやWordなど市販のアプリケーションの他、各企業が自社の業務に合わせて開発する基幹システムがあり、一から作り上げる場合とカスタマイズして各企業にニーズに合わせる場合とがあります。・ゲームゲームもアプリケーションの1つです。ゲームプログラミングは一般の業務用ソフトウェアとは性質が大きく異ることから開発もゲーム会社が行う場合がほとんどです。最近増加しているアプリやWebで利用するゲームの開発者をWebプログラマーと呼ぶこともあります。PGとSEの違いについてシステム開発、プログラミングと聞くと頭に浮かぶのがシステムエンジニアという人も多いです。プログラマー(PG)とシステムエンジニア(SE)の共通点と異なる点を確認していきます。システムエンジニアとは?で解説しましたが、システム開発の工程はいくつかに分かれています。プログラマーは主にプログラミングを担当し、場合によっては作成したプログラムのテストをします。システムエンジニアが開発の工程全体に関わるマネージャー的存在であるのに対し、プログラミングに特化している専門家がプログラマーです。システムエンジニアはプログラマーの仕事を兼任することもありますが、プログラマーはシステムエンジニアの全行程を代わりにすることはほとんどありません。キャリアパスで言えばプログラマーが経験を積みシステムの設計ができるようになり、システムエンジニアとして成長していくと考えればよいでしょう。すべてのプログラマーがシステムエンジニアになっていくわけではありません。開発が好きだからとシステムエンジニアにならずにプログラマーを続ける人もいます。収入面で言えば、全体をまとめることのできるシステムエンジニアのほうが高収入の場合が多い場合がほとんどです。主なプログラミング言語プログラマーが扱うプログラミング言語は、開発の目的や開発環境により多種多様です。ここではよく利用されているプログラミング言語をいくつか取り上げて開設します。・C言語C言語はシステム開発に使われるプログラミングの基本とも言える言語です。色々なプログラム言語の元になっているため覚えておくと他の言語を覚えるのが容易になる反面、簡単なタスクの実行に複雑なコーディングが必要だったりと欠点もあります。歴史のある言語ですが、今でも需要が高いため業務用システム開発を目指す人は習得しておきたいです。・C++C++はC言語を元に拡張版として開発された言語です。ゲーム開発でも用いられることがありますが、難しい言語のため初心者向きではありません。C言語との互換性があることが大きな特徴。現在は規模の大きな業務システムや公共システムの開発などに利用されることが多いです。・PhythonPhythonは海外でよく使われる初心者にも導入しやすい開発言語の1つ。デスクトップアプリやWebアプリケーションの構築にも向いています。少ないコードでプログラムが書けるためコードが読みやすく、開発効率が高いのが特徴。AI、科学技術、教育の分野で実績があり、将来性が高い言語の1つです。・SwiftSwiftはAppleが開発したiOS開発向けのプログラム言語です。iPhoneやiPadのアプリ、Mac向けアプリの開発に利用します。コーディングが簡単で初心者にも習得しやすい開発言語の1つですが、開発に使用するXcodeが動かせるMacパソコンが必要。スマホアプリの開発をしたい人におすすめの言語です。・JavaJavaは世界で最も開発に使用されている言語の1つです。人気の理由はJavaで作成したプログラムが特定のOSに依存しない汎用性の高さにあります。習得したい言語のランキングでも常に上位に入り、Android用アプリやデスクトップアプリ、ゲームだけでなく企業のバックエンドシステムの構築にも利用されます。オブジェクト指向が特徴で、グループで開発をするときの作業効率がよい反面、作業環境の設定などコーディング以外の作業が煩雑なデメリットがあります。・RubyRubyは日本人のまつもとゆきひろ氏が開発したオブジェクト指向言語です。RailsというWebアプリケーションフレームワークを使いWebシステムを効率的に開発できるのが特徴。開発工程が短縮できることからコストが削減できます。開発者が日本人なので日本語の資料や参考書が多くあり、特に日本のスタートアップ企業で利用されています。Webベースの業務システムやWebサイトの開発をしたい人は覚えておきたい言語です。・PHPPHPは動的にWebページが作成できるスクリプト型の言語です。他の言語に比べてわかりやすくシンプルな文法のため、初心者が習得しやすい言語の1つ。HTMLに埋め込んで使用できることから、WordPressを含めたWebアプリケーションの開発に利用されます。データベースとの連携が得意な点も特徴です。Scriptは動的なWebページを作るための開発言語です。Javaと名前が似ていますが関連はありません。HTML、CSSとともにプラウザが翻訳できる言語であること、開発環境が簡単に用意できることが特徴です。Scriptの技術を応用した進化系のテクノロジーの登場でさらに利用範囲が広がっています。上記以外にHTMLやCSSという名前を聞いたことがある人は多いと思います。これらもプログラム言語ですが、利用方法が大きく異なります。HTMLはマークアップ言語といい、文章の構造を伝えるための言語。HTMLとセットで利用されるCSSはレイアウトをデザインするためのスタイルシートです。Scriptなど他の言語と組み合わせなければいけません。この2つの言語は開発環境も簡単に用意でき、結果がすぐに見えることから初心者向けの簡単な言語である反面、これだけではシステムを動かすことができません。プログラマーが使用できることから、この2つができてもプログラマーに転職することは難しいです。少なくとも利用頻度の高い言語に上げたプログラム言語のうち1つができることがプログラマー転職の条件と言えます。今後注目のプログラミング言語プログラマーの能力をテストし外資系ITの転職の際に必須とも言われているサービス、HackerRankのレポートでは今後注目されるプログラミング言語を3つ挙げています。Googleの開発したGo、公式Android開発言語として採用されたKotlin、上記利用頻度の高い言語にも上げたPhythonです。Goはシンプルで読みやすく、拡張性が高いことなどに加えAndroid、iOSのどちらにも対応していることが強み。Webサーバ構築やマルチプラットフォーム向けWebアプリケーションなどに使用され、今後PHPの代わりになっていくことが期待されています。Kotlin(コトリン)は2009年にできたばかりの新しい言語。Javaとの互換性がありシンプルなコードにわかりやすい文法で初心者にも習得しやすいこともあり、Javaを習得した人が次に覚えたい言語です。以前から海外を中心に人気の高いPhython(パイソン)は、今後AIやディープラーニング分野での開発で欠かせない言語として注目されています。比較的初心者にもわかりやすいシンプルな文法なので、キャリアアップを望む人におすすめです。最後にプログラマーに求められるスキルや資格を見ていきます。人手不足のため未経験者の求人も増えているプログラマーになるには何が必要なのでしょうか。プログラマーに求められるスキルプログラミングに必要とされるスキルの1つ目はプログラミング能力です。HTMLやCSSではなく、システム開発に使える言語を最低限1つ、できれば複数理解していることが望まれます。始めは1からコーディングができなくとも既存プログラムを読み解け、カスタマイズや修正ができれば次へのステップに繋がります。次にデータベースに関する知識です。ほとんどのシステムはデータベースが必要となります。このためデータベースの基本的な知識、特にSQLと呼ばれるデータベース言語を理解していれば開発できるシステムの幅が広がります。プログラム言語と並行して勉強しておきたい知識の1つです。最後はコミュニケーション能力です。プログラミングは一人で黙々とする作業というイメージを持っている人もいますが、実際はチームで開発することが多く他のプログラマーやシステムエンジニアとの連携は必須。経験を積んでくれば顧客から直接ヒアリングや操作説明をすることもあります。コミュニケーション能力があればよりスムーズな開発ができ、顧客や製品の満足度も高くなります。プログラマーが持っていたい資格プログラマーになるために絶対必要な資格というものはありません。ITに関する最低限の知識があることを証明できる便利な資格です。プログラム言語やデータベースに関する知識も問われますので、資格取得のための勉強を通して必要なスキルを身につけることができます。プログラム言語はC、Java、Phython、アセンブラ言語(CASLII)が選択できます。ついて詳しくはこちらこの他ベンダーの認定資格もありますが、転職の際に有利になることはあっても必須ではありません。プログラマーはどれだけの案件を開発したかの実績が問われることのほうが多いため、自分の関わった案件を記録しておくことは大切です。システムエンジニアへのキャリアアップを考えている場合はデータベーススペシャリスト試験やプロジェクトマネージャー試験、システムアーキテクト試験などの国家資格の取得を目指すとよいでしょう。it-futureサーバーエンジニアとは?ーサーバ周りのプロフェッショナル企業で使用するシステムや、社会で便利に生活するための公共的なシステム、スマホアプリなど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に関する知識です。X、Linux、UNIXとあり、どれに対しても広く深い知識が望まれます。これらは単純に本を読めば身につくというものでなく、資料やマニュアルを勉強しながら実際にサーバーに触れ、設定や運用を通してより深く理解が深まります。座学と実務を通して得た知識を元に資格を取ることで、よりサーバーエンジニアとしての経験値が上がっていくと考えて良いでしょう。サーバーはあくまでもインフラ。利用目的により必要な設定や知識が異なります。データベースサーバーであればデータベースの知識が必要ですし、バックアップサーバーならばバックアップ装置、バックアップ用ソフトウェアなどに詳しくなければ機器の選定や設定をすることができません。サーバーエンジニアは幅広い知識が必要ですが、一度にすべて覚えることはできません。案件ごとに必要になる知識を自分の物にしていく好奇心と貪欲さは欲しいところ。サーバーを始めとした機器やソフトウェアは海外メーカーの場合も多く、オリジナル資料を読み解くための英語力があるとより深い知識を得ることができ有利です。あれば、IT業界に必要な最低限の知識があることが証明できます。その他国家資格であればネットワークスペシャリスト試験、データベーススペシャリスト試験などもあれば望ましいですが、実務経験のない未経験者の合格はかなり難しく、運用・監視などの仕事でサーバーエンジニアとして採用されてから、少しづつ勉強して取得を目指します。ついてはこちら数多くあるベンダー資格の中で、最初に取得したいのはOSに関する資格です。Linux技術者認定試験やMicrosoftのMCPの2つで、どちらも初級から上級まで複数のレベルがあるため、経験を積みながら上位試験合格を目指します。OS以外で持っていたいのがネットワーク系資格で、CiscoのCCNA、CCNPがあります。CCNAの下にエントリーレベルの資格もありますが、試験料が高い割に評価が低いため、ネットワーク設定の経験を積んでからCCNAの中から必要な資格を合格、さらに上位のCCNPを目指すのがよいです。サーバーエンジニアを始めIT職種が資格取得をするもう1つの理由は、転職や高収入などより良い待遇が目指せることにあります。会社によっては資格取得に助成金を出したり、報奨金を出すこともあります。給与自体が上がる場合もあります。転職の際好条件を引き出すこともできるので、ステップアップを目指す人はサーバーエンジニアになってからも積極的に資格取得を心がけると良いです。