最初の言語のおすすめは?

前述のとおり、猫は最初のプログラミング言語としてのCはあんまりおすすめじゃないと思っています。文字列処理の理不尽な面倒くささとか、なんでもよい状況下でCを選ぶにはちょっとだけネガティブな要素が多すぎるかしら、Cは。だから、Cは必要な人だけ覚えればいいじゃん、という位置づけでよいと個人的には思っています。

初めての言語としては、猫は Python を推します。オライリーの 「初めての Python 第二版」とセットで勉強すると、Python だけでなく、プログラミングに普遍的なことまで学ぶことができるので、大変おすすめです。

初めてのPython 第2版

初めてのPython 第2版


* * *


最初の言語として選ぶべきは、面倒くさくない言語だとおもいます。だって、ある目的に向かって歩くとき、そこまでたどり着くまでに乗り越える面倒くささが少ないほど、モチベーションが切れにくいから。(そう、モチベーションは有限の資源です!)プログラミングを取得する上の挫折点は、難しさではなく、飽きて投げ出してしまうことです。「難しい」は、「難しい」で停滞することが飽きにつながるのが怖いだけ。

そういう意味では「脳負荷が軽い」Lightweight Language を選ぶのは、良い選択だと思います。一方で、ある言語じたいが目的に到達する上で避けられないのであれば、たとえそれが難しくてもその言語で学んだ方がモチベーションが不足しないで済むかもです。なぜなら、直線ルートの方が燃料が少なくて済みますし、たとえ急がば廻れな状況であってもモチベーションの補給も考えると、目的が身近に感じられる事にメリットがあるからです。

また題材は、自分が本当に楽しいと思えるものを作るのが良いと思います。ただ、それ(例えばゲーム)をするのが好きなのか、作る(プログラミングする)のが好きなのかを自分によく聞いた方が良いです(と、よく聞きます)。「楽しい」がプログラミングに直結していなければ、あまり意味がありません。*1

大事なのは 1. に楽しく、2. に楽に。一石二鳥と「いづれ必要な難しさ」に最初から手を出すのは、(モチベーションが溢れかえっている人以外)失敗のプレリュードとなってしまうので、要注意です。

*1:私はゲームを作りたい人ではないので実感としてよく分かっていないのですが、結構「自分、勘違いしていた」ことがあるとかないとか聞きます