記事一覧
プログラミングが上達しない本当の理由【ゆっくりスクリプト】
テロップ=プログラミングが上達しない
美琴:うーん
星夜:どうしたの?
美琴:プログラミングを勉強してるんだけど
星夜:うん
美琴:なんていうか上達しないんだよね
星夜:プログラミングが上達しない?
美琴:そうそう
美琴:勉強を続けてるんだけど、
美琴:上達する気配が無くて
星夜:気配がないってどれぐらい?
美琴:うーん、まったくない感じ
星夜:あらら
美琴:だから気持ちが焦っちゃって
美琴:このまま上達しないまま、
美琴:ずっと行くのかなって
美琴:長いことやってるんだけど、
美琴:上達しないんだよね
星夜:うーん、そうなんだね
美琴:たくさんプログラミングに時間を使ってるのに、
美琴:ちっとも上達しなくて、
美琴:いやになっちゃうんだよね
星夜:なるほど
美琴:なんていうかマンネリしてる気もするし
美琴:プログラミングから刺激を感じないというか
美琴:最近はなんでプログラミングを
美琴:やってるのかなーって感じ
星夜:そうなんだ
テロップ=自分は才能が無いのか?
美琴:私ってプログラミングの才能無いのかな?
星夜:うーん
美琴:才能があればどんどん上達するでしょ?
美琴:上達しないってことは、つまり
美琴:才能がないってことじゃ……
星夜:プログラミングの才能か
星夜:目に見えないものだから、
星夜:掴みづらい話だよね
美琴:そうそう
美琴:なんていうか、実体が見えなくて、
美琴:確信も持てないし……
星夜:まぁ、言っちゃうと、
星夜:才能は無くてもプログラミングは可能だよ
美琴:本当ぉ?
星夜:本当本当
星夜:というか
星夜:プログラミングが出来てる段階で、
星夜:才能はあるんだよね
美琴:あー
星夜:本当に才能が無い人は、
星夜:プログラミングが上達しないっていう
星夜:悩みすら持てないよ
美琴:なるほど
星夜:才能が無いって、量の話でしょ?
星夜:「めちゃくちゃ才能がある」とか
星夜:「少ししか才能が無い」とか
美琴:あーそうそう
美琴:少ししか才能が無いのかな?
星夜:才能ってふくらむモノだからね
星夜:続けてると段々大きくなるよ
テロップ=上達しないプログラミングとは?
星夜:上達しないのは、
星夜:上達しないプログラミングを
星夜:してる可能性があるね
美琴:上達しないプログラミング?
美琴:そんなのがあるの?
星夜:あるある
星夜:まぁ僕の経験則になっちゃうけど
星夜:1つは、簡単なお題を
星夜:繰り返しやっている可能性だね
美琴:簡単なお題?
星夜:そう。たとえば、
星夜:Hello, World!プログラム
美琴:あ、それ私でも作れる
星夜:でもHello, World!プログラムを、
星夜:何回も作っていても、
星夜:プログラミングは上達しないよね
美琴:あー、確かに
星夜:他にも基礎的な文法を使った
星夜:プログラムとかもそう
星夜:まぁ最初の内は、
星夜:これでも十分上達するんだけど、
星夜:ある程度慣れてきた人は、
星夜:これぐらいのプログラムでは、
星夜:上達しなくなっちゃうよね
星夜:あとは、
美琴:あとは?
星夜:断片的にプログラミングをしてる場合ね
美琴:断片的って?
星夜:つまり、間が空いてるってこと
美琴:間?
星夜:間
星夜:仮に一ヶ月ぶりにプログラミングをしたとして、
星夜:果たしてそれで上達するのかって話
美琴:あー、しないかも
星夜:でしょ?
星夜:上達したい場合は、
星夜:ある程度継続的なプログラミングが必要だよね
星夜:それから、他人のコードを読まない
美琴:他人のコード?
美琴:他人のコードを読むのが大事なの?
星夜:これは意見分かれると思うけど、
星夜:僕はけっこう大事だと思う
星夜:たとえば本のコードとか、
星夜:読むのも大事
美琴:へぇー
美琴:自分のコードを読んでるだけじゃ
美琴:だめなんだ?
星夜:駄目ではないけど、
星夜:それだと刺激が少ないよね
テロップ=プログラミングの上達で必要なもの
美琴:それじゃプログラミングの上達で
美琴:必要なものってなにがあるの?
星夜:知りたい?
美琴:うん。知りたい
星夜:うまい棒おごってくれる?
美琴:おごるおごる
星夜:うふふ。いいよ
星夜:まず1つは、「ある程度の負荷」だね
美琴:負荷?負荷ってどういうこと?
星夜:精神的、肉体的負荷
星夜:これがないと、上達しない
美琴:へぇー?
星夜:たとえば筋トレを思い出してほしい
星夜:筋トレで、
星夜:ゆるーくやって筋肉付く?
美琴:付かないかも
星夜:そうでしょ、プログラミングも
星夜:基本的にはそれと同じ
星夜:ある程度、自分に負荷がある
星夜:プログラミングをしないと
星夜:上達しないんだよね
美琴:なるほど、筋トレと同じなのね
星夜:基本的にはね
星夜:勉強もそうだよ
星夜:新しいこと覚えるには、
星夜:脳みそに負荷をかける必要があるでしょ
美琴:うんうん
星夜:負荷をかけるっていうのは大事なんだね
星夜:それからさっきも言ったけど、
星夜:継続的なプログラミングね
美琴:断片的でなく?
星夜:そう
星夜:可能なら毎日が理想的だけど
星夜:仕事とか学校行ってる人は
星夜:難しいかもしれない
星夜:それでも3日に1日ぐらいは
星夜:プログラミングをしたほうがいいね
美琴:これも筋トレなの?
星夜:そうそう。するどいね
星夜:これも筋トレと同じで、
星夜:一定期間、一定量の
星夜:負荷をかけないと、
星夜:意味がない
美琴:なるほどね~
美琴:たしかに腕立てとか、
美琴:1カ月間隔でやっても、
美琴:筋肉付かないもんね
星夜:そうなんだよね
星夜:筋トレから学ぶことは多いと思うよ
星夜:あとは、外からの刺激も大事
美琴:外からの刺激?
星夜:そう
星夜:つまり他人のコードを読むってことね
星夜:これは本とか、
星夜:あるいはネット上のコードでもいいけど
星夜:外からの刺激を自分に与える
星夜:そうすることで、
星夜:脳みそが刺激されて、
星夜:プログラミングが上達しやすくなる
美琴:そういうもん?
星夜:そういうもんだよ
星夜:それが証拠に、
星夜:OSS開発やってる人たちって、
星夜:みんなプログラミングが上手でしょ
美琴:OSS開発ってなに?
星夜:OSSって
星夜:オープンソースソフトウェア
星夜:のことで、
星夜:たとえばGitHubとかでの開発
美琴:なんかすごそう
星夜:基本的にはだれでも参加することができるよ
星夜:まぁプロジェクトによっては、
星夜:難易度が高いけど
星夜:初心者用のプロジェクトがあれば、
星夜:それに参加するのがいいだろうね
テロップ=プログラミングが上達しない時の心構え
美琴:プログラミングが上達しないと、
美琴:気持ちがすごく塞ぐんだよね
星夜:プログラミングが上達しない現象って、
星夜:実はプロにも起こることがあるんだ
美琴:プログラマーの人達にも?
星夜:そうそう、あるよ
星夜:実はこれって、
星夜:万人の悩みなんだよね
美琴:そういう時どうしたらいいの?
星夜:まず、焦っては駄目だね
星夜:焦ると事態が進展しないから
星夜:焦らずにどっしり構えるのが大事
美琴:焦るとつらいよね
美琴:なんでもかんでも空回る感じ
星夜:そうそう
星夜:だからそうならないように、
星夜:深呼吸して、
星夜:あるいは気晴らしに他のことやっても良いし
星夜:とにかく長い目で俯瞰すると良いよね
美琴:つまり気長に取り組むってことね
星夜:うん
星夜:気長に取り組んで
星夜:さっき言ってきたことを実践すると
星夜:定期的な負荷と刺激を自分に与えて
星夜:それを長い時間行う
美琴:それが難しいんだよね~
星夜:だよね~
星夜:まぁそれも筋トレに近い所があるね
美琴:スポーツマンってすごいんだね
星夜:そういうことになるね
星夜:プログラミングもある意味
星夜:スポーツみたいなところがあるから
星夜:スポーツマンになった気で
星夜:筋トレに取り組もう
美琴:筋トレじゃなくて
美琴:プログラミングね
星夜:プログラミング
美琴:ありがとう
美琴:試してみるね
星夜:それじゃ、うまい棒ちょーだい
美琴:はい、「上げた」
美琴:(うまい棒を上にあげる)
星夜:……
美琴:あはは、ありがとうね~
星夜:またやられた
プログラミングは時間の無駄なのか?【ゆっくりスクリプト】
美琴:うーん・・・
星夜:どうしたの?
美琴:プログラミングの勉強をしてるのだけど
星夜:へぇ。言語は何を勉強してるの?
美琴:なんだっけ、えーとパイ…パイ…
星夜:Python?
美琴:そうそう。Python
星夜:それで何を悩んでるの?
美琴:うーん実は、プログラミングって
星夜:うん
美琴:時間の無駄なんじゃないかって
星夜:え? プログラミングが?
美琴:そう
テロップ=プログラミングは時間の無駄なのか?
星夜:そんなことないよ
星夜:プログラミングは時間の無駄じゃない
美琴:でも、いま勉強してることも
美琴:結局役に立たないで終わるんじゃないかな…
星夜:えぇ
星夜:なぜそう思うのさ?
美琴:いま勉強してるんだけど、
美琴:このプログラミングの知識って、
美琴:どういう時に役に立つのかわからなくて
星夜:たとえばどんな知識?
美琴:環境構築の方法とか
美琴:「Hello, World!」の出し方とか
星夜:ああ
星夜:それらの知識が役に立たないってことは、
星夜:つまり実生活で約に立たないってこと?
美琴:そう。だから時間の無駄なんじゃないかな
星夜:うーん、確かに環境構築とか、
星夜:「Hello, World!」の出し方とか、
星夜:これらが実生活で役に立つかって言ったら、
星夜:役に立たないと思うけど
美琴:そうでしょ?
美琴:ということは、この先覚える知識も、
美琴:結局役に立たないで終わって、
美琴:結果的にプログラミングの勉強も、
美琴:時間の無駄だったなんてことに
美琴:なるんじゃないかって
星夜:そんなことないよ
星夜:プログラミングは役に立つよ
美琴:ほんとぉ?
星夜:うん。特にパソコンを使った作業では
星夜:プログラミングほど便利なスキルはないよ
星夜:ただ、そこまで行くのには、
星夜:ちょっと時間がかかるんだよね
美琴:時間がかかる? どれぐらい?
星夜:人にもよるけど、だいたい数カ月ぐらいは
美琴:そんなに時間がかかるの?
テロップ=プログラミングが役に立つまでにかかる時間
星夜:まずプログラミングだけど、
星夜:プログラミング言語を習得するよね
美琴:うん
星夜:君の場合はPythonね
星夜:で、基礎的な言語の文法を習得するのに、
星夜:人によって個人差があるけど、
星夜:だいたい数カ月ぐらいかかる
美琴:ということは、
美琴:ほとんどが言語の学習コストなのね
星夜:そうだね
星夜:で、さらに、
美琴:さらに?
星夜:そこから便利なプログラムを作れるようになるまで、
星夜:またちょっと時間がかかる
美琴:便利なプログラム?
星夜:そう。たとえば…
星夜:エクセルの複数のファイルを集計したり、
星夜:テキストファイルを編集したりとか
美琴:ああ
美琴:そういうプログラム作れるようになると、
美琴:なんか報われるよね
星夜:そうでしょ?
美琴:でも、そこまで行くのに時間はかかるんでしょ?
星夜:まぁ個人差あるけどね
星夜:具体的にはライブラリの使い方だね
テロップ=ライブラリの使い方を覚える
美琴:ライブラリ?
美琴:ライブラリってなに?
星夜:ライブラリって、言語の道具のことだよ
星夜:ライブラリがあると色々なプログラムを作れるようになるんだ
星夜:たとえばPythonでエクセルを編集するなら、
星夜:Googleで「Python エクセル」で検索すると、
星夜:それっぽいライブラリの解説記事が出てくる
星夜:それからPythonでGUIアプリを作るなら、
星夜:標準で入ってるTkinterとか
美琴:GUIアプリってなに
星夜:GUIアプリっていうのは、
星夜:ウィンドウがあるアプリのこと
美琴:へぇー
星夜:ライブラリを使えるようになるまでいくと、
星夜:プログラミングでできることが、
星夜:ライブラリの品質に比例して上がるから、
星夜:自分でいろいろなプログラムを作れるようになるよ
美琴:そうなんだ
美琴:でもね、そこまでのモチベーションが、
美琴:つらい
星夜:あぁ、それはわかるよ
テロップ=プログラミングの学習は楽しい?苦痛?
星夜:これも人によるんだけど、
星夜:プログラミングの学習って、
星夜:人によっては楽しいけど、
星夜:人によってはただの苦痛でしかないんだよね
美琴:あ、だよね
美琴:なんかあんまり楽しくないんだよね
星夜:うん、わかるわかる
星夜:僕もあんまり楽しいと思ったことはなかった
星夜:どっちかと言うと、
星夜:エラーとかバグとかいっぱい出て、
星夜:ストレス溜まることの方が多かったかな
美琴:エラー出るとやる気無くすよね
美琴:なに書いてあるかわかんないし
星夜:うん、まぁエラーは、
星夜:慣れると不感症になるというか、
星夜:何も感じなくなるんだけどね
美琴:本当?
星夜:本当本当
星夜:ああ、またかぁって感じ
星夜:プログラミングが苦痛だという人は、
星夜:基本的には慣れるしかないね
美琴:苦しいのに?
星夜:そう、苦しさに慣れる
美琴:プログラミングにそこまでする価値はあるの?
テロップ=プログラミングを習得して得られるもの
星夜:価値はあるよ
星夜:むしろこれからの時代、
星夜:プログラミングの価値は、
星夜:高まってると見ていいだろうね
美琴:たとえばどんな価値?
星夜:さっき言った、自分で便利なツールを
星夜:作れるようになるというのが、
星夜:1つの価値だね
星夜:それから、
星夜:プログラミングのスキルは、
星夜:社会的付加価値が高いというのもあるね
美琴:社会的付加価値?
星夜:そう
星夜:たとえば事務の仕事をしてる人が、
星夜:自分の仕事をプログラミングで自動化したとする
星夜:そうすればその人は、
星夜:仕事を早く終わらせることができる
星夜:そうするとその人の人材の価値が上がる
美琴:周りより仕事が早いからね
星夜:うん
星夜:まぁ会社によっては、
星夜:そういう人材をうまく扱えないところも
星夜:あると思うけど、
星夜:基本的にはプログラミングによって、
星夜:その人の人材的付加価値は上がるよね
星夜:あとは、
美琴:あとは?
星夜:アプリをリリースすれば、
星夜:そのアプリから収入を得ることができるかもしれない
星夜:アプリの世界は言っちゃうとすごい世界だから、
星夜:モノによっては兆が付いちゃうこともある
美琴:兆って、1兆円の兆?
星夜:そう
星夜:たとえばチャットアプリのSlack
星夜:SlackはSalesforceに
星夜:277億ドル(約2兆8900億円)で買収された
美琴:きょっ?!
星夜:Slackぐらいのアプリを個人で開発するのは、
星夜:言っちゃうと無理だけど、
星夜:個人開発で言えばたとえばマインクラフト
美琴:ああ、マイクラね
星夜:マイクラはマルクス・ペルソン、
星夜:通称Notchが同人で開発したゲームだけど、
星夜:知っての通り大人気になった
星夜:でNotchは会社としてMojangを起こした
星夜:このMojangはのちにマイクラごと
星夜:マイクロソフトに買収されたんだけど、
星夜:その額は25億ドル(約2600億円)
美琴:ふえ
星夜:まぁここに出したのは極端な例だけど、
星夜:たとえば個人開発のアプリで、
星夜:月収数十万円とか利益を出してる
星夜:開発者もけっこう多い
美琴:なんか現実的になったね
星夜:月収数十万でもかなりすごいことだけどね
星夜:これらの価値はすべて、
星夜:プログラミングが生み出しているものだよ
美琴:なるほど…
美琴:ちゃんと価値があるんだね
テロップ=結局、プログラミングは時間の無駄なのか?
星夜:プログラミングの勉強は投資だよ
美琴:投資?
星夜:そう、将来の自分への投資
星夜:プログラミングで価値を生み出すのは、
星夜:1から勉強を始めると時間がかかるけど、
星夜:その価値はとても大きいものなんだ
美琴:たしかに今日の例を見るとそうね
星夜:投資は途中でやめたら、損するだけさ
星夜:お金と時間を無駄にする
星夜:でも、実ればいろいろなものが見えてくる
美琴:そうみたいね
星夜:プログラミングの勉強のモチベーションは、
星夜:維持するのがむずかしいけど、
星夜:プログラミングの先に待っている価値
星夜:これを強く意識することで、
星夜:モチベを維持できるかもしれない
美琴:なるほどね
星夜:プログラミングの勉強が必修化されて、
星夜:これからプログラミングは英語と同じぐらい、
星夜:身近なものになっていくけど、
星夜:いつの時代もこのことは不変的と言える
美琴:でもAIでプログラミングが
美琴:不要になる時代も来るんじゃない?
美琴:ぜんぶプログラミングが自動化されて
星夜:その将来はいつか来るだろうね
星夜:でもまだだいぶ先だよ
星夜:僕たちが生きてる間に実現されるかどうか
星夜:技術的特異点が来て、
星夜:予想だにしないことが起こっていく可能性もあるけど、
星夜:もしプログラミングが自動化できていたら、
星夜:その頃にはほとんどの仕事が自動化されていて、
星夜:国はベーシックインカムを導入せざるをえないだろうね
美琴:ベーシックインカムが導入されたら
美琴:お金の価値も変わりそうね
星夜:まぁそうなっても、プログラミングの楽しさは変わらないだろうね
美琴:あれ? プログラミングは苦痛なんじゃなかった?
星夜:プログラミングは苦痛を乗り越えると、
星夜:すごい楽しくなるんだよ
美琴:そっか、私もはやくそうなりたいな