見出し画像

【Rails6】[初学者向け]Q&Aサイトを作ろう!★①まえがき編★

まえがき

突然ですが、みなさんはプログラマーについてどんなイメージを持っていますか?

◆プログラムを構築するためのバックエンド言語の知識とスキル
◆サーバーやデータベースなどインフラに関する深い知識
◆高品質なデザインとUI/UXを追求するフロントエンドの知識とスキル


Webアプリケーションでサービスを提供するのだから上記のような各分野の深い知識と高度なスキルが求められて当たり前と思われる方も多いかと思います。

実際に、フルスタックエンジニアと呼ばる方がいらしゃるように、バックエンド言語でプログラムを書けて、インフラの整備やサーバー運用もできて、フロントエンド(HTML/CSS/Javascript)もできてしまう、且つ、そのどれもがすべてハイレベルというようなエンジニアも多くいらっしゃいます。

しかし、初学者がそのレベルまでに到達するには、気が遠くなるほどの多くの経験と学習期間が必要になるのが普通です。

僕も同じように初めはそう思っていましたし、その覚悟で自分でWebサービスを作れるようるために2年間は修行するつもりでプログラマー転職を目指して学習を始めました。

しかし、プログラミング学習を進めて2ヶ月が過ぎたころ、良い意味で期待を裏切ってくれました。

まだプログラミング学習を始めて2ヶ月なのに、Yahoo!知恵袋のようなQ&Aサイトを思ったよりも簡単に作れてしまったからです。

では、初学者が1人でサービスとして成り立つようなちゃんとしたWebアプリケーションを作ることは無理なのかと言われれば、答えはNoだと思います。

この後の記事で詳しく説明しますが、現在では、プログラミング初学者でも、簡単にwebアプリが作れるように、サイトの見栄えを整えてくれるWebフレームワークやアプリケーションソフトが稼働するためのデータベースやサーバーなどを提供してくれるプラットフォームなど便利な環境が整っています。

それらを駆使しながら、できるだけバックエンドの学習に時間を割くことができれば、数ヶ月で好きなWebアプリを作れるようになります。

実際、僕自身、この5ヶ月の間にAPIを使ってビデオチャット機能を付けたWebアプリを作ったり、TikTokアカウントを分析するマーケティングツールを作ったりと、プログラミング学習を始める前には全く想像もしていなかったことができるようになり、今では思いついたアイディアを形にしてWebアプリ開発を楽しんでいます。

5ヶ月間で作成したサイト
★ビデオチャット機能を搭載したマッチングサイト(※本番未公開)
みんなの経験をシェアするコミュニティサイト
タイ語学習のQ&Aサイト(音声投稿機能あり)
TikTokアカウントの分析ツール(APIを使ったデータ取得と加工あり)

プログラミングを勉強する理由を明確にする

Webフレームワークや色んなプラットフォームを使ったからと言って、さすがにプログラミング未経験者が2ヶ月でWebアプリを開発できるようになるわけないと思われている方もいるかもしれません。

何か特別なことをやっていたのではないか、と思われる方もいらっしゃるかと思います。

確かに何もやっていなかったわけではないので、そちらをご紹介します。

強いマインドを持つこと。つまり、言い換えると「絶対に諦めない」ということです。 

「諦めない」という言葉はとても簡単な言葉ですが、行動で示すととても大変なことです。

特に、プログラミング学習は、全くの未経験の方にとってはとってはハードルが高く、途中で挫折してしまう人も多いと思います。

プログラミングスクールに通いながら受講生と切磋琢磨して学習をしている人でも途中リタイアされる方も多いです。

それくらいプログラミング学習は辛いものだと実感しました。
もちろん、できないことができるようになったり、作っていたアプリケーションが完成したり、と楽しいこともありますが、辛いときの方が遥かに多いです。

ではなぜ僕がプログラミング学習を挫折せずに継続できたかというと、それはプログラミングを勉強する明確な動機があったからです。

僕はプログラミング学習を始める前、メガベンチャーで5年間働いていました。

そこでは、新規事業の立ち上げやWebマーケティングの業務を主に行っていたのですが、そんな仕事ばかりしていたら「自分でサービスを企画し大きく成長させてみたい」と思うようになり、年々その気持ちは強くなっていきました。

そして、5年目に携わっていた新サービスが無事リリースされ、一区切りついたときに会社を辞めることを決心しました。

当時、僕の頭の中にあったことは、

◆なるべく早く自分でサービスを運営したい
◆初期投資をなるべく抑えてサービスを作りたい

の2点だけでした。

その2つから導き出した答えが、プログラミングを勉強して自分でサービスを作ることでした。

お金と時間があれば、外注して誰でも簡単にwebサービスを作ることができると思います。

でも、当時の僕は、結婚したばかりであったため貯金もなく、そのため時間的猶予もあまりありませんでした。

つまり、このときの僕は、「プログラミングを習得しなければ、サービスを作れない」という状況を無意識のうちに作り出していたのです。

そういう状況であったからこそ、「独り&オンライン学習」というとても閉鎖的な環境でも、モチベーションを保ちながら挫折することなく学習を継続することができたと思っています。

みなさんは、プログラミングのスキルを習得したら、何を目指しますか?
・アイディアを形にしてサービスを作ってみたい
・エンジニアになって今よりも給料水準を上げていきたい
・フリーランスになってフレキシブルな生活をしたい

当たり前ですが、動機は人それぞれ違います。
「プログラミングを学んで成し遂げたいこと」を明確にしてみてください。
「楽しそう」、「稼げそう」、「自由そう」など、ふんわりした気持ちでプログラミングの学習を始めると、必ず時間とお金を無駄にします。

逆の言い方をすると、プログラミングのスキルを習得する動機を明確にして、諦められない状況を作ってしまえば、誰でもプログラミングができるようになると思います。

初学者のときにあったら良かったなと思う教材

しかし、プログラミング学習に対して明確な動機を持っていた僕でも、辛いなと感じることもありました。

どういうときが辛かったかというと、次の3点です。

◆参考になるドキュメントを探すのに時間がかかってしまう
◆分からないとき気軽に相談できる相手がいない
◆聞いてもすぐに回答してくれないから全然先に進まない

これらの経験をもとに、以下のコンセプトでQ&Aサイトの作り方をnoteにまとめました。

本教材で提供する内容
◆これからRailsを学習したい人、Railsの学習を始めた人を対象にした内容
◆最近のwebアプリでは当たり前のように付いている機能の実装方法をQ&Aサイトを作りながら学べる※随時公開中
◆学習のテンポアップのためにQ&Aサイトのソースコードを全て公開※準備中
◆学習の相談やエラー解消など何時でも気軽に聞けるメンターサポート(Discordにて)※準備中

自分の実体験をもとに初学者が躓きそうなところを細かく丁寧に解説し、さらに自分が参考にした諸先輩方の記事などのリンクも多数掲載しています。

僕自身がプログラミングを始めて何も分からなかったときに、あったら嬉しかったと感じた内容を記事の中に盛り込みました。

教材の執筆を進めながら随時記事を公開しておりますため、現在はすべて無料にて公開をしております。

これからエンジニアを目指すみなさんのお役になれればと思います。



この記事が気に入ったらサポートをしてみませんか?