自分で何かサイトを作りたい!そして一発あてたい!そんな野望を持ってるけど技術を全く持ってない方向けの話。
起業する前に意識すべき5つのポイント。失敗してみて気づいた、とあるスタートアップの反省 - Follow Your Heart
この話とか、根本は起業した本人がエンジニアじゃなくて開発が他の人が主導してたことだと思うのです。自分でビジネスを立ち上げて開発もやる、そういう人こそがこれからが必要で、グロースハックと呼ばれているのが流行っている理由でもあります。
まず始めに、エンジニアとして上達する上で最も大事なことを言います。それは開発を面白くできるか、できないか。面白く思えばどんな時でも開発のことを学びたいと思えるし、継続できます。今回は楽しくプログラミングをしていくために勉強したほうがいいものだけを紹介します。
まずは HTML/CSS/JavaScript
これが基本です。単純にメモ帳を開いて、HTML/CSS/JavaScriptを書くだけでブラウザでその実行結果が見れるので楽しいです。
プログラミング言語のスタートとしてJavaScriptという選択はとても素晴らしいです。変に難しい言語より簡単に実行して結果がみれて書きやすい言語のほうが学ぶというより遊びながら習得できます。
特に以下のキーワードを本なりWebサイトなりで説明できればOK!
- div タグの用途
- id, class を指定して CSS を適用する
- CSS の float の概念
- JavaScript を通じてのプログラミング手法
- jQuery で DOM操作
サーバ側はRubyがおすすめ
HTML/CSS/JavaScript だけでもサービスは作れます。いわゆる静的なサイトです。
さらに、Youtube とか Rakuten とかのオープンなデータを利用して検索するみたいなのはJSONPというのを使えばできます。外部サービスを使ってサービスを創ることに興味があればマッシュアップで検索してみてください。
ただ、独自で以下のような機能を持つサイトを作るには HTML/CSS/JavaScriptだけでは基本的に不可能です。
- ログイン
- ソーシャル、ユーザ同士のシェア
- 課金系
- その他ユーザのデータを扱うサービス
- メールを送る
ユーザが投稿した何かしらの情報をどこかに保存する必要があります。そしてそのデータをとってきたり更新したりする必要があります。そこにはデータベースとサーバサイドプログラミングが必要になってきます。
サイトを公開するにはサーバが必要です。単純なHTML/CSS/JavaScript でもどこかのレンタルサーバかなんかでファイルをアップロードしないと他の人が見れるようにはなりません。ユーザによって内容を出し分けるようなサービスだと、さらにそのサーバの中でプログラムを走らせないといけないのです。
そのサーバの中でプログラムを走らせる言語としてはRubyがおすすめです。この言語は何より思ったものを作りやすいし理解しやすいです。JavaScriptとRubyはプログラミングできるようになっておくといいでしょう。
そしたら Ruby on Rails というWebアプリを作るためのフレームワークの勉強をしましょう。これで上記の機能を実現できるようになります。このフレームワークもかなりわかりやすく、そして高速に作れるように設計されているので楽しく開発ができると思います。
データベースの勉強もちょっとは必要
データベースにデータを保存します。 データベースはやっぱりMySQLが今のところのベストです。理由は知っている人が多い & 書籍もたくさんあるなど。初心者が詰まったらググればたいてい解決できます。
ここらでGit, Github あたりも理解しておこう
だんだんソースコードを書いていると、それらをバージョン管理したり、そのソースを他人と共有したりといったことが出てきます。そこで、Git というものを軽く触っていじれるようになっておく必要があります。ただ、なんか本を買ってガチで勉強するとかそういうのではなく、どうやってコミットしてプッシュしてとかその程度で最初は大丈夫です。
WebアプリはHerokuで公開しよう
Heroku というサービスがあります。これを使うとサーバ側でプログラムを動かすための面倒な設定が全て必要なくなり、作ったものをとりあえず外部公開、ということが簡単にできます。
追加機能やユーザが増えてくると課金しないといけなくなるのですが、最初の内は余裕の無料で使えるのでかなり便利です。
終わりに
ここまでくればもう自分の作りたいWebアプリの基本は出来上がります。 半年もがっつり上記手順を踏んだら、ある程度のサービスはできます。ちまたで出回ってる3日で〜〜系はさすがに無理です。
何より紹介した上記の手順は基本的に「楽しい」ので、それ以降も個人で学習するモチベーションがでます。後は書籍等で次に勉強しなきゃ行けないもの、というのが出てきますので、それをみて自分に必要なものかどうかを見極めて勉強していきましょう。