あたまがばくはつしそうだ

今の状況は表題通りです。本を読むだけだとつまらなくて飽きる実践的な力がつかないと思うので、paizaやcodeIQでプログラミングの問題を解いています。

 

paiza

paiza.jp

 

codeIQ

codeiq.jp

 

ただ、解けるには解けるのですが、想定解答時間の10倍近く時間がかかっています。こんなにかかっていると、学んだことをこのブログで整理する時間も無くなるし、そもそも学べることの量が少なくなってしまいます。

 

ぐぐったり(「プログラミング 遅い人 共通点」等の検索ワードでいろいろ出てきました)、自分で考えたりした今の私の課題について書いてみます。

 

1.タイプが遅い

普通の日本語なら、そこまで遅くないと思います。ただ、JAVAなどのプログラミング言語だと、{ とか ] とかの普段使わない記号がありますよね。そういった記号が混ざると一気にタイプが遅くなってしまいます。

 

なので、このサイトで練習しています。

typing.lk

アルファベットのみだと、50語/分ぐらい。JAVAだと、30語/分ぐらいです。

せめて40語ぐらい打てるようになりたいなー

 

2.ロジックを組み立てるのが遅い

問題を読んで、どういう処理で進めるか、大枠を決めるまでに時間がかかってしまっています。

 

効果的な練習ではないのかもしれませんが、将棋で言うところの定跡的なことを知っていたらもっと早くできるのかなと思い、アルゴリズムを勉強しています。(日本語のページもあります。)

visualgo.net

マージソートが自分で書けずに四苦八苦していました。どうしてエラーになるのかずっと悩んでいたら、ただ単に再起処理の終了条件を「配列の要素数が1になったら」と書かなければいけないところを0と書いていただけでした。きちんと理解していればそんな処理書かないはずなのに...

3.フリーズしている時間が長い

これはぐぐって出てきたプログラミングが遅い人の特徴で、私にも完璧に当てはまっています。頭の中だけで考えていて思考が空転している時間がけっこうあります。

 

今は擬似プログラミングというのでしょうか、処理手順を書き出してからフローチャートで整理するようにしています。

Flowchart Maker & Online Diagram Software

このソフトを使うとGitHubにそのままフローチャートが保存できて便利です。

 

以上のことを今はとりあえずやってみようかなと思っています。効果的な練習法をご存知でしたら、教えていただけると非常に助かります。