優秀なプログラマーは、教科書のお手本のようなコードを書く

・検索エンジンで似たプログラムを検索、コピーペーストする
・本に載っているプログラムをそのまま書き写す(いわゆる写経)
http://anond.hatelabo.jp/20130322031333

これで問題ありません。
コピペした後に、そのロジックを理解しようとすることです。自分で同じコードが書けるように覚えることです。

これは問題集をやるのに、解答を先に見てから、その説き方を覚える方法です。基礎学力がない人が、効率的に勉強する方法の1つです。

また本に載っているプログラムを書き写して、実際に動作させてみることも大事です。実際に動かすという部分が大事なんですね

難しく考えてはダメ

プログラマーを、文学作品をかく人達と同じように考えてはダメなのです。

没個性なロジックを書けるようになるのが、初心者の目標とすべきものです。

上記の方法では、いつまでも書き写すだけで、自分自身で考えてコードを書くことはなかなかできないのでは?と疑問を抱く人も多いでしょう。

一部は、そういう適性がない人がいてどう頑張っても自分自身でコードを考えて書くことはできません。しかしほとんどの人は、上記のことを繰り返すうちに、出来るようになります。ただし、それには量(時間)が必要です。

また、コピペしたコードを理解して、自分で1から書けるように努力するのも一つの方法なのですが、そこまでできない人は、少し改造して動作を変えたり、動作を付け加える程度のことをすると、意外と上達します。

1から作ることにこだわってはダメ

完璧を目指すのは、実はよくありません。語学と同じく、間違っていても実際に使ってみる姿勢が大事なんです。

優秀なプログラマーは、教科書のお手本のようなコードを書く

天才タイプや芸能人まがいのプログラマーばかりがネットでは目に付きますが、多くの人はそうではありません。

一般に優秀なプログラマーは、教科書のお手本のようなコードを書きます。どこかで見かけたようなコードだなと思わせるようなそういうコードを書きます。実際、読みやすいですし、きれいです。

そういう意味では、教科書にそって、学習するのも問題ないかと思います。ただ、それだけではプログラムを組めるようにならない人が多いというだけで方向性は間違っていません。


概念の理解は、時間がかかる

オブジェクト指向が云々とかそういうのを本当の意味で理解できるのは時間がかかります。ただ、わからなくても数学の解法と同じく、解法を知っているだけで使えるようになります。

概念というのは、失敗した経験により培われることも多いのです。スパゲティプログラムでひどい目にあったとかそういう経験です。

プログラムの進化の歴史も、同じような経験から次々生まれてきたものですので、先人達の苦労を疑似体験することになるかと思います。

オブジェクト指向とか分かる必要は実はあまりないんですね。それは語学と同じく、日本語の文法をしらなくても大丈夫なのと同じです。

新しい世代の人は特に、オブジェクト指向が普通だと思うので、以前の古いものとの比較さえあまりできないと思うので、概念がわかる必要さえなかろうと思います。

普通に書くだけで、オブジェクト指向になる言語をもちいていれば、なおさらです。

簡単に上達する方法はない

やり方がまずくて時間がかかることはあっても、時間をかけずに上達することはありません。最初はできないのはあたりまえで、1年程度でもあまり上達しないのはあたりまえです。

1年と言っても実際にプログラミングにかけている時間です。1日8時間もかけられる人はいません。また、仕事でやっていると、ルーチンワークの部分があるので、学習しているとは言えないわけですから、それほど上達を見込めません。

良く考えてみてください。仕事で学習されては、困りますよ。単価に合う作業をしてもらわないとこまるという話です。だから、基礎学力がない人たちができることは、その学力にあった作業であって、それよりも上の作業を割り当てられ、学習や勉強する機会が割り当てられることはマレです。

また、大学や専門学校の授業だけでも、実際に学習する時間が少ないので上達が難しのです。それは、高校の授業で学んだ程度でそのほかのことを一切せずに、大学受験に望めるかを考えればわかるでしょう。

数学とかは練習問題をある程度こなさないと、定着しないことから考えてもわかるでしょう。まあ、中には練習問題をほとんどしなくても大丈夫という人もいるのですが、そういうのは凡人じゃないのでスルーするしかありません。

あと、プログラミングは独学の人ほど、教科書のようなコードを書けないんですね。で、自分自身は優秀な方だと誤解している人たちが多いのも特徴です。

いじわるをいう人の発言を真に受けない

8つの質問で、Java SI業界の現状を知る - 山本大@クロノスの日記

プロのほうが、素人よりもものをよく知らないとかそういう類のこと。
(基本)知識の確認というのは、優秀さを見極めるのには、あまり有効でない手段だとおもうが、わかりよいので自論を強化するときに使われやすいと思う。

関連記事

プログラミングは、コピペです

スポンサーリンク

コメントを残す

メールアドレスは公開されません。
また、コメント欄には、必ず日本語を含めてください(スパム対策)。