2018-10-30に更新

WEBサービスを作りたい人への最初の1歩の勉強方法アドバイス

発端

先日プログラミング等でWEBサービスを作りたいのだがどうすればよいか、という問い合わせが来た。

Twitterの奥深く、普段誰も訪れないような僕のアカウントのところまでどうやってたどり着いたかは謎だったが、一応色々考えつつどうやって進めたり勉強したりすればよいかを回答してみた。せっかくなのでその回答を当記事としてまとめてみた。

前提

  • WEBサービスの開発を全くやったことのない方が対象
  • デザインの方をメインでやりつつ開発したいらしい
  • 僕はWEBエンジニアなのでデザイナーではない。ただ、一人で開発することが多く一応フルスタックエンジニアとしてやっているので、デザインやフロントの最低限のことくらいは分かるのではないかと思うのでそれくらいの人によるアドバイス。
  • 細かい話をしすぎても役に立たなかったり、初心者ということで意味が分からなくて混乱してやる気を失ってもだめなので、最初の1歩というところに特化
  • 上記全部にあてはまる人のみなので対象となる人は少ないかも
  • ブログなのでなるべく分かりやすくするため推敲済
  • 全て僕の想像なので、最終的には各々自分で決めるべき

返答

ベースとなる考え方

  • 勉強だけよりは、何かを作りながら、わからない所を調べていく方が実践的な勉強になる
  • でも最近は開発に必要な基礎を勉強できるサービスも増えているので、完全にゼロで迷いながら進むよりも最初だけはそのあたりを参考にしてみた方が効率が良いかもしれない

最近周りでProgateがめちゃくちゃ流行っているように思う。プログラミングを勉強している人はみんなProgateをやっているんじゃないかと思うくらいProgateという文字をしょっちゅう見る。

ちらっと調べてみたが、無料プランで結構試せるみたいだし、とりあえず最初の勉強の仕方に悩んだらまずProgateの無料プランを試してみてから考えても良いんじゃないかという気がする。なので参考にProgateは教えておいた。

ただ、特にがっつりおすすめしているわけではない。

というのも、僕自身が古い人間で、当時はわからないことがあったら検索しつつ試行錯誤して時間をかけて、迷いながらも熱中しつつ結果として勝手に学んでいて色々出来るようになったので、その方法が一番実践的ではあると思う。

ただし、あくまでそれは自分の好きな形なので、世の中すべての人にそんな非効率かもしれない方法をおすすめするわけにはいかない。最初から正しいか間違ってるかわからない方法で時間をかけて試行錯誤させてしまうのはとても無駄で可哀想。

そのため0からでもなんとなく概要が分かる、そんなところとしてProgateを教えた。無料コースならそんなに時間もかからないと思うので、実際にやってみてその後の進め方はまた考える形で良いと思う。
それに、「Progateで○ヶ月勉強してサービスリリースしました」みたいな人を最近良く見かける。ちゃんと学習意欲がある人はそれで作れるっぽい。

ただ、あまりハマってやりすぎるのは良くない。Progateをやっている人たちの中には、何も開発せずに無意味に何周もしてるという人もいる。それはもう覚えたことを活かすことでなく、勉強することがメインになってしまっている。それで満足であれば問題ないが、自分で開発したい、というところが目標であれば決して良いことではない。

なので最初に書いたとおり、まずはざっと概要を教えてくれるところで勉強してみて、あとは実際に何かを作りながら技術を伸ばすのがベストな形だと思う。

実際に勉強する内容と優先度

上から順に優先度が高いものとなる。

HTML&CSS

WEBサービスを作るなら必須のため特筆するところはない。

JavaScript

普通のWEBエンジニアとして開発したいということであれば違うが、今回はデザインをメインでやりたいということだったのでJavaScriptを次点とした。
ブラウザ上で色々動かしたりするのに使うので、最近はWEBデザインをやるならほぼ必須だろうと思う。(とはいえガッツリプログラムを書けなきゃいけないというわけでもないので、とりあえずは概要を知っておくだけでも良いと思う)

ただ、最近はFirebase等もあり、プログラム言語としてはこれだけでもデザイナーさんがWEBサービス全部作れてしまったりもするのですごい。多少深く勉強しても良いと思う。

jQuery

たまたま今回JavaScriptを2番めにしたので、その流れで3番めになっているだけ。
とはいえデザイナーさんでjQueryを使っている人はまだ多いのではないかとも思う。
プログラムを組むというよりは、既にあるライブラリを導入したり改造したりがメインとは思う。

PHP

レンタルサーバーなどで簡単にWEBサービスのプログラムを組むことができる、一番簡単なもの。
(ユーザーや投稿データを保存したりするのに使う)

今回の話がデザイナーでなくエンジニアということであれば、JavaScriptの代わりにこちらが一番だったと思う。
ちゃんとよく分かってなくてもリリースできるので。
(ただしエンジニアの場合であれば個人的にはちゃんと勉強して色々理解したうえでリリースして欲しいのでフレームワークとか使ってほしい)

Ruby, Ruby on Rails

Rubyは役割としてはPHPと同じだが、よくあるレンタルサーバーでは使えない。
でもRuby on Railsというフレームワークのセットで非常に開発しやすくなるので、一人でシステムを高速で作る場合に非常に人気があり、
スタートアップの開発などでも非常によく使われている印象がある。
(PHPの場合はLaravel, CakePHP等のフレームワークがある)

ただ、WEBデザインメインだとフレームワークまで使う必要があるのか? という感じ。
敷居も高く勉強に時間もかかるので、優先的にやるのはおすすめしない。

とはいえ、サーバー側も必要且つリリース環境の用意も可能だったらとりあえずこれで良さそう。
PHPのフレームワークに比べ、ワンセットになっている感が恐らく初心者には分かりやすいと思う。

優先度まとめ

何にしろまずはHTML&CSS優先的に。そして、その後ちらっとJavaScript。
あとはどういったサービスを作るかによって変わってくるのでその段階で何を覚えるか決める。
勉強するぞ、という段階では決めづらい。

初期の開発と運用のためのおまけの補足

何かサービスを作っても基本的には誰も人が来ないので、どうやって人を集めるかはよく考えておく必要がある。
例えばTwitterを使った方法で基本的なものでは下記のようなものがある。

  • 開発中の独り言をつぶやくと、アドバイスがもらえたり、徐々にいつの間にか広まったりしてサービス開始時に有利になりやすい
  • 開発してリリース後、サービスを利用したりテストしてくれたりする人が増え、成長しやすい
  • もしフォロワーさんの興味、年代など、共通な属性が見られる場合、そのへんをターゲットにしたサービスにすることでヒットを狙いやすい

ただしフォロワーが多い人向けなので、フォロワーが少ない人は別の方法を模索するか、リリースに向けて増やしておく必要がある。
(大量購入などは無意味なのでちゃんと普通に増やす。仲の良いフォロワーさんが少ない場合もあまり意味ない)

まとめ

とりあえず最初の一歩に特化して書いた。実際にきちんと勉強できるか、リリースしてうまくいくかは全て本人次第。
基本的にはうまくいかないので、ひたすら継続し、体験したことからあらゆることを学習していくことが重要。


だら@Crieit開発者

Crieitの開発者です。 主にLAMPで開発しているWebエンジニアです(在宅)。大体10年程。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel5, CakePHP3, JavaScript, RoR 趣味:Elixir, Phoenix, Node, Nuxt, Express, Vue等色々

Crieitはαバージョンで開発中です。進捗は公式Twitterアカウントをフォローして確認してください。 興味がある方は是非記事の投稿もお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
関連記事

コメント