強いSE・ITプロフェッショナル人材を育てる エディフィストラーニング株式会社

【人気講師が教える】IT技術
注目のITスキルと研修

現役エンジニアが“フルスタック”を目指すべき理由

2021.12.23  最終更新:2022.01.17

【連載】フルスタックエンジニアになるには? 第3回

第1回第2回と、はじめてIT技術に関わる方向けに、フルスタックエンジニアを目指すメリットを紹介してきました。

それでは、いま現場で活躍している人にフルスタックエンジニアは無縁かというと、決してそうではありません。

今回は「現役エンジニアの方」向けにコムチュアのエンジニアの経験談を交えながら、「現場のエンジニアがフルスタックなスキルを身につけるメリット」について考えてみます。
※ 本記事はコムチュア株式会社の 佐藤 瞭 講師が執筆しています(コムチュア株式会社はエディフィストラーニング株式会社の親会社です)。

振り返ってみよう!IT 技術に関わる人が抱える2つの「悩み」

まずは、ご自身のエンジニア経験を振り返ってみてください。

業務の中で大きな悩みもなく、ここまで順風満帆だったという方は少ないのではないでしょうか。

ここではエンジニアスキルの観点から、多くの方が経験したであろう悩みを2つ見てみましょう。同じような悩みを経験した方、今まさに悩んでいる方、いないでしょうか?

お悩みその1:「次に進むべき領域」が決まらない

IT 業界を数年経験し、身近なスキルを一通り身に付けた後の若手のエンジニアがぶつかりやすい悩みです。

初めて IT プロジェクトを経験してからしばらく経つと、サーバ構築・ネットワーク構築・アプリ開発と、IT 技術の中で自分が対応できる領域を持つようになるでしょう。

しかしこのレベルにたどり着いた人は他の分野を新しく学ぶことに抵抗感を持つことが少なくありません。中には、自分が関わってきた領域だけで深堀りしようとするあまり、新しい技術が遠い存在のように見え、チャレンジできずに自分のスキルに限界を感じてしまう人もいます。

せっかく IT 業界で活躍し始めた人にとって、これは大変もったいないことです。

図1 新しい領域は新しく学ぶことが多くて大変?

お悩みその2:提案などの上流スキルが身につかない

構築スキルなどの得意分野の作業が一通り自分でできるようになった、中堅のエンジニアがぶつかりやすい壁です。

自分が扱うシステムのことについては深い知見を活用した提案ができますが、自分が扱ったことのない分野も含めた提案となると具体的な案が出せない、という人が多くいます。

顧客が求めるのはさまざまな仕組みが組み合わさった「最終形」であるため、一部分の提案しかできないと、大規模プロジェクトの一括受注ができるチャンスを逃すことにも繋がりかねません。

図2 顧客はシステム全体を考慮した提案を求めている!

身に付けた知識は他分野でも役に立つ!

【サーバエンジニア A さん】の体験談

・期待のインフラエンジニア

入社3年目の A さんは ERP システムのサーバ構築を担当しており、大小さまざまな環境をひとりで構築できる期待のインフラエンジニアでした。
ゆくゆくはシステム全体を構築できるエンジニアになることを上司から期待されていましたが、A さんは ERP システムで使われる「独自のプログラム言語」の習得に大きな抵抗を持っていました。

・シェルスクリプトとの共通点を発見

学生時代にプログラミングに苦手意識を持ち、プログラムとは縁がないと思ってインフラエンジニアで入社したAさんにとっては大きな課題です。

そんな A さんの考えを変えるきっかけとなったのは、業務で行っていたシェルスクリプトのメンテナンスや作成の経験でした。

上司から ERP アプリケーションで使われているソースコードを見せられたAさんは、「変数」「if文」「while 文」と言った用語とそのコードを説明され、シェルスクリプトで知っている知識がそのまま利用できると感じました。

これをきっかけに小さなプログラム修正の対応を成功させたAさんは、徐々に開発分野の作業も任されるようになり、プログラムに対する抵抗も薄れていきました。

図3 Bash シェルスクリプトと Python スクリプトの比較

・DevOps を推進するインフラエンジニアへ

現在Aさんは、DevOps を推進する ERP クラウドのインフラエンジニアとして活躍しています。

DevOps の成功にはインフラ構築、アプリ開発、システム運用といったさまざまな分野の理解が不可欠ですが、広い経験からプロジェクト関係者の信頼を得て、大規模システムでの DevOps 成功事例も複数残すことに成功しています。

・苦手だったプログラム言語を習得

Aさんはシェルスクリプトからプログラミングスキル習得のきっかけに気づきました。サーバエンジニアが普段から扱っている OS やシェル、ミドルウェアも立派な「プログラム」です。そしてシェルスクリプトはもちろん、何気なく編集している設定ファイルもプログラムを動かす一部分なのです。

そう思うとプログラムも身近なものに思えてくるのではないでしょうか?

インフラ嫌いのアプリ開発者がレイヤをまたいで活躍する OSS コミッターに!

【Java プログラマ B さん】の体験談

・アプリ開発に専念
B さんは学生時代から、Java の Web アプリケーションの開発を行っていた実力のあるプログラマでした。

新入社員研修ではサーバ構築を中心に学びましたが、「インフラは設定ファイルをいじるだけでつまらない」と感じ、ミドルウェアまでのレイヤを意識的に避け、アプリ開発に専念していました。

・ミドルウェアのトラブル対応に直面
しかし、ある日 B さんがリードしていた小規模プロジェクトで、アプリケーションに致命的な動作不良が発生してしまいます。

原因がミドルウェアに起因すると発覚したことで、今までミドルウェアのトラブル対応を避けていた B さんもこの問題に対処せざるを得なくなりました。

B さんはエラーメッセージに書かれた設定値を変えることでトラブルを解消することができましたが、「設定を変えたら”なぜか”動くようになった」ため、顧客へのトラブル対応報告書に何と書けばよいか悩んでいました。

図4 なぜミドルウェアはエラーを起こすのか

・OSS コミッターとして活躍
しかし、OSS であったこのミドルウェアはソースコードが公開されており、コードを落ち着いて読んでみると、「なぜか動いた理由」がソースコードに明確に記述されていたのです。

その後Bさんは自信を持って顧客への報告を行うことができ、この経験からインフラ領域を見る目が 180 度変わりました。

現在Bさんは自分の得意分野であるアプリ開発と同じ目線で OS・ミドルウェアの構築やデバッグを行っています。

また、既存 OSS ソフトウェアの改修にも興味を持ち、OSS のデバッグや修正レビューを行う OSS コミッターとして社内外で活躍しています。

・最新技術を作る側に
A さんの逆パターンですが、アプリ開発者から見てインフラ領域は別世界だと感じている方は少なくないと思います。

企業が開発したアプリケーションの多くはリバースエンジニアリング(プログラムの解読)が禁止されていますが、IT の世界では OSS(Open Source Software)と呼ばれる有志がソフトウェアを開発・改善していくコミュニティが活発です。

OSS で開発されているソフトウェアには Linux もあり、Linux 上で動く代表的なミドルウェア・アプリケーションの多くもOSSで開発されています。

B さんのような活動は最新技術にいち早く触れられるだけではなく、最新技術を作る側にもなり得る大きなチャンスを含んでいます!

独学に失敗したネットワーク知識を IT サービス提案活動から楽々理解!

【中堅インフラエンジニア C さん】の体験談

・デバイスなら任せて、でも・・・
C さんは中堅サーバエンジニアとして、デバイスの設定や障害対応、簡単なバッチファイルやシェルスクリプトの作成も対応しています。

「デバイス関連はCさんに聞けば安心」とメンバーからも頼りにされるCさんでしたが、本人はネットワーク技術の知識に苦手意識を持っていました。

・ネットワークスキルでの挫折
若手時代にシステム全体に関わるトラブルが発生し、ネットワークに起因する原因の特定に時間がかかったことを顧客に叱責され、ネットワークに苦手意識を持ってしまったのです。

その改善に TCP/IP の書籍などでスキルアップを目指そうとしましたが、業務との関連がイメージできず、覚えることも多いことから挫折してしまいました。

・視点を変えた取り組み
C さんにネットワーク克服のチャンスが訪れたのは、とあるシステム構築プロジェクトの設計部分を任されたことでした。

「ネットワークを意識しよう」と考え取り組んだわけではありませんでしたが、自分が構築するサーバをどうやってサービスとして機能させるかを考えて設計したところ、自然とネットワークの繋がりが頭に入ってきました。

ひとつのプロトコルを理解することで、芋づる式に下位レイヤのプロトコルの理解も深まり、ファイアウォールやロードバランサの設計でも従来以上の検討と提案ができました。

図5 ネットワーク初学者における OSI 参照モデル学習のホンネ

・業務知識がカギだった!
C さんはこの経験で、「挫折したネットワークの基礎知識が、業務経験から入ったらすんなり理解できて驚いた」と感じました。

C さんはネットワークの理解が深まったことで、システム全体の運用やセキュリティも考慮した設計を行えるようになりました。

その結果、顧客からは、サーバを中心としながらもネットワーク、プログラミングの経験もあるエンジニアとして、「システム全体の管理者」として絶対の信頼を得ています。

・IT サービスは「組み合わせ」でできている
C さんのように、ネットワーク関連に苦手意識を持っている方は少なからずいることと思います。しかしネットワークは元々、「コンピュータやプログラム同士を繋げるために生まれた技術」です。

現代の IT サービスが「組み合わせ」で作られている以上、システム全体と自分の担当分野とのつながりが俯瞰できれば、ネットワーク技術習得の入り口が必ず見つかります!

研修は学びのきっかけづくりにも有効です!おすすめコース

今回は、業務中のさまざまなきっかけから現役エンジニアがフルスタックなスキルを身につけた事例を紹介しました。現役エンジニアがフルスタックエンジニアを目指すメリットをイメージいただけたでしょうか?

次回は連載のまとめとして、フルスタックエンジニアに求められる「新しい IT サービスを生み出す」方法について考えてみます。

今回の事例では業務中にきっかけを掴んだ話が中心でしたが、実際の業務においてこのようなチャンスがあり、それを逃さず掴める方は多くないかもしれません。

そこで当社では“仮想案件”を題材とした”研修”という2つのきっかけで、無理なくフルスタックなスキルアップができるような研修コンテンツをご案内しています。

「フルスタックエンジニア研修 -ハンズオンで学ぶ3層Webシステム構築編-」

本研修では、個々の現場経験を活かしつつ、3層 Web システムをすべて1人で構築していただきます。

業務経験と新しい技術の繋がりを理解し、他分野への第一歩を踏み出すきっかけとして人気のコースとなっています。

「フルスタックエンジニア研修 -ゼロから見渡す IT サービスの全容編-」

特定の分野に苦手意識を持っていたり、特定の分野しか知識・スキルを持っていない方は、本研修からのご受講で無理なく幅広いスキルに触れることができます。

新たな技術を無理なく学びたいと考えている方は、是非お申込みください!

連載一覧

以下の記事も是非ご覧ください。

第1回 真のフルスタックエンジニアとは。現場が求めるフルスタックエンジニアになろう
第2回 IT サービスの構成を知ろう。フルスタックエンジニアの広いスキルの活かし方
・第3回 現役エンジニアが“フルスタック”を目指すべき理由(本記事)
第4回 世の中のニーズは IT で解決できる!フルスタックな知識を活かして新しいサービスを生み出そう

この記事を書いた人
佐藤 瞭
コムチュア 講師

クラウドインフラの構築から始まり、ビッグデータ分析、RPAによる業務効率化、情報セキュリティと、時代の流れに合わせて多様なITサービス開発の現場に携わってきました。研修では丁寧な解説はもちろん、「学んだ技術が社会でどう役に立っているか」を知ることで、現場で楽しくスキルを活用できるような説明を心がけています。初心者、経験者を問わず、皆様の新たなITへのチャレンジを全力でサポートいたします!

人材開発担当者さま必見!

新入社員向け教育サービスのご紹介

ダウンロードする(無料)