プログラミングできるようになりたい!Webアプリを作りたい!
って初めて思ったあの頃、、、、
Progateとかドットインストールとかでプログラミングを勉強してみたけど、文字列や数値の説明から始まって面白くなかった思い出があります。
学習を続けていくうちに、ようやくプログラミングの位置付けが理解できるようになったので今回は”まだプログラミングの勉強を始めていない人”向けにプログラミングって何やねんを綴っていきたいと思います。
Webアプリの実体
みなさんが日頃利用するWebアプリやスマホアプリの実体って何だと思いますか?
その実体はただのファイルなんです。
Webアプリもスマホアプリもソフトウェアですよね。
ソフトウェアって、実体はただのファイルなんですよ。
数多くのファイルが集まって、ソフトウェアを構成しています。
ファイルにもいくつかの種類があり、例えば以下のようなものがあります。
ソースファイルは、人間が書いたコンピュータへの命令が記述されたファイルのことです。”プログラミングをする”というのはソースコードを記述してソースファイルを作っていくことを意味しています。
データファイルは、人間がソフトウェアを利用して作成したデータが入っているファイルのことを言います。例えばエクセルやワードで名前をつけて保存をしたとき、その内容がデータファイルとして保存されます。
そのデータファイルをエクセルというソフトウェアから開くと、データファイルの内容に応じたエクセルファイルが表示されます。
設定ファイルは、ソフトウェアの各種設定が保存されているファイルです。例えばスマホアプリを使っていて背景の色を変更したり、英語表示にしたり設定を変更することができますよね?あなたが変更した設定内容は設定ファイルに保存されます。スマホアプリは設定ファイルを読み込んで、あなたの好みの表示をしてくれるわけです。
このように様々なファイルの内容がコンピュータに読み込まれて、一つのソフトウェアとして動作しています。
Webアプリを作るというのは、色々な内容のファイルを作っていくことに他なりません。
ソフトウェアの画面と処理
みなさんが一つのソフトウェアを開発するとき、やることは大きく分けて以下の2つがあります。
画面を作る
ソフトウェアは人間(ユーザ)が使うものなので、人間が操作するための画面(インターフェース)が必要です。ソフトウェアの開発ではユーザが使いやすいインターフェースを作ることが重要になります。WebアプリではHTML/CSSを使ってインターフェースを作っていきます。言い方を変えるとHTMLファイル/CSSファイルを作ってソフトウェアインターフェースを作っていきます。
処理を書く
ユーザが入力した内容に応じて次のページを表示してあげるような機能もソフトウェアの役割の一つです。例えば、入力されたユーザ情報に応じてその人の専用ページを表示してあげたりするのはイメージできますよね?
こういった「こんな入力があったら、こんなページを出力してあげてね」といった処理を書くこともソフトウェア開発の一つです。処理が書かれているソースファイルを作ることでソフトウェアの動きを決めていきます。
プログラミングってなんやねん
では、ソフトウェア開発において、プログラミングとはどの部分を指すのでしょうか。
それは処理を書くという部分になります。
処理というのはコンピュータに対して伝える命令のことです。
「こういう時は、こうして」「このボタンが押されたら、こうして」といったようにユーザの一つ一つの操作に応じた命令を書いていくことが処理を作るということです。
この処理こそがプログラムであり、プログラムを書くことこそがプログラミングです。
コンピュータは決められたルールに基づいて、人間が書いたプログラムを読み込んでいきます。
このルールが”プログラミング言語”なのです。
コンピュータは入力されたデータが数値なのか、文字列なのか判別することができません。(プログラミングでは文字のことを文字列と表現します)なので、人間が「ここに入力されるデータは数値ですよ」「ここは文字列しか入力されませんよ」とかって教えてあげる必要があります。
そのため、どのプログラミング言語でも”データ型”という学習項目があり、プログラマーの必修内容になってるんですね。
Webアプリを作るって
Webアプリを作るには画面を作ること・処理を作ること、の2つを同時並行で進める必要があります。なので、Webアプリを作るぞ!って意気込んで勉強を始めたもののPHPの学習で文字列・数値とかが出てきて面食らっていてはダメなのです。その部分こそがプログラミングであり、処理(コンピュータへの命令)を作る上で必要な知識になってくるのです。
画面周りを作る人をフロントエンドエンジニア、裏側の処理を作る人をバックエンドエンジニア、と表現したりします。それぞれ必要とされるスキルが異なるため、大規模なソフトウェアの開発になると、それぞれ専門のエンジニアが担当を分けて開発を進めます。
自分はユーザが使いやすい画面周りを作るエンジニアになりたいのか、複雑な処理を高速で終わらせるソースコードをかけるエンジニアになりたいのか、やりたいことによって学習内容が変わってきます。
ただ、僕のようにアマチュアとして遊びでアプリ開発を進めている人間としては、フロントエンドもバックエンドも両方を勉強していかないと、Webアプリを完成させることができなかったりします。
オススメとしては、まずはRuby on Rails 速習実践ガイドをやってみることですね。
これをやれば、Webアプリ開発の全体像を掴むことができます。
最初からプログラミング言語の勉強を始めちゃうと、文法の勉強から始まってつまらないこと間違いなしなので、Webアプリの中でプログラミングがどのように使われているのか、を知るためにこの本を始めてみると良いと思います。
コメント