プログラミング学習してて、行動できない状況・作業が進まない状況を打破するネタ
こんにちは
理想が高い
プライドが高い
完璧主義
能力が低い
ゆえに行動開始がやたら遅くなることがやたらあるちっひーです。
去年の末ぐらいからweb周りのプログラミング学習を始めました。
自分から「やるぞー」と言って始めたものですが、それでも動き出せない状況っていろいろありますよね。目の前の課題がめちゃくちゃ面倒くさそうで手をつけたくないとか、なんとか作業自体は開始したが一向に進まない、特に問題はないが気分が乗らないなどなど
そう言う時に動き出せるようにするためのネタ集です。
ちなみに先ほどの箇条書きの自己紹介ですが、もう1つ項目がありました。
怠惰
このネタ集は、理想やプライドが高く完璧主義なクセに能力が低く怠惰な人に贈るものです。
やる作業のイメージがつかず開始できない
例えば、「JSONデータ受け取って取り出してHTMLにいれる」的なプログラムを書く作業だとします。作業内容は概ねわかりますが細かいイメージがつかず動き出せないと。
まずコメントをかけ、コメントには気持ちをかけ
//例
/* 「JSONデータ受け取って取り出してHTMLにいれる」
よーわからんあーよーわからんa-------
とりあえずとってきたJSON見るか*/
console.log(/*とってきたJSON*/);
// (しばしながめる)
//配列的なアレか、部分的に取り出すのはどうするんだ(ググる)
console.log(/*JSONから個別に取り出す方法をためす……*/)
//以下いろいろためしていると手が進みだす
完璧主義者、理想やプライドの高いタイプは最初からコードを書こうとしがちな気がします。それができれば苦労はしねぇ! ということでコメントに落書きする気分で、「わからんa-------」とか書く動作をしましょう。これで手が動き出しました。手が動けば作業が始まるのです。勝ちです。
手が動き出したら、わからないなりにもできることは必ずあります。とりあえず変数の中身を見るとか。上記の例ではそれがいい感じに働いています。「JSONデータ」という謎のものが「配列的なアレ」であると分かったのです。(ちなみにJSONはオブジェクト形式)そこから取り出す方法がわかれば、取り出したものを別の変数に代入できそうです。
こんな感じで、どうでもいいコメントを書く動作からスタートし、とりあえずの気分でできることから手をつけていくことで、作業の細かいイメージがついていきます。
大きな作業に手をつけたくない
大きな作業(*1)があり、その先にある漠然とした膨大な作業を考えて、作業したくね〜〜〜ってなっている時です。
こういうケースは大体「その先にある漠然とした膨大な作業」を正確に評価できておらず、未知の物に対する不安や恐怖が湧き、不安や恐怖を避けたいがために作業から離れているんですね。ソースは私です。そういうときの打破ネタは……
細分化の作業を明示的に予定に入れろ
具体的な動作の例↓
「作業の細分化」というタスクをカレンダーにいれる動作
「作業の細分化」というタスクをto doに入れる動作
「午前中は作業の細分化するぞー」などとSNSで言う動作
このように「作業を細分化するぞ」という予定とかタスクを明示的に設定します。明示的にというのが大切です。完璧主義者は、いきなりスパーンと作り出してズバババと作業して完成させるのが理想だと思っています。ソースは私。でもそれは無理なんすわ。
そこで、明示的に細分化のタスクを設定します。タスクとして存在しているならば、己の中の完璧主義者にも細分化の実施を納得してもらえるでしょう。
細分化の動作は、各々やりやすいものでいいと思います。エディタを開いて、コメントをガンガン書くことで細分化する人もいます。この利点は細分化した内容をそのままコードに持っていけることですね。
私の場合は”視覚的なイメージでの理解が得意”なので、紙にいろいろ描きます。こんな感じです。
紙に描くとコピペもできないしすぐさまコーディングにも移れないんですが、私はこの「紙に描く動作」が好きでしてね〜〜。画像のように物事の関連性を図示する動作がこの世で最も素早くできるツールが紙とペンだと思っています。細分化の方法は人それぞれだと思いますが、文章形式が苦手な人は紙とペンを用意することを強くおすすめします。
(*1)大きな作業と項目名に書きました。ここで言う作業の大きさとは主観的で相対的なものだとご理解ください。どんな作業であれ、あなたが大きいと思えば大きい作業ですし、過去に大きいと思った作業が習熟によって小さくなることもあります。
特に問題はないが動き出せない
作業のイメージもついてるし何をすればいいかも分かっている、なんならどんなコードを書けばいいかまで想像ついている、けど動き出せないというケース。これは準備運動不足みたいなもんです。
準備運動をしろ
この場合も「やる作業のイメージがつかず開始できない」の時のように、エディタ上で適当なことを書く動作から始めましょう。
//めんど〜〜〜
//めんど〜〜〜〜〜〜〜〜〜〜〜
//MENDO~~~~~WOW~~~~でも負けないこと・投げ出さないこと・逃げ出さないこと・信じ抜くこと
//駄目になりそうな時 それが一番大事
const checkUserId =() => {
// ………
無論余計な部分はあとで消してください。
ここでも大事なのは、とにかく指がキーボードを叩き始めることです。その動作がコードを書く準備運動です。準備運動は動き出せないまさにその瞬間の対策ですが、次はちょっと下ごしらえのいる対策です。
いつやってもいい小さいタスクを用意しておく
いま自分は、IT系の知らない用語を調べて貯蔵する、ということをやっています。画像のようにスプレッドシートでリストを作ってます。
あらかじめ、適当なwikipedia記事とかで出てきた未知の用語を入れておきます。で、どうにも作業開始できない時に用語を検索して意味や分類を記入していきます。「5単語調べる」など区切りをつけて行ってください。あくまで準備運動です。
この方法のメリットは、準備運動でも何かしら得られるものがあるということと、準備運動以外でも一瞬ヒマになってしまった時にできるということです。この方法のデメリットは、これに熱中しすぎてしまうと本来の作業に向けるリソースを奪ってしまうことです。(なので区切りをつけてやってください)
ひとつ考えたいのは、「特に問題はないが動き出せない」というケースで「本当に問題がないのか?」ということです。実は作業のイメージが未完成で、何をすればいいのか分かっていないのかもしれません。したらば作業の細分化にいきましょう。あと、シンプルに体調わるかったりしませんか? 体冷えてたり、水分不足だったりしませんか? カイロを買う、水を飲むなどの動作をしましょう。
まとめ
項目にわけて書きましたが、あんまりMECEじゃなかったかもなと思ってます。土曜の朝に勢いで書き始めた弊害。
冒頭に書いた「理想やプライドが高く完璧主義なクセに能力が低く怠惰な人」が動き出せない原因は全部、作業のイメージ不足なんじゃない? って気になってきました。
そしたらそれはそれ(SSS)で、とにかく作業をイメージしまくるのがいいですよね。ってことは作業をイメージする動作例として、コメントを書き殴るとか、紙に書くとかがありますよね。書く上では「完成させたいもの」を書き、それに必要なパーツを書き、そのパーツはどんな言語のどんな機能で作れるかを書いていけばよさそうですね。
体調面の問題もちょっと触れました。特に病気してない時の体調不良は体が冷えてる、水分不足、飯食べてない、寝てない、前日飲み過ぎ、とかですかね。思い当たる節に対して適切な動作をしていきましょう。
後半にいくほどプログラミング成分が薄くなりましたね! 以上です。勉強中の方、お互い頑張りましょう
蛇足
文中でやたらと「動作」という言葉を使いました。違和感あったんじゃないでしょうか。
行動という言葉を避け、動作という言葉を使っていました。これ私の主観ですが、「行動」は意味がデカいんですよね。デカいゆえにそれだけだとイメージがつかない。「Aという行動をする!」と思っても、結局どんな動作が必要になるのかわからなければ何もできない。
ある行動は、いくつかの動作が集まってできている、と考えています。歩くという行動は、右足を前に出す動作、次いで左足を前に出す動作からできている、というふうに考えています。
「行動ができない」と悩んだ時、その中の動作に着目すべきです、「なんか歩けない」と思ったら、「右足を前に出そう、そのあと左足を前に出そう」という動作に着目しましょう。これだと1歩しか歩いていないかもしれません。しかし案外、左足を前にだすところまでいけば2歩目の右足もすんなり出るものです。
どういう動作をすれば、行動に繋がるのか? 行動するためどんな動作をすべきか? っていうのを考えたらいいんじゃないかという意図で、「動作」を使っていました。
以上です
サポートしていただくと、元気になります。元気は良いこと