近年、私たちの生活にWebサービスが浸透して、リアルからオンラインでやり取りするケースが増えてきました。食事のネット注文、オンラインで面談、チャットでコミュニケーションなど……、すでにあらゆるシーンでWebを活用しているでしょう。 これらのサービスの作り手が「Webエンジニア」です。Webエンジニアは仕事内容が多岐にわたるため、今回はWebプログラマに焦点を絞って、仕事内容をご紹介します。
Webエンジニアは、Webシステムの設計・開発・運用・保守を行う職業です。Webプログラマは、このうち主に設計・開発を担当します。
「Web」を使った言葉では、WebサイトやWebページがおなじみでしょう。Webプログラマは、パソコン・タブレット・スマートフォンで表示されるさまざまなシステムを取り扱います。
Webシステムの主な開発プロセスには、「ウォーターフォール」「アジャイル」「オフショア」の3つがあり、それぞれ若干の違いはありますが、大まかな流れは同じです。Webプログラマは、これら開発プロセスの各工程を担当します。
クライアントから「どのようなシステムを開発するのか」ヒアリングして仕様をまとめ、予算に応じた人員配置と開発スケジュールを決定します。プロジェクトの全体像を把握してクライアントと向き合う責任がある大事な工程です。そのため、各工程を何度か経験し、プロジェクトの進め方を熟知してから担当することが一般的です。
要件定義でまとめた仕様を設計書に落とし込みます。設計は外部設計と内部設計に分かれており、外部設計では画面遷移やデータ構造を設計し、内部設計ではフローチャートを設計します。プログラミングの経験を重ねて、システムの全体像を把握できるようになってから担当することが多いです。
要求仕様、設計書を元にコードを書いていきます。慣れないうちは、どのようにコードを書けばよいか分からず時間がかかるでしょう。経験を重ねることで効率よくコードを書けるようになるため、一人前になるまでめげずに続けることが大切です。
また、Webプログラマは、ユーザーが目に触れる部分(UI)の開発を行うフロントエンドエンジニアと、サーバーサイドの開発を行うバックエンドエンジニアに分かれます。
開発言語は、フロントエンドエンジニアはHTML・CSS・JavaScript、バックエンドエンジニアは、Java・JavaScript・Ruby・PHP・Pythonなどが主流です。
テストの目的は、システムの正常動作とプログラムの品質を検証することです。システムの動作を検証するブラックボックステストと、プログラム内の分岐処理を検証するホワイトボックステストの2パターンに分かれます。テストで不合格だったプログラムは修正し、すべて合格するまでテストを繰り返します。
テストはすべてのWebプログラマが関わる工程です。何百回とテストを重ねることでコードの全体像が見えるようになり、プログラマとしてレベルアップしていきます。
テストが完了したらユーザー環境にリリースし、運用開始です。システムは一度リリースして終わりではなく、機能改善を繰り返しながらユーザー満足度の向上を目指します。運用・保守工程をサポートチームに引き継ぐまでの間は、開発を担当したWebプログラマが担当することが一般的です。
Webプログラマの働き方は、企業勤めまたはフリーランスのいずれかになります。採用に至るためには、Webプログラマとしてどのようなことが出来るのかを相手にアピールすることが大切。そこで大事になるのが「ポートフォリオ」(成果物)です。
Webプログラマになるには、アピール材料であるポートフォリオを作成することを目標に据えて学習を進めると、実現する可能性が高まります。
Webプログラマ養成の大学や専門学校に入学することで、長期的な視点で学習でき、実習で作成したシステムがそのままポートフォリオになります。資格や就職のサポートがついているケースも多いため、就職しやすいことも特徴です。同じ目標をもつ仲間と過ごすことで、学習のモチベーションも上がることでしょう。
卒業までに数年かかることに加えて通学費用が高額になるため、時間と経済的なゆとりがある人の選択肢になります。
プログラミングスクールへの通学は、短期間でWebプログラマになりたい人の魅力的な実現方法です。数か月単位でWebプログラマに必要なスキルが身に付き、スクールで作成したシステムがそのままポートフォリオとして活かせます。しかし、まったくの未経験で入学すると学習のハードルが高すぎて、挫折するリスクがないとはいえません。
プログラミングスクールでの学習はコードを書くだけでなく、コンピューターサイエンス(数学)、データベース設計、開発環境など多岐にわたります。通いたいスクールではどのようなことを学習するのかあらかじめ確認しておくといいでしょう。
昨今はオンラインの学習環境が豊富です。ポートフォリオ作成にフォーカスして独学で学習を進めても、Webプログラマになれます。独学の最大のメリットは時間を自由に使える点。学習環境や時間に決まりがないため、自分のペースで学習を進めていけるでしょう。半面、自分を律することが出来ないと目標を見失い、「気づいたらあきらめていた」といったことになりかねません。
基本情報処理技術者試験や応用情報処理技術者試験など、資格取得の学習を利用して基礎知識の定着を図るのも有効です。企業へアピールする材料にもなるでしょう。気を付けたいのが、あくまで資格の優先度は低い点。Webプログラマとしてもっとも大事なのはプログラミングスキルを磨くことです。資格の勉強が最優先になり、スキルアップがおろそかになることは避けるようにしましょう。
Webプログラマとしてキャリアを続けるためには、モチベーションの維持が必要です。Webプログラマのやりがいや身につくスキルに魅力を感じられれば、「楽しい!」と感じる環境に身を置くことになり、働く満足感を高めてくれるでしょう。
ここではWebプログラマのやりがいと身につくスキルをご紹介します。
Webプログラマのやりがいは千差万別ですが、多くのWebプログラマが語るのが「世の中に役立つサービスを創る達成感」です。複数人でチームを組んで創ったサービスが誰かの笑顔の役に立てる、そのような瞬間に立ち会えた時には、きっと大きなやりがいを感じるでしょう。
システムをリリースすると、ユーザーから反応が返ってきます。実際に使っているユーザーに出向くこともあれば、口コミやサポートセンターを通じてご意見があることも。「世の中が変わったね」「安定したシステムを作ってくれてありがとう」「業務がスムーズになったよ」など……ユーザーから感謝の言葉を頂戴したならば、さらにモチベーションが上がるでしょう。
Webプログラマは開発プロセスの各フェーズを担当します。Webプログラマは、これらのフェーズでさまざまなスキルが身につきます。
要件定義のフェーズではプロジェクト全体を見渡して、予算、スケジュール、人員を調整することが求められます。いわゆるマネジメントです。さまざまなステークホルダーの利害を考えながらコミュニケーションをとり、経験を重ねることで、マネジメント力が身についていきます。
出来るのか・出来ないのか、アイディアの実現可否が語れるようになります。設計を繰り返すことで、Webシステム完成を逆算して考えられるようになるためです。
システムを完成させるために必要な環境・データ・言語を判断できるスキルが身につきます。
Webプログラマで身につくスキルの代表格です。毎日コードを眺めますので、関わったプログラミング言語に関するスキルは確実に身につきます。
Webプログラマは扱う言語が幅広いケースが多く、また市場のニーズが高いため、市場価値の高いプログラミングスキルを実務を通して身につけていけます。
テスト工程では、ほかのプログラマが書いたコードを検証することも多いです。「読みやすい」「拡張しやすい」と感じるコードもあれば、その反対もあります。テスト工程を繰り返してさまざまなコードに触れることで、システムの品質を落とすコードを見極めるスキルが身につきます。
運用・保守フェーズでは、大小ありますが、必ず課題が発生します。一つひとつの課題に対応していく中でトラブルシューティング力が身につきます。
「好きこそものの上手なれ」とは古来のことわざですが、Webプログラマにも当てはまります。Webプログラマが担当する仕事の中に好きと感じることがあれば、向いているといえるでしょう。
コミュニケーションが好きな人はWebプログラマに向いています。一般的にWebプログラマのキャリアパスは、プログラマを得て、設計・要件定義とクライアントやメンバーとのコミュニケーションが必要な職種へ進むためです。さまざまな人と関わることが好きな人はWebプログラマに向いています。
プログラミングが好きであることの判断の基準は、「システムが実際に動作したことに喜びを感じられること」「不具合を取り除きながら精度を高める過程を楽しめるかどうか」の2点です。
開発業務は休憩を取りながら1日中続きますので、1日約8時間、この2点を続けることに楽しさを感じるならば、Webプログラマに向いています。
Webプログラマは、仕様書、議事録、各種設計書、テストケース、ユーザーマニュアル……などさまざまな資料を作成します。1週間の内、資料作成にプログラミングと同じくらいの時間を費やすこともあることから資料作成が好きな人もWebプログラマに向いているでしょう。
新しいテクノロジーに興味がある人は、業界の最新動向とユーザーのニーズを敏感に察知できるため、Webプログラマに向いています。とくに運用・保守フェーズでは、新しい価値観の元にシステムを改善し続けることが求められますので、好奇心旺盛であることは重要です。
国内のWebプログラマ市場は、供給と需要の差(いわゆる「需給ギャップ」)が拡大する見込みです。今後ますますWebプログラマのニーズが高まると予想されます。各企業は人材確保に注力していて、未経験者も積極的に採用しているケースも少なくありません。
Webエンジニアは、活躍するフィールドも豊富ですので、少しでも興味のある人は、まずは企業の採用情報を確認してみるといいでしょう。