プログラミングの上達方法について
プログラミングの上達方法について
プログラミングを上達させるためには上手な人のプログラムを見て写しで書いていけば良いのでしょうか?皆さんはどのようにして勉強していらっしゃいますか?
Re: プログラミングの上達方法について
綺麗なソースコードを書き写してみるのはいい方法だと思います。
ただ、それだけだともっと抽象度の高い概念、例えばMVCパターンだとか、Observerパターンだとか、そういうのを学ぶのは困難ですので、適宜書籍を読むなどする必要があります。
tjjさんのいう「上達」というのはどのようなレベルの話なのでしょうか。
入門レベルを脱したいのか、今実用プログラムは書けるけどもっと綺麗に書けるようになりたいのか。
ただ、それだけだともっと抽象度の高い概念、例えばMVCパターンだとか、Observerパターンだとか、そういうのを学ぶのは困難ですので、適宜書籍を読むなどする必要があります。
tjjさんのいう「上達」というのはどのようなレベルの話なのでしょうか。
入門レベルを脱したいのか、今実用プログラムは書けるけどもっと綺麗に書けるようになりたいのか。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: プログラミングの上達方法について
必要なのは上級者の書いている意図の理解だと思います。
コードを書き写すより真似た書き方を心がけるべきでしょう。
最終的には自分の意図で書き方のチョイス出来るようにならないといけません。
コードを書き写すより真似た書き方を心がけるべきでしょう。
最終的には自分の意図で書き方のチョイス出来るようにならないといけません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: プログラミングの上達方法について
どうでもいいかもしれませんけれど、「上手な人のプログラム」って手に入れるのは相当困難だと思います。
プログラマなんてのは技術を売る仕事ですし、公開されているのは良心や教育としてが多いと思います。このサイトに置かれているコードだって、(もちろん立派なコードですが)指摘しようと思えばたくさんできるコードです。
ソフト屋様がおっしゃっていることと意向は同じなのですが、私なりの言葉で述べてみます。
芸系の大学などの講義、小学校の図画工作の授業等で、見た絵の感想を書かされてました。国語の授業でも、読書感想文を書かされました。皆そうだと思います。
この時、文章や絵のタッチ、癖を見ることは当然大切だと思います。そして、そこで絵や文章は感想を書きます。ただ、これは「綺麗だった」とかみたいな小学生の文章を書くということではなく、作品を読み解くという意味があります。
そもそも芸術は、作者の頭のなかにあるアイデアやイメージを感覚できる具体的な現象で表現する事です。
イメージ → 作品
そして、作品を読み解くという作業は、
作品 → イメージ
となります。
私は母が音楽大学を出ていて、家に当時のテキストなどがおいてあります。ですが、よく見ると楽譜以外の本がたくさんあります。というか楽譜を超えそうな程の、有名な作曲家達の歴史を載せた本があります。
私の恋人は、文芸部です。好きな本を見つけると、まず作者の略歴を探します。偉人なら国語便覧がボロボロになるまで読みます。
絵にせよ同じです。
なんでこんな事するのか、しなくてもいいだろ!作者なんてほぼ分からんプログラミングに関係ないだろ!と感じますが、私はそうは思っていません。
これらの行為は「作者を理解する」という目的に依って起こすアクションです。「どうして」こうしたのかを理解することで作品を理解しようとするのです。なぜかというと、作品は作者の意思の塊だからです。イメージが形になっているのですから。
そしてそれは、プログラムも同じだと思います。
プログラムを書いているのは機械ではなく人間です。当然そこには意思が埋め込まれています。
そもそもコードを得にくい以上、絵や詩の様に作者を理解するのは難しいと思います。ですが、やはり上級者の書くコードは初心者が訳も分からず書くコードとは違います。「こう動け」の塊であるプログラムは、作者の意思の塊です。芸術と読み解き方は同じで、「どうやって」書いたのかよりも、「どうして」こう書いたのか、それを理解すべきだと思います。
(ちなみにプログラミング=芸術とは思っていませんのであしからず。プログラミング≒芸術だと思っています。読み解くことができる創作物として、同じ性質を持っていると考えています。)
プログラマなんてのは技術を売る仕事ですし、公開されているのは良心や教育としてが多いと思います。このサイトに置かれているコードだって、(もちろん立派なコードですが)指摘しようと思えばたくさんできるコードです。
ソフト屋様がおっしゃっていることと意向は同じなのですが、私なりの言葉で述べてみます。
芸系の大学などの講義、小学校の図画工作の授業等で、見た絵の感想を書かされてました。国語の授業でも、読書感想文を書かされました。皆そうだと思います。
この時、文章や絵のタッチ、癖を見ることは当然大切だと思います。そして、そこで絵や文章は感想を書きます。ただ、これは「綺麗だった」とかみたいな小学生の文章を書くということではなく、作品を読み解くという意味があります。
そもそも芸術は、作者の頭のなかにあるアイデアやイメージを感覚できる具体的な現象で表現する事です。
イメージ → 作品
そして、作品を読み解くという作業は、
作品 → イメージ
となります。
私は母が音楽大学を出ていて、家に当時のテキストなどがおいてあります。ですが、よく見ると楽譜以外の本がたくさんあります。というか楽譜を超えそうな程の、有名な作曲家達の歴史を載せた本があります。
私の恋人は、文芸部です。好きな本を見つけると、まず作者の略歴を探します。偉人なら国語便覧がボロボロになるまで読みます。
絵にせよ同じです。
なんでこんな事するのか、しなくてもいいだろ!作者なんてほぼ分からんプログラミングに関係ないだろ!と感じますが、私はそうは思っていません。
これらの行為は「作者を理解する」という目的に依って起こすアクションです。「どうして」こうしたのかを理解することで作品を理解しようとするのです。なぜかというと、作品は作者の意思の塊だからです。イメージが形になっているのですから。
そしてそれは、プログラムも同じだと思います。
プログラムを書いているのは機械ではなく人間です。当然そこには意思が埋め込まれています。
そもそもコードを得にくい以上、絵や詩の様に作者を理解するのは難しいと思います。ですが、やはり上級者の書くコードは初心者が訳も分からず書くコードとは違います。「こう動け」の塊であるプログラムは、作者の意思の塊です。芸術と読み解き方は同じで、「どうやって」書いたのかよりも、「どうして」こう書いたのか、それを理解すべきだと思います。
(ちなみにプログラミング=芸術とは思っていませんのであしからず。プログラミング≒芸術だと思っています。読み解くことができる創作物として、同じ性質を持っていると考えています。)
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK
Re: プログラミングの上達方法について
失敗を積み重ねることです。
やってはいけないことをたくさんやってクソみたいなコードをたくさん書くと
「次はこんなことはしないようにしよう!」
と思ってより良い方法を選ぼうと模索します。
そうして得た新しい方法で次の仕事に望んだところ、
また粗があって失敗します。
これを繰り返しているうちに成長します。
逆に「そうあって仕方ない」「プログラムはバグがたくさん出て当然」みたいな
思考停止を始めると成長しません
やってはいけないことをたくさんやってクソみたいなコードをたくさん書くと
「次はこんなことはしないようにしよう!」
と思ってより良い方法を選ぼうと模索します。
そうして得た新しい方法で次の仕事に望んだところ、
また粗があって失敗します。
これを繰り返しているうちに成長します。
逆に「そうあって仕方ない」「プログラムはバグがたくさん出て当然」みたいな
思考停止を始めると成長しません
ヽ(*゚д゚)ノ カイバー
Re: プログラミングの上達方法について
掲示板などでやり取りの流れを見ることで上級者の発想の仕方を垣間見れることがあります。
答えを知っているかどうかは大きな違いではなく、どうやって答えに行き着いているかが重要です。
発想を見るので言語とかプラットフォームとかあまり関係ありません。
本だとたくさん見比べる必要があるでしょう。
とにかくたくさんの情報に触れるしかないと思います。
小学校から高等学校まで夏休みの宿題に読書感想文がありましたが、わたしはひとつも提出できませんでした。
わたしはむかしから「ひとによってはこう思うだろうしこう思うひともいるだろう~」というふうに考えてしまいます。
教師に「それは読書感想文ではない。自分の感想を書きなさい。思ったことを素直に書けば良い」と言われて何も書けなくなりました。
作者が意図しているかどうかは関係なく、それが引き起こすあらゆる事象を想像するわけです。
わたしの意見で事象の比重が変わることは最も避けたいことです。
なので、わたしは深く知りたいとも考えません。
収集癖が無いわけではなくバリエーションを求めます。
意図や意思を考えることも大切ですが、それらを含まない部分ひっくるめた『癖』を探すと良いと思います。
ちょうど同じことをつい最近別のスレで書きましたけど。
わたしは他人のソースコードやマニュアルを読むときもそんな感じで見ています。
答えを知っているかどうかは大きな違いではなく、どうやって答えに行き着いているかが重要です。
発想を見るので言語とかプラットフォームとかあまり関係ありません。
本だとたくさん見比べる必要があるでしょう。
とにかくたくさんの情報に触れるしかないと思います。
小学校から高等学校まで夏休みの宿題に読書感想文がありましたが、わたしはひとつも提出できませんでした。
わたしはむかしから「ひとによってはこう思うだろうしこう思うひともいるだろう~」というふうに考えてしまいます。
教師に「それは読書感想文ではない。自分の感想を書きなさい。思ったことを素直に書けば良い」と言われて何も書けなくなりました。
作者が意図しているかどうかは関係なく、それが引き起こすあらゆる事象を想像するわけです。
わたしの意見で事象の比重が変わることは最も避けたいことです。
なので、わたしは深く知りたいとも考えません。
収集癖が無いわけではなくバリエーションを求めます。
意図や意思を考えることも大切ですが、それらを含まない部分ひっくるめた『癖』を探すと良いと思います。
ちょうど同じことをつい最近別のスレで書きましたけど。
わたしは他人のソースコードやマニュアルを読むときもそんな感じで見ています。