S部

プログラミング初心者が最初に勉強するプログラム言語の選び方&注意点

世の中にたくさんのプログラム言語の中から、どれを勉強したらよいか選ぶためのテクニックについてご紹介します。

この記事では、「まず、初心者は●●を勉強するべきだ」というように、特定のプログラム言語の学習を勧めてはいません。かわりに「何を学ぶとよいか」の「選び方」について紹介します。

なおこの記事では、プログラミング言語に限定して説明しますが、OSやフレームワーク、その他様々な他の技術についても、同じような方法が使えると思います。

f:id:cycle8b:20170513141830j:plain

はじめに

プログラムを勉強する目的を忘れない

「どんなプログラム言語を学ぶとよいのか」という問題について、この記事も含めて、さまざまな情報や、さまざまな助言があると思います。

それらの情報はみな、あなたが「なぜプログラムを勉強しようと思ったのか」を理解して、それに応じて提案している訳ではありません。

ある人は『学校の授業で必要だから』、またある人は『自分でゲームを作ってみたいから』、別の人は、『とにかくITエンジニアとして仕事につきたいから』と、人によってさまざまな理由で、プログラミングの勉強を始めようと考えているでしょう。

情報を発信している側は、どんな前提でその技術を挙げている・薦めているのか、十分気をつけて情報を集める必要があります。

例えば、「求人サイトに掲載されている数が多い」という理由で、Javaの勉強を勧める人がいるとします。しかし、そもそもあなたがITエンジニアとして就職・転職しようと考えていないなら、あまり関係のない話です。

また、もしあなたが「ITエンジニアとして仕事に就きたい」と考えてはいても、「ベンチャー企業で新しいサービスを開発したい」という人と、「大企業の業務システムを開発したい」と考えている人とでは、目的達成のための最短ルートは違ってきます。

他人の提案には、バイアスがかかっている

人に何かを勧めるときには、「自分がよく知っているもの」や「自分が得意なもの」を勧めがちです。

もし、提案している人が、純粋に親切心で提案しているものだとしても、その人がそれまで経験したこと、得意なことを、「それ以外の選択肢よりも良いものである」と思い込んで提案する傾向があるので、あなたにとって本当に適切なものとは限りません。

欲張りすぎない

プログラムの勉強を始めると、「特定のプログラム言語だけ覚えても、できることは意外と少ない」とか、「他にも覚えることが山のようにある」ということを実感して、がっかりしてしまうかもしれません。

実際、何か1つのプログラム言語「だけ」で実現できることは少ないです。とはいえ、ついつい欲張って、どれも学習が中途半端になってしまうことは避けたいものです。

いろいろなものを完璧に勉強しようとして、その結果どれも中途半端になってしまうよりも、何か1つ軸を決めて学習し、それに付随する技術を、必要になるたびに、必要な分量を学習することをおすすめします。

選び方のパターン

好きなプロダクトやサービスから撰ぶ

あなたの好きなサービスで使われている技術を勉強する という方法があります。

「●●のようなサービスを作りたい」というように考えてる人にとっては、明確な目標に向かった学習のモチベーションにつながるでしょう。

「どのサービスが、どんな技術を使っているのか」については、次のような記事が参考になります。

scrmble.jp

matome.naver.jp

人気で選ぶ

プロゴラム言語の人気は、さまざまな方法で知ることができます。人気のある技術はWebにたくさん情報があるので、学習に行き詰まったときに簡単に調べる事ができるでしょう。

また、こうした人気の上位の技術は、「求人が多い」ことも期待できます。

ただし、あくまでも、「ただの人気ランキングである」ということに注意が必要です。エンジニアは新しいものを好む傾向があります。「人気がある」事と、「ビジネスでよく使われている」事とは、必ずしもイコールではありません。

人気投票

たとえば次の記事のような、プログラム言語の人気ランキングについての記事は、いろいろなところで定期的に公開されています。

JavaとCの減少続く - 5月プログラミング言語ランキング | 企業IT | マイナビニュース

Github

Githubに登録されているソースコードの、言語別のランキングも見ることができます。

qiita.com

qiita.com

Googleトレンド

Googleトレンドで、気になるプログラミング言語がどのくらい検索されているのか調べたり、比較することができます。

trends.google.co.jp

過去からの推移を見ることで、その技術の『勢い』を推し量ることができます。

(画像は"Java",“PHP”,“Ruby"を比べたもの)

f:id:cycle8b:20170513131641p:plain

はてなブックマーク(など)

はてなブックマーク - 人気エントリー - テクノロジー

『ブックマークが多くつく記事では、どのような技術を扱っているものが多いか』を調べることでも、人気を測ることができます。

ただし、目を引く記事のタイトルだったり、記事の面白さよってブックマークの数が左右されるので、「ブックマークが多い=人気のプログラム言語」とは限らないことに注意が必要です。

※多くの業務系ITエンジニアが顔をしかめがちで、とても「人気がある」とは言えないようなプログラム言語でも、1000を超えるブックマークが付いている記事もありました。

qiita.com

労働市場から判断する

もしあなたが近いうちに、ITエンジニアとして働きたいと考えているなら、労働市場の動向を知ることは大切です。

どこにも必要とされていない技術では、どんなに勉強してその道のスペシャリストになったとしても、すぐに仕事として使うのは難しいです。

求人数や給与

たとえば、次のような記事から、プログラム言語別の求人数や給与を調べることができます。求人が多いなら、その分、門戸が広いといえますので、ITエンジニアとして就職・転職したい場合、注目すべき情報と言えます。

paiza.jp

hrog.net

なお、給与については、プログラム言語というよりも、「給与の高いごく一部の企業がたまたま使っていただけ」など、プログラム言語の特徴・特性とはあまり関係のない理由によるものも原因になります。あくまでも参考程度に考えておいた方が良いでしょう。

気になる会社の求人

実際に転職サイトに掲載されている求人を見て、どんな技術が求められているかを調べることもできます。

通常、ITエンジニアの求人を出す企業は、『どんな技術を持った人に入社してほしいか』を明確に求人情報に記しています。求人内容に嘘や誤魔化しがあることはしばしば問題になっていますが、『どんな技術を持った人に入社してほしいか』について、嘘を付いても求人を出している企業は得をしないので、基本的には事実が書かれていると考えて良いでしょう。

www.rikunabi.com

専門家に相談する

『どんな技術を求めている会社が多いのか、その道のプロに相談する』という手段もあります。

以下のような転職エージェントでは、どんな企業がどんなITエンジニアを探しているのか、リアルタイムの情報を豊富に持っています。

実際のところ、未経験からIT業界への転職は非常に多です。このような転職エージェントを利用して『未経験として就職・転職活動をしながら、求められる技術動向の情報をエージェントの担当者から情報を収集し、並行してプログラミングの勉強をする』というのが、ITエンジニアとして仕事につく近道の一つであると言えます。

未来を予測する

もしあなたが、将来流行る技術を言い当てることができるなら、先に学習しておくことで、他の人より一歩先に進める/その技術の第一人者になれるかもしれません。それによって、給与の高い職につくこともできるかもしれません。

トレンドの傾向を抑えておくのは大事ですが、正確に予測するのは基本的には無理なので、「今は誰も相手にしないけど、将来流行るもの」を予測して学習するようなことは、特に初心者にはお薦めできません。

『面白そうだと思ったもの』を勉強する

ここまで、色々書いてきましたが、シンプルに『面白そうだと思ったものを勉強する』という方法もあります。

おそらく、これが最も学習のモチベーションに繋がり、長く学習を続けることができると思います。

『それはわかってるけど、そんな呑気なことは言ってられない・・・』という方でも、それ以外の方法(人気・求人数・専門家の勧めなど)でいくつかに絞り込んだあとで、最後は自分が『面白そう』と思ったものを選ぶことをお薦めします。