はじめに
定本Cプログラマのためのアルゴリズムとデータ構造から、なぜプログラミングが上達しないのか
その理由を考えてみました。
私もプログラミングの上達が遅いほうなので本で学んだことを忘れないためにも、
記録をすることにしました。
※自分なりの考えなので必ずしもこの記事に書いたことが正解ではありません。
プログラミングを上達させるために考えるべきこと
プログラミングを上達させるために、プログラミングの広義と狭義を考える必要があります。
定本Cプログラマのためのアルゴリズムとデータ構造(次からは定本と略します)では
プログラミングの広義を次の三つとしています。
①問題を分析して、何をするプログラムを書くのかを決める(プログラムの仕様決定)
②どんなアルゴリズム、データ構造を使用すればよいかを選択する
③実際にプログラムを書く
そして狭義のプログラミングとはこの①②③の個々のことを指しています。
私は自分を含め上達の遅い初心者は③に関する知識を多く知ろうとしていて、
①と②を疎かにしている感じがあると思いました。
定本にはこのように書かれています。
入門書などによって得られるのは、主として③に関する知識です。これは、狭義のプログラミングとでもいうべきもので、③のみを知っていても、おもうようにプログラムを書くことができないのは当然のことでしょう。
私もこれに思い当たる節があります。だから上達が遅かったのかもしれません。
どのように学ぶべきか
ではどのように学んだらよいのでしょうか?
「問題を分析して、何をするプログラムを書くのかを決める」というのは自分で
導き出す必要があると思いました。定本でも自分で経験を積むしかないと書いてあります。
なので積極的に多くの課題解決に参加したり、自分でどう問題を実現できるかを考えるしかないと
思っています。私はこういったことを積極的には行ったりしてきませんでした。
そのため問題解決の経験が少なく上達も遅くなったのだと思います。
今後からはより積極的にしなければならないと思えるようになりました。
次にデータ構造とアルゴリズムについてですがこれは情報が多く、ネットで簡単に調べて学ぶことができると思います。
なので一般的に使われているデータ構造とアルゴリズムは意欲があればすぐに上達できると思います。定本でデータ構造とアルゴリズムがなぜ大切かがよく分かったので、しっかりと勉強していこうと思います。
おわりに
初心者なりに考えたことを書いてみましたがいかがでしたか?
私は定本を読んでかなり無駄な勉強をしていることに気が付いた気がします。
余計な力と時間を使わないようにしっかりと考えることができました。
記事について何かコメントがあるとうれしいです。
参考文献