プログラミングを学ぶ上で大事なことを、忘れそうな時に振り返る。
■プログラミング言語「で」学ぶ
プログラミング言語も、私たちが普段使っている日本語のような「言語」であり、言語と通して考え方などの理解することができます。プログラミング言語「を」学ぶというよりも、プログラミング言語「で」プログラマー等の考え方を学ぶようにする。また、”表現”する楽しさを味わうようにする。
■おもいっきり遊ぶ
豊福晋平さんという方がTwitterでプログラミングスキルとか論理的思考力というのは、「遊び」や「創造活動」に没頭した結果もたらされるものであるというツイートがされており、これはとても共感できた。
遊びというのは、仕事や規則・ルールや報酬によって強制されず、個々の自由な意思で自発的に行っているもの(主体的な活動)で、自発的ではないものは遊びではない。遊びというのは、本気になれるし、楽しむことができるものである。なお、遊びは大人であろうが、子供であろうが大事。
自発的ではないものを長期間継続していくことは極めて困難である。日本人は頑張るのが好きだが果たして10年,20年自発的ではないことを、歯を食いしばりながら続けられるのか。自発的ではないことや苦手なこと、または興味関心がないものを10,20年以上やっていくほどの時間は、人生にはない。人生は1度きりで、案外短い。
■生涯学び続ける
答えにたどり着く度、新たな疑問が生まれる。知識の探求に終わりはない。あなたは知ったつもりになっていても、世の中、知らないことが多い。異なる考え方をする人たちと交わり、受け入れられないとしても考え方を知っておく。あなた自身の考えを常に見直し、すでに解決した問題でも改めて考える。これと関連して、脳は何歳になっても成長し続けることができるので、何歳からでも成長できる。
■抽象⇄具象
模写やデッサンをしても上手くならない人向けに書かれている記事だが、記事内の「抽象度を上げる思考訓練」というのは、プログラミングする上で大事だと考える。(http://animesijyuku.blogspot.com/2018/05/blog-post_35.html)
■階層的思考(Hierarchical Thinking)
階層的(レイヤー)思考、文法構造、および元のシーン(Hierarchical Thinking, Grammatical Structures, and the Originary Scene)(http://anthropoetics.ucla.edu/ap2502/2502ludwigs/)という記事を翻訳してみると、
”階層的処理の定義「目的行動の中心的な特徴は、主な目標(朝食の準備など)を小さなサブ目標(コーヒーの準備とトーストのバター)に分割することです」”
このようなことが書かれている。これは大事だと考える。
■俯瞰
ものごとを客観的に捉える。
■己を知る
メタ認知で、自分の行動や考え方や性格などを別の立場から見る。自分の考えが正しいと思い込まない。「これが正しい」と思い込むと、それを補強する知識や論理しか受け入れなくなる。
■睡眠
たっぷりと睡眠をとる。睡眠は起きている時間に蓄積した毒素を洗い流すことにより、脳の回復に役立つ(https://www.nih.gov/news-events/nih-research-matters/how-sleep-clears-brain,https://www.ninds.nih.gov/health-information/public-education/brain-basics/brain-basics-understanding-sleep)。そして、睡眠は”心体”に影響する。心と体が整わないと、働くことはできない。それくらいに睡眠は大事だ。心の病気(精神疾患,うつ病)になってしまうと寛解(以前のように元気が回復している状態)までには時間がかかる場合がある。寛解しても再発する可能性があるので、気をつける。これと関連して改めて「体は資本」であることをしっかりと理解する必要がある。
■運動
運動すると脳由来神経栄養因子(BDNF)という物質が脳の中で分泌されます。脳の成長を促します。
■愚直に追い詰める
目標に対して、愚直に追い詰めること。
■部分的成功(失敗)
部分的成功(失敗)する。
■課題を発見する対人スキルを磨く
将来、人工知能(AI)が進化しコードを書く作業は自動化されると考えているので、会話によって課題・問題を発見する対人スキルを磨く、または異なる立場であっても共通する価値を発見することが今でも未来でも大事だと考える(参照:https://sakumaga.sakura.ad.jp/entry/2020/10/21/120000)。
■先の事はわからないので、臆病にならずにとりあえずプログラミングをやってみて、嫌いになったら辞める。
好きなことが「プログラミング」だとすると、先(未来)のことはわからないので、とりあえず目の前にあることをやってみる。行動が感情をつくる。嫌いになったら辞める。辞めた時には嫌いな気持ちが残るかもしれないが、部分的な成功や経験も残る。ある日、またプログラミングをやり始めたいなあと思ったら戻ればいい。生きている限り、何回でもやり直せる。
プログラミングをやってもって誰かが死ぬわけじゃないし、迷惑をかけるわけでもない。ただし、仕事としてやると、迷惑はかけるかもしれない。しかし、繰り返しになるが「死ぬわけじゃない」。(https://www3.nhk.or.jp/news/special/news_seminar/senpai/senpai111/)
■続けるためには「飢餓感」が残っている。
プログラミングを続けるためには、「物足りない」、「まだやれるのに」という感覚は重要だと考える。それが続ける原動力につながる。「もうプログラミングなんてうんざりだ」と思ってしまうと続けられない。
■プレーヤーと監督を一人二役こなさなければいけない。
軍隊のごとく厳しくしごきあげる過酷な方法で構成された旧来的な指導法(昭和システム)は終わりを迎えつつあり、プレーヤーと監督を一人二役こなさなければいけない時代になっていると私は考える。そこで自分で自分自身を育てる必要がある。世の中の人は誰もなにも教えてくれない。(参照:イチローも警鐘を鳴らした…「大人に叱ってもらえない」Z世代が直面する「やさしさという残酷」)
■最後に
またプログラミングを学ぶ上で大事なことを思いつくと追記する。