プログラミング始めたいけどどの言語選べばいいかわからない人へ

みなさんこんにちはたがみです!
小学校でのIT必修化に当たり、プログラミングに興味を持つ人が増えてきているように感じます。
僕のまわりでも最近そのような相談が増えてきました。
この記事ではたくさんあるプログラミング言語のうちどれを選べばいいか、自分が考える2つの軸を説明したいと思います。

前置き

僕はRubyを教えていたりWebに関わる開発を行っていることが多いのでそのような方から相談を受けることが多いのですが、初心者の方から
「将来Rubyで大丈夫ですか?」
「仕事はPHPのほうが多いですか?」
「Pythonがイケてるって聞いたのですが、、」
など言語で悩む人が多いなぁという印象です。
確かにその言語の特色はあると思いますし文化圏の違いで得意なことは変わってきますが、僕が思っているのはプログラミング言語1つしっかり使えるようになっていれば他の言語も文法や考え方は似ていることが多いので他の言語を使えるようになるために必要な学習量は減る、ということです。
自然言語でもそうですが、まずはしっかり使えるプログラミング言語を1つ作っておいて、それをベースに2つ目・3つ目を増やしていくのが結果的に効率的だと考えています。
なので正直なんでもよいので使えるようになればいいのではないか?というのが正直なところであり結論です。

それを踏まえてどうやって言語を選んでいくのか見てみましょう。

必要性

まず1つ目は、社会人の方は比較的こちらで選んだほうがいいのかなと思っていますが、必要性です。
必要性というのは、例えば以下のような例です。

  • 会社で同僚が使っている言語
  • Excelの自動化をしたいからVBA
  • iPhoneアプリを作らなければいけないからSwift

社会人になると学生と違って必要性に迫られたほうが習得しやすいです。なぜなら仕事がかかってたりプレッシャーがかかってたり色々背負うからです笑
また社会人であればまわりに既にプログラムが出来る人がいることも多いのでそのような必要性がある言語を選んでおくとまわりの人たちに聞けるかもしれないというメリットがあります。

また必要性がない場合は自ら必要性を作ることも出来ます。
仕事のタイミングがあればそれを受けてみたり、親しい友人や親族にいつまでにこういうものを作る!と宣言してみたりすると適度なプレッシャーがかかって言語選択に時間をかけている場合じゃなくなるかもしれません。

興味関心

2つ目は興味がある言語をとりあえずやっていく、という軸です。
特にやりたいこともないし、会社にいる人であれば特にこの言語やれ、という雰囲気もない場合はこちらで言語を選びましょう。
何か聞いたことがある言語をやってみてもいいですし、授業で昔やったことある言語をやってみるのもいいです。興味がある限り色々学習してみましょう。

確かに何かを作らなければならない、というプレッシャーの中のほうが何かを作り切る力はつくかもしれませんが、作り切る力とプログラミング力はまた違うスキルだと思うので興味軸で学習を始めたからといってしっかり学習を進めればしっかりとしたスキルになります。

この記事を書いているたがみもどちらかといえば興味関心軸でプログラミング言語を学習し始めました。
最初は本屋さんで見かけたC言語を3ヶ月、Webサイト作りたいなぁと思い始めたので先輩が使っていたPHPを1年、PHPある程度出来るようになったからもうちょっとフロントでインタラクティブにしたいなぁと思ったからJavaScript、その後4年くらいPHPとJavaScriptでWebを作り続けて、噂でめちゃくちゃいいと聞いたRubyやRailsをやり始めようと思ってそちらの言語を習得して・・・というような流れです。

最初から1つの言語に絞ってやったほうが効率的だとは思いますが複数言語をやったあとに個人的に好きな言語を極めていく、というのもいいと思います。
知っていると知らないでは効率が全く違う分野なのでやりたいことに対して最短で学ぶことも大切ですが色々回り道して雑学などを貯めていくのもいい方法だと思います。

最後に

最初のほうで言ったこととかぶることでもありますが、言語選択は大事ですがそれで迷って学習が遅れるくらいなら何か言語決めて学習を始めたほうが色々見えるのでまずは始めてみることをおすすめします。
おそらくやってみようと思った選択肢にあがったプログラミング言語は何かしら今の自分に必要だと思う直感が働いているはずで、直感は大体正しいのでその方向性で進んでいけばいいかな、と思います。

個人的なおすすめはWeb作りたいならRubyやってフレームワークにRuby on Railsをやるのが最新のWeb開発環境に近づくしいいんじゃないかなって思います。
習得までにはどの言語も時間がかかるとは思いますが頑張っていきましょう!!