こんにちは、大学生プログラマーのだいきです。
プログラミングをこれから学ぼうと考えている人なら、一度は何時間である程度商品を作ることができるのだろうかと思ったことがあるのでないでしょうか。
そこで今回、プログラミングである程度のサービスを作るまでに何時間ほど何を勉強すれすれば良いのかについて、経験をもとにお話ししていこうと思います。
この記事を読むと以下のことがわかります。
まずは、軽く自己紹介をさせていただきます。僕は、関西にある大学の経営学部生で、社会や国語が得意なド文系で、大学3年生までプログラミングを一切したことがありませんでした。そんな僕が今では、ITのベンチャー企業で技術責任者や「Beyonet-Task」のプロダクトマネージャーをつとめさせていただいています。
ではなぜ、プログラミング初心者がここまでプログラミングでサービスを作れるようになったのかについて説明させていただきます。結論から言いますと、他の誰よりもプログラミングを長時間勉強したからです。
本当にこれだけです。努力をし続けたから、プログラミングが少しだけできるようになりました。経験上、1000時間勉強すれば、約9割の人はプログラミングでサービスをリリースすることできるようになります。
しかし、1000時間勉強できる人はかなり少なく、1000時間勉強する前に挫折してしまうのも事実です。もし、100人プログラミングを勉強し始めたら、その中の1人ぐらいしか1000時間勉強できる人がいないのです。
逆言えば、1000時間勉強することができたならば、100人の中の1人なのです。もし、1000時間プログラミングの勉強をすることができれば、あなたは本当にすごい人です。というのも、人生で100人中1位をとる経験は滅多にないからです。また、これだけの人が挫折してしまうものだからこそ、プログラマーに価値があるのです。
ぜひ、1000時間勉強して、自分の市場価値を高めていきましょう。
今回は、Webサービスを作る前提で話を進めていきます。
まず、Webサービスで必要になる言語はHTML,CSS,JavaScript,Ruby(or PHP)の4つです。
HTMLとは、ウェブページの土台を作るための言語です。
例えば、ウェブページに文字などが表示されているのは、この言語で表現されています。しかし、HTMLではウェブページの土台は作れますが、色や形は指定することができないため、すごく味気ないページしか作れません。
そのため、Wordのようなページになってしまいます。
CSSは、HTMLで作られたウェブページに様々な色や形を与えることができる言語です。
例えば、背景色を青くしたり、写真の大きさを調整したり、文字の色や要素のなどを調整したりすることができます。これにより、HTMLで作られた味気ないウェブページを、おしゃれなウェブページへ変化させることができるようになります。
つまり、WordのようなウェブページからPowerPointみたいなウェブページへ変更させることができるのです。
JavaScriptは、HTMLとCSSによって作られたウェブページに動きをつけたり、非同期通信を可能にしたりすることができる言語です。
これにより、あるボタンを押すと、文字が表示されたり、文字が非表示になったりすることができるようになります。他にも、入力された文字をリアルタイムでカウントしてくれたり、何か動きを与えたりすることができます。
この機能は、PowerPointで例えると、アニメーションに近い機能です。
Ruby(PHP)は、ウェブページに様々な機能を与える時に使われる機能です。例えば、ブログ機能を構築したり、カテゴリー機能を構築したりするときは、この言語を使って、機能を作っていくのです。
Rubyでは、Railsというフレームワークを使うと、Webアプリケーションを作るのが楽になるので、ぜひ使いましょう。
Railsについて詳しく知りたい方は、「【初心者向け】Ruby on Railsの特徴とは?丸ごと理解」を読むと理解することができます。
また、PHPとRubyの違いを知りたい人は、「【初心者向け】RubyとPHPの違いを徹底比較 」を読みましょう。
以上であげた言語にどれだけ時間を割けばいいのかについて解説していきたいと思います。
まずは、
HTML・CSSを50時間
JavaScriptを30時間
Ruby(PHP)を170時間
ほど勉強しまししょう。
主に、Progateやドットインストールなどでコースに沿って勉強していきましょう。できれば、各コースを3週勉強するといいでしょう。
300時間ほど勉強すると、ある程度はプログラミングができる状態になっているので、次は実戦で勉強していくことが必要になります。
次は、ホームページを模写していきましょう。最初はかなり大変かもしれませんが、ホームページを5つほど模写する頃には、フリーランスでコーディング依頼をこなすことができるまでに成長しています。
基準としては、PC、スマホ対応のトップページを約6時間でできるようになると一人前だと言うことができます。トップページ以外ならば、PC、スマホ対応のページを3時間以内が目安です。
このランクになるには、少なくても250時間はかかるのではないかと思います。とりあえず、ホームページを模写して、技術力を確実にあげていきましょう。
しかし、ホームページを模写しても、Ruby(Rails)などの技術は上がらないので、次はRuby(Rails)の技術をあげていきましょう。
次は、Webアプリケーションを模写していきましょう。最初模写するサイトは、TwitterやFacebookなどがオススメです。他には、自分が模写したいWebアプリケーションを作っていきましょう。
おそらく、ある程度ページを作れても、機能の実装の仕方がわからない箇所がたくさんあると思いますが、機能を細分化して考えたり、グーグルで調べたりするとなんとか解決することがほとんどです。
もし、30分考えてもわからない場合は、他のプログラマーに聞くか、その機能を実装せずに置いておきましょう。というのも、分からないことをいくら考えても、急に分かることがない上に、時間がもったいないからです。
しかし、プログラミング知識が付いてくると、その機能の実装のために必要な知識がないはずなのに、なぜか簡単に実装できることが多々あります。実際、僕もこのような経験を山のようにしてきていますので、自信を持ってわからない箇所は置いておいて、未来の自分に任せましょう。
他にも、DBの設計などは複数のDBの本を読んで、DBを実際に作って、失敗して、DBの本を読んで、DBを実際に作って、失敗すると言う行動を3回行うと、かなりいい感じのDBを設計することができるようになります。まずは、失敗して、いっぱい学びましょう。
とりあえずは、Webアプリケーションの模写には500時間使いましょう。500時間する頃には、かなりプログラミングの知識がつき、脱初心者になっているでしょう。
プログラミング初心者はとりあえず1000時間はコードを書き続け、技術力を上げていくことが大切になります。そのため、この記事を読み終わったら、早速プログラミングを勉強して、実際にコードを打っていきましょう。
もし、1000時間プログラミングを続けられたら、あなたは駆け出しプログラマーですが、おそらく何十年も食には困らず、平均年収よりも高い給与で働くことができるでしょう。
また、自社サービスを開発して、誰にも仕事を決められず、気ままに仕事をして、生きていくこともできるでしょう。ぜひ、今後の人生のためにプログラミングを勉強しておきましょう。
以上、だいきでした。