はじめまして。
暇人の大学生です。大学では経営やマーケティングの勉強をしていますが、今は4年なので授業もなく、「卒論やりたくねー」と思いながらダラダラしています。
普段はnoteの方でこんな暇つぶしをしています。
なぜプログラミングを始めようと思ったか。「起業したい」「アプリを作りたい」「エンジニアになりたい」などなど、プログラミングを始める理由はいろいろありますが、自分にはそんな大した理由はありません。
**「暇だから」**です。それだけ。
時間はあるのにお金がない...とりあえずパソコンは持っていたので、やってみることにしました。
そんなめちゃくちゃ意識の低いスタートをきったプログラミングですが、ここまでで「やっと」100時間達成しました。そして今回、100時間達成を記念しこのNOTEの執筆を決意。
「100時間しかやってないのかよ」そんな声が聞こえてきます。普通の人なら100時間勉強するなら1ヶ月あれば十分でしょう。しかし、僕は半年かかりました。もう1度言います。半年です。
注意してほしいのは、プログラミングを習得するのに半年かかったのではなく、プログラミングの勉強を100時間するのに半年かかりました。
そんな半年の記録をこの度、本邦初公開!それではどうぞ!
#1.ひたすら○○を読む
###どうやって勉強するか?
受験勉強、資格勉強などまず悩むのがどう勉強を進めていくか。受験なら塾に通ったり参考書を買ってり、資格なら〇原やユ〇キャンなどなど。
しかし、自分にはひとつの大きな制約が。
「金がない」
なのでプログラミングスクールに通うなどもってのほか。書籍を買うのも厳しいです。となると無料で勉強を進めていくほかありません。もともとかなりケチなので性格に合っているかも。
無料で学べるいい方法を探していると、こんなものを見つけました。
「とほほのWWW入門」
調べてみると1996年から存在するホームページ作成に関する情報を掲載しているサイトらしいです。
何すればいいかわからないので、とりあえずひろゆき氏の言葉通り、「とほほのWWW入門」を読んでみることに。
まずはWebページ作成入門から。パソコンのメモ帳を開き書いてあるように進めます。
文字をブラウザに表示、次は大文字に、斜体になどなどWebページ作成入門はつまずくことなく完遂しました。続いてはHTMLへ進みます。
ここからでした。Webページ作成入門とは違い、HTMLはわからない単語ラッシュ。わからない単語を調べての繰り返しです。そして気づいたころにはタブ渋滞が発生。
これは誰でも通る道なのか。調べまくりながらなんとかHTMLの項目も読み終えました。「Webサイトってこんな感じで作ってるのか」という基礎中の基礎が理解できた気がします。
(ここまで合計25時間)
#2.どの言語にするか
###何を基準に決めるのか?
プログラミング言語ってたくさんあるっぽい。
少し聞いたことがあるものから、なんだこれみたいなものまで。こんなにたくさんあったら逆にどれを選んでいいのかわかりません。試しにネットで**「プログラミング言語 おすすめ」**と検索してみると、テッ〇キャンプというサイトにランキングが載っていました。
1位:Python.
2位:JavaScript.
3位:Ruby.
4位:Java.
5位:Swift.
6位:Go.
7位:C#
8位:TypeScript.
9位:PHP
10位:Kotlin
パイソン?ルビー?ゴー?ぜんぜんわからん。どれにすりゃいいんだ。なんか言語ごとにできることが分かれてるみたいということはわかりました。かといってプログラミングで作りたいものとかやりたいこととかあるわけでもない。
ひろゆきに聞いてみるか。ってことで切り抜き動画を探してみると出てきました。
ひろゆきのおすすめはPHPらしい。PHPについて調べてみるとWebの開発に特化した言語という情報が出てきました。覚えやすいという情報も出てきたのでとりあえずPHPの勉強を進めてみます。
「これがやりたい」という明確な目的がないので、とりあえず**「やりやすい」**を優先してPHPに決めました。
#3.PHPをやっていく〜
###自分に合う学習方法とは?
「とほほのWWW入門」を読み進めてきましたが、正直飽きた。なので少し勉強法を変え動画で勉強してみることに。YouTubeにもプログラミング解説の動画たくさんあるんですね。
「PHP 初心者」とかで検索してみると結構出てきます。
わかりやすそうな動画がけっこうあるので迷います。結局この動画を見て進めていくことに。理由は一本の動画にまとまっていて見やすみから。
4時間!?気が遠くなりそうです。しかし、この動画意外と見やすく、サクサク進められます。初めの開発環境の構築から丁寧に説明してくれるため、とてもわかりやすい。4時間はあっという間に過ぎ、動画を止めたり、調べながら進めていたので8時間くらいかかりました、、
とりあえずPHPの基礎の部分を理解することができました。「とほほのWWW入門」をそのまま読み進めていっても良かったのですが、気分転換で「YouTubeの動画」での勉強に切り替えたのがよかったかな。人によって好きな勉強法はありますが、飽きないようにするのは大切かもですね。
(ここまで合計44時間)
#4.勉強したことを形にしてみる
###どうやってモチベーションを維持するか?
コードを書いていること自体がめちゃくちゃ好きならいいですが、僕はそんなオタク(いい意味で)ではありません。なのでプログラミングをしているだけだとどうしても飽きてしまいます。勉強するにも何か目的があった方がやりやすそうです。
大学受験の目的は志望校合格、資格勉強の目的は資格取得など勉強にはだいたい目的があります。(勉強自体が好きでやる人もいます)
では、プログラミングの勉強の目的はなんだろう?僕が思い浮かんだのは、アプリやサイトの作成でした。「みんなどんなもの作ってるんだろう」と調べてみるとある言葉が出てきました。
個人開発
企業ではなく、一個人がアプリやサイトを作ることを個人開発というらしいです。Twitterで有名な質問箱こと**「Peing」**が個人開発だったなんて知りませんでした。個人開発でこんな有名なサービスも作れるなんてめちゃ夢がある。ここからどんどん個人開発について調べていきました。
面白いアプリやwebサービスがあり、見ているとだんだん自分も作ってみたくなります。これからは技術ブログや動画で勉強するのではなく、何かを作りながら勉強する方が楽しそうと思い、個人開発に挑戦してみることを決意。
#5.初めてのWebアプリ作りに挑戦
先に成果物からお見せすると、**「18きっぱー脳」**というとても簡単なWebアプリを作りました。
機能はフォームに金額を入力すると、18きっぷ何回分に相当する金額かを表示してくれるというシンプルないものです。技術としては、入力された数字を青春18きっぷ1回分の値段2410円で割っているだけです。
自分でも思いますが、とても意味のわからないWebアプリです。18きっぱー(青春18きっぷでの旅行が好きな人)がお金を無駄遣いせず、18きっぷだけにお金を使えるような節約ツールを作ったつもりだったのですが。
初めてのWebアプリということで、まずは形にできたというだけでも大きな収穫だったと思います。このWebアプリ作成にはおよそ10時間かかりました。
このアプリ、案の定全く使ってもらえませんでした。少しでも使ってもらえるものを作りたいという思いのもと次なる個人開発へ挑みます。
(ここまで合計54時間)
#6.少し難易度の高いサイトの作成
###アプリやサイトの良いアイデアとは?
記念すべき第1作目のWebアプリは全く使ってもらえることなく、終了しました。2作目はどんなものにするか慎重に考えなければいけない。そこで、個人開発をしている方の成功事例を調べてみました。
このジャバ・ザ・ハットリさんという方の記事によると、個人開発の企画立案では以下のことが重要らしい。
・対象ユーザーを特定する
・そのユーザーが欲しいモノ、気に入っている他製品をとことん調査してコピーする
・最後の最後に少しだけ自分の味付けを加える
対象ユーザーとか考えたことなかったです。とりあえず作りたいものつくって出せばよいという考えの甘さを知りました。しかし、大学で専攻しているのにも関わらず、このようなマーケティング的な考え方がめちゃくちゃ苦手です。
そこで考えた作戦が、**とりあえずパクる。**すでに多くの人に使われているサイトやアプリをパクっちゃえばイケるんじゃね?という安直な考え方です。ってことでパクれそうなサイトを探していきます。
パクれはしませんでしたが、この「GeoGuessr」というサイトはとても面白いと感じました。
Googleストリートビューのランダムで飛ばされた場所を周りの景色などから当てるというゲームです。
自分の技術力的にパクるのは難しいため、他のサイトを探していると見つけました。
これです。ひろゆき氏が10年以上前に作ったサイトらしいです。これは、ネコや犬の写真2枚を比較し、どちらがより萌えるかを投票するサイトらしいです。さすがに、そのままネコや犬を取り上げるのは面白くないので、自分の好きな「地理」に置き換えてみました。
そして作ったのがこの地理バト
地理に関するお題を対戦形式で投票するサイトです。例えば「都道府県魅力度バトル」では、2つの都道府県のうちより魅力的と感じた方をクリックして投票できます。現在では「都道府県魅力度バトル」に加え、「秘境市町村バトル」も開催しています。
そんな「地理バト」ですが、作るのには結構苦労しました。まず、初めての**「データベース」**の使用。データベースについての知識が0だったので、YouTubeの解説動画を見て勉強しました。
データベースの基礎を理解すると、次は**「投票機能」と「ランキング表示」**を作っていきます。それも調べてみると、丁寧な解説ブログがあり助かりました。
そして、一応完成させることができました。作成にかかった時間はおよそ48時間です。けっこう難しかったです。せっかくですので、ぜひ**「地理バト」**を使ってみてください。
(ここまで合計102時間)
#7.100時間やった成果
0から100時間プログラミングをやってみて、簡単なWebアプリ、サイトを2つ作ることができました。100時間やるうえで、1番苦労したのが、モチベーションの維持です。
プログラミングをただ勉強するのではなく、**「つくりたいもの」**が見つかったのが、多くかったと思います。ただただプログラミングを勉強しようとするのは、正直難しいと感じました。
そこでプログラミングの勉強を進めていく上で、1番大切なのが**「プログラミングで何をしたいか」**かも。その目的があることで、プログラミングの学習を進め、技術を習得していけるんじゃないかなと思います。
なので、僕はこれからもいろいろなものを作りながら、最終目標の10000時間達成まで続けてみます。
僕はまだまだ初心者なのでぜひアドバイスをよろしくお願いします!
ではまた。
▼Twitter
https://twitter.com/nura0927