「未経験」から「ITエンジニア」へ、必要な能力とオススメの勉強方法

未経験からITエンジニア アイキャッチエンジニアコラム

はじめに

本記事ではITエンジニアになりたい方向けに、「ITエンジニアとは」、「エンジニアの仕事内容」、「必要な能力・スキル」、「勉強方法」などを紹介しています。

ITエンジニアとは

 ITエンジニアとはInformation Technologyの技術者たちの総称を指す職業です。多くの方がエンジニア=理系とイメージされる方多いですが、文系出身も3,4割近く働いています。ITエンジニアは主にコンピューターを使ってシステムを構築するのが主な仕事になりますが、実際に全員がプログラミングを駆使してプログラムを構築しているわけではなく、「要件をまとめる人」「設計をする人」「プログラムを書く人」「試験をする人」「システム運用をする人」などに分かれて仕事をしています。

システムの種類

 システム構築と言っても幅広く、多くのエンジニアは特定の領域のシステム構築ができるのみで、汎用的に多くのことが出来るわけではありません。例えばサーバーサイドエンジニアがモバイルアプリを作ることは少ないといった感じです。
 ここではどのような領域があるかいくつか紹介します。

【Webエンジニア】
 Webエンジニアは、WebサイトやWebアプリケーションなどの設計や開発、運用や保守を担当するエンジニアです。日頃みなさんがSafariやChromeなどからアクセスするWebサイトを構築している方たちです。実際にユーザーに目に見えるものを作るので、Webアプリとしての「検索機能」「決済機能」「投稿機能」のような機能開発だけでなく、「見やすさ」「分かりやすさ」「使いやすさ」など、ユーザーにとって良いものを考える必要があります。

【サーバーサイドエンジニア】
 サーバーサイドエンジニアは、サーバーの設計や開発、運用、保守などを担当するエンジニアです。Webエンジニアはユーザーの目に見える部分を担当することが多いですが、サーバーサイドエンジニアは、ユーザーに安定的に利用してもらうためにいる縁の下の力持ちのような存在すです。
 具体的にはWebエンジニアが検索機能を作る時に、サーバ側に検索システムを起き、Webサイトからの検索要求に従ってサーバーは結果を返します。このようなサーバがある時に、もしこのサーバが不具合で落ちてしまうと、ユーザーは検索機能を使えなくなってしまいますので、24時間365日安定して運用させることが必要になります。

【モバイルアプリエンジニア】
 モバイルアプリエンジニアは皆さんがお持ちのiPhoneやAndroidスマホの上で動作するアプリを設計、開発、保守、運用するエンジニアです。最近はアプリでSNSや銀行振込、チャット、ゲームなど、電話としての使われ方以外がかなり増えてきていると思います。モバイルアプリエンジニアはiOS(iphone),AndroidのOSを理解して、アプリを作り上げることが仕事になります。
 基本的には多くのアプリではWeb版のサイトと並行して運用されることが多いですが、Webを毎回開くよりもアプリを開くほうが簡単で、なおかつアプリの方が分かりやすいUI設計にできるので、Webエンジニアと同様にユーザーにとって使いやすいアプリを作ることが必要です。

【クラウドエンジニア】
 クラウドエンジニアは最近出てきた職種で、主にAWSやGCPといったクラウドサービスを活用してシステムを構築するエンジニアです。クラウドサービスを利用することでネットワーク構成やサーバを運用するためのインフラ構築を、より安く安定したものに作り上げることが可能です。一方ネットワーク、インフラ、各サービスの知識、アプリなど多くの知識を必要するため、ある程度エンジニアとしての素養も必要になってきます。
 大事なこととしては、クラウドサービスを利用することで、より早く低価格で安全なシステムを構築することを意識することが大切です。

その他にも「データベースエンジニア」「セールスエンジニア」「ITコンサルタント」など幅広いITエンジニアとしての業務がありますので、全てを網羅する必要はなくどれか一つを特化するのがおすすめです。

エンジニアとして1つの領域に特化することが大切!

ITエンジニアに必要な能力

ITスキル

 まず最も大事なものとしてITスキルです。これは言わずもがなですが、ITというと「プログラミング」をイメージされる方が多いですが、プログラミングも確かに重要ですが、「情報理論」「コンピュータの仕組み」「インターネットの仕組み」「OSの知識」「アルゴリズム」などの土台になっている知識をまずはつけると良いです。

 上記に加えて、ネットワーク、データーベース、プログラミング、セキュリティ、システム構築手法などワンラックアップした内容の基礎知識を蓄えましょう。全体的なシステム構築の基礎が理解できたら、専門的に1つの領域を極めるのがよいでしょう。

ITスキルの基礎をしっかり固めよう!

コミュニケーションスキル

 こちらは他の職業でも同じだと思いますので、既に兼ね備えている方は多くいるかも知れませんが、エンジニアと言っても家にこもってひたすらプログラムを書くわけではありません。もちろん1人で黙々と作業することが他業種よりは多いと思いますが、お客様の要望を確認したり、システムの仕様の確認、プロジェクトマネージャへ進捗報告など、一般的な仕事同様にコミュニケーションが多々発生します。

 エンジニアをしていて一番難しいのが、多くの一般の方はエンジニアの専門用語を知らないですし、常識的なスマホ知識でさえ知らないかもしれません。こうしたときに分かりやすく、また親身になって教えてあげたり交流を取って、プロジェクトを進める必要があるのもエンジニアとして大事なポイントになります。

エンジニアでもコミュニケーションは大事!

ヒアリング力

 ヒアリング力とは相手の要望を正確に聞き出す力のことです。具体的にはシステム構築をするときには多くの場合、お客様がいます。接客業をしたことがある方であれば、お客様に「ビール3つ!」や「袋ください」など言われたことがあると思います。システム開発も同様に、「こんなシステムほしいんだけど。。。」という要望が来ます。
 ここで難しいのが、システムは基本的に目に見えるものがありませんので、お客様は頭の中のイメージで要望してくるか文章だけで依頼してきます。また、専門的な知識を知らないため「うちの商品が売れやすいサイトを作りたいんだけど、、」みたいなアバウトな要望あります。
 こうしたときにエンジニアとしては、サイトを作るためにどんな事が必要で、何を作るべきなのかを考える必要があるのでお客様がやりたいことをヒアリングする必要があります。ヒアリングをきちんとしないと、作り終わった後にお客様から「イメージと違う」と言われかねませんのでご注意ください。

お客様の要望をしっかりヒアリングしよう!

説明能力

 説明能力はプログラマーだと必要なケースが限られてきますが、エンジニアとして働く場合にはお客様や上司、プロジェクトメンバーと適切にプロジェクトを進める上で必須の能力になります。前項のヒアリングでもお話しましたが、お客様は専門用語やシステムのことはよく分からないという方が多いです。また、上司でさえも現場を離れて長い方であれば分からないこともあるでしょう。
 そうした場合に、いま自らが作っているものの状態や問題点、仕組みなどを適切に説明し理解してもらうことが必要です。また、他のプロジェクトメンバーと一緒に進んでいくためにも、お互いに理解する必要があるので、状況などを適切に説明できる能力をつけましょう。
 ※基本的には場数を踏めば上手くなっていくとは思います。

プロジェクトを進めるために、周りの人に説明できる能力をつけよう!

マネジメント力

 こちらは全てのエンジニアに必要な項目ではないかもしれませんが、エンジニアとして数年も働くとエンジニアをマネジメントしていく力も必要になります。私もそうですが、かつて新人で働いていた頃は右も左も分からないようなエンジニアが来るわけですから、適切に指導し、管理をし、教えながらシステムを作っていくことが必要になります。
 また、さらに年次があがれば、プロジェクトリーダやプロジェクトマネージャーとして、システム構築のプロジェクト全体を見渡し、コスト、スケジュール、品質、戦略、管理など、マネジメントスキルが更に必要になっていきます。もし将来的にエンジニアとしてだけでなくマネージャーとしても働きたい方は、初めのうちから上司のマネジメントを見ておくと役に立つと思います。
 ※生涯プログラマーをやるんだ!という方は、あまり必要ないかもしれません。。。

将来的に新人やプロジェクトをマネジメントすることも意識しよう

英語力

 最後に英語力です。こちらは全エンジニアが持つべき必須項目だと言えます。といってもエンジニアがペラペラ英語を話す必要があるかというわけではなく(私もあまり話せません。。)、英語に対する抵抗と、英語を読むことができるようになればOKです。
 ITは基本的に日本は遅れていますので、先進的な情報は中国やアメリカなど海外からの情報が新しいです。また、プログラミング言語の多くが英語で書かれており、日本人だけで書くときも英語に訳して「sendMessage」など英語で記述します。
 なので実際に話せる必要はありませんが、基本的な中学生レベルの英語と、英語への抵抗、英語を読むという習慣をつけていきましょう。

ITは英語がメインなので、英語への抵抗をなくそう!

ITエンジニア向けのオススメ資格

 ここではITエンジニアになるために、もしくは既になっている方へオススメの資格を紹介します。時々資格なんていらない、という方も見かけますが、確かに資格そのものだけで実務がこなせるかというとそうではないことの方が多いです。
 一方、資格の多くが幅広い分野に対して体系的に整理されており、エンジニアの基礎から応用まで幅広いテーマを学べます。業務をしていると基本的には狭い領域の知識しか身につかないため、知識を点ではなく面で広げていくという意味では資格はかなりおすすめです。
 また、未経験の方からしてもまずは全体像を掴むことができるため、実際の業務をこなしながら体系的に学ぶことでより業務の理解度や汎用性を高めることが可能になります。

未経験向け

【ITパスポート】

【ITパスポート試験】情報処理推進機構

 ITパスポートは以下と定義されています。

iパスは、ITを利活用するすべての社会人・これから社会人となる学生が備えておくべき、ITに関する基礎的な知識が証明できる国家試験です。

引用 : https://www3.jitec.ipa.go.jp/JitesCbt/html/about/about.html

 ITエンジニアを目指す方だけでなくビジネスマンとして全業種の方が身につけておくべきものとなります。内容としてはストラテジ系、マネジメント系、テクノロジ系と分かれており、4択の問題で基礎的な内容がメインになります。

初級者向け

【基本情報処理技術者試験】

旧URLからのリダイレクト終了のお知らせ

 基本情報処理技術者試験は、ITエンジニアの登竜門と言われる試験で、ITパスポートよりも難易度が高く設定されており、午前と午後試験の2つを突破する必要があります。午前試験では一般的な基礎知識がメインで問われ、午後ではプログラミングなどの実務的な内容も出てくるため、こちらはエンジニアになるために知識レベルとしては必須の資格となります。

中級者向け

【応用情報処理技術者試験】

旧URLからのリダイレクト終了のお知らせ

 応用情報処理技術者試験は、基本情報処理技術者試験よりも更に難易度が上がっている試験で、ITエンジニアとしてワンランク上に上がるための試験と位置付けられています。基本的なテクノロジーの要素だけでなくマネジメントやストラテジの高度レベルの内容まで問われるため、これぐらいの知識レベルを持っているとエンジニアとして業務をこなせないと思われれることは少なくなります。

上級者向け

【高度情報処理系資格】

旧URLからのリダイレクト終了のお知らせ

 高度情報系資格とはIPAという団体が出している資格類のことで、ネットワークスペシャリストやITストラテジストなど1つの分野を専門的に学ぶことがが出来る資格になります。例えば私は安全確保支援士という資格を保持していますが、この場合セキュリティの知識であればエンジニアとしてかなり知識を保有していると見られることが多いです。
 これらは専門性が高い範囲なので、どれか1つに絞って取得すると良いと思いますが、ITエンジニアのエキスパートやマネージャーとして上がっていくためには、このレベルの知識は必須と考えられます。

資格まとめ

 いくつか資格を紹介しましたが、IT業界は日々進化が早い業界で、多くの研究者やエンジニアが新しいアルゴリズムや機能を作っていきます。そのため上級者向けの資格を持っているとしても、日々の情報のキャッチアップや学びは必須です。また、上級者のさらに上に行くためには自ら論文を発表したり、新しい画期的な仕組みを作ったりすることで、更にレベルアップしていけると思いますので、資格を取ったら終わりではなく、常に学びを求めていきましょう。

 また、下記記事では職種別に20代で取っておきたい資格をまとめていますので、ぜひ見てみてください!

ITエンジニアは常に学んでいく姿勢が大切!

ITエンジニアになるための勉強方法

資格取得を目指す

 未経験で知識が乏しい状態だと、まず何から手を付けるべきかということがあると思います。このようなときはまずはITパスポートから資格の取得を目指してみましょう。先にプログラミングを始めるというもモチベーションとしてはありですが、基礎的なことは今後必ず必要になっていきますので、基礎から学びたいという方はまずは資格取得を目指しましょう。

実際に何かを作ってみる

 最もモチベーションが湧きやすく、学びの経験値としてつきやすいのが、実際に作りたいものを作ってみるということだと思います。例えばでサーバーをレンタルサーバーやAWSで立てて、HTML、CSS、Javascript、React、Node.js等で、HPやWebアプリをつくるということです。
 私も初めて学んだときは、ゲームが好きだったのでAndroidアプリのゲームを作ってみたのがきっかけでした。やはりインプットだけでなくアウトプット経験というのは、経験値としてとても有用です。今ではドットインストールProgateなど学べるサイトもありますので、それらを活用しながら自分の作りたいものを作ってみるのが良いです。
 もしAndroidを学んでみたいという方は、本サイトでも学ぶことが出来ますので見てみてください。

ページが見つかりませんでした - 404 NOT FOUND – | 【TechGrowth】
エンジニアを強くする

エンジニアとして会社に入る

 こちらは最も実務経験が付きやすい方法です。未経験だと中々採用されるのが難しい点ではありますが、プロジェクト単位で動く経験、レビュー、先輩エンジニアのスキルを学べるなどメリットは大いにあります。もし就職することが可能なのであれば、積極的に業界に入っていくことが良いと思います。

まとめ

 今回は未経験からエンジニアになりたい方向けに、エンジニアの業務、学べる資格、勉強方法などを説明しました。私もエンジニアとして働き始めてから5,6年程度になりますが、まだまだ分からない領域や、足りてない知識やスキルを痛感することがありますので、日々研鑽していきましょう。
 もし何か質問や相談などあれば、お気軽にお問い合わせページからご相談頂ければと思います。

コメント