これからプログラミングを学びたい方の多くはプログラマーやITエンジニアとして
仕事をしていきたいという方が大半だと思います。
プログラミングの知識は結構たくさんあってどれから勉強していっていいか
わからないと感じると思います。
プログラミング言語は世の中にたくさんあります。
何から手をつけていいかという質問に対しては興味を持ったものからやってみるのが
一番だと思います。当たり前かもしれませんが、書店やネットっで検索してみて
興味のあるものからやってみる。これが早いです。
ただ、興味があるのかどうかすらもわからないこともあると思います。
そもそもRubyってなに?PHP?Wordpress?みたいに情報がありふれすぎていて
何が何やらわからない状況で、興味があるのかどうかもわかりません。
なので、プログラミングを勉強するにあたって知っておくべきことを説明していきます。
プログラムの役割は2種類
まずは、ざっくりですがプログラムの機能として分けると、
- フロントエンド
- バックエンド
この2つです。
かなり広い意味でジャンル分けするとこれしかありません。
というのも、昔からインターネットの仕組みとして
「クライアントサーバ」モデルが基本になっているからです。
クライアント(PC、スマホ)からサーバにWebページを閲覧するのに
データをもらう側と提供する側という2つの役割をはっきりと分けているからです。
サーバ側で動かすプログラムをバックエンド
ITの知識を身につける上でこのモデルを意識するとわかりやすいです。
今後勉強していくのに、このイメージは持っておくと良いと思います。
Webサイトはテキストデータでできている
フロントエンドを理解する上で知っておきたいことは、
普段ブラウザでWebページを閲覧しているWebサイトが
きれいな装飾をされているのはPC、スマホで動いているブラウザのおかげです。
サーバ側ではHTML言語と呼ばれているメモ帳などでも開けるテキストデータをPCに
インターネットを介して提供しているだけです。
そのHTML文書をみなさんのPCにあるブラウザが解読して表示してくれるため、
きれいなWebページができあがります。
ユーザのPC、スマホ側で動作するようなプログラムを作成したものを
フロントエンドと言います。
CSS、Javascriptについても同様です。CSS、Javascriptも
サーバ側が送信してくる情報はテキストデータです。
それをブラウザがCSS、Javascriptの言語で書かれているプログラムと
認識することでレイアウトを構成したり、動きのあるサイトとして表示してくれます。
主にフロントエンジニアと呼ばれる方々はHTML文書、CSS、Javascriptを
メインにWebサイトのレイアウト構成やサイトに動きをつけたいなどの要望に応える
仕事がメインになります。
フロントエンドに関連した仕事をやっていきたいのであれば、
HTML、CSS、Javascriptを勉強してくのが良いと思います。
ユーザのアクションに答えるのがバックエンド
バックエンドに関して言うと、単純にWebサイトを表示するだけであればサーバは保存している
HTML文書をリクエストがあれば渡すだけになります。
サーバ側はHTML文書をデータとして保存して、
クライアントからリクエストがあればそのHTML文書を送信するだけです。
これだけであればサーバ側の機能はすごくシンプルです。
ですが、最近ではインターネットを使ったサービスは単純にテキスト文書を読む以外にも
ネットでモノを買ったり動画を閲覧したりといろいろなサービスを提供する企業があります。
そういった複雑な機能をサーバがクライアントに提供する機能する必要が出てきました。
こういった機能を持ったWebサイトを「Webアプリケーション」と呼びます。
複雑な機能をシンプルに言うと、
バックエンドが担当する機能としては、イメージとして
これが一番わかりやすいと思います。
ユーザがボタンを押す時というのは、「会員登録する」「ログインする」「商品を購入する」など
何かアクションを起こす動作だからです。
例えば、楽天市場やAmazonであなたも含めて
すべてのユーザの購入履歴をだれしも見ることができたら、大変なことですよね?
購入履歴はアクセスしてくるユーザ個別に管理する必要があり、
ユーザが見たいとアクションを起こす時にそのユーザだけのページを表示しなければなりません。
会員登録はユーザから「この情報で登録して」というアクションになりますし、
ログインするのは「このIDとパスワードでこのサイトにアクセスしたい」というアクションになります。
これらすべてバックエンド処理が必要になり、HTML文書だけでは実現できません。
なぜかと言えば、HTMLはユーザのブラウザ上で動作するので、サーバに保存されているデータについての
アクセスが基本的にはできない仕組みになっているからです。
バックエンドについては、プログラミング言語は様々なものがあります。
PHP、Ruby、Python、Java、など
それぞれ特徴もありますが、基本的にはバックエンドのシステムを作っていくことに変わりはないので、
どれで組んでいっても同様のものになります。
プログラミング言語の選択は興味があるものからやってみるのが一番早いです。
筆者のおすすめとしてはPHPが良いと思います。
というのも、WebサイトをWordpressというシステムで作られているところも多く、
WordpressはPHPを元に作られているからです。
また、IT業界では「オープンソース」という考え方があり、
みんなが使うであろう機能をまとめて世の中で共有されています。
そういった機能をまとめられたものを「ライブラリ」といいます。
このライブラリがPHPは特に豊富というのも魅力の一つです。
最近では、バックエンドのシステムを開発しやすくするために、
ライブラリをまとめてWebアプリケーションを作りやすくしたものを
「フレームワーク」と言います。
このフレームワークもPHPは充実しているので、結構広く使えるプログラミング言語だと感じます。
まとめ
最後にまとめると、以下のようになります。
・バックエンドの仕事ならPHPがおすすめ
今回はバックエンドに関してはプログラミングのみ限定した話しにしていますが、
細かく言えばバックエンドはデータを保存するデータベースやサーバの設定など
この領域の仕事になったりします。
ちなみにですが、筆者はバックエンドのエンジニアとして仕事をしております。
弊社では面接とともに希望があれば問題集をお渡ししてチャレンジしてもらって、
その解答をご提出いただくことでアピールポイントとしていただけるような試みも行っております。
採用に関するお問い合わせの際に問題集にチャレンジしたい方は
その旨を人事にお伝え下さい。