🤔

独学でwebアプリケーションを形にできるようになった私が軌跡を振り返る

2022/10/07に公開

自己紹介/環境

  • 趣味でプログラミングを勉強している主婦。
  • 音大声楽科行ってた経歴の持ち主、文系どころの騒ぎじゃない。
  • 約3年前に本格的にプログラミングを勉強し始める。
  • 時々サボってMMORPGに逃げてるときもあった。
  • 夫はエンジニア、究極的にハマったら一応質問できる。
    (仕事してるからポンポン質問しているわけではない)

文章書くのはそんなに得意じゃないです…頑張って書きます!

なぜプログラミングなのか

夫がエンジニアで、私は非エンジニア。
相手の思考回路が不思議だなー、この差分はどこからうまれるのだろう?ちょっとプログラミング勉強したら、その謎が解けるのか?と思い、おもむろに勉強し始める。

どんな感じで学んでいったか

使ったことのある勉強系サービスは下記順。

  1. ドットインストール
  2. プロゲート
  3. N予備校
  4. PyQ

今思うと、プロゲートとドットインストールは順番入れ替えてもよかったかもなーと思う。
環境構築を独力でしなくてもとりあえず動くは初学者にとって非常に強み。がしかし、環境構築ができないで、実際のプログラミングはできないので、あくまでも入り口の入り口と考えたほうがよさそう。プログラミングってなんだろう、面白いのかな?って思ってる人はとりあえずプロゲートやってみると肌にあってるかどうか分かると思う。解説読んでみたり、動かしてみたり、グーグル先生に聞いてみながら独力で進められるかはキーになりそう。ここらへんは私も夫には質問を一切していない。これが一人で進められないと多分この先少し心配な気がする。(気がするだけ)

ドットインストールはローカルで動かすから、環境を構築するいい練習になった。まあ、私がやったのはHTML/CSSとかJavaScriptとかそんな感じだから大したことはしてない。自分のエディタで触るっていうのはまたweb上のエディタ触るのと少し感覚が違う気がする。○○作ってみようみたいなのが色々あってそれをちょっとずつ完成させていくのは楽しかった。

ここらへんで課題をやりきってしまって、初めて夫に相談をする。何か独力で作ってみたいんだけど、なにかいいのある〜?的な質問をしたけど、帰ってきた返事は「つくりたいものをつくればいいよ」とのこと。全然ほしい返事じゃない。私の感覚でいえば、ピアノ初学者の人に「なにか独力で演奏したいんだけど、いい曲ある〜?」に「好きな曲演奏すればいいよ」って返してるような感じだぞ?それはそうだけど…初学者の人が「ショパンのピアノコンチェルト(すっごい難しい曲)弾きたい!」って言い出したらどうするんだ、「まずはバイエル(ピアノ初学者が最初にやる難易度の教本)くらいの難易度の曲からどうでしょう」とかそういう話になるでしょう。「色々、なんでも作れる世界だけど今の私の技量でもできそうなことはなんでしょう?」と質問を再定義したところ「じゃんけんとか…?」と具体的な返事が返ってきた。

ということで、はじめて自分の力でアプリを作っていく。わからないところ沢山だったけど、なるべく自分で考えて解決していった。5時間考えて全くても足も出なかったことは夫に質問した。最初はそもそもプログラミングがわかってないという根本的な質問が多かったが、だんだんと「スペルミスが見つけられない私の代わりに見つけてくれる人」的立ち位置になっていくのであった。

無事、自分の力9割でwebアプリを爆誕させた私は、これは面白いものなんだなーと思うようになる。そうか、自分の○○があったらいいな〜を形にできるのか。と少し理解が深まる。

N予備校も環境構築が必要なんだけど、これは結構歯ごたえのあるコンテンツで楽しかった。これも一人で進められた。わからないところはググってみたりしながら手を動かしたりした。ここでサーバーサイドのことを少し触れはじめた。「今のあなたのじゃんけんアプリは、どういうロジックで手が出てるのかわかります。それをサーバサイドに移せれば、ロジックがわからなくなりますね。」という言葉を夫から頂き、いつかサーバサイドの技術を用いてじゃんけんアプリをアップデートしようと決意した私であった。

間に、神経衰弱アプリとか割り勘アプリとか色々作りつつ、なんとなくサーバサイドの勉強から逃げつつ、しばらくと気が過ぎていき、なぜかPythonとDjangoでなんかやってみるか!という気持ちが湧いて、思い切ってDjangoを使ってじゃんけんアプリを書き換える作業をはじめる。わかんないなりに、調べながらなんとか勧めていった合わせてPyQもやっている。Pythonの基本的な使い方とかはそこらへんで速習した。どうして、PythonなのかDjangoなのかというと、知り合いのエンジニアさんが私に興味持ってくれて、PythonとかDjangoとか勉強してくれたらちょっとした作業を振りたいと言ってくれたから、という感じ。

ここまでくると詰まったところは本当に単純なスペルミスくらいになってくる、基本的な流れで根本的に間違ってるというパターンはだいぶ減ってくる。うえーー、わからんーと言ったら、「スペルミスですよ」と言われる確率95%!なので、聞く回数もだいぶ減ってくる。スペルミスなら探せば分かる話だから…

あとは、CURDも込み込みのwebアプリが作れれば、一般人が思いつく一通りのwebアプリ作れるじゃん?と思ったので、一番最近作ったアプリに至る。バージョンが違うので一部書き換えは必要だったが、これこれ を参考に作った。

まとめ

ちょっとした日記サイトまで作るまでに色々サービス利用とか紆余曲折あったわけですが、気長でもいいけど諦めないで勉強し続ける、作り続けると一定の成果が出る気がします。サービスを使って勉強しているターンは独力で進められるけど、それから外れたときにどうするのか、みたいなのがカギなんだろうな〜と振り返って思いました。聞ける人がいたのでそこらへんをなんとか乗り越えられたけれども、聞ける人がいなかった場合はたぶん結構しんどいかもしれない…。自分の制作物を作るようになったときは、もしかしたら聞ける人を作っておくのは続けるコツなのかもしれません。

エンジニアの気持ちがわかるようになったかどうかは全くわからないのですが、何か起きたときに原因とか経過とかそこらを意識して夫と話すようになった気がします。なんとなく〜こうで〜みたいなのは減った気がします。そこらへんでコミュニケーションのやり方が少し変わった気がしました。

読みづらい文章だったかもしれないけど、読んでくれてありがとう。

Discussion