プログラマーの基礎能力として必要なこと。
##①計画力
おおよそ、その仕事をやれそうな2倍くらいの時間を取る。
で、期限までの進捗の測り方なんだけど。
「期限の20%の時間で 総量の30%を終わらせる」
→スタートが巧くきれているかをチェック
「期限の50%の時間で 総量の60%を終わらせる」
→うまく運べているかをチェック
「期限の80%の時間で 総量の100%を終わらせる」
→期限に余裕を持てるかをチェック
と、3段階のチェックを入れる感じにしたほうがいい。
##②計画力2
計画を立てる場合、1月、週ごと、1日~3日ごと と3階層くらいで計画を立てる人が多いと思う。
「今月これだけ仕事する」 「今週こんだけしごとする」ってのは、決めるのは簡単だと思う。
で、ここに加えて、
「1月あとのことを60%決めておく」とか、「1週間後を60%決めておく」ってことをしたほうがいい。
っていうのも、先の予定を決め忘れることがよくあって、そういう時に、『予定の無い状態』が発生してしまう。
だけど、60%だけでも予定を立てておくと多少のイレギュラーでも状態を立て直すのが簡単になる。
##③実行力
おおよそ、物事は3周繰り返した方がいい。
なんかの資料を作るってなったら、
** 「1周目は60%の量を60%の精度で作る」
「2周目は80%の量を80%の精度で作る」
「3回目は100%の量を95%の精度で作る」**
ってしたほうがいい。
なんかの試験勉強をするなら
「1周目は60%の量を60%の精度でやる」
「2周目は最初やった60%を80%の精度まで上げる+1周目でやりのこした40%をやる」
「3周目は最初やった60%を95%の精度まで上げる+2周目でやり残した40%を80%の精度まで上げる+残りの40%を95%の精度に上げる」
なぜこんなことをするかというと、いろいろメリットがあるんだけど。
『完璧主義から逃れられるので、一週目を気軽に音楽でも聞きながらやれる』
『一番時間がかかるのは1周目で、一番効果が高いのは3周目なのだからサッサと3周目に入りたい』
『2周目でどの程度身に付くかがわかるから1周目でのやり方が工夫される』
『1周目と2周目は使う脳みそが違うから、同じ作業でも脳みそをリフレッシュして使える、飽きにくい』
『1,2,3周目でやることを変えたりといった工夫を考え付くので、3段階やる前提でやることを工夫して計画などにも組み込みやすくなる』
恥ずかしながら、私はゴミ捨てや片づけすら難しい。そのくらい能力が低い。なので、これらも3段階で60%ずつ片づけてやっとできる感じである。
##④確実性
これは本当に、人生損したと思っている。
気づいたのが遅かったのだけれど、
『人間は2つのことをいっぺんにやるとミスが多くなる』
『人間が読むときは想像以上に見落としが多い』
『図を見ながら文章を書いたり、文章を見ながら図を描くのは想像以上に難しい』
ということだった。
たとえば、3x+4×12=3×6÷(3+2)みたいなのがあったとして、計算途中に何個かいっぺんに計算してしまうってのは、ミスが多い。なので、1つずつ手順を確認しつつ、1個ずつやるのが必勝法になる。 ようするに、「手順が多いものは手順数を確認してからこなす」というのが大事になる。
『人間が読むとき想像以上に見落としが多い』というのは少し理解しにくいかもしれないが。複雑な文章だとか、1読で理解できているつもりでも見落としってのはかなりある。普段の生活ならいいけど、仕事の資料の場合はどうするか?もちろん、マーカーを引いたりするのも有効なんだけど。「手で隠しながら1行ずつ読む」ってのが使える。ホント見落としが少なくなる。さらに、「声に出しながら読む」ってのもかなり効く。
『図を見ながら文章をかいたり~~~』ってのは、これは本当に難しい。難しいので、かなり正確な確認が要求される。図を文章に起こしたり、文章を図に起こすときには、対応する文と図を、☆や◎や!で対応させて描くとミスが少なくなる。資料をもらったら、文章にラインを引いて☆で、図の対応したところに☆みたいに書き込むとかなり視認性が上がる。
最後に一つ有名なお言葉を。
プログラムは思った通りに動かない。書いた通りに動くのだ。
以上。