町外れにある無人の館

そこにはお化けが出るという噂があった

ガチでダイエットに挑戦した記録〜結果編〜

生活編の続きです。まあ概要編からでも大丈夫

結果

なんか引っ張ってもアレなんで、早速結果をどうぞ。

体重(kg)

体重の推移(kg)

74.8kg→66.3kg
減少量: 8.5kg

体脂肪率(%)

体脂肪率の推移(%)

22.3%→16.0%
減少量: 6.3%

というわけでたまに上昇してグラフがでこぼこになってるけど、でかく見たら直線的に減っていっていることが分かると思います。
自分でもびっくりするくらい常に落ちていったよ。

まあ最終日は最終的な体重を測定するんで、夕飯の量を控えていました。減少量はいくらか水増しされているので、実際は67kg前後だと思います。
それでもかなり減らせたことに違いありません。褒めて。

除脂肪体重

ちなみに除脂肪体重という指標がありまして、体重から体脂肪の重さを引いた値のことを指します。
除脂肪体重があまり減っていなければ、うまく体脂肪だけ落とせていて、筋肉量の減少は防げていることになります。

そちらについては
57.1095kg→55.692kg
となっていました。

多少減ってはいますが、食事を控えて減少量を水増ししていた分水分抜けてたりという分が考えられます。
それを踏まえるとほぼ体脂肪だけ落とせたとみなせるのではないでしょうか?

筋トレしててよかったね。

走行記録

個人的に体重の減少量よりもこっちのほうがびっくりなんですが、ランニングとサイクリングの記録も見てみましょう。 走行距離

オレンジがサイクリングの記録で、青がランニングの記録です。
目盛りの単位が違います(サイクリングが左側、ランニングが右側の目盛り)のでご了承。

合計距離は

ランニング サイクリング 合算距離
333.92km 701.76km 1035.68km

でした!

30日間ガチでランニングとサイクリングすると仕事しながらでも1000km行けるんですね〜

これはマジで頑張ったと思います。

感想

ダイエット完走した感想です。

わるかったこと

まずめちゃくちゃきつかったです。
こんな生活続けられたもんじゃありません。

足に疲労を抱えていると生活編で言及しましたが、倦怠感なんかは毎日感じていました。
圧倒的糖質不足により頭回らんで仕事の能率めちゃくちゃ落ちてましたので、進捗出すスピードが遅れてしまっていたのは会社の皆さんには少し申し訳なく感じているところです。

しっかり毎日7〜8時間は睡眠時間確保していたんですけどねえ...疲労はなかなか取れてくれませんでした。

これからはしっかり毎日飯食って業務に集中できるように努めていきます。

よかったこと

とりあえず目標を達成できたことは良かったなと安堵しています。
7〜8kgくらい落とせたらいいな〜って希望的観測を持っていましたが、実際8kgくらい落ちましたね。

腕時計の穴も1つ縮んだり、ベルトの穴も1つ分以上縮みました。横っ腹に乗ってた脂肪もすっきりしてかなり細くなったなーと実感しています。

それと、体力がかなりついたことも良かったと思います。
いくらゆっくりのスピードとはいえ、フルマラソンを走る体力持ってたのなんて中学〜高校2年くらいまでだったでしょう。その頃の体力を取り戻せたというのはかなりのポジティブ要素です。
これでこれからの暑い中でのゴルフもこれまでの大学時代より楽しくできるようになりそうです。

また、体調を崩したり、怪我をしたりしなかったということも良かったですね。
多少気分が悪くなったり頭痛がしたりということはありましたが、全体的に大きな怪我や病気が無く1ヶ月継続できました。
自己管理できてすごいぞ俺!

よくわからないこと

完全に予想外だったんですが、かなり日焼けしました
いいのか悪いのかよくわかりません。まあどのみちこれからの時期ゴルフでクソ焼けるだろうし、それが早まっただけやね。

最後に

こんな生活真似するのはやめようね!

ガチでダイエットに挑戦した記録〜生活編〜

概要編の続きです。
そっちから読んでね

1日の過ごし方

平日

  • 5時: 起床、朝食
  • 5時-14時: お仕事、昼食
  • 14時-14時半: 筋トレ、排便
  • 14時半-18時: ランニング・サイクリング
  • 18時-19時: 夕食、明日の買い出し
  • 19時-21時: 風呂、明日の食材のカット
  • 21時: 就寝

基本的な過ごし方です。ここから若干ブレたり他の予定が入ったりすることもありますが、まあだいたいこんな感じ。

結構キツキツでした。

休日

休日は朝からサイクリング行ったりランニング行ったりしてたのでその日によってまちまちです。

1日中外にいることもありましたね。

平日のようにいいタイミングで家にいるわけでもないので料理ができずに食事はコンビニのサラダチキンや水ようかん、カロリーメイトを食べることが多かったです。

生活の様子

1週目(4月3日→4月9日)

食事

概要編で言ったように、主に鶏むね肉やらブロッコリーやらを茹でたものに塩コショウとかポン酢とかかけて食ってました。

最初の2、3日でクソキツくなって、耐えきれずに4日目くらいですき家の牛丼大盛りをかっさらいました。こんなに美味い牛丼を食べたのは久しぶりだった...

味が毎日単調で、むね肉も日が経つと臭みが出てきて食うのがしんどくなってくるのでなにか食事の改善が必要かな〜

運動

ランニング50kmくらい、サイクリング110kmくらいやりました。

それにしても、20kmもランニングしたり40kmもサイクリングしたりを毎日続けて休息の日も取らないとなると、常に足に疲労感あってかなりヤバい。
これ長期間続けたら確実に足怪我してお亡くなりになるやつだよ。

まあそれでも最初の20kmランニングはかなりしんどくてやばかったのが、2回目からはかなり楽になってきて成長も感じられます。
サイクリングと併用しながらなるべく無理がないようには続けられそうな気がします。

アクシデントとしては、5日目に自転車がぶっ壊れて修理に出したくらいですかね。前々から修理してほしいところは色々あったんですが、後輪のスポークが切れて走れないレベルにまでなってしまったのでいい機会と思って修理に出しました。
修理代2万円らしい。仕方ないね♂

経過

初日にいきなり食生活が変わったせいか、いきなり1kgくらい減ったこともあって予定より大きく減少しました。詳しい結果はまた後でね。

まあ開始直後は水分抜けて極端に体重落ちるんで、これからの減量がスムーズに行くかどうかが鍵です。

2週目(4月10日→4月16日)

食事

単純に茹でたやつを食うのに限界感じてきたので、概要編で言っていた鶏むね肉を茹でたやつってやつから鍋にシフトしました。
食材次第で鍋ってめっちゃカロリー抑えられるんですね。色んな味もあって、飽きも来にくいかなと思ってこの週はずっと鍋食べてました。
1日900kcalの目安もちゃんと守ってます。

材料は白菜、もやし、ブロッコリーと鶏むね肉が主だったかな。
白菜と胸肉については前日の夜のうちにカットしてタッパーに詰めて冷蔵庫で保管しておいて、翌日食べるときは各々の食材をぶち込むだけという簡易的なものになるようにしていました。
結果的にこのスタイルがダイエット開始から終了までずっと続いていきました。

運動

4月10日の土曜日に70km、11日の日曜日に130kmのサイクリングするなど、前週より多めに走りました。
1週目に直した自転車のおかげでかなり快適にサイクリングできるようになりました。マジで快適すぎてヤバい。羽生えた。
修理代2万払ってよかった。

ただ、12日の月曜日は松山英樹フィーバーから心身共にぼけぼけになってしまったので、唯一ランニングもサイクリングもしない日になってしまいました...

その後は20kmランニングに慣れてきたということで、ランニングとサイクリングを隔日で行うサイクルに変更しました。
意外とイケるようになっていて、かなり成長感じてます。

筋トレのほうもぼちぼち続けてはいるんですが、なかなか筋力アップが実感できずにいます。なんか最初の頃と比べて楽になってきたということが無くて、負荷を上げられずにいます。

あと相変わらず毎日の足の疲労感は取れていません。結構キツイ。

経過

流石に前週と比べたら体重の減少量が減ったけど、初週は初日いきなりの1kg減少が効いてるのもあるし、それを踏まえたら体重の推移はすこぶる順調です。
実際体脂肪率は1週目と同じくらい減ってるしね。

土日に200kmもサイクリングしたにも関わらず、牛丼大盛り食ったり炒飯食いすぎたりしたおかげなのか全く体重も体脂肪率も減りませんでした。
こんだけ大食いするのは一旦控えておきましょう。

とはいえようやく折返しに来て、ここまで順調に減ってきているのであと半分の期間もこの調子で体重落としていきたいですね。

3週目(4月17日→4月24日)

2週目までは7日刻みだったけど、3週目からは8日刻みで行きます。

食事

2週目で鍋飽きないと言ってたのに毎日煮たものを食ってると流石に飽きてしまい、食べるのが非常に苦しくなってしまいました。

むね肉を食べるのも苦しくなってきて、3週目からはもも肉を食べるようになりました。
調理法も茹でるものから炒めるものへシフト。キムチ炒め美味しい。。。

とは言っても、皮剥いじゃえばむね肉とあまりカロリーは変わりません。
むしろむね肉では補えない脂質を少し摂取できて、2週目までは全然変わらんなあと思ってた筋力がアップし、苦しくてできなかった筋トレもだんだんできるようになっていきました。

結果的には良かったのかな。

あとしらたきラーメンを食べ始めました。ラーメンの麺に普通の麺ではなくて、しらたきを使うというものです。
これがなかなか優秀で、普通にラーメン食ってる感覚なのにしらたきは100gあたり4kcalとほぼカロリーが存在しないために超ローカロリーメニューに仕上がっています。

満腹感もそれなりに得つつ、カロリー摂取量も守っています。

運動

ランニングへの慣れを2週目より感じたので試験的に2日ランニング1日サイクリングのスパンにしてみました。

そしたら初めて2日ランニングした翌日に体調を鬼崩しました。体中ダルくて頭痛が治まらないっていう最悪の日でした。
ただそれでもサイクリングには行きました。そしたらサイクリングの途中でちょっと体調良くなりました。とはいえ体調悪い状態が続いていたのでしんどかったです。

まあ2日ランニング1日サイクリングのスパンで行けそうな感はあったんで、この後はそのスパンで行くことにしました。

休日はちょっと例外で、土曜日に33kmのランニング、日曜日に60kmのサイクリングを行う関係でそのスパンは崩れます。

相変わらず毎日足の疲労を抱えて生きています。仕事すんのもしんどい。

経過

疲労を必ず抱える毎日なので、心身ともになかなかしんどいです 。
その見返りとしてはなんですが、体重と体脂肪率の減少は相変わらず順調です。

このしんどさ続けて結果出し続けてる俺すげーって思うようになってきました。このくらいのポジティブシンキングはゆるして...

あと脂肪の減少を明らかに実感できるようになってきました。
ベルトの穴を1つキツくしないといけなくなったり、顔のラインがすっきりしてきたり、お腹周りの脂肪が落ちてきて腹筋の筋が見えるようになってきたり。

あと1週もなんとか頑張っていきましょう。

4週目(4月25日→5月2日)

食事

3週目とあまり変わりません。もも肉と野菜食う毎日。

長い距離のランニングの前には水ようかん食べて糖質を摂るようにしました。ランニング中の疲労感が全然違いますね。やっぱり糖質って大事っすわ。

その関係で1日の摂取カロリーが900kcalを上回る日が多くなりました。まあ体脂肪率は落ちてるのでヨシ!

運動

こちらも3週目とあまり変わりません。2日ランニングして1日サイクリングする毎日。

20km走るのが最初と比べてかなり楽に感じるようになって、80kmサイクリングするのも「もう終わり?」と感じるようになりました。
かなり成長してますね。

翌日に足の疲労は残り続けるものの、こちらも最初と比べてかなり少なくなりました。体力ついてきてんなあ。

最終日である5月2日はフルマラソンの距離をランニングしました。
中盤13kmくらいマスク付けて走らないといけない区間があってかなりきつかったですが、無事完走できたので良かったです。

経過

摂取カロリーは増えてますが、多分ランニング中に脂肪を燃やすエネルギーとして使用されてるんで体重や体脂肪率が落ちなくなったということは無く、自分でも怖いくらい順調に減り続けてました。

結局ずっと順調でしたね。


さてさて、生活の様子としては以上です。
次回→結果編

ガチでダイエットに挑戦した記録〜概要編〜

日頃から15km走ったりゴルフ行ったりしてるけど、一昨年くらいから体重増え続けて流石に許されない感じになってきたので体重と体脂肪率を落とすことにしました。
いわゆるダイエットってやつですね。

ただ普通にダイエットしてもアレなんでちょっとした挑戦というか実験というかを行おうかなーと思います。
これはその挑戦内容と日々の記録を綴るだけの文章だよ

どんなダイエットに挑戦するん?

これに関しては一言で言うと"究極的普通のダイエット"っていう感じかな?

ダイエットの大原則として、消費カロリー > 摂取カロリーがあります。
それを究極的に突き詰める感じですね。

まあつまり、消費カロリーを膨大にして、摂取カロリーを極小にするってわけです。
単純に言えばこれだけです。

そして、期間は1ヶ月です!(具体的には4月3日から5月2日までの30日間)
挑戦内容は「俺は1ヶ月で何kg落とせんの???」ってだけです。
かなり突き詰めて、落とせるだけ落とそうというのが趣旨です。単純でしょ?

摂取カロリーについて

そのへんのブログによると、1kgはだいたい7200kcalくらいらしいです。
基礎代謝を1日1500kcalと仮定すると、何も食わなきゃ単純計算で4〜5日で1kg痩せていく計算になる。
ただ何も食わないのは栄養失調で免疫不足にもなるし、体脂肪だけでなく筋肉まで落ちてっちゃってかなりヤバいなのでできるだけ避けていきたいところですねぇ

そこで、

  • 栄養不足により体調を崩さない
  • 筋肉を落とさない
  • でもカロリーは超抑えたい

ということを考慮しないといけません。

行き着いた結論は「鶏むね肉と野菜を中心にタンパク質は1日100g以上は摂取する」でした。

100gに足りない部分はプロテインで補っていきます。
とりあえず1週目現在は白菜やらブロッコリーやらを鍋にぶっこんで煮込むだけの料理を食べ続けています。多分終わりまでそんな食事になりそう。
こんな感じの食事にするとプロテインのカロリーも含めてだいたい1日900kcalくらいの摂取カロリーになります!

ただ、圧倒的糖質と脂質不足により、身体はどんどんカロリーを使わない方向に機能をシフトしていきます。具体的には体温を下げるとかね
そうなると基礎代謝が落ちちゃうんで、5日に1日くらいは米とか肉とか好きなもん食います。(いわゆるチートデイ)

体重は朝と夜に測定します。まあ身体の水分量でかなり変わってきちゃうんで1日1回だと正確にどんくらい減ってんのかわかりづらい部分がありまして。
経過の記録については夜体重を明記しますが、多分最終結果では朝記録を書くと思います。基本的に朝のほうが低くて減少記録を水増ししていくために

消費カロリーについて

さて、摂取カロリーは1日900kcalくらいらしいけど、消費カロリーはどうしようかな?

まず基礎代謝を1500kcalとすると1日辺り600kcalは上回ることになるから12日で1kg痩せられそう。

ただこんなんしょっぱすぎるっしょ。運動しないと筋肉も落ちるからせっかくタンパク質摂ってるのに意味ないじゃん。

つーわけで1日辺り基礎代謝以外で1200kcalの消費を目指します

1200kcal消費すると基礎代謝で上回った600kcalと合わせて1800kcalも上回ることになります。
そうすると、単純計算で4日で1kg減ることになりますね。これならエモそう。

ちなみに1200kcalを消費しようとなると、ランニングだと20kmくらい、サイクリングだと30〜40kmくらい走らないといけません
毎日続けるのはしんどそうですが、まあいいっしょw

あと、ランニングやサイクリングなどの有酸素運動は長時間やりすぎると体脂肪といっしょに筋肉も分解されてしまうんです
なので、筋肉をなるたけ維持するように軽く筋トレも行います。昼休憩のときとかランニング行く前とかにやる感じで〜

目標

4日で1kg減る計算なので、30日間で7〜8kgの減少は見込みたいですね。
開始時の体重が74.9kgだったので67kgくらいになればいいかな?

65kgくらいまでは落としてみたいので30日が終わってももうちょっと続けるかも。

備考

筋肉量が豊富な方、もしくはBMIが30とかあるような方については30日で7〜8kgの減量はここまで厳しくしなくても実現できるでしょう。

しかし、俺のような筋肉量があまり無い中肉の人はそこまで基礎代謝が高くないはずで、30日という短い期間でなるべく多くの体脂肪を落とすにはクソほど有酸素運動してカロリー制限を設けることが一番実現可能性が高いと判断しました。

ぶっちゃけこれ以上減らそうとするとマジで健康被害ありそうなのでそこまでストイックにはしません。

注意

ダイエットは本来もっと長期的に考えるべきです!

よく1ヶ月で10kg痩せた〜なんて言う人いますが、無理しすぎだし高確率でリバウンドします。

詳しくはなかやまきんに君YouTubeのセカンドチャンネルを見てほしいんですが、ダイエットは筋肉を増やして"貯筋"して基礎代謝を下げないようにして、無理はしないことが重要です。

だいたい健康的な範囲として言われているのは1ヶ月で体重の5%の減少量です。俺の場合は70kgちょいなので3kg〜4kgくらいが適正です。
7〜8kgの減少なんてかなり不健康なのでやるべきではありません

まあ挑戦ということで許してちょ。俺もこんな生活長くは続けようとは思ってません。甘いもんもお菓子も食いてえし。

概要はこんな感じです。 次回→生活編
結果だけでええわっていうせっかちさんはこちら→結果編

#Progate やってみた感想の続き

f:id:bo_yakitarako:20200815125157p:plainf:id:bo_yakitarako:20200815125203p:plain

前回から更にProgateをやり続けて、ついに全コース終了しました!いや〜長かったね。

んで、全コースを1度ずつ完了したときのステータスはこうなりました!

f:id:bo_yakitarako:20200815125717p:plain

これ演習1つ1つに全部スライドで説明ついてるって考えたらやべえな。ナニモンだよって感じでもとりあえず運営の方々にはお疲れさまですと言いたい。良質なコンテンツをそんだけの量用意してるんだからマジですごいですよ。ありがとうございます!

全体的な感想は前回から変わってないので、今回は各コースごとの感想を簡単に喋っていくっ!をやりたいと思います。

HTML & CSS

めっちゃ良かったです。学習コースは説明が丁寧で、サイトがだんだん出来上がっていく高揚感がたまらなく気持ちよかった。

俺が実際にサイト作ってたときに使ってたタグとか機能はだいたい網羅してたので、道場コースができるようになれば自分のオリジナルサイトをいい感じに作ることができるのではないでしょうか?

それにしても道場コースのいきなり荒野に放り出された感はすさまじかったけど。道場コースが難しいと嘆く人が続出してんのも納得できます。

JavaScript

うーん、微妙。ES5のほうはネットですぐ手に入るようなものしか無いのでマジで金払う価値ないです。

ES6のほうもまとまってはいたと思いますが、前回言ったようにletconstの紹介の仕方が良くなかったり、もうちょっと言うことあるだろと感じたりすることが多々あります。

分割代入やスプレッド構文、async/awaitやジェネレータ関数といったES6以降のJavaScript特有の表現は一切紹介されていないので、あまり他言語との差はありません。PythonやらPHPやらJavaやらのコースを1つでも終了していたらあまりやる必要はないです。

jQuery

動的なWebページが構築されていく流れであったり、jQueryでよく使うメソッドがわかりやすく身につくので良かったと思います。

ただ、俺はjQuery不要論者なのでこのコースが用意されている時点であまり良い気はしませんでした。未だに案件でもjQueryがよく使われてるらしいし、いい加減SPAの時代に合わせて仮想DOMを受け入れていきませんか?

Ruby

Progateやるまで触ったことが無く、Progateができるんならせっかくだし触ってみようっていうスタンスでやってみたのがRubyだったので個人的にはためになりました。

巷ではサーバーサイドはRubyが初めてという方が多いらしいですが、その理由もなんとなく理解できます。初めてやるならわかりやすいかも。

わかりやすいんですが、基礎的な文法にRuby独特の表現を用いることが多く、あんまり好きにはなれませんでした。そもそも動的型付け言語がそんなに好きじゃないってのもある。

Ruby on Rails

こちらもRuby同様、Progateで初めて触りました。すごく実践的にWebアプリを作ることができるのでめっちゃ良かったです。

流石に俺自身はこれまでいくつものサービスを1から作ってきたのでそこまでの達成感は得られなかったけど、Progateでプログラミングを始めたって人がこのコースやってWebアプリ作ったときの達成感は凄まじいものになるのではないでしょうか。

プログラミングの醍醐味とも言えるその達成感を存分に味わうことができるコースです。レッスンの数は他よりかなり多いけど、これも実際にサービス構築しながらやってるんだからそうなるよね。仕方なし。

でも、HTML & CSSと同様に道場コースはかなり厳しいと思いました。あれをプログラミング始めたての人がやるにはキツすぎます。できるようになる頃にはいい感じになってそう。

PHP

微妙です。基本的な文法やってからお料理注文サイトみたいなの作りますが、Railsほど凝ってないのであまり実感は湧きませんでした。基本的な文法も他の言語とやってること変わらないのであまりやる価値は無いです。

Java

PHPJavaScriptと同様に、あまりやる価値はありません。そもそも入ってるJavaのバージョンがJava8だったのでJava9以降の機能は何も無く、他言語との差はありません。var使って書く量減らしたかったのに使えなくてイライラしちゃった☆

全体的にそうなんだけど、Progateってオブジェクト指向の説明めっちゃ押してくるんですわ。それはまあ良いんだけど、あんだけオブジェクト指向押しておいてinterfaceポリモーフィズムの説明をなんもしないのは良くないと思いました。継承や抽象クラスまでやるのになぜinterfaceまで踏み込まないんだ...!

Python

PHPJavaScriptJavaとおんなじ具合です。それらやってたらわざわざProgateでやる必要性は感じません。

個人的にnumpyの行列計算で行列とスカラーや行列と行列を掛け算するように書いてもちゃんとやってくれるのとかリスト内包表記とかかなり衝撃だったし、そういうのこそPythonのすごいところだと思うんだけど、そういうのは何も紹介されてないです。意味無し。

Command Line

うんち

Git

これ必要あるのかなぁって感想。これはProgateが悪いというかGit自体が実務で触れてみないと恩恵が感じられないからという理由故です。

ひつじ仙人とにんじゃわんこでリモート開発みたいなことやって、なるべく実感が得られるように工夫していましたが、あまり実感は湧きませんでした。

実務で実感得ながら学べば良いと思います。

SQL

これに関してはかなりやりごたえがあり、とても勉強になりました。

SQLだけでDB操作やるのが苦手というのもあると思いますが、長いクエリ文を書いてデータ解析を行う道場コースは他のコースでは中々味わえない大変さがありました。

他コースでここまで複雑なクエリ文を書くことは無かったですが、他コースをやる前に学んでおいても損は無い価値のある良いコースでした。

Sass

Sassを短時間でパパっと知るには良かったです。まあSass自体がそんなに難しいものじゃないからProgateでやる必要はないかもしれないって程度ですかね。

Go

GoもRubyと同様にProgateで初めて触れましたが、JavaPHPと同様に微妙です。クラスの概念が無いのか、ES5版のJavaScript程度しか内容はありませんでした。ググれば十分そう。

React

カスです。

まず、クラスコンポーネントはもう時代遅れでReact Hooksへの移行が進んでるのでクラスコンポーネントが紹介されて、Hooksは何も紹介されていないのを見て激萎えしました。React公式でHooks使えって言ってんのになぜ触れもしないでいつまでもクラスコンポーネントでやってんの???

Reactと来たらstate管理としてReduxを筆頭としたFluxアーキテクチャも一緒に学ぶべきですが、何も学べません。ただただ「それReact必要ある?」みたいなフォーム送信ページを作るだけです。

所感としては「へーJavaScriptの中でHTMLみたいなの書けるんだへー」くらいがなんとか分かるくらいです。WebpackやBabelの説明や環境構築にも一切触れないので突然bundle.jsをscriptタグでいきなり読み込んでて????????ってなりました。

Reactを支える周辺技術もReactを学ぶ上で知っておくべき概念でしょう。しかし、その説明は一切無しです。「なんやかんや変換されてHTMLになるんじゃ」みたいな感じに書かれてました。ハハッ

三項演算子が使えなくて無駄にletで宣言してたり、分割代入が使えなくてthis.state.contentなどをいちいち書いたりと普段当たり前にやってることができなかったりでイライラが積もっていったのもあります。まあやる価値はマジで無いですね。

Node.js

npmに少しだけ触れてはいましたが、Node.jsというよりかexpressのコースです。「expressでWebアプリ基本」みたいなコースです。DB接続やテンプレートエンジンなども全部expressのやつで、expressを学ぶには良いと思いました。名前はexpressにしたほうがいいですね。

おわりに

特にないよ。締めるだけ。ほいじゃの〜

#Progate やってみた感想

なんじゃそりゃ

Progateって知ってますか?まあ知ってるよね

簡単に言えば、ProgateっていうのはプログラミングをWeb上で学習できるサービスのことです。アプリ版もあるよ!

ある程度までは無料でできるんですが、全コースやろうとすると有料になってきます。それがなんやかんやしたら無料で全コースできるようになったので早速試してみました!その感想を話していきまーす。ゆるくいきましょ

ちなみにタイトルに#がついてるのはTwitterで共有したときにハッシュタグにするためだよ。

[追記]
各コースごとの感想をまとめた記事も書きました!

やったこと

Progateでやったコース
Progateでやったコース
画像縦に長いと見にくいなオイ

というわけで

をやりました。

レベル
レベルは217まで上がりました。なるほどな? まあ結構な具合でやったとは思います。デイリーランキングで2位、ウィークリーランキングで3位になったからね

実際どうなの

結論から言いますと

全くプログラミングに触ったことない人が初学でやるには課金する価値があるとても良いコンテンツ
でも、個人的には課金してまでやることではないなあ...

的な感想を持ちました。具体的なメリット/デメリットを挙げながら説明したーい!

メリット

メリットはめっちゃあるので1つずつ紹介していきます。

1. 資料が丁寧でわかりやすい

これはなにか学習しようってなったときに一番気にするポイントだよね。

f:id:bo_yakitarako:20200810153912p:plain
資料

学習資料はこんな感じのやつが画面いっぱいに出てきて、これがスライド形式に何枚か繋がって出来ています。

実装していく上での重要なポイントを抑えてしっかり教えてくれます。最低限に必要なものを簡潔に伝えてるので見やすいしわかりやすい!

俺がプログラミング初めてじゃないからわかりやすいって思うだけかもしれないけど、多分初学者の人にとってもわかりやすいよ。きっと。いや、そうであって。これでわかんない人は諦めて

2. 自分で実装したものの結果がすぐ見える

プログラミングの開発環境ってコマンドで済むこと(CUI)なら実行のショートカットキーッターンッ!とか実行ボタンポチーッ!ですぐ見れるんですが、実際のWebページ作ったりアプリを作ったりするとなるとコンパイルしてブラウザとかで結果見るってなるんで、一旦開発エディタから離れることがちょこちょこあったりします(デュアルディスプレイとか出力を内蔵してるエディタとかなら離れず見れるけど、そういうことは言わんといて)

これがまあまあダルくなってくるんですが、Progateは1ページ内に

  • エディタ
  • 実装したやつの出力
  • 目指すことになるお手本の出力
  • 課題内容

が収まってて、オールインワンです。 f:id:bo_yakitarako:20200810155917p:plain

結果がすぐ見れると、やってて楽しさがアゲぽよになる人は多いでしょう。モチベの維持の観点からもこういうのはありがたいですね

3. 実装する内容がリアルで、達成感がすごい

PHPでは

f:id:bo_yakitarako:20200810161459p:plain

こんな感じのお料理注文画面を制作しますし、Ruby on Railsでは

f:id:bo_yakitarako:20200810162253p:plain

こんな感じの簡易的なSNSサービスを制作しながらプログラミングを学びます。

学んでいる言語とあまり関係ないHTMLやCSSは用意してくれて、自分で実装するのはロジックの部分のみです。見た目作るのダルいからこの辺をやってくれて学ぶべきところに集中できるのは良いですね!

簡易的なものなら自分でも作ることができるんだと実感できることも達成感や自信に繋がるでしょう。

4. 開発環境を用意する手間のなさ

プログラミングって開発環境を用意するのがとても面倒なことが多くて面倒です(至言)

Progateは開発環境が用意された状態で学習を始めることができます。そんな用意の手間なんてありません。

プログラミングやったことない人がプログラミングをやってみようとして挫折する最初の大きなポイントは開発環境の整備ですよね。それをやらなくていいだけでもデカすぎます。

5. 経験値やレベル、ランキングが楽しい

上のほうでもレベルだの言ってますが、この概念がとても楽しいです。やればやるだけレベルがどんどん上がりますし、それに応じてランキングもどんどん上がっていきます。

俺はもう完全にレベリング感覚でProgateやってたまであります。ProgateはRPGです。

6. 安い

プログラミングスクールなんかは受講にウン十万かかりますし、言語の入門書籍も1冊辺り数千円かかり、1冊だけでできるようになることは少ないので実際にサービスを作れるようになるための言語やスキルの習得にはウン万円はかかりるでしょう。

ところが、Progateの場合は月額980円です。HTML/CSSJavaScriptPythonRubyPHPJavaなどなど様々なコースが用意されてたったの980円です。月額なので数年単位でやるとそれだけお金はかかりますが、1ヶ月や数ヶ月単位でやれば数千円で済みます。

これは「安すぎてヤスリになったわね🔨」と言いたくなるレベルです。すごい

デメリット

メリットでめっちゃ褒めてきましたが、「課金してまではやることではないなあ...」と思うには当然のデメリットも存在します。

1. 内容がガチで初心者向けしかない

一応コース内で初級編とか上級編とかで難易度分けが存在して、後半になれば上級にっていう流れがありますが、ぶっちゃけ全部初級編にしか見えません。

挑戦課題!みたいなので吠えるのはせいぜいFizzBuzz程度です。「道場コース」っていうそれまでやってきたことをあまり指示受けずになるたけ自分で頑張るみたいなやつも用意されてるんですが、それも所詮それまでやってきたことをなぞるだけです。

プログラミングでよく言われる「論理的思考」はほとんどやりません。用意されたものを指示通り書いていくだけです。実際はどうやるか考えることも大事だと思うんだけどなあ...

2. 紹介された書き方しか許さない

これはかなりのイラつきポイントでした。同じ出力を得るのに様々な書き方があるのに、スライド資料で紹介した書き方でしか許されません。

例えば、Pythonではf-stringやstr.formatの使用は紹介してないので使えません。なので

length = 1.7
print('身長は' + str(length) + 'mです')

この書き方でやっとクリア判定になります。マジでめんどいし、

f'身長は{length}mです'

って書かせてくれよ

PHPではこんなこともありました。多分初期値1からfor文回して数値を出力するみたいなやつです f:id:bo_yakitarako:20200810170753p:plain

資料では右のように初期値を1としていました。でもfor文で初期値1、条件に<=というのは気持ち悪くないですか?for文中の$iは"index"という意味を持つ変数であると解釈します。当然0スタートなので普段通りに0からやってみたらダメって言われるんです。

上で挙げたやつ以外でも同じような場面にたくさん遭遇しました。なんか小学校の先生が教えたこと以外でやったらバツにするからね!ってやつを想起させて嫌悪感を抱きました。初学者にはあんまり関係ないのかなぁ...

3. 紹介する内容が少なすぎる

JavaRubyPythonなどの言語紹介のコースでは出力や変数や条件分岐、繰り返し、配列といったプログラミングの基礎的なことをやりつつ、オブジェクト指向の説明なんかも交えていました。

それにしても全然踏み込んでいかないんですよ。そこはもっといっとけよ!ってとこに手が届いてないんですよ。

例えば、三項演算子再帰関数は全然やりません。まあそのへんは初学者には難しいのでわかるとしても、例外処理もやらないんですよ。exception投げるとかtry-catchもやらないんですよ。

Rubyはやったことないので深いところまでわからないんですが、調べたら繰り返しはforやwhileなんかはもちろんuntilなんかあるんですね。おもろい。でも、紹介されたのは配列のeachでの繰り返しだけです。確かに配列操作して繰り返しってことが多いっちゃ多いですが、それしか言わないのどうなん?って感じました。

Javaではinterfaceのこと何も言わなかったり、Pythonではタプルの話とか一切なかったり、JavaScript(ES6)もPromiseの非同期の話やスプレッド構文が出てこなかったりと、結構はしょってます。

内容の少なさとは逸れますが、JavaScript(ES6)に関してはletconstの扱いに少し疑問を感じました。

Progateではletは変数!constは定数!と言ってletconstを識別しています。「定数〇〇を定義してください」なんて言うんです。

まあよく肥えたフロントエンドエンジニアのみなさんならこんなこと言われたらツッコみたくなりますよね?なって。なってくれないと俺が恥ずかしい。

f:id:bo_yakitarako:20200810174548p:plain
constの説明

letconstも変数だし、constは再代入不可です。定数ではないです。値が更新できないなんて言ったらオブジェクトリテラルとか配列で変更できるのなんなん?ってなるでしょう(その話が出てきたら普通にconstで値更新してた)。このへんは下に小さくとかでいいんでちゃんと紹介してほしいですね。

4. エディタが貧弱

これはVS CodeEclipse、PyCharmといったIDEで慣れきってしまった弊害ではありますが、エディタがなんもしてくれなくて辛かったです。

プログラミングするときのエディタの機能ってめっちゃ大事ですやん。入力補完で変数名やメソッド名を間違えずに入力できるし、自動でインポートしたり、崩れたインデントを直したり、他にもなんか色々してくれるエディタの機能を使わないで開発してるプログラマーはほぼいないですよ。

学習ごときにそこまで必要ないでしょ...って俺も最初思って受け入れてたんですが、変数とかメソッドの名前をめちゃくちゃちゃんと付けるお陰でタイプミスしまくってシンタックスエラーを何回も繰り返してるうちにそんな思いは消え失せました。イライラはどんどん溜まっていきました。

命名しっかりやるのはとても好感持てるんですが、それってエディタの機能で補完してくれるのが前提の話じゃないの...

5. Web系に偏りすぎている

現代の市場とかよくわからないんですが、なんで未経験からプログラマーっていう謳い文句はだいたいWeb系への道になるんでしょうか?

そんな感じでなんか初学となるとWeb系っていう関係なのかProgateで紹介されてる言語や技術は全てWeb系です。

組み込み系、アプリ系、ゲーム関連のプログラミング技術はまず学べません。

個人的にはC++C#、Rust辺りが分かりやすく紹介されてたらいいのになあって思います。でもこの辺になるとポインタとかメモリ管理とか難しいから初学者向けではないんだよな...あれ?さっきの問いの答え出たやん!やったー

え?React紹介されてるしReact Nativeに繋がるかもしれないだろだって?さてはテメー捻くれてるな?

6. Web系に偏ってるのにWebのフレームワークRuby on Railsしかない

Reactはライブラリだょ。。。

タイトル通りに、WebのフレームワークRuby on Railsしかありません。せっかくPHPPythonJavaScriptがあるのにLaravel、Codeigniter、CakePHPDjangoといったMVCフレームワークや、AngularやVue.jsといったフロントエンドのフレームワークもありません。

まあこれに関しては「教える側が大変になる」っていうことが関係してくると思うんですよね。言語仕様そのものは言語間で書き方が違うだけで概念的には共通している部分が多いですが、フレームワークとなるとフレームワークごとに独自の仕様持ってて全て用意するのはめっちゃ大変そうです。

さらに、フレームワークとなると実践的になるんで当然なんらかのアプリ作りながらとなるでしょう。その大元のアプリ用意するのも大変そうですね。RailsSNSモドキはめっちゃよくできてましたし、それ作るためのレッスンの数も多くなってました。他のコースのレッスンの数はだいたい4〜7個くらいなのにRailsだけ15個もあります。学習コストが低いと言われるRailsですらこれなので、Angularとかやり出したらもう大変そう。

あとは、単純にフレームワークの習得って難しいですよね。フレームワークじゃないけどReactをやったときマジで難しすぎて麦になったもん。特にredux-saga、テメーはジェネレータ関数とかいうクソムズ概念引っさげてやってきてんじゃねぇ。未だによく分かってねえからな。

そんなのを初学者にやらせたら挫折率が急上昇してトレンド入りするくらいですよね。失礼しました。

まあでもRailsしか無いのは事実なのでもっとモダンな技術をやろうと思うならProgateは不適切でしょう。Rubyはオワコンだから早くなんとかして対応しなさーい!

総評

メリットのところで言及したように、Progateには良いところがたくさんあります。Twitterで #Progate のハッシュタグを見ると、たくさんの人がProgateを使って学習している様子が見受けられます。そうなるだけのコンテンツ力がProgateにはあると言えます。

しかし、基本的に学習内容は「 Web系プログラミングの触り程度 」ということに限定されます。#Progate のハッシュタグ見ても意識高そうな初学者の方々ばっかりです。ある程度プログラミングに精通したエンジニアが新しい技術を学ぶ場所には到底なり得ないと思います。あくまでプログラミングやったことない人が初めてプログラミングに触れてみる場所、ということですね。Progateのレベルが上がったからといってなんらかのサービスが作れるようになるとも到底思えません。

課金するまでもない、というのは触り程度に限定されるProgateで紹介されているものがググって情報をゲットできる範囲から脱しないためです。

Progateは誰でも分かりやすく作られていると言えます。しかし、言い換えればそれは誰でも分かるような簡単な情報しか無いということです。ググれば手に入ります。そんなものに金払うのアホくさいですよ。これに金払って時間溶かすならもっとモダンな技術を習得して新しいサービスを能率的に作るほうがよっぽど有意義です。

ほいじゃ以上、したっけ〜

俺の就職活動

おはこんばちわ。青鬼です。 現在大学も4年生となってしまいました。大学4年生といえばなんでしょうか?そう、就活だね。 吾輩も一端の大学生として就職活動を行っていて、それが一段落したので感想とかを書き連ねていくよ。
ちょっと長くなりそうだし、ポエミーになるかもしれないけどのび太の恐竜ドラえもんみたいな温かい目で見守ってあげてください

院進から就職へ

実は今年の4月、つまり4年生になりたての頃までは大学院へ進学するつもりでおりました。俺も院進するんだと迷いも疑いもありませんでした。

ところがどっこい

配属された研究室の研究内容に全く興味ないんご。。。

(´・ω・`)。。。

(´・ω・`)院進したらあと三年もこの研究続けないといけないやん。。。
(´・ω・`)。。。
(´・ω・`)。。。
(´・ω・`)プログラミングで仕事してえなあ。。。
(`・ω・´)就活すっか!

実際はもっと悩みました(1週間くらい)が、こうして院進は完全にしないと決めて、就職することへ意識を向けました。

就活始めるの遅過ぎ問題

とはいっても4月から始める就活というのはググっても「全てを就活に捧げてギリギリ間に合うかどうか」とか言われてて、研究も大学の授業もある状況では無理やんと思ってました。
なので、この時点では秋採用を視野に入れて前期は単位拾ったり研究したりで過ごすか〜なんてなんとなくぼやぼやしてました。

5月の中頃あたりに就活のアドバイス貰おうと、1年生からインターンとか行きまくって2月でメガバンクの内定を貰った就活ガチ勢の同期に連絡を入れました。
そしたらなんと、「まだ春採用間に合うよ!」と言われました。そんな馬鹿な。
なんか知らんが、「就職エージェント」なるものに頼ると良いと言われた。まさかそんなうまい話あるわけない。

疑いつつも調べたら、ITエンジニア専門の就職エージェントなるものがあるのを見つけた。なんと全部タダらしい。デメリットもないしやるっきゃないと、とりあえず連絡を入れました。
エージェントから面談しようと返信が来ました。面談したら「とりあえず急ごうか〜」とのこと。どうやら間に合うらしい。ウッソだろお前

この面談日時はたしか5月20日だったと思う。そういうわけで5月20日から俺の就職活動は始まりましたとさ。今考えてもおせえな

今年は厳しい

エージェントのほうから優良な企業の紹介がありました。紹介されたのは全部で6社あり、どこもエンジニアとしてキャリアを歩むならめちゃくちゃ良いところばかりでした。

ところがどっこい

エージェントのひとこと
(;´ω`)<今年はコロナの影響もあって企業が求める人材のレベル上がってて、去年より厳しいよ

(´・ω・`)。。。
(´・ω・`)オタワ。。。

ITエンジニアというのは大まかに自社サービスを展開しているところとお客さんから要件を請けるSIerに分けられます。
自社サービスをやってるようなところは特に厳しく、ほぼ無理とのこと。実際、俺が応募したのは紹介された6社のうち5社で、応募していない残り1社は某有名サービスを展開している自社サービスの企業でしたが、企業説明会の案内も来なくてほったらかしにされました。応募すらできない。
応募した5社のうち自社サービスを展開しているのは1社のみで、そこは就活始めるの遅すぎるだろお前と言われて落とされました。いや無理やん。

というわけで残り4社のSIerへ希望を託していきます。

企業説明会

実はこの4社というか紹介された全部の企業が初耳で、どんな事業やってる会社なのかは一切知りませんでした。企業って優しくて、そんな学生たちのために会社説明会を開いてくれます。このご時世なので全部リモートで。

企業説明会は4社とも全部受けました。4社のうち3社はめちゃくちゃ良さそうで、残りの1社はできるだけ入社は避けたいと思えました。研修で入社前の2月に海外に飛ばされんのは勘弁だよ。。。
ぶっちゃけこの時点でもう俺の中ではその3社しか受けてないつもりでいました。

ちなみに、企業説明会の手配は全てエージェントさんたちがやってくれました。俺なんもやってない。なんもやんないでいいんかな...

ESと適性検査

説明会でなんとなく企業のことを把握出来たら、次はいよいよ面接...とは行かず、その前にエントリーシート(ES)の提出とWebの適性検査があります。

ESはプログラミングのこととかめちゃくちゃ素直に書けるからまあいいんだけど、この適性検査ってやつがまた難しくてヤバかったわ。問題は中学レベルの数学とか国語でも時間足りなすぎる。マジでムズかったです。
とはいえ、俺ができないなら他の就活生でできる人はそう多くないのでしょう。適性検査で落ちることは無...かったわけではないです。
あの避けたかったあそこです。そこの適性検査は数学とか国語の問題などはなく、性格を問う心理テストみたいなやつだけでした。それで落とされました。むしろ落とされて良かったけどね!俺も行きたくねえしWIN-WIN

企業説明会の段階でここしか受けてない!と思っていた3社については何の問題もなくESと適性検査は通過し、面接へ進むことができました。

ちなみに面接の手配は全てエージェントさんたちがやってくれました。俺なんもやってない。え、俺やることある?

1次面接

それぞれの企業の情報に精通したエージェントさんたちがマンツーマンで面接対策をやってくれました。面接ノウハウとか何も知らなかった俺にとって、めちゃくちゃありがたかったです。対策では実際に何を話すべきか、どうやって話を展開していくかなどをメモし、きちんと自己アピールができるようにしました。

ぶっちゃけそのおかげで全ての企業の1次面接は多分余裕で通過できました。知らない大人と喋るというのもやってたバイトの関係で苦ではなく、どの1次面接でも円滑にコミュニケーションをとることができていたと思います。今までやってきたプログラミングのこととかも話せば俺は企業にとって十分欲しい人材になってたっぽい。
内容としては、志望動機とか学生時代頑張ったこととかプログラミングスキルのこととかいろいろ聞かれました。全部すぐ答えられるネタは持ってたのでまあ問題無かったですね。

1社だけ2次面接がありましたが、それも通過し、3社とも全て最終面接に進むことができました。次通過すれば内定になります。

最終面接

多分余裕で通過できたと言ったけど、エージェントさんに聞いたところ、その3社とも人気の企業で、どこも1次(2次)面接の時点でめちゃくちゃ落とされるらしいです。20人いたら3人しか通過しないみたいな感じで。
つまり、最終面接に進んでる時点で企業側からの評価は高くなってるとのことです。ありがたいね。

最終面接では役員や責任者レベルの人が出てきて、その人材が本当に欲しいか、会社の理念と一致するのか見極められます。面接の中で企業がどうやって伸びてきたかであったり、どうやって運営してきたかであったりのコアな部分を教えてくれることもあり、それまでの面接とは確かに違うものを感じました。それまでより面接時間が長かった傾向にあったしね。

結果

実はまだ1社連絡来てないんですが、そこは多分通ってることを願います。通過率8割とか言ってたし。まあ内定来るでしょう。
で、他2社なんですが、そのうち1つを第一志望としてずっと頑張ってきたんですよね。最終面接もめちゃくちゃ気合入れて準備して自分がどんだけ貴社を志望してるのかをめちゃくちゃ伝えました。最終面接の時間も1番長く濃いものになったと自信はありました。

まあ採用見送りになったんだけど

でもこればっかりは仕方なかったです。その企業は最終面接で落とすことはあんまり無くて通過率も高いらしいんですが、俺が就活を始めたのが遅く、最終面接の時点で採用がほぼ終わってる状態になっていたそうです。残り1枠を俺含めた何人かで争う形になってしまって、その争いに負けました。俺が面接で伝えていたやりたいことが欲しかった人材のそれではなかったとのことです。俺がダメだったとかではなく、企業の最終的な決定要因が俺が伝えたことが全く異なっていて、どうしようもなかったですね。ほんと仕方なかった。

ただ、まだ言ってない残りの1社からはありがたいことに内定を頂きました。ほんとありがとうございます。
しかも他に採用した新卒の方々より一線を画した評価をしてくださり、特別試験を受かれば他とは違う特別なエリートコース的なものを施すとめちゃくちゃすごい提案を出してくれました。
さらに、俺宛てにわざわざ特別にお手紙まで送ってくださいました。新卒の内定者にわざわざ手紙送るなんて聞いたことなかったしエージェントさんも初めて見たと言っていました。内容も俺にめちゃくちゃ期待してるというもので涙がで、出ますよ...

そこまで期待されてるんじゃ応えなきゃいけねえだろって燃えてきたので来年からはその企業で働くことに自分の中では決めました。
内定出てないところ1社あるけど、そんな話してくれてんじゃ野暮にするわけにいかねぇだろうよ。というわけでまあ決定です。

総評

実は内定を貰ったのは就活を始めた5月20日から3週間後くらいのかなり早い段階でした。つまり、就活始めて3週間で人気の企業の内定が貰えたことになります。
特別枠の内定を貰ってますし、正直かなりレアケースな就職活動なのかなって思ったりもします。来年以降に就活する人の参考になんてとてもならないでしょう。
そうなった要因としては今まで自分でやってきたプログラミングの経験といったエピソードに他のエンジニア志望の新卒には無いであろう強いカードを持っていたことが挙げられます。
来年は今年よりもっと企業の求める人材レベルが上がる可能性もあるし、エンジニア志望の学生は今のうちからスキルを磨くべきではないかなって気がします。凡人の俺ですらそんな評価もらえるんだから誰だってやってればいいところに行けるんじゃないかなぁ...

そんなこんなで俺の就職活動は『成功』しました。内定も3分の2になりますかね。まあまあじゃないでしょうか。
エージェントさんたちには感謝してもし尽くせません。めちゃくちゃ企業に俺をプッシュしてくれてたらしいし、面接対策や手配を含めためちゃくちゃ厚いサポートをしてくれて、ほんとにこれ無料でいいの???って思います。本当にありがとうございました。
そして、まだ間に合うと言ってエージェントの存在を教えてくれた同期、本当にありがとう。お前がいなかったら俺は秋採用に飛び込んで無様に散って就職浪人するところだった。マジで感謝してるしなにかお礼しなきゃな。

最後の方はポエミーになっちゃったけど、挙げてきた人たち含めた色んな人のおかげで社会に出る舞台が整ったので感謝を伝えることくらい許してもらえるとありがたいです。
長くなったけど終わり!閉廷!以上解散!

プログラミングについての自分語り

はじめましての方ははじめまして。そうでない方はお久しぶりです。お久しぶりでない方は毎度お世話になってます。青鬼です

なんか目新しいことしたいなって思ってとりあえずはてなブログに思いのままになんかを書き連ねてみっかと思ったので適当記事を垂れ流そうと思います。まあゆるくいきまそ。

てことで今日は大学に入ってから個人的に一番自分の中でアップデートされてるものとしてプログラミングについて自分語りしていきます。プログラミングに触れたことねえって人でも読めるようにはしたい。

<追記>

今書き終わったけど、めちゃくちゃ時間かかったしクソ長くなった。なんでや

あと、プログラミングやってない人でも読めるようにしたい言ったけど、多少プログラミング用語的なの出てきてしまってる申し訳ない、でもなんとか分かるように書いたので許してちょんまげ

1. プログラミング歴

  • 高校2年春
    当時ハマってたMinecraftでmod作ろうと思い込んでプログラミングの知識なんも無い中でJavaの開発環境を親のパソコンに入れてmod作りしてた。今考えると相当アホなんだけど、環境構築の大変さを感じられたのは良かったのかな?

  • 大学1年夏
    大学入ったらもっとmod作りできるようになりたいって思ってたのでJavaの本を購入して初めて本格的にプログラミングを学んだ。だけど、こんときはほとんど理解できてなくてなんとなーくでお試しソフト作ってた気がする。
    あと、後々俺のプログラミングに大きな影響を与えることになるSparebeat(スペアビート)| 無料音楽ゲームに出会ってしまったのはちょうどこのころ。まだまだアホだよ

  • 大学2年春
    大学の講義でプログラミングがあり、そこでめっちゃ真面目にC言語を学んだ。
    人に教わるってやっぱ違くて、Java本で読んだけどようわからんかったプログラミングの概念的なものはこの講義で初めて理解できたと思う。
    その後Java本読み直したりしてオブジェクト指向の考えをある程度理解できたのは大きかった

  • 大学2年冬
    ちょうど1年前くらいですね、Sparebeatのdiscord鯖を覗いてたら有志の方がエクセルで作ったレートシステムと段位認定を見つけた。これweb上にあったらみんなおもろいんじゃねって思ってHTML/CSS/JavaScriptの基礎をなんとなく学んでなんとなく作ってみた。
    レンタルサーバー借りてドメイン買って…みたいなのも付随してたけど、プログラミングとは関係ないので無視。
    ここで初めてweb系に触って、C言語とかとの違いにびっくりしたのは覚えてる

  • 大学3年春
    web版レートシステムと段位認定が好評だったことに味を占めた俺はC#を学んでSparebeatの譜面作るやつを作ろうと画策してしまった。
    C#ってほぼJavaなのでJavaやってたおかげか基本的な文法とかはすんなり入ってきて楽しかった。まあなんとか完成して割と好評だったんだけど、C#の仕様とか汚いプログラムのせいでバグだらけのものになってしまった。直すつもりはない。

  • 同時期
    大学の講義でPython使うってことだったんでPythonもやり始めた。本当は1年後期でちょっと触ったんだけど、ほとんど覚えてなかったからこのときから始めたってことで。
    discordのbotも作ったりしたけどPythonって「こう書けたら楽なのになあ」って記述がマジでできるからすごいなあって何度も感動したよ、まあPython嫌いなんだけどね

  • 大学3年夏
    冬に作った色々酷かったSparebeatのレートシステムをリメイクした。アカウント制にしようと思って、ログインのイロハをググって色々見てたら書籍で学んだほうがいいなってことにこれ買った。

     

    パーフェクトPHP (PERFECT SERIES 3)

    パーフェクトPHP (PERFECT SERIES 3)

     

     借りてたレンタルサーバーで使えるサーバーサイドの言語がPHPだったこともあってPHPについて学んだ。この本読んでPHPをちょっとだけ使えるようになったは良いんだけど、まだ全部読み終わってなくてパーフェクトPHPになれてるかというと20%PHPくらいにしかなれてないと思う…時間できたら読まないとね
    この本だとMySQLとかも扱ってくれてたのが良かった。といっても古い記述が多かったからSQLについてはGoogle先生に頼りながらなんとかした。
    そんでもって出来上がったのがこれですね

    sparebeat-ratesystem.com
    JavaScriptの超有名ライブラリのjQueryも一緒に学んだりして、結構いい感じに仕上げられたと思う(今思うと全然アカン記述ばっかだけど)

  • 大学3年秋
    レートシステムの更新に合わせて段位認定も作り直せやって声がちらほらあったので段位認定も作り直すことにした。このときにGoogleの技術とかに触れたりもしたけど、一番の学びはVue.jsに少しだけ触れてフレームワークの重要性に気づいたことかな。Vueも俺ほとんど理解してないのでそのうち本格的にやってみたい
    なんやかんや完成した段位認定も最初は制限とかあったけど、いつの間にか無くなったりしてなんやかんや好評を頂いてた気がする。嬉しい限りだね

  • 現在
    そんでもって今はあるものを作るためにReactのお勉強中です。フロントエンドって難しいんだよ、ぼくちんしんじゃうよ

とまあこんな感じですね。言語として今までやってきたのをまとめると

って感じ。周りの話聞いてるとC++もやらんといかんなああって思ったりはするんだけど、聞く限りメモリ周りの管理だったり書き方だったりがめちゃくちゃ嫌いだからなかなか手を伸ばせずにいるし、やれって機会ないとやんないかな~って気はしてる。

Node.js書いてないけど、あれ環境であって言語じゃないからJavaScriptの中に含まれてるって感じで。ブラウザのJavaScriptとはだいぶ違う気がするけどね。

あととりあえず2019年はめっちゃ濃かった。色々学びまくったし今後に生かしていきたいね

2. プログラミング難しくないよって話

ここまで歴を整理してきたけど、ここからは一般化してプログラミングのススメ的なものを消化していこうと思う。プログラミング難しくないよ!!!

2.1 プログラミングは誰でもできる

よくあるプログラミング始めたてで見る問題FizzBuzz問題を例に取り上げてみよう。

FizzBuzz問題ってのは以下の問題のことだ。

「1から整数を数えていって、3の倍数のときは『Fizz』、5の倍数のときは『Buzz』と出力する。3の倍数かつ5の倍数のときは『FizzBuzz』と出力する」

じゃあ下に数字並べてくから心の中で「Fizz」とか「Buzz」とか「FizzBuzz」だの言ってってほしい。いくでー

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24疲れた

倍数がわからないとちょっと厳しいが、でもだいたいの人はちゃんと言えたはずよな?例えばこれをJavaとかで実装するとこんなコードになる。

static void fizzBuzz(int num, int max) {

    String voice = "";

    if (num % 3 == 0) {

        voice += "Fizz";

    }

    if (num % 5 == 0) {

        voice += "Buzz";

    }

    System.out.println(voice.isEmpty() ? num : voice);

    if (num < max) {

        fizzBuzz(num + 1, max);

    }

}

今適当に書いたから間違ってたらアレだけど、多分合ってるとは思う。これでfizzBuzz(1, 100);とか呼び出せば多分3の倍数と5の倍数以外のときは数値が出てきて、Fizz Buzzもちゃんと叫ぶはず。

中身はどうでもいいんだけど、実際見てみると処理って結構短く簡単に書けるってことがわかってもらえるかね。

俺自身経験浅いし、他知らないから実際現場がどうなってんのかはわからんが、プログラムで書く処理の1つ1つって実はこれと同等のものがたくさんあるだけなんだよ。この処理内容が難しく感じる人って中等教育をしっかり終了してればさすがにいないよね…?いる?いるんすか?いたらごめんなさい、あなたプログラミング向いてないのでこのブログはそっ閉じしてやってください。

まあとにもかくにもプログラムの中身で記述すんのは小学生でもわかるくらいの処理内容で十分で、それをたくさん作ると大きなアプリケーションになるというわけじゃ。

なんか簡単そうじゃね?

 

2.2 難しくないのになんで人々は挫折する?

 

処理内容自体は小学生でもわかるもので十分と言った。それでも実は「プログラミングわかんない」って言う人ってかな~りいるんだよね。これ俺の大学の中での話ね。俺の大学がバカ大学なだけか。おかしいな、バカ大学とは呼ばれない程度の大学には来てるはずなんだけど…

これ俺の周りだけの話になるんだけど、プログラミングが苦手と思われる人ってだいたいこんなことを言ってくる。

「main関数で全部書く」

だいたいのプログラミング言語って関数っていうので機能を小分けすることができるんね。上で書いたやつはfizzBuzzっていう名前の関数を書いてる感じ。C言語とかJavaとかなんかだとmain関数っていう特別な関数の中の処理が実行される仕組みになってて、main関数の中に実装中に作った関数を記述してその関数を実行することができたり。

具体的にはこんな感じ。

 

public static void main(String[] args) {

    fizzBuzz(1, 100);

}

 

main関数内に直接処理書いてももちろん実行はできるからmain関数内に全部の処理を書くっていうさっきの言伝は不可能じゃないんだよ。

ただ、それやるとね、そりゃあもう巨大な処理を1から間違えずにずっと書いてかないといけないんだよ。んで、もし間違えてたらどこで間違ってるのか見当もつかない。そんでもって、いつまでも思った通りにできないから夢見りあむみたいにやむ。そしてプログラミング難しいと嘆く。

大きな処理は細かい処理に分解して1つ1つ確実に作ってから最後に合わせるみたいにしたほうがバグの除去とかもやりやすくなるから処理は分割するべき。

これってコードを書く前に全体像とそれに必要なパーツを設計する操作が抜けてるとやりがちなことなんだと思ってる。プログラミング苦手だって言う人ってだいたい課題が出てすぐプログラム書き始めるんだよ。絶対設計抜かしてるだろ。

 

つまり、プログラミングの実装に大事なのって適切に設計、分割ができるかってとこにわりとあるのよ。

これさえできればなんか適当に書いてりゃそのうちなんとかできる。リーダブルコードとか気にしたほうがいいのは確かだけど、そんなもん後だ後、動きゃいいんだよ動けば。動いたときの感動を知るとプログラミングがどんどん楽しくなって楽しくなるよ。

 

※概念の理解が難しいコンテンツ(ポインタや参照、オブジェクト指向の考え方、CSSのスタイリング等々)は確かに難しいけど、その難易度はまた別のもんだと思ってるんでここでは無視します。

3. みんなプログラミングして何か作ろうぜ!

最後になるけど、クリエイター的なプログラマーってTwitterエゴサしてもだいたい仕事でやってるか #今日の積み上げ とかいうよくわからん意識高いタグ付けしてる人間しかいなくて、インターネットオタクたちがやってるプログラマーって競プロ界隈くらいにしかいなくて寂しいんだよね。

あ、競プロってあれ数学だし俺はプログラミングとは認めてないし、これからも認めるつもりないんでそこんとこ4649

だからさ、何か作りたいものを見つけてさ、俺といっしょにプログラミング学んでいこうぜベイベー