まさ@ブログ書き込み中

自由に生きるための英語、プログラミング、考えごとについて色々書いています。

【初心者だった頃の自分に言いたい】最初に学ぶべきプログラミング言語の選び方

f:id:masaincebu:20180814055557p:plain

 

それぞれのプログラミング言語の特徴をサイトで調べたけど、その中からどれを選べばいいかわからない。どれも一長一短あるみたいだし、どうやって選べばいいのだろう。

 

そういった人に向けて記事を書きます。

 

記事の内容

  • 自分に合った言語を選ぶ方法は「目的」と「環境」の2つです

  • トレンドだけを気にしていると、プログラミングはできるようにならない

  • プログラミングを勉強した先に見えてくる未来

 

 自分に合った言語を選ぶ方法は「目的」と「環境」の2つです

f:id:masaincebu:20180814060448j:plain

結論から言うと、最初に学ぶプログラミング言語はプログラミングをする目的と、自分が置かれた環境によって決めたほうがいいと思います。

 

趣味としてプログラミングを学ぶ場合

自分がただの趣味でプログラミングを勉強するのであれば、特に勉強するプログラミング言語(以下「言語」と略します)に悩む必要は無くて、興味がある言語や名前の聞いたことある言語から選んでいけばいいと思います。

 

ただし、最初に触れる言語によってプログラミングの印象が大きく変わることがあるということは覚えておいてください。僕が初めて触ったプログラミング言語はC言語だったのですが、考えないといけないことややらないといけないことが多い割には大したことができない印象を受けて、プログラミングを勉強するのを辞めてしまいました。その後2年経ってからRubyを勉強した時にはとても楽しく学ぶことができました。

 

基本的にWeb系のプログラミング言語は学びやすい気がします。RubyやPHP、Pythonなどがそうです。

 

何か明確な目的があってプログラミングを学ぶ場合

ただの趣味ではなく、◯◯のアプリをつくりたいとか、エンジニアの仕事に就きたいとか、フリーランスとしてやっていきたいなど明確な目的がある場合は、その目的に合ったプログラミング言語を勉強すべきです。

 

iPhoneアプリならObjective-CかSwift、AndroidならJava、C++、Kotlinというように、作るアプリが明確だと選択肢を絞ることができます。Web系の言語であればRuby、PHP、Go、Javaなどが選択肢としてありそうです。

 

しかし、これではまだ「これだ!」という風に1つの言語を選ぶことはできません。

 

すぐに考えつく判断基準は「どれが一番目的を果たすのに近いか」を判断することですが、これは意外と難しいです。

 

例えばWebエンジニアとして就職するためにプログラミングを勉強するのであれば、行きたい会社が採用しているプログラミング言語を勉強すればいいのですが、プログラミングもあまり知らないうちから行きたいIT企業から決まっていることは少ないと思います。

 

そんな時に選択肢を絞る鍵となるのが自分の置かれた環境です。

 

自分がプログラミングを学ぶ環境によって選ぶ

ここで学ぶべきプログラミング言語をさらに絞る方法は自分が学習に行き詰まったときに誰かに聞けるかどうかで絞り込むことです。

 

プログラミング学習は、最初はわからないことだらけです。僕もエラーと向き合って半日を潰したことがあります。考え方がわからなかったり、概念がわからなかったり、壁はたくさんあります。そんな中で自分が質問できる人がいるかどうかは重要なポイントです。

 

こんな風にプログラミング言語を選んでいいのかと思われるかもしませんが、目的によって候補を挙げた後であれば、最終的にはどの言語を選んでもできることは同じなので、より学習を続けやすい言語を選ぶべきです。言語選びと同じくらい大切なのは学習を継続して実際に使えるレベルまでに成長することだからです。

 

トレンドだけを気にしていると、プログラミングはできるようにならない

f:id:masaincebu:20180814065132j:plain

先ほど「言語選びと同じくらい学習を継続することが大事だ」という話をしましたが、プログラミング言語には色んなトレンドがあったり、有望株の新しい言語が出てきてはしばらくすると下火になる、ということが起こっています。

 

AIをプログラムするならPythonだとか、Web系ではRubyでもPHPでもなくGoだとか、いやいやそうでもないぞ、といった風に「一番いい言語はこれだ」というような話が盛り上がります。

 

初心者である言語を学び始めた時期からプログラミング言語のトレンドを気にしてしまうと「いまこれを勉強している意味は無いのかな」と不安になってしまい、他のプログラミング言語への乗り換えを繰り返し、最終的には何も学べないまま終わってしまいます。

 

そのため、まず心がけるべきは自分が注力すると決めた1つの言語を習得することです。トレンドを追うことはエンジニアとして良いことなのですが、自分がまずエンジニアとして力をつけることを意識したほうがいいと思います。

 

プログラミングを勉強した先に見えてくる未来

f:id:masaincebu:20180814070921j:plain

僕は去年の4月にプログラミングを学んで大きく人生が変わりました。エンジニアという働き方が性に合っていると実感しています。

 

プログラミングを勉強すると、何か世の中にサービスを出すハードルがグッと下がります。他の業界と比べてサービス提供のための初動コストが圧倒的に少ないからです。事業をやってみたい、何か自分の考えたものを世の中に出したいという人には良い手段かもしれません。

 

また、エンジニアは専門性があるので世の中の面白そうなプロジェクトにも比較的ジョインしやすいと思います。できることが明確なのでチームへの貢献がイメージしやすく受け入れられやすいです。

 

僕が文系大学生の頃は、自分が貢献できることがあまり明確でないためにチャンスを掴めなかったり、十分に力を発揮できなかったことが多々ありました。

 

英語とプログラミング言語は世界中で通用するスキルです。この2つをおさえておくことでどの国にいても自分の強みを発揮して働くことができると思います。

 

他にもプログラマーとして働くメリットがあって、それはこの記事に詳しいのでご覧ください。

僕がエンジニア(プログラマー)として働くことで得している5つのこと - まさ@ブログ書き込み中

 

まとめ

今回はこれで以上です。少し長くなったのでまとめます。

 

最初に学ぶべきプログラミング言語は学ぶ目的と学ぶ環境から選ぶべきです。自分が周りの人に質問しやすい言語を選んでください。

 

プログラミング言語には「こっちの方がいい」というような論争があり、トレンドがありますが、まずは自分が選んだ言語で何かつくれるようになるまで学習を続ける方が本人のためになると思います。

 

そして、プログラミングを学んだあとには面白い未来が待っています。就職するにしても、フリーランスとして世界中を旅するとしても、事業を立ち上げるにしてもプログラミングは役に立つはずです。