はじめに
テレビや雑誌、様々なメディアで注目されている「プログラミング」。
その背景には、これまでITとは関係なかった産業もインターネットとの繋がりが強くなったことにあります。
実際に身近な産業でインターネットが導入されている事例を見てみると、コンビニでは、お客さんの購買履歴などのビッグデータを活用し、「この商品はリピートされやすい」といった分析をしたり、とあるコーヒースタンドでは、アプリからコーヒーの注文・決済ができ、店頭で待たずに受け取れる新しいサービスを提供したりしています。
挙げればキリがありませんが、あらゆる領域とインターネットが繋がっているのは間違いないでしょう。
このようなインターネットと繋がったシステムを構築するためには「プログラミング」の技術が必要となります。
そして、これから起業を目指す人、すでに起業している人は会社の舵をとるためにもこういった技術を理解しておかなければなりません。
この記事では、自身で技術を使いこなさなくても、新技術の導入可否を検討したり、サービスの方向性についてエンジニアと話したりするために、最低限知っておきたいプログラミングの基礎について説明します。
プログラミングとは
ご存知の通り「IT」とは、インフォメーションテクノロジーの略称で、その技術の根幹はサーバーやストレージといったコンピュータ機器です。
そしてプログラミングとは、そのコンピュータたちに命令を出すための言語を記述することです。
プログラマーはこの言語を使いこなして、日々進化するITをビジネスに取り入れています。普段利用しているスマホアプリや業務用ソフトウェアはそのプログラムで構成されているので、いかに多くの場面で活用されているかが分かるはずです。
なぜ起業家にプログラミングが必要なのか
一つのWebサービスを切り取ってみた時にフェーズを3分割することができます。
・そのWebサービスを使うことができる
・そのWebサービスの裏側の仕組みが分かる
・そのWebサービスを開発することができる
1つ目の「使うことができる」は携帯電話、スマートフォンの登場によって誰でも可能になりました。しかし、2つ目の「裏側の仕組みが分かる」は、そのWebサービスをよく使っていたとしても理解している人はほとんどいないはずです。「こんな技術が使われていて、こうやって作られたはずだ」とイメージできる人は多くいないでしょう。3つ目の「開発することができる」は、現在で言うエンジニアの役割になりますね。
起業家自身が3つ目にあたる開発スキルを持っておく必要はありませんが、2つ目の「裏側の仕組みが分かる」という項目はクリアする必要があるでしょう。
なぜなら、経営者は、
常に会社や事業の方向性を意思決定しなければならないからです。
どれくらいの期間でどんなサービスを作るのか、どれほど売上が上がるかの予想しなければなりません。つまり、事業を作る前提として、一つのWebサービスがどうやって作られているのか、プログラミングを使うと何ができるのか知っておくことでより明確に先を見通すことができるのです。
以下では、重要なプログラミングに関する知識とそれを学習することのメリットについて紹介します。
基本的なプログラミングの知識
1. フロントエンドの知識
Webページを作成するときにはフロントエンド(HTMLとCSS)の知識は必須です。
なぜHTMLとCSSが同時に語られることが多いかというと、どちらか一方では実用性に欠けるからです。
そして、ある程度サイトが形になったら次に理解しておきたいのが「JavaScript」です。
実際にサイトイメージを見ながらHTMLとCSS、JavaScriptの役割について理解しましょう。
・HTML
HTMLはWebページの要素を作ります。ブラウザで開くとタブ上に表示されるタイトルをつけたり、サイト上の文章を作ったり、デザインをまとめたCSSファイルを置くなどWebページを作る上でHTMLファイルが必要不可欠です。
文字、画像、ボタンなどそのページのコンテンツとなる重要な要素の構築を担っています。
・CSS
HTMLファイルだけではただの要素の羅列に過ぎず、Webページと呼ぶには不十分です。そこで登場するのがCSSです。
CSSは、HTMLで作られた要素を見やすいようにきれいに配置して装飾します。
例えば、各要素を敷き詰めるレイアウトにしたり、背景色をつけたり、マウスオーバーしたら別のデザインになるなど豊かな表現を作ることができます。
このようにHTMLとCSSを作りこむことで初めてWebページが出来上がります。
・JavaScript
JavaScriptを使うと、郵便番号を入力すると自動で住所を入力する機能をつけたり、ECサイトでよく見るセールのカウントダウンを表示することができます。
つまり、Webサイト上に動きをもたらし表現の幅を広げることができるのです。
例えば、Googleのページを読み込むと検索フォームに自動でカーソルが出現しますが、この表現もJavaScriptで行っています。
初めて訪れたユーザーにもWebサービスをストレスなく利用してもらうためには、JavaScriptを使うことが必須になるでしょう。
2. サーバーサイドの知識
Webサービスなど、動くものを作ろうと思ったら、まずは裏側のシステムを作らなければなりません。
裏側のシステムを作るプログラミング言語は多く存在しますが、比較的学習ハードルの低いPHPやRubyという言語を使うと良いでしょう。
今回は、初心者でも形にしやすくまた、多くのサービスで使用されている
Rubyについて紹介します。
・Ruby/Ruby on Rails
プログラミング言語のRubyを使っている企業の多くは、Ruby on Railsというフレームワークを利用しています。他のプログラミング言語に比べて、Rubyは短く記述できる非常に機能的な言語で、より短期間でWebサービスを形にすることができます。
その特性から、Webアプリケーションの開発に多く利用されていて、SNSから求人サイトまで多岐に渡るサービスがRubyで構築されています。冒頭でもふれたように、インターネットサービスやモバイルアプリケーションはこれからの時代とても重要になってきています。
実際、Rubyで開発されているサービスとして
クラウドワークス、Wantedly、クックパッド、Airbnbなどが挙げられます。
ユーザー側がますます便利になっていく一方で、 サービス提供側の非エンジニアにとっては、ビジネススキームやその管理は複雑化し、把握し辛くなってきています。
そのため、今後のモバイルのトレンドを加味したビジネスの流れについていくためには、Rubyの基礎や制作工程などをある程度頭に入れておくことをおすすめします。
3. データベース
情報化がこれまでになく加速している昨今。
ビッグデータやIoT技術の革新により、データベーステクノロジーもより先進的なモデルに変わってきています。今までは、エクセルでも管理できるような縦軸と横軸のいわゆるテーブル型のデータベースで、顧客情報や社内の情報を管理していました。
しかし、マシンデータの活用やビッグデータ解析が可能になった今では、もはや人間では処理できないほどに散らばった情報を、瞬時に収集・分析して、データベースとして活用しています。これにより、どのような情報でもビジネスを合理化させるためのヒントを生む「資源」としての価値が付いたのです。
これからはビジネスを行う上で、どのような情報が生まれて、それをどうデータベースに取り込み活用するか、常に考えておく必要があります。そのためにも、早い段階で、基本的な知識を身につけておくことが大切です。
まずは、世界中で最も利用されている「
MySQL」を使い慣れるところから始めると良いでしょう。
MySQLを使ってデータベースの扱い方が理解できたら、小規模のアプリケーションに向いている「SQLite」や豊富な機能を利用できる「PostgreSQL」を検討してみてはいかがでしょうか。
セキュリティ
セキュリティは、いつの時代でも注目されていましたが、クラウド技術の利用が盛んになった今、改めて重要視されています。特に、日本の企業は世界の企業に比べてセキュリティ対策が甘いといわれており、ビジネスを展開していく上で大きな課題とされております。
個人情報の流出事件が起きてしまうと、会社としての存続が危ぶまれる程のダメージを負うこともあります。目には見えない部分なので、ないがしろになりがちですが、知識として身につけ、常に頭の片隅に置いておくことが、リスクマネジメントの観点からも有効です。
以下では、代表的な攻撃手段を紹介します。手口を理解し、被害を未然に防ぐための対策を取りましょう。
・SQLインジェクション
不正なSQL言語を実行することで、データベースを攻撃します。
SNSやECサイトといったWebサービスで入力された名前や年齢、住所などの情報が蓄積されたデータベースから、個人情報を抜き取ることが目的になります。
データベースの中身をSQL言語を使って「ECサイトの中からセール品だけを取り出したい」という命令をするとします。この命令自体は普通なので、セール品の情報だけ抽出し、結果が返されるのですが、この流れを利用し悪質なSQL言語で「セール品の情報と会員情報を取り出したい」と命令することによって、個人情報を抜き取るのです。
対策としてSQL言語を実行されないように「’」を「”」、「\」を「\\」のように特殊文字を変換する必要があります。
・XSS(クロスサイトスクリプティング)
XSSは、データベースではなくWebサイト上に悪質なスクリプトを埋め込む攻撃です。
スクリプトを埋め込むことで、訪問者のクッキー情報を盗み取ったり、個人情報を入手したりすることが目的です。
対策としては、「&」「<」「>」「”」「’」などといった特殊文字をHTML要素として認識しない処理をしたり、<script></script>要素の内容を動的に生成しない処理を行う必要があります。
まとめ
プログラムと一口に言っても、いろいろな用途で利用されるため、その種類も豊富にあります。
今回はその中でも、今後、重要性が増していく可能性が高いプログラミング技術を紹介しました。非エンジニアの起業家がプログラミング技術について知ることは、新技術の導入可否を判断したり、サービスの方向性についてエンジニアと話したりする際に役立つだけでなく、より職域が広がるため、ビジネスを行う上でも強力なアドバンテージになります。
新規事業や新規サービスを立ち上げ、ビジネスを拡大していく上で、最低限知っておきたい内容です。ぜひ理解を深めていきましょう。

・著者紹介
執筆:TechAcademyマガジン 編集長 小嶋 大貴
・メディア紹介
オンラインのプログラミングスクールTechAcademyが運営しているTechAcademyマガジンでは、EdTech(エドテック)を切り口に、プログラミングやデザインなどの最新トレンド、IT教育の関連情報を紹介するWebメディアです。IT業界の第一線で活躍する方のインタビューなどもご覧になれます。