SEってなぁに
System Engineer の略です。
「こんなものがあったらいいよね」という発想を、ITの技術を駆使して、世の中に還元する人たちのことです。
Web系ってよく聞くよね
昨今よく聞くweb系エンジニアっていったい何なのか。
WebはこのQiitaや、各種SNS等、一般ユーザー向けwebサービスまたはWebアプリケーションを開発する人を指すことが多いです。いくつかご紹介
フロントエンド
画面のボタンの配置や(デザイナー)ボタンを押したときの動作を作る人。
次のバックエンドさんと事前にどういう情報をどのような形式でやり取りするのかを綿密に話して決めておく必要がある。
バックエンド
フロントエンドはユーザーが直接触るのに対して、バックエンドはユーザーがほとんど触らない部分を作ります。
例としては、検索とか。
フロントから検索したい文字列が事前に決めておかれたデータ形式で渡された時に、バックエンドさんは実際に合致する結果をデータベースから引っ張り出し、順番を組み替えて、フロントエンドさんが読める形式で渡す仕事をします。
データベースエンジニア
データベースサーバー(データを格納しておくサーバー)を立てて、どういう情報をどういう形式で保存していくかを考える人たち。
例として、ユーザー管理のTodoリストがあった場合
投稿テーブル
ユーザー名 | 投稿タイトル | 投稿詳細 | 投稿表示 |
---|---|---|---|
ano | ごはん食べる | 今日はカツカレー | 表示する |
ぼく | 掃除 | 風呂掃除 | 表示しない |
ユーザーテーブル
|ユーザー名|mailAddr|
|---|---|---|
|ぼく|hoge@huga.ano|
|ano|ano@anonymous.clm|
こんな感じ。最近はNoSQLとかもあるから、プロダクトに沿ったデータベースサーバーを立てる必要がある。
インフラエンジニア
サーバーの構成やスペック、ネットワークの配線等を考える人。
メディアで取り上げられたり、SNSでバズると一気にトラフィックが増えてサーバーが落ちるなんてことも。
それを防ぐためにロードバランサ入れたり、RAID構成組んだり、リージョン分けてリスク分散する等もします。
Linuxが多いのかな。
Webまとめ
これらのほとんどすべての領域をできる人は フルスタックエンジニア なんて呼ばれて周りから羨望のまなざしで見つめられるよ。
また、体感、SEはWebを使ったシステム作成が多くなってきているので、webは食わず嫌いしては通れない道だとも思います。
javaならspring, pythonなら Flask, Django, PHPならcakePHP, laravelとかでチュートリアルを学ぶのがおすすめ。
初心者に勧めるのであればPythonのFlaskが一番簡単だと思う。
その次にRuby on railsとか。
クラウドエンジニア
最近ホットな aws とか Microsoft Azure, Google Cloud Platform, Firebaseとか。
オンプレミスではなく、インターネットクラウドサービスを活用してシステムを構築することができる人たち。
クラウド上でインフラを作ったり、クラウド上のサーバーにサービスをデプロイしたりできる人達。
また、各種クラウドサービスに強みとコストに違いがあるので、サービスに合わせてそれらを比較検討する力も大切
IoT
Internet of Things
モノのインターネット化
簡単に言うと、各情報機器を、インターネットと接続してインターネット越しに機器から情報を得たり、操作したりをする技術名。
IoTエンジニアはよりハードウェアに近い部分の知識と技術が必要。
もともとIoTはM2M通信のプロトコルをいうのであって...(面倒くさいオタク)
テスタ
プロダクトの品質テストを行う人たち。
テストケースを作成し、すべてのケースが予定通りの動作をするかを確認する人たち。
また、不正な入力をした場合に、アプリやサービスが止まらないか等の確認も行う。
セキュリティ
テスタと似ているが、さらにセキュリティの部分に特化した人たち。
いつの時代もセキュリティは必要なので、需要は絶えないし、稼げる。
ただ、難易度も高く、雰囲気的には初学者にやさしくない雰囲気がある。
セキュリティやりたかったら、まずはたくさんの技術に触れて、ボキャブラリw増やすところから始めたほうがいい。
社内SE
ちょっと見たことが無いし、知らない。。。
社内用のシステムを社内で作る人たちのことらしい。
データサイエンティスト
ITエンジニアなのかはわからないが、情報工学をエンジニアリングしているってところでは、ITエンジニアかもしれない。(雑)
過去の大量のデータや、実測した値をもとに何らかの予測を立てて検証する人たち。