一般社団法人Pythonエンジニア育成推進協会(以下、当協会)の顧問理事の寺田学です。私は試験の問題策定とコミュニティ連携を行う立場です。先日、とある高校で「職業選択においてどう勉強していくのか」をテーマとした1年生向けの授業が行われました。この授業は、これから高校生自身が進みたい道に進むためにどういった学びが必要なのかを考えるきっかけとして開かれたもので、医者や介護士、美容師、消防士など様々な職業に就いている方々、総勢20~25名ほどが招かれ、それぞれの職業の説明が行われました。私はプログラマという職業を説明してほしいと要請を受けて登壇しました。ここでは、これからプログラマの道を選ぼうとしている方に向けたお話をしてみようと思います。
「プログラマ」に抱く印象
「プログラマ」という仕事はなかなか理解されにくいと感じています。プログラマに対して多くの人が持っているイメージは、コンピュータに向かって何かを打ち込んだり、動作を確認したり……とにかく、ソフトウェアを作ったり、IT技術を支えたりしている人たちなのだろうといった、どこか漠然としたものではないでしょうか。
今回話をした高校生は、日々の生活で様々なテクノロジーを利用するシーンがどの世代よりも多く、一見、ITサービスを作るプログラマは身近な存在のように思えますが、その実態は、ITサービスの成り立ちも含めてプログラマという存在がそもそもよくわからないという印象を持っている人が多かったのではないかと考えています。とはいえ、私が登壇することになった背景には、「プログラマの話を聞いてみたい」というリクエストがあったからであり、リクエストした人にとってプログラマは「IT関連の何かをやっている人」「ゲームを作っている人」というようなざっくりとしたイメージ位はあったのだろうと思います。
Information Technologyとプログラマ
プログラマがどのような役割を担っているのかと言うと、それを理解するにはInformation Technology(IT/情報技術)を大枠でも理解できている必要があります。IT技術とは何かというと、ハードウェアや通信技術をはじめ、ソフトウェアやアプリ、業務システム、AI(人工知能)、自動運転など、幅広い分野が存在しており、ITサービスが広がりを見せる現代においてはそれぞれが各所で重要な要素といえます。
こういった昨今の生活の多くの場面でITが使われていることは、いまの多くの大人にとっては当たり前ですが、高校生以下の子供たちにとっては、なかなか想像しにくい部分があるかもしれません。そこでまず、高校生にとって想像しやすい身近なIT技術の代表例をいくつか挙げてみます。
たとえば、いまや我々の生活に非常に密接な関係を持つスマートフォンやインターネットはもちろん、どこにいても簡単に連絡が取れるLINEは様々なネットワーク技術がフル活用されたものですし、電車の乗り換え案内は要求をサーバに送信することで適切な回答が返されるような仕組みになっています。それ以外にもSuicaやPayPayなどの電子決済、YouTube、ゲーム、通販サイト(EC)などもITであり、それぞれあらゆるIT技術が活用されることで成り立っています。
ただ、IT自体はこれらが広まるそれ以前から存在しています。銀行のシステムや鉄道チケットの購入、運行管理などがそれにあたりますが、これらは様々な情報技術を駆使してできたものであり、そうしたものを実現してきたことによって技術が進化してきました。いま我々の生活の中で便利な生活を支えるツールとして溶け込んでいる技術は、先に挙げたような技術の進化によって存在できているのです。そして、これらのIT技術を支える職種には様々ありますが、その中の一つが「プログラマ」ということになります。
業界・業務で考えるプログラマが担う役割
世の中、特定の業界で働く人もいれば、業界を問わず特定の職種を渡り歩く人もいます。プログラマという仕事を選択するに当たって、どのように考えればいいのかというと、「業界」と「業務(どんな仕事か)」という二つの軸で決めることができます。
業界問わずプログラミングが必要とされる時代
IT業界で考えれば、LINEのようなシステムを作るような企業ではプログラマが中心となりますし、様々な業界に対してシステムの構築を専門とする企業(SIer)でもプログラマが在籍しています。ただ、昨今はITを主軸にしている企業に限らず、旅行などのサービス業や金融、マスメディア、広告代理店をはじめ、どのような業界でもプログラマが必要とされる時代です。たとえば物品販売であればマーケティング戦略を考えるとき、製造業であれば生産工程を考えるとき、製造機械を動かすときなど、様々なシーンでプログラミングが必要とされるタイミングがあります。「プログラマ」と一言で言っても、所属する業界によって考え方が違えば、適切なツールも違うので、興味がある分野にプログラマの仕事がないと思う必要はありません。
プログラマができる範囲は幅広い、何をしたいかを考えよう
狭い意味でのプログラマは、”コードを書いてプログラミングをしている人” ですが、さらに広い意味で見ていくと、詳細設計や全体の設計を司る人とも言えます。とくにそれらの業務はプログラマではない人にとってはハードルが高く、プログラマの協力なしに詳細設計はできません。最近の傾向として、Web系のデザイナであっても、デザインの実現性を高めるためにプログラミングの技術を持っている人が増えています。また、以前であればインフラや基盤の構築時には、ハードウェアやネットワークのセットアップはプログラマの役割ではないと言われていましたが、昨今よく利用されるようになったクラウドリソースの設定にはプログラミング的な要素が入っていますし、ネットワーク設定をするにもプログラミングの記述が使われることがあります。そして、これらを作り上げた後に行われるテストの自動化や効率的なやり方の模索もプログラマの役割の一つとなりつつあります。
このように、プログラマが担う業務を少し考えただけでもこれだけ幅広いものが存在しており、業界によってその業務は多岐にわたります。幅広い業界に対して、幅広い技術、専門的な知識が必要なプログラマの活躍の場はどんどん増えているという状況ですので、プログラマを目指す前には自身がどの業界で働きたいか、そこで何をしたいかを考えてみるといいと思います。
これからプログラマになろうと思っているひとへ
プログラミングをする上で数学や情報工学、物理的な法則は必要な要素だと言われてはいますが、実のところ、得意ではないからという理由でプログラマになることをあきらめる必要はありません。とくに最近では、文章を読める、英語でコミュニケーションができる、チームで協力してプロジェクトを進められるというような、コミュニケーションスキルの高さが求められることが増えており、そういった面で自身の存在価値を高めることができます。もちろんコミュニケーションスキルが低くてもできることはありますが、ある程度プログラミングができる人が、より活躍の場を広げたいと思うのであれば、コミュニケーションスキルを磨くことは重要な時代になったと言えます。それに加え、社会の仕組みをよく知っていれば、相手によりよい提案ができ、よりよいものを作れる可能性もあがりますので、そういった知識も蓄えておくのがおすすめです。
これから高校生には情報科目の授業が追加されることになりますが、高校生に限らず、これまでプログラミングを学んだことがない人、挫折した人たちであっても、これから学ぶ、もしくは学びなおしをすることによって、プログラマという世界に入り、十分に活躍できる可能性はあります。
いろいろなIT技術がある中で、プログラマとしての在り方や使われる技術は業界によって異なりますが、昨今、初学者でも学びやすいと人気を集めているPythonは、比較的多くの業界に広がっており、主にマーケティング戦略やAIなどで活用されるシーンが増えています。もちろん、今の時点ではシステムのすべてがPythonでできているというわけではなく、たとえば銀行のシステムの一部分にPythonが使われていることはあったとしても、そのほとんどは別の技術で作られています。いまさら学びなおしはできないと思っている人は多くいるようですが、ハードルが低い言語から学び始めていくことで新たな世界が開けていくのではないかと思いますので、まずは挑戦してみてほしいと考えています。
[PR]提供:Pythonエンジニア育成推進協会