僕なんかよりもっと凄いプログラマであろうyoshioriさんからTBをいただいて恐縮気味なのですが、
Yoshioriの日記 -「ポインタも再帰も FizzBuzz も出来なくても良いと思うよ 」
諸処の意見を読まれて、
厳しいと思われるかもしれないですが、
僕も「最初は」別に何もできなくて良いと思います。
「やりたいこと」と「好き」という気持ちがあれば十分です。
なのでYoshioriさんの言われる
個人的には
甘いと言われるかも知れないけど
別にポインタも再帰も
難しいと感じても出来なくても良いと思う。
これも賛同です。
素養も最初から持っている筈が無いもので、
身につけていると(その人も周りも)楽なのでということに過ぎません。
知っていて当たり前と言われる事を知らないプログラマがプログラマとして働いている事も珍しくないと思いますし。
(java-jaで挙げられていたjarの作り方や、CUIなども)
結果として本当にプログラムが「好き」なのであれば、
どんどんプログラマになって欲しい、心からそう思います。
そして真に危惧すべきは、MSN相談室で見かけた
「リストと数nを引数として、リストの(n-1)番目の要素を返す関数を
再帰を使って定義するにはどうすればいいでしょうか?」
という質問において
n = 1 の場合の定義を書いて
n > 1 の場合の計算を n-1 の場合の計算結果を使って表わすだけ。
# リストは 0 オリジンで考えてるの?
# n < 1 の時は nil を返せばいいの?
0オリジンとは何でしょうか(初心者なので分からないです。)
n<1のときはnilを返せばいいです。
具体的に解答例を教えていただきたいのですが・・・。
こういった解答者に
「そんなことはどうでも良いから答えを教えろよ」
といってしまう人にプログラマになって欲しくはない、ということです。
例えこの人がプログラムが「好き」だと言ったとしてもです。
この人は明らかに「プログラムをやらされている人」で、
放っておけばそのままプログラマとして出荷されてしまうかもしれません。
これはかわいそうな事ではないでしょうか?
周知の通りプログラマは決して楽な仕事ではないですから、
楽しさや好きである事を糧として持っていないと地獄を見るのはプログラマになってしまった人自身です。
そして、今は何もできなくてもプログラムが好きであればプログラマになるべきです。
どんな地獄が待っていても、
辛い現実があっても、
「本当にプログラマになりたい」のであれば。
で、そんなプログラマになりたくてなった人を支える基盤「普通に生活は出来るくらいの世の中」ではあって欲しいです。
あなたの書くコードが世界を一歩でも前進させる可能性は
大いにあると思う。
昨日の自分より今日の自分が一歩でも半歩でも進めるのは、
きっとプログラムが好きだからで、
世界を前進させるには、自分が進まねばなりません。
だからこそ、
「いつかポインタも再帰も分かるようになる」くらいのつもりで
怖がらなくても良いので
「僕、プログラムが好きです」
でプログラマになってもらいたいなぁと思う俺でした。
は本当に賛同すべき意見で、
「僕、プログラムが好きです」
なら、ポインタも再帰も、もっともっと違うことでさえ、
「いつか」なんてことを言っていても知らないうちにできちゃうものだと思うのです。
なので、
ポインタや再帰といったハードルを跳び越えることができるかは
「才能」と呼ぶべきものですらなく、
「好きであるかどうか」だと思っています。
そして、やっぱり気付くと遙か後方にあるくらい低いハードルだとも思います。
加えて、ただ一つ賛同できない事があります。
敷居が低い事は多くの人ウェルカムで奨励すべきであるのと同時に、
好きでなったのに生活ができない、
好きではないのになってしまい居続けなければならない、
という事を招くのではないか?
との危惧があります。
これは淋しい事だと思います。
なので、個人的には「跳び箱三段飛べるようになったらね」的なラインは必要だと思うのでした。
好きではないがプログラマで居続けなければならない人に吸い取られているお金はきっとたくさんあるので、
好きな人が相応の収入を得られずきつい現実がある、と思うのです。