図 3 仕事での生かし方仕事での生かし方 1
アプリ・Web をつくる
スマートフォンのアプリや予約サイトなど、毎日使うサービスをプログラミングで形にする仕事です。情報 I で書く短いプログラムの「条件分岐」や「繰り返し」が、そのままアプリの部品になります。

ひとことで言うと
混んだ駐輪場で、空いている場所を探す
混んだ駐輪場では、端から順に見て、自転車がない場所に止めます。2 台分の場所がいるなら、となりも空いているかを確かめます。予約アプリの中では、この探し方をプログラムで書いて、一瞬で空き時間を見つけています。

01
どんな仕事?: 情報 I の 3 つの形で、アプリが動く
ソフトウェアエンジニアや Web エンジニアは、アプリや Web サイトをプログラムで動かす仕事です。美容院の予約アプリなら、空いている時間を表示し、選ばれた時間を記録し、確認のメールを送るまでを受け持ちます。
どのアプリも、もとをたどると情報 I で学ぶ 3 つの形でできています。上から順に実行する「順次」、条件で道を分ける「分岐」、同じ処理をくり返す「反復」です。これに、値をしまう変数や配列、処理をまとめる関数を組み合わせます。
情報 I では、ほかのサービスの機能を借りる WebAPI や、データベース、ネットワークのしくみも学びます。地図や天気を表示する機能は、WebAPI で外のサービスからデータを受け取ってつくることがよくあります。授業の単元が、仕事の道具箱にそのまま入っています。
授業で書く短いプログラムの形が、アプリの部品そのものです。
図解アプリづくりで使う情報 I・II
- 順次・分岐・反復処理の流れを組み立てる(情報 I)
- 変数・配列予約や在庫の値をしまう(情報 I)
- 関数同じ処理を 1 か所にまとめる(情報 I)
- 探索・整列空き枠を探し、順に並べる(情報 I)
- WebAPI地図や天気を外から借りる(情報 I)
- システムの開発要件を決め、分けてつくる(情報 II)

02
プログラミングが生きる場面: 予約アプリの「空き枠」を探す
美容院の予約アプリを考えます。10:00 から 19:00 までを 30 分ずつに区切ると、1 日の枠は 18 個です。アプリの中では、この 18 個を配列にしまい、空いていれば 0、予約済みなら 1 のように記録します。
空き枠を探す処理は、情報 I の繰り返しと条件分岐そのものです。配列の先頭から 1 つずつ見て、「0 なら画面に表示する」をくり返します。授業で習う、合計や最大値を求めるプログラムと同じ形です。
難しくなるのは、60 分のカットのように 2 枠続けて必要なメニューです。「この枠と次の枠が両方 0」を条件にしないと、途中に予約が入っている時間を案内してしまいます。条件を 1 つ足すかどうかで、アプリの正しさが変わります。
閉店の時刻の扱いも大切です。19:00 に閉まる店で 60 分のメニューなら、最後に選べる開始時刻は 18:00 です。18:30 を表示してしまわないか、境目の時刻で必ず確かめます。
配列・繰り返し・条件分岐の組み合わせで、空き枠の表示ができあがります。
図解60 分のメニューの空き枠を探す(例)
- 1先頭の 10:00 の枠から順に見ていく
- 2その枠と次の枠が両方 0 かを調べる
- 3両方 0 なら、開始時刻の候補に加える
- 4最後の 18:30 の枠は、次の枠がないので外す


03
テストが生きる場面: つなげたときの「ずれ」を見つける
情報 II では、システムを機能ごとに分けてつくり、最後につなげてテストする流れを学びます。分けてつくると、何人もで同時に作業でき、直すときも部品ごとに済みます。ただし、部品どうしの約束がずれていると、つなげたときに思わぬ失敗が起きます。
1999 年 9 月、アメリカ航空宇宙局(NASA)の火星探査機マーズ・クライメート・オービターが、火星に着いたところで失われました。地上のソフトはヤード・ポンド法の単位で値を出し、探査機のソフトはメートル法の単位で受け取っていました。この単位の変換もれで軌道の計算がずれ、探査機は火星に近づきすぎたのです。
調査した委員会は、ソフトを端から端まで通して確かめる検証が足りなかったことも、原因の 1 つに挙げました。予約アプリでも、画面・サーバー・データベースをつないで通しで確かめることが欠かせません。前の節の 18:00 と 18:30 のように、境目の値を選んで確かめるのも、テストでよく使う方法です。
部品をつないで通しで確かめることが、大きな失敗を防ぎます。

04
予約アプリをつくるエンジニアの 1 日(例)
ここでは、美容院や病院向けの予約アプリをつくる会社で働くエンジニアの 1 日の例を紹介します。働き方は、会社やチームによって違います。
朝は、利用者からの問い合わせや不具合の報告を確かめます。「月末の日だけ予約できない」という報告なら、日付をくり返し数える処理の、終わりの条件を疑います。原因が分かったら直し、同じことが起きないかを確かめるテストを足します。
午後は、新しい機能づくりです。「2 人で同じ時刻に予約したい」という要望には、2 人分の席が同じ時刻に空いているかを調べる条件を考えます。仲間とプログラムを読み合い、分かりやすい書き方になっているかも確かめます。
直す・確かめる・つくるをくり返し、アプリを少しずつ良くしていきます。
図解予約アプリをつくるエンジニアの 1 日(例)
- 9:30朝会チームで今日の作業を確かめる
- 10:00不具合の調査月末だけ予約できない原因を探す
- 11:30テストの追加月末や閉店前の境目を確かめる
- 12:30昼休み
- 13:30新しい機能2 人で同じ時刻に予約できるようにする
- 15:30読み合い仲間のプログラムを読んで意見する
- 17:00公開の準備試験用の環境で動きを確かめる

05
向いている人と入り方・その先
高校のうちは、情報 I のプログラミングを、手を動かして学んでください。教科書の例を少し変えて動かし、予想どおりかを確かめると力がつきます。情報 II を選べる学校なら、システムを分けてつくり、テストする流れまで体験できます。
力試しには、高校 3 年生以下が参加できる日本情報オリンピックがあります。予選の参加費は無料です。国家試験では、IPA の IT パスポート試験や基本情報技術者試験を高校生でも受けられます。どちらも、コンピュータを使う CBT 方式です。
大学は、情報工学・情報科学などの情報系の学部・学科が中心です。工学部や理学部、経営系の学部から目指す人もいます。経済産業省が 2019 年に公表した試算では、2030 年に IT 人材が最大で約 79 万人足りなくなるおそれがあるとされました。
動かないプログラムの原因を、一つずつ確かめるのが苦にならない人に向いています。経験を積むと、チームをまとめるリーダーや、何をつくるかを決める企画の仕事へ進む道があります。
授業のプログラムを自分で少し変えてみることが、いちばんの近道です。
図解高校からアプリの仕事への道(例)
- 1高校で学ぶ情報 I・II のプログラミング
- 2力を試す情報オリンピック・国家試験
- 3大学で深めるアルゴリズム・ソフトウェア工学
- 4会社に入るアプリや Web の開発チームへ
- 5専門を広げるリーダーや企画の仕事へ
高校生のうちに試せること
空き枠を探すプログラムを書く
30 分ごとの 18 枠を配列にして、空き(0)と予約済み(1)を並べましょう。繰り返しと条件分岐で空き枠を表示できたら、次は「2 枠続けて空いている」ときだけ表示するように直してみてください。
テストの表をつくって確かめる
空き枠のプログラムが書けたら、10:00・18:00・18:30 の枠を空けたり予約済みにしたりして、表示が正しいかを確かめましょう。試す値と、期待する結果を先に表に書いておくのがこつです。
日本情報オリンピックに挑戦する
高校 3 年生以下が参加できるプログラミングの大会で、予選の参加費は無料です。過去の問題と解説も公開されています。申し込みの時期は公式サイトで確かめ、まずは過去問で練習しましょう。
日本情報オリンピック
「アプリ・Web をつくる」に関連するコミュニティ
研究室・部活・サークルなど、全国の 81 件から探せます。

行動情報学研究室
九州大学(福岡県)
高度ソフトウェア工学・岡田 昌也 准教授

ソフトウェア分析学
岡山大学(岡山県)
工学部 情報・電気・数理データサイエンス系 情報工学コース・ソフトウェア工学・門田 暁人 教授
ソフトウェアの開発・利用・保守のデータを計測・分析し、開発の課題を実証的に解決する。
プログラミング言語研究室
筑波大学(茨城県)
情報メディア・中井 央
鵜川研究室
東京大学(東京都)
情報理工学系研究科創造情報学専攻・プログラミング言語・仮想機械・鵜川 始陽 准教授

ソフトウェア工学・プログラミング言語研究室
九州大学(福岡県)
情報知能工学・亀井 靖高 教授
小林研究室
東京大学(東京都)
情報理工学系研究科コンピュータ科学専攻・プログラミング言語・ソフトウェア検証・小林 直樹 教授
よくある質問
プログラミングが苦手でも、アプリの仕事を目指せますか?
目指せます。多くのエンジニアも、短いプログラムを少しずつ変えて動かすところから始めています。情報 I の順次・分岐・反復が分かれば、アプリの部品の多くは読めるようになります。
授業で使う言語と、仕事で使う言語が違っても大丈夫ですか?
大丈夫です。変数・条件分岐・繰り返し・配列・関数の考え方は、ほとんどの言語に共通です。1 つの言語で考え方を身につければ、ほかの言語も学びやすくなります。
文系に進んでも、アプリの仕事に関われますか?
関われます。何をつくるかを決める企画や、使う人の声を集める仕事もあります。情報 I で学んだプログラムの考え方があると、エンジニアと話が通じやすくなります。


