密着5〜6カ月の様子をお届けします
「大喜利アプリを作ってるんですけど…」寺田有 希さんのプログラミングチャレンジ、いよいよ最終章へ
長らくお送りしてきた寺田さんのプログラミングチャレンジもいよいよ残り1カ月。寺田さんは一体、どんなアプリを作ろうとしているのでしょうか…?
※密着1カ月目〜4カ月目の様子は記事の最後で見ることができます。
〈聞き手=宮内麻希(新R25編集部)〉
「寺田有希 プログラミングチャレンジ」リアル密着:オリジナルアプリ制作開始の5カ月〜6カ月目
テックキャンプ開始160日:2021年9月14日(火)いよいよオリジナルアプリ制作に移ったという連絡が…
寺田さん
宮内
寺田さん
大喜利アプリを。
宮内
寺田さん
でも、どんな演劇アプリを作れば私が感じている問題を解決できるのかがなかなか思い浮かばなくて。
そしたら堀江さんが「大喜利アプリでも作ればいいじゃん」ってふら〜っと言ってきたんです(笑)。
宮内
寺田さん
「私、自分でプログラミング書けてるじゃん!」ってちょっとうれしかったですね(笑)。
宮内
寺田さん
私、2カ月前に「プログラミングは“努力すれば”簡単」って言ったじゃないですか。
「簡単だよ」と言われると、多くの人が「すぐ習得できる」「ラクにエンジニアになれる」と変換しちゃってると思うんです。
“ロジックを理解したら簡単”ということと、“理解できるようになるまでに膨大な努力が必要だ”ということはまったく次元の違う話なので、そこもあわせて伝えるべきだなと感じてます。
実際、全然ラクじゃないんで(笑)。
寺田さん
なんていうか…プログラミングって「クックドゥを使って料理をする」みたいな感じなんですよ。
寺田さん
でもクックドゥという道具を使えば、豆腐を切るだけでおいしい麻婆豆腐ができてしまう。
プログラミングもそれと同じなんですよ。
宮内
寺田さん
コードを0から自分で書くのではなくて、「データを保存する」「データを送信する」と実装したい動作ごとにメソッドを使うことで、PCは「この動作がしたいのね」と察知して動いてくれる。
だから今は、やったことのない動作を実装するときも「なんかメソッドがあるんだろうな〜」と思えます。
一見難しそうでも、「調べればできるだろう」と思えるようになったんです。
オブジェクトの属性として参照される関数のこと。メソッドを有効に活用することで、 何度も同じコードを記述する必要がなくなります。
宮内
寺田さん
だから堀江さんは調味料からなにまで自分で手配して麻婆豆腐を作ってたんだな〜と思って(笑)。
そう考えると、堀江さんが「プログラミングは簡単」って言うのもわかりますよね。だって今はクックドゥを使えばいいから。
寺田さん
宮内
寺田さん
最終課題のときは、HTMLもCSSもファイルがすでに用意されていたんですが、オリジナルアプリはレイアウトや配色まで全部自分でやらないといけなくて…
だから今、すっごいダサい大喜利アプリなんです(笑)。
…ちょっと見ます?
宮内
寺田さん
そして次回の記事では、寺田さんプログラミングチャレンジの発起人(?)でもある堀江さんに、寺田さんがオリジナルアプリをプレゼンする様子をお届けします。
はたして、寺田さんは発表日までにアプリを仕上げきることができるのか?
ここまで見守ってきてくれたみなさん、ぜひ寺田さんに最後のエールを! そしてラストまで乞うご期待ください!
寺田さんのテックキャンプ挑戦の様子はこちらから!
チャンネル寺田有希
寺田有希 Twitter
寺田有希|STAGE|オンラインコミュニティ
「寺田有希 プログラミングチャレンジ」リアル密着:発展編と最終課題に突入する3カ月〜4カ月目
テックキャンプ開始80日:2021年6月25日(金)ついに半年間のカリキュラムの残りが100日を切ったという連絡が…
寺田さん
ついに…残り100日を切りました!
宮内
今は何を学習されてるんですか?
寺田さん
宮内
寺田さん
今まで専門用語やコードの記述に関することが流れてきても意味がわからなかったんですけど、最近は自分が学習している言語と違う時、完全な理解はできなくても「こういうことを言いたいんだろうな」と、想像できるようになった気がするんです。
寺田さん
プログラミング言語も同じで、言語によってクセや書き方の違いはあるんですけど、ある程度ベースとなる知識があれば「こういうことを言ってるんだろうな」とわかるのかもしれないなって。
宮内
寺田さん
テックキャンプ開始90日:2021年7月8日(木)ここから、本格的な実装が始まる「最終課題」へ突入します
宮内
寺田さん
寺田さん
今はデータベース設計をしてるんですが、これがまた大変で…
宮内
寺田さん
たとえば自分の部屋を片付けようと思ったとき、洋服も本も雑貨も、同じクローゼットの中に適当に詰め込んでしまうと、中もぐちゃぐちゃになるし、取り出すときに何がどこに入ってるかわからなくなりますよね。
データベースも同じで、“ユーザー情報はここ”、“商品情報はここ”というように、部屋を分けて、収納する棚を決めておく必要がある。あらかじめ、設計図を書いてわかりやすくしておくんです。
寺田さん
設計図を0から自分で書くようなものなので、正直かなり時間がかかってますね。
宮内
寺田さん
「この商品情報を保存してください」と言われたら、“ただ保存をすればいいんだ”と思えますよね?
宮内
寺田さん
保存する場所や、データが行き来できるようにするようにしたりと、いくつもの工程が発生するんですよ。それが文字なのか数字なのか画像なのか、中身でもだいぶ変わりますし。
つまり、目的に対してどんな要素が必要で、どのコードを使えば最短距離でいけるかを考えることが重要なんです。
宮内
エンジニア経験のある堀江(貴文)さんやひろゆきさんが合理的な判断をする理由がわかる気がします(笑)。
寺田さん
プログラミングは常に合理的に考えて「今はこれが必要だから、これだけをやるべき」というポイントを見極めていく作業の繰り返しなので、思考の訓練になるんですよ。
寺田さん
目標を達成するにはAとBをやればいいだけなのに、AからGまでやった方が“頑張ってる”認定される気がして、いらない努力をしてしまうときがある。
宮内
寺田さん
寺田さん
テックキャンプ開始120日:2021年8月5日(木)取材前日、遅くまでエラーに苦しんでいる寺田さんのツイートを発見しました
$マジ進まなくて本気で心折れそう…
こんなにエラー続きで解決できなかったことないんだけど…
調べて書いてエラー出てまた調べて書いて解決したと思ったら新たなエラー出てきて調べて書いてエr……あああああ
<a href="https://twitter.com/#!/search?q=%23テックキャンプ" title="#テックキャンプ">#テックキャンプ</a>
<a href="https://twitter.com/#!/search?q=%23プログラミング初心者" title="#プログラミング初心者">#プログラミング初心者</a>
<a href="https://twitter.com/#!/search?q=%23プログラミング勉強中" title="#プログラミング勉強中">#プログラミング勉強中</a>
寺田さん
昨日も3時間かけたんですけど、結局エラーの原因がわからなくて。
寺田さん
これだけで、もう2、3日悩んでて…
寺田さん
プログラミング、だんだん楽しくなってきたんですよ。
宮内
寺田さん
数学が苦手な文系の私でも、計算問題なら解き方さえ忘れなければ解けちゃうんですね。
でも記述問題は、問題を噛み砕いて、どの公式を使ったら解けるかまで自分で考えなきゃいけないじゃないですか。まさに実装課題はそんな感じで、これまでのやり方では解決できなくなったんですよ。
宮内
寺田さん
そしたら、だんだん「このメソッドを使えばいいんだ」と自分だけで答えを出すことができるようになってきて…これが超楽しいんです。
ここにきてはじめて、「答えは“覚える”ものではなく、“導き出す”ものなんだ」と実感できたんですよ。
寺田さん
堀江さんに「(プログラミングに対して)まだ心理的ハードルを越えられてない」と言われたのも、こういうことなのかもしれませんね。
みんなが“できない”と思ってることって、大体は精神的なハードルを越えられてないだけなんですよ。
寺田さん
宮内
寺田さん
“答えは自分で導ける”ということに気づき、その力を鍛える訓練こそがプログラミングなんだと思うんです。
宮内
いきなりプログラミングはハードルが高いですけど、ちょっと数学の問題を解きたくなってきました…(笑)。
寺田さん
そして、この考え方の違いを理解できるかが、プログラミングに挫折するかしないかの分かれ道なんだと思います。
…って、まだ最終課題も終わってないんですけど(笑)。
寺田さん
「寺田有希 プログラミングチャレンジ」リアル密着:応用編がスタートの2カ月目
テックキャンプ開始30日:2021年5月11日(火)ついに応用編を学習しはじめた寺田さん
宮内
寺田さん
宮内
寺田さん
宮内
寺田さん
よく“エラー”って聞くと思うんですけど、それが出てしまわないように、一旦コードが書き終わったら、テストコードを書いてチェックする必要があるらしいんですよ。
宮内
寺田さん
こんな感じで、学習することが応用に入ってからどんどん重くなってるので、心が折れはじめてるんですけど…
寺田さん
宮内
寺田さん
参加者から「STAGE内でアプリを作ったら楽しいと思うんですよね」と言われて、「たしかに!!」と。
「STAGE発のアプリを作る」というのが目標です。
寺田さん
宮内
寺田さん
テックキャンプさんと新R25さんをとことん使い倒す気持ちで頑張ります(笑)。
テックキャンプ開始60日:2021年6月4日(金)
宮内
寺田さん
正直、めっちゃつらかったです。基礎とは雲泥の差です。
宮内
$/\A(?=.*?[a-z])(?=.*?[/d])[a-z\d]+\z/i パスワードに英数字を使わなきゃいけないよって丁寧に書いてる文章です☺️いやもう記号やん!☺️ <a href="https://twitter.com/#!/search?q=%23プログラミング初心者" title="#プログラミング初心者">#プログラミング初心者</a> <a href="https://twitter.com/#!/search?q=%23プログラミング勉強中" title="#プログラミング勉強中">#プログラミング勉強中</a>
寺田さん
なんとか続いてますが、昨日まで沼に苦しんでいて…挫折寸前だったんですよ。
宮内
寺田さん
宮内
寺田さん
たとえば、このワイヤレスイヤフォンをネットショッピングで購入したとします。そうすると、これ自体も商品の箱に入っていて、さらにこの商品が段ボール箱に入って自宅に届くじゃないですか。パラメーターは、商品を届けるための段ボール箱みたいなものです。
情報もそうやって、マトリョーシカのように入れ子構造になって管理されていて、たくさんの箱に入って行き来しているんです。
宮内
寺田さん
Ruby on Railsでは、MVC構造を想像しながらプログラミングを学習するといいと言われてるんですが、この流れも工場みたいで余計に。
宮内
寺田さん
クライアント、ルーティング、コントローラー、ビュー、モデル、テーブル、役割が細かく分かれてるんです。
ルーティング:道筋を決める役割
コントローラー:どこで何をするか、何が必要か、指示する役割
ビュー:見た目(HTML/CSS)を整える役割
モデル:データベースを管理する役割
テーブル:データの保管場所
寺田さん
寺田さん
ルーティングはみんなで向かう方向を決める社長、コントローラーは敏腕秘書だと思ってください。そのほかは、倉庫や工場で働く頼もしい社員たちです。
宮内
寺田さん
その指示通りに、モデルは情報管理倉庫テーブルの扉を開けて商品を準備し、ビューが各家庭に送っても恥ずかしくないように見た目を整えながら、情報を段ボールにパッキング。
最後に完了報告を敏腕秘書コントローラーにすると、画面上に「ツイートが完了しました」と表示される…と、ざっくりこんな流れになっているんです。
寺田さん
22行目をみてください。ここには「メッセージ倉庫の中にあるcontentとimage、そして倉庫は違うけれど、user_idとcurrent_use.idも必要やから用意しといて!」と書いてあるんです。
宮内
話を聞いて思ったんですけど、プログラミングってかなり構造的に理解しないといけないんですね。
寺田さん
堀江さんや真子さんが「プログラミングは簡単」と言ってるのは、「ロジックを理解できれば簡単」ってことだと思うんですよね。応用を学習して、少し感じることができた気がします。
寺田さん
「簡単だよ」と言われると、多くの人が「すぐ習得できる」「ラクにエンジニアになれる」と変換しちゃってると思うんです。
“ロジックを理解したら簡単”ということと、“理解できるようになるまでに膨大な努力が必要だ”ということはまったく次元の違う話なので、そこもあわせて伝えるべきだなと感じてます。
実際、全然ラクじゃないんで(笑)。
宮内
寺田さん
課題アプリの実装中は、自力でアプリ開発できるようになるためにメンターさんへの質問が一部制限されるらしいんですよ。
明日からはじまるんですけど…やっぱり嫌だ〜!!!!
編集部が想定していたよりも(?)順調に進んでいる印象ですが、1人で実装を開始する発展編はどうなるのか…来月の更新もお楽しみに。
「寺田有希 プログラミングチャレンジ」リアル密着:受講開始〜1カ月編
テックキャンプ初日:2021年4月3日(土)キックオフ日
宮内
寺田さん
寺田さん
宮内
寺田さん
4月から自分のオンラインコミュニティや個人YouTubeをはじめたり、新しいチャレンジが重なっていたので、プログラミングについて考える暇がなくて…
レギュラーのお仕事をしつつ、プログラミングを勉強していくことになるので、正直かなり不安です。
宮内
寺田さん
この企画を受ける前から、1日に3時間程度プログラミングを勉強する時間をとらないといけないとはわかってたんですけど、実際にスケジュールを組んでみるとすごいですね。
スケジュール帳が、テックキャンプ、テックキャンプ、テックキャンプ…だらけで(笑)。
宮内
寺田さん
ライフコーチの方も優しかったですし、チームメンバーの方も気合いが入っていたので、チームとしての安心感を得られましたね。
宮内
寺田さん
テックキャンプ開始10日:2021年4月14日(水)基礎カリキュラムを受講中
宮内
寺田さん
宮内
寺田さん
寺田さん
宮内
寺田さん
初心者だし半年もあるし、最初の1カ月はゆっくり進めるのかと思ったんですけど、テックキャンプの鶴岡さん(ライフコーチ)の妥協がゼロで。
期限までに学習が終わっていないと、「遅れてますね〜」ってプレッシャーをかけられるんです。
本当は1日3時間の学習予定だったんですけど、すでに増やしてますもん。週に30時間は勉強してるかも。
寺田さん
受講終わりにその日学んだことを発表しあうアウトプットの時間があるんですけど、チームメンバーの方が先に進んでいると「早く追いつきたい」ってやる気が出て。
話してくれる内容が自分にとっての予習になるし、逆にチームメンバーの方にとっては復習にもなるので、理解を深めるうえでも役に立ってますね。
宮内
寺田さん
でも、試験に合格しないと応用コースに進めないので、自分のなかでしっかり理解しなきゃと思って。
自分で一度アウトプットしようと、紙に書き出すようにしたんです。
宮内
寺田さん
テックキャンプ開始20日:2021年4月21日(水)基礎→応用への本試験にチャレンジ
試験は終了し、寺田さんはちょうど自己採点中のようで…
寺田さん
宮内
寺田さん
今自己採点してみたんですが…
寺田さん
最後表記ミスしたんですよ。それで8点くらい減点されてて…
宮内
寺田さん
これからテックキャンプをはじめる人や卒業生がこれを見てたら「寺田、この試験落ちたんだ…ダサ」って思われるんだろうなあ…。
落ちたことも、記事にしちゃいますもんね!?
寺田さん
試験は何回受けてもいいみたいなので、何度でも受けてやります。GW中に絶対合格します!!!!
次回以降は、グッとレベルがあがる応用カリキュラムに挑戦する寺田さんの奮闘の様子をお届けします。
寺田さんのチャレンジの様子は YouTubeチャンネルやTwitterアカウントからもチェックできます。ぜひリアルタイムで応援よろしくおねがいいたします!
発表会では最終課題で制作したフリマアプリをアップデートするか、自分でオリジナルアプリを作るか選べるんですが、私は後者にしました。