見出し画像

WEBサービスを作り出すまでのお話(プログラミング編)

教育関係者が気軽にコミュニケーションを
取る事ができるCATALY(カタリー)
運営・開発している渡利幸治と申します。

CATALYをPRしたい!と思い、
noteを書いております!

今回は、プログラミングを軸に
サービスリリースまでの話を書きたいと思います。
(対象は駆け出しエンジニアの方々です!)

これから一緒に頑張っていける
仲間を見つけたいです!
ぜひ、ツイッターでご連絡下さい!

それでは
駄文ですが、お付き合いくださいませ。

現状のスキル

以下、私の現状スキルです。

HTML CSS:普通に書けます。
JavaScript :なんとなく書けます。
Ruby:理解して書けます。
Ruby on rails :普通に使えます。
SQL:基礎的な部分は理解しています。
Python:競技プログラミング(AtCoderのA,B程度…)ぐらいは解けます。
Git:git pushできる。ぐらいのスキルです。

これぐらいのスキルになるまでに
こういう進め方で学んだんだなー程度で
読んでみてください。
※技術的な細かいお話はしていません...!

大学在学中にプログラミングに興味を持つ。

関西学院大学に入学し、
一本の映画に出会います。
ソーシャルネットワークという映画です。

過去、少し話題になったので知っている方も多いかと思います。
マーク・ザッカーバーグがFacebookを
作り出すまでのお話です。


作中ではフェイスマッシュという
サービスを作り出しています。
サービス内容は良くないものの、
仲間とサービスを作り上げる躍動感や
スピード感がカッコよく、楽しそうだなぁと
その時は思っていました。

そこから、当時、運営していた団体のホームページを作ろうと思い、
作成したのが、以下のサイトです。

画像1

少しプログラミングの知識がある人なら分かると思いますが
完全にHTMLのみで構成されたWebサイトです。

当時の記憶が曖昧ですが
恐らく、〈br〉タグで改行ができて、
喜んでたんだろうと思います(笑)
それだけで、俺エンジニアしてるぜ!って感じですね(笑)

そこまで熱い想いでプログラミングを学ぼうと思った訳ではなかったので
すぐ辞めて、アメブロに移行していきました。。。

記念すべき処女作がネット上に残っており
ある意味嬉しかったですが
人様に見てもらうには
少々物足りないですね…

学習再スタート!習得する言語を決める。

時が流れ、Matcherというサービスを知ったのが
きっかけで改めてプログラミング学習を
スタートします。
勉強をする前に手戻りが少ないように
入念な下調べを行いました。

まず、初学者の方が最初に悩むのが言語選びだと思います。
私は、以下の三点で言語を決めていきました。

1.初学者でも分かりやすく書きやすい言語

2.webサービスを作りやすい言語

3.ググれば、情報が溢れてくる言語

一つずつ説明していきます。

1.初学者でも分かりやすく書きやすい言語

初学者の方は、
プログラミング学習がどのぐらい難しいのか
まずは理解することが大事だと思います。
私は、学生の時にプチ挫折をしたので
分かるのですが、学習難易度を理解せずに
汎用性があるから等の理由で言語を選ぶと確実に挫折すると思っています。
とりあえず、簡単な言語が良い!!!!ということで
ネット上の情報を漁りました。

2.webサービスを作りやすい言語

プログラミングを学ぶことが目的ではなく
webサービスを作ることが目的だったため
初学者でも、サービスが世の中に簡単に出せるような
フレームワークがある言語を探しました。
一方で、ネイティブアプリ(スマホアプリ)の開発は
今回は目的外だったため、swift(iphone_appを作る言語)のような言語は
選択しないよう気をつけました。
なぜ、プログラミングを学ぶのか
目的を明確にした方が言語選びは迷いがないと思います。

3.ググれば、情報が溢れてくる言語

最近出てきた言語(例えば、flutterなど)だと
ネット上に情報が少なく、海外のサイトなどを
探さなくてはイケません。
プログラミングは学習コストが非常に高いにも関わらず
検索で更に時間をかけている場合ではありませんでした(僕の場合)。
日本語ですぐに解決策が見つけ出せそうな言語を選びました。

上記、三つを念頭に置きながら
プロゲートを一週間ぐらい触ってみて
どの言語を学ぼうか考えました。
結果、"Ruby"に決めました。

Ruby on Railsが非常に優秀だという口コミと
YouTubeなどで見ていても、情報が非常に多いことや
動画の中では簡単に様々な機能を実装してる様子を見て
これだったら僕にも出来るかも。と思いました。

プロゲートでRailsが充実していたことが最後の決め手でしたが。。。

学習ロードマップ

学ぶ言語も決まり
まずはHTML,CSSをプロゲートで学びました。
それと並行して、以下の書籍を一通り読みました。

https://www.amazon.co.jp/dp/4797398892?tag=mybest_presses_5643-22

なんとなく、ここまでで
文字を画面に表示したり、
文字の色を変えたりすることが
できるようになったと思います。

そこまでやって
ようやくRubyを触り始めます。
プロゲートでRubyを学び、
その勢いでRailsを触り始めました。
書籍も一冊購入し、準備万端です!

https://www.amazon.co.jp/dp/4839962227/ref=cm_sw_r_tw_dp_M7H0W66S2F055EKMDASK

こんな感じでto doアプリが作れるんだな。
ふむふむ。

"よし、自分のサービス作ろう!"

この決断の速さが
僕のプログラミング学習歴の中で
唯一、賞賛できるところだと思います。

完全にポジショントークですが
書籍やプロゲートを完璧にしても
サービスは開発できないんじゃないかと思っています。
もし、プロゲートを3,4周して
書籍を完璧になるまで読み込んでいたとしたら
まだ、カタリ―は世の中に存在していなかったと思います。

そこから、いよいよ本格的に
CATALY(カタリー)を作り始めます。

が、しかし、、、
ここからプログラミング学習の難しさを
更に実感することになります...

これまでは書籍に沿ってコードを書いていけば良かったものの
自分でサービスを作るとなると
全くの0の状態からコードを書いていくことになります。

当時の僕は、ER図の概念やテーブル構造の多対多の理解すら
分かっていませんでした。
というより、その言葉すら知りませんでした。
作りながら、後追いで知識が付いてくるイメージです。


正解かも分からないコーディング作業に
芸人の又吉さんが書いた火花の一節が頭の中を巡っていました。
コードを書いても思った結果が全くでないかもしれない。そんな恐怖を覚えながら手探りで進めていました。
(当時の覚悟、凄かったなと書きながら自分に引いております(笑))

"一度しかない人生において、結果が全く出ないかもしれないことに挑戦するのは怖いだろう。"
火花の一節

そこから、ググリ力というスキルがプログラミング学習では
めちゃくちゃ必要で重要だと分かりました。
そして、ネット上に情報が溢れているrailsという
フレームワークを採用したのも功を奏し
大抵のことは長い時間をかければ解決出来ました。
(文字で書くとサラっと書いてますが、
一つ一つのエラーの解決まではとても苦しかったです…今でも苦しい笑)

そこからは、ただ黙々と実装したい機能と
それに付随したエラーに立ち向かう日々。
ひとつのエラーで一週間費やすこともありました。
プログラマーの仕事はエラーを解決すること?と思うぐらい
エラーにぶつかっていました。
地獄のようにエラーを検索し、
グーグルのページネーションの10とかまで全て読み込んだりしてました。


画像2


そんなこんなでサービスの骨格が完成し
次は、デプロイ(簡単に言うとサービスをネット上に公開すること)です。


この時点では、本当に自分の作ったサービスが
ネット上で見れる状態になるのか疑心暗鬼でした。


もし、ここで僕が作ったコードでは
ネット上に公開できない みたいなことがあったら
どうしようという謎の緊張感に包まれていたのを思い出します。


その時に、また又吉さんの火花の一節が頭をよぎります(今回は割愛(笑))
結果、苦労しましたがネット上には無事公開できました。
運営工数・コストの観点から
heroku、AWSのサーバーを採用しています

上記のような感じで
無事か分かりませんがサービスとして
世の中にリリースすることが出来ました。

平日3~4時間、休日は5時間以上、
プログラミング学習に費やしていました。
学生の自分ならまだしも
社会人で上記の時間を抽出するのは
並大抵の覚悟では出来ません。
プログラミングを独学で学ぶには
相当な覚悟とそれを支えるモチベーションが必要なのです。

※最近に籍を入れた妻と一緒に住んでいます。
 新婚にも関わらずプログラミングに
 多くの時間を使うことに
 理解があった妻には感謝しても
 感謝しきれません。
 直接も言いますが(笑)、
 この場も借りて御礼申し上げます。

やっておけば良かったこと

今思えば、もっと早く知っておけば良かったコトが
たくさんありました。
過去の自分、今の自分、
そして、これからプログラミングを学ぶ方に向けて
書いていきたいと思います。

1.エンジニアの人と会話した方が良い

2.お金をかけた方が良い

1.エンジニアの人と会話した方が良い

"このやり方であってるの?
実際のエンジニアの方は
どういう方法でやっているの?"

これは、全ての初学者の方が
感じる不安だと思っています。
僕も開発を初めて6ヶ月目ぐらいまでは
エンジニアの方とプログラミングについて
しっかりとした会話をしたことがありませんでした。
それまでは、本当にエンジニアって存在するの?
qiitaとか書いてる人は架空の人物じゃないの?
って本気で思っていました笑

その時に、活用すべきだったのが
メンターとマッチングさせてくれるサービスや
オンラインサロンのようなサービスだと思います。
(お金があれば、スクールも良いのかも?)

僕も事実、MENTA
多くのことを教えて頂きましたし、
しまぶーさんという経営者の方が
中心になって作り上げているオンラインサロン
現場では、こういう風に考えるのか
ということを学んでいます。

実際のエンジニアの方と会話をすると
モチベーションも上がりますよ!

2.お金をかけた方が良い

ここでいうお金をかけた方が良いっていうのは
投資額が0円でプログラミングを
学び切りたいというのは
やめた方が良い。というニュアンスです。


私も、学び始めた当初は、
お金を払うのが嫌でした。
ただ、独学だと習得や理解に1~2週間かかることが
お金を投資すると1~2日間程度で理解できることも
初学者の方は多いと思っています。


価値観の問題ですが、時間の有益性と金銭の部分の
バランスをみて、自分に投資することを怖がらず
一歩踏み出して欲しいと思っています。


最近は、有料のnoteや
文章のコンテンツにお金を払ったりすることに
抵抗がありません。
無形・有形に関わらず価値があるものに
お金を払うのは当たり前だなーという
価値観にプログラミング学習を
始めてから変わっていきました。


最後に

上記の学習プロセスを得て
CATALYは生まれました。
僕自身、当たり前ですが
まだまだ未熟で、
これからもっと精進していきます!

なかなか、ボリューム感が出てしまい
ここまで読んで頂けた方、とても嬉しいです!!
ありがとうございます!!

最後に少しだけ、宣伝です。

https://cataly-teacher.herokuapp.com/

教育に関わる全ての人々が
匿名性を担保した上で
コミュニケーションを取ることができるwebサービスです。

情緒的な相談も気軽にできるように
1対1のコミュニケーションに拘って設計しています。

まだまだこれからのサービスですので
教育関係者の方や先生の知り合いいるよ!という方は
カタリーを広めて頂けると、とても喜びます!

まだまだアップデートを重ねていく予定なので
ご意見・アドバイスあれば、ぜひ教えてください!!

それでは、また✏️

Twitter:https://twitter.com/waatari

#自己紹介 #スキしてみて #エッセイ #コラム
#コミュニティ #教育 #CATALY #プログラミング


この記事が参加している募集

#自己紹介

227,686件

#スキしてみて

523,049件

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