6ヶ月の独学__1_

Webプログラミング「経験0」の私が、「193日間の独学」でWebサービスを立ち上げた話

「ようやく完成した・・・!!」

193日間という長いあいだ独学を続け、ついにWebサービス(Lookmine)を完成させました。

Lookmine
https://www.lookmine.net/

概要としては、毎日の努力を登録しておくことができる、投稿型SNSサービスです。

登録した内容をグラフで見ることができたり、実績に応じてランクアップしたりするので、努力を継続しやすいようになっています。

しかし、Webプログラミング「経験0」の私にとっては、決して簡単な道のりではありませんでした。

プログラミングの勉強をしたことがある人には共感してもらえると思うのですが、「エラー」が解決できずに苦しむことが本当に多いです。

「エラー」というのは、プログラムの書き方が「何かしら」間違っているせいで、正常に動作しない状態のことをいいます。

その「何かしら」が自分ひとりで解決できないことが理由で、「プログラミングの独学は難しい」と感じる人が多いのは間違いありません。

私もエラーに苦戦し、何度も「もうやめてしまおうかな」と思いましたが、何とか自力で解決し、ここまで来ることができました。

そんな私が、「なぜ諦めずに193日間も努力を続けることができたのか」なども踏まえ、この記事では以下のことを詳しく書いています。

・なぜ、そこまで本気でやろうと思ったのか?
・なぜ、経験0なのにWebプログラミングを始めたのか?
・193日間の独学で何を学んだのか?

そして、以下のような人に対して、考え方を変える良いきっかけになるかなと考えています。

・独学で何か始めようと思っている人
・すでに独学で何か勉強をしている人
・行動しようと思ってはいるが、なかなか行動できていない人

プログラミングをやったことがない人でも読みやすいように書いているので、安心してください。

「俺は技術的な話のほうが興味ある!」という人は、Qiitaに投稿しているので以下からどうぞ。

HTMLもわからない初心者が、独学で「投稿型SNSサービス」を作ったって本当?【193日間の死闘】
https://qiita.com/nekojoker/items/2497b4f81ffd1cd7025c

それでは、前置きはこれくらいにして、早速見ていきましょう。

1.本気でやろうと思った理由3つ

勉強を勧めていく中で、何度も挫折をしかけました。

それでも「193日間」諦めずに努力をし続け、「本気でやろう」と思った理由は3つあります。

1:終身雇用の崩壊が始まっているため
2:副業解禁が進んでいるため
3:自分のスキル不足に気付いたため

一つずつ深堀りしていきます。

理由1:終身雇用の崩壊が始まっているため

かつては「40年間、しっかりと1つの会社で勤め上げる」というのが主流な生き方でした。

しかし先日、あの「トヨタ」でさえ「終身雇用を続けるのは難しい」とコメントしたことで、話題になりました。

「終身雇用難しい」トヨタ社長発言でパンドラの箱開くか
https://business.nikkei.com/atcl/gen/19/00002/051400346/

日本の一流企業でさえ「終身雇用を続けるのは難しい」のであれば、一般的な企業はもっと難しいということになりますよね。

また、早期退職者の募集がどんどん増えてきているという傾向もあります。

45歳以上に対し、早期退職・希望退職者募集の嵐が吹き荒れているということ
https://www.orangeitems.com/entry/2019/03/24/000500

日本ハム、NEC、富士通など、誰もが知っている大企業で、早期退職者の募集が開始されてきています。

要するに、「事前にお金をたくさんあげるから、早めに退職してね」ということです。

なぜ会社員をやっているのか?」と聞かれると、「安定しているから」と答える人がほとんどでしょう。

「終身雇用が終わる」「早期退職者がどんどん増える」という状況から考えると、「会社員の安定」が終わる日も近いかもしれません。

もし「明日から来なくていいよ」と会社に言われたら、自分は明日から生きていけるのか?

このことを自分に問いかけてみて、「Yes」と答えられなかったので、本気でやろうと考えました。

理由2:副業解禁が進んでいるため

「副業禁止」という会社がほとんどでしたが、最近では少しずつ副業を解禁している会社が増えてきました。

「副業解禁」で壊れる日本の「カイシャ」
https://business.nikkei.com/atcl/report/16/021900010/042600066/

今までは「副業禁止」だったのに、なぜ「副業OK」の会社が増えてきているのでしょうか?

これは「終身雇用の崩壊」の話に繋がるかもしれませんが、「会社がお金を払えなくなってきている」というのが一番の理由と考えています。

もう少しわかりやすい例を挙げてみます。

会社「昇給したり、高い給料を払い続けるのは難しいな」

会社「せや!副業OKにして、社員に自分で稼いでもらおう」

会社「副業してもいいよ(高い給料は払えない分、自分で稼いでね)」

会社「(副業OKなんだから、給料が低いとかの文句も禁止ね)」

会社「(早期退職したあとも、自分で頑張って稼いでね)」

つまり、「副業解禁」というのは、「自分で稼ぐ力を身に付けてね」ということです。

逆に言うと、自分で稼ぐ力がない人は、「その会社にしか」居場所がなくなってしまうことになります。

いま伸び伸びと仕事ができている人でも、今の状態が「3年後」も続いている保証はどこにもありません。

いま安定している人ほど、いま準備をしておくべきなのです。

理由3:自分のスキル不足に気付いたため

先ほども書きましたが、もし「明日から来なくていいよ」と会社に言われたら、私は明日から生きていけるスキルを持っていません。

ちなみに私は「IT企業で6年間働くエンジニア」ですが、それでも「スキル不足」を感じています。

というのも、ほとんどの会社員は「1を5や10にする」というのが仕事なので、なかなかスキルアップできないというのが現状だからです。

具体例を挙げてみましょう。

(1)すでにあるものに、付け加える(1を5や10にする)
(2)自分で考えて、新しいものを作る(0から1にする)

(1)は何を言っているかというと、ベンチャー企業など「新しい概念やサービスを生み出す」という企業でない限りは、会社ですでに何か商品を持っています。

すでにある商品に対して、「こういう機能を追加しよう」「この機能はこういう機能に変更しよう」という作業がほとんどです。

これも立派な仕事なのですが、「自分のスキルアップに繋がるかどうか」という点で見ると、圧倒的に成長速度は遅くなります。

「会社ではバリバリとプログラミングをしている」という人も、いざ自分でゼロから作るとなると、意外と手が動かなくなるものです。

「0から1にする」というのは「1を10にする」よりも圧倒的に難しいんですよね。

ここをカバーするには、自分でスキルを身につけるしか方法はありません。

そして、会社でスキルを身につけることが難しければ、個人的にやるしかないのです。

こういった理由から、私は本気でやろうと思いました。

2.Web系のプログラミングを選んだきっかけ

もともと私はプログラミングが好きなので、「スキルを身につけるならプログラミングがいいな」と思って、Web系のプログラミング学習を始めました。

AI、機械学習、Java、Ruby、WordPressなどなど、「プログラミング」と言っても、学ぶ分野は数え切れないほどあります。

「何を勉強しようかな」といろいろ調べていたところ、マナブさん(@manabubannai)というすごい方の以下記事に出会いました。

【保存版】プログラミング基礎の完全ロードマップ【挫折しない教材】
https://manablog.org/code-life-start/

まったくの初心者ですが、Web系に興味があったので「これならできそうかも」と思い、始めてみたのがきっかけです。

3.やる気を出すも、すぐに挫折

「まずはHTMLとCSSの勉強をして、Webサイトの作成をするぞ!」と意気込んでみましたが、すぐに挫折してしまいました。

というのも、HTMLはまだわかりやすいのですが、CSSは作業が本当に細かいんですよね。

「余白」「色」「項目の位置」などなど、1から10まで自分でコードを書かなければいけません。

1ヶ月くらいは「サイト作成」の勉強を続けていましたが、「これは向いていないな」と感じ、そこで辞めてしまいました。

サクサクとWebサイト作成ができる人、本当に尊敬します。

「IT企業で6年も働いているのに、できないの?」という声もありそうですが、プログラミング言語が違えば、まったくの別物です。

「日本語が話せる人は、英語も話せる」と言っているとの同じくらい違います。

もちろん、英語にも主語や動詞もあり、ちゃんと勉強をすれば使えるようになりますよね。

プログラミングも一緒で、根本的な考え方などは同じなのですが、ちゃんと勉強しない限りはまったく使えるようになりません。

プログラミング言語の特色によって、「好き」「嫌い」が分かれるので、好きな言語を勉強するのが大切です。

4.やると決めたからにはやる

「Webサイト作成で生きていく」と決めたわけではないので、Webサイト作成の勉強を辞めても特に問題はありません。

しかし、「プログラミングの勉強を辞める」というのは違います。

一度「やる」と決めたので、途中で投げ出すことはしたくありませんでした。

いま一度、自分がやりたいことをリストアップして、それに近いものをやることに決めました。

・初心者でも手を出しやすい方法が良い
・何かWebサービスを作りたい

Twitterでいろいろと調べていたところ、迫 佑樹さん(@yuki_99_s)というすごい方を発見し、「RubyonRails(ルビーオンレイルズ)」というものを知りました。

「RubyonRailsを使えば、初心者でもWebサービスを作れそうだな」と感じ、ここからはRubyonRailsを中心に勉強を進めていくことになります。

5.プログラミングは最初が一番大変

プログラミングに限った話ではありませんが、何か新しいことを始めた「最初の頃」が一番大変です。

覚えることは多いですし、一度覚えたこともすぐ忘れてしまいます。

「自分は何でこんなにできないんだろう」
「もうやめてしまおうかな」

こう思う日も何度もありました。

普通の会社員なので平日は仕事がありますし、休日はゆっくり休みたい気持ちでいっぱいです。

しかし、ここでふと1つのことが頭に浮かんできました。

もしかして、ここを乗り越えるだけで、ほとんどの人に勝てるのでは?

自分が「もうやめてしまおうかな」と考えているということは、他の人も同じように考えている、ということです。

そして、ここでやめてしまう人がほとんどであれば、「ただ継続するだけで」ほとんどの人に勝てる、と思うようになりました。

それからは、目先の楽しいことよりも、1年先、3年先を見据えて行動するように意識をしています。

6.レベルが上がるほど楽しくなる

始めてすぐの出来ない頃はあまり楽しくありませんが、自分のレベルが上がれば上がるほど、楽しくなることに気付きました。

たとえば、ボウリングを例に見てみましょう。

・ガターばかりで、スコアは50
・ストライクがたくさん出て、スコアは200

ボウリングをしていて、「ガターばかりで楽しい」という人はなかなかいません。

ストライクが出たほうが、絶対に楽しいです。

しかし、ストライクが出てスコアが200の人も、最初から200を出していたわけではありません。

これはボウリングに限らず、仕事やスポーツ全般にも当てはまります。

一定以上のレベルまで到達するのが大変ですが、そこまで行ってしまえば、圧倒的に楽しいのは間違いありません。

逆に言うと、「楽しくない状態」というのは「自分のレベルが低い状態」と言えます。

何かを楽しもうと思ったら、「自分のレベルを上げる」ことが必須になるのです。

7.半年間「毎日」勉強を続けて学んだこと3つ

やると決めてから、半年間「毎日」勉強を続けてきました。

その中で、大きく3つのことを学んだので深堀りしていきます。

1:ゼロから自分で考えない
2:今日やらないなら、明日もやらない
3:諦めなければ、うまくいく

7−1.ゼロから自分で考えない

プログラミング学習をしていると、以下の順序の繰り返しでどんどん進めていくことになります。

(1)実現したいことのやり方がわからない
(2)ネットで検索して調べる
(3)すでに解決している人が見つかる

初心者のときの「思いつくこと」「困ること」というのは、ほぼ100%、ネットで検索するだけで解決することができます。

この「検索すれば解決できること」に対して、自分の貴重な時間を使うのは、とてももったいないです。

これは仕事でも同じで、人に聞けば一瞬で解決できることを1人で悩み、時間を無駄にしてしまう人がいます。

「一生懸命考えて、解決できました!」という人がいますが、こちらからすると「何でもっと早く聞かなかったの?」と聞きたくなります。

周りに聞ける人がいるのがベストですが、いない場合でも、「わからないことはネットで検索する」という癖をつけることをおすすめします。

あなたが悩んでいることは、すでに他の人が悩んでいることであり、解決済みであることがほとんどです。

まったく同じ悩みではなくても、ヒントになる情報は必ず落ちています。

わからないところはネットで検索し、答えやヒントを探すことが大切です。

7−2.今日やらないなら、明日もやらない

私は毎日の勉強を始めてから6ヶ月が経ちますが、それまでは「今日はやらなくていいかな」という甘い気持ちでいました。

これは実体験ですが、その甘い気持ちで1日を過ごしてしまった次の日は、もっとやりたくなくなるんですよね。

じゃあどうしたらいいかというと、「毎日やる」ことです。

「それができたら苦労しないよ」という人も問題ありません。

習慣化してしまえば大丈夫です。

スティーヴン・ガイズという人が書いている本「小さな習慣」によると、研究で以下のことがわかっています。

・1日の45%は習慣でできている
・平均で66日継続すれば、それは習慣になる
・習慣になると、あまりエネルギーを使わなくなる

つまり、「勉強の継続が大変」と思っている人は習慣化ができていないだけです。

「毎日、歯磨きをするたびに疲れがたまる」という人はいないですよね?

なぜなら、歯磨きは完全に習慣化されているからです。

勉強も同じで、一度習慣にしてしまえば、やることに抵抗がなくなります。

私は半年前に「毎日やるぞ」と決意をしてから、だいたい3ヶ月くらいで習慣化できました。

習慣化されたかどうかのサインは、「勉強しよう」と考えなくても、自然と勉強するようになったかどうかです。

最近の私は、空き時間を持て余していると、「何かやらないとな」とソワソワするようになりました。

「そんなバカな」と思う人は、2〜3ヶ月くらい継続してやってみてください。

間違いなく「自分変わったな」と感じますよ。

かつての私がそうだったのでわかりますが、今日やらない人は、明日もやりません。

「今日から」始めることが大切です。

7−3.諦めなければ、うまくいく

あきらめたらそこで試合終了ですよ・・・?

これは、漫画「スラムダンク」の安西先生が言った有名な言葉です。

読んだ当時は「おっ、名言が出たな」と感じるくらいでしたが、今読むと「本当にその通りだな」と感じますね。

これは私の肌感覚になりますが、だいたい以下の割合に分けられると考えています。

・特に何も行動できていない人が9割
・残りの10%のうち、行動を始めたものの、すぐに成果が出ず諦めてしまう人が9割
・行動を始めて、成果が出なくても諦めず継続できる人は「1%」

つまり、諦めずに継続するだけで、「99%の人に勝てる」と考えています。

「そんな簡単に勝てるんだったら、みんなやってるよ」

本当にそうでしょうか?

1年、2年と長期間にわたって努力を続けている人は、正直なところ私の周りにはいません。

「成果を出している人が継続している」のではなく、「継続している人が成果を出す」のだと考えています。

「継続する」という誰にも思いつきそうなことですが、ほとんどの人はやりません。

なぜなら、時間がかかるからです。

「もっと手っ取り早く成果を出す方法はないか?」とついつい考えてしまうんですよね。

もしそんな方法があったとしても、それは短期的な成果しか出ないでしょう。

わかりやすい例が宝くじで、当たれば短期的にお金は増えますが、継続して当たるものではありません。

もちろん、間違った方向に頑張るのはNGですが、ある程度方向さえあっていれば、あとはひたすら量をこなして継続するだけです。

しかし、ほとんどの人はやりません。

ならば、そこに勝ち目があります。

「諦めずに継続すること」

これが、成功の核となる部分であり、一番の近道だと確信しています。

8.今後について

初めて作ったサービスがうまくいくかどうかはわかりませんが、自分の資産になる行動はこれからも続けていきます。

資産になる行動とは、「プログラミング学習をする」「ブログを書く」「読書をする」などです。

仮に今回のサービスがうまくいかなくても、それは失敗ではないと考えています。

本当の意味での失敗は、何も行動しないことです。

これからもどんどん行動を続けて、自分の価値を高めていきます。

9.終わりに

もし、「良い記事だった」「私も頑張ろうかな」「これからも応援している」と少しでも思っていただけたら、「いいね」「シェア」をしていただけると嬉しいです。

また、ブログでも情報を発信しているので、興味があればどうぞ。
https://nekojokerblog.com/

ちなみに、ブログで技術的なことは一切発信しておらず、「仕事」「資格」などがメインです。

長くなりましたが、最後まで読んでいただきありがとうございました!

これからも頑張っていきますので、よろしくお願いします!!

Lookmine
https://www.lookmine.net/
あわせて読みたい
HTMLもわからない初心者が、独学で「投稿型SNSサービス」を作ったって本当?【193日間の死闘】
https://qiita.com/nekojoker/items/2497b4f81ffd1cd7025c

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

泣いて喜びます(´;ω;`)
14
スキルアップが好きなエンジニア。独学で作ったWebサービスLookmine→https://www.lookmine.net/  ブログ→https://nekojokerblog.com Qiita→https://qiita.com/nekojoker
コメント (4)
Webサービスを形にして公開されたのは素晴らしいことだと思います。
0から1にするのは本当に骨が折れますよね。
私はプログラマなのでシステムを作る大変さはよ~く分かります。
もっと具体的なお話を聞きたいです。
たとえばこんな話を。

Ruby(Rails)で作っていく上で苦労されたところは?
利用規約やプライバシーポリシーはどうやって決めたのか?
フロントエンドは何を使ってどうやって実装したのか?
サイトを公開するにあたって注意したことは?
Z80Aさん
コメントいただきありがとうございます。

>Ruby(Rails)で作っていく上で苦労されたところは?
Rails独自の記法やルールを覚えるのが大変でした。
あとはとにかくエラー。実行時にしかわからないのと、
エラー内容も英語で理解できないのがキツかったです。

>利用規約やプライバシーポリシーはどうやって決めたのか?
これはサンプルが公開されているサイトがあり、
それをもとに少し変更を加えただけです。

>フロントエンドは何を使ってどうやって実装したのか?
「bootstrap material design」というフレームワークがメインで、
実現できないところはCSSで追加しています。

>サイトを公開するにあたって注意したことは?
Webなのでセキュリティ面に注意しました。
プレースホルダを使用したり、ログインに何回も失敗したら
アカウントをロックしたりですね。
回答ありがとうございます。
できればそのあたりのノウハウをnoteで公開されるとよりいいんじゃないでしょうか。
私も小出しにやってますが、技術的なノウハウに対する需要もあるみたいですよ。
Z80Aさん
そうなんですね!
技術的なノウハウの記事も考えてみます!
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。