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

f:id:cycle8b:20170513141830j:plain

この記事では、世の中にある数多くののプログラム言語の中から、どれを勉強したらよいか選ぶためのテクニックについてご紹介します。

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

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

はじめに

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

「まず最初に、どんなプログラム言語を学ぶとよいのか」という問いに対して、この記事も含めて、さまざまな情報・さまざまな助言があると思います。この記事にたどり着いたあなたは、すでに多くの情報を得ているかもしれません。

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

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

どんな前提でその技術を勧めているのか、十分気をつけて、情報を集める必要があります。

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

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

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

人は「自分がよく知っているもの」や「自分が得意なもの」を高く評価し、「よく知らないもの」や「苦手なもの」を、低く評価しがちです。

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

特に、その人の専門分野を他人に勧めるようば場合には、なぜ勧めているのか、慎重に見極めた方が良いでしょう。

欲張りすぎない

プログラムの勉強を始めると、「何か1つのプログラム言語だけを覚えても、実現できることは意外と少ない」事だったり、「他にも覚えることが山のようにある」ということを実感して、がっかりしてしまったり、覚えることの多さに途方にくれてしまうかもしれません。

確かに、何か1つのプログラム言語「だけ」で実現できることは、とても少ないです。

とはいえ、つい欲張っていろいろなものに手を出して、どれも学習が中途半端になってしまうようなことは、避けたいものです。

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

選び方のパターン

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

定番の方法の一つとして、「好きなサービスで使われている技術を勉強する」という方法があります。

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

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

超有名なWebサービスで使用されているプログラミング言語まとめ
あのWEBサービスはどんなプログラミング言語を使っているのだろう?と疑問に思ったことがある方は多いことでしょう。Twitter、Facebook、mixi、Yahoo、Dropbox、Evernoteなど、超有名なWEBサービス・サイトで使...
Webサービスならこの言語!有名企業が使用している人気プログラミング言語まとめてみた - NAVER まとめ
有名な企業が開発した有名なWebサービスは、どのプログラミング言語を使って開発されているのか調べてみた

人気で選ぶ

プロゴラム言語の人気は、さまざまな方法で知ることができます。ポピュラーな技術は、Webで検索すれば解決策がすぐに出てくるので、学習の効率が良いでしょう。

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

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

人気投票

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

JavaとCの減少続く - 5月プログラミング言語ランキング
TIOBE Softwareから、2017年5月のTIOBE Programming Community Index (PCI)が公開された。第1位はJava、第2位はC言語となっているが、この2つのプログラミング言語は2016年頭から大きな減少傾向が続いている。昨年と比較して6%ほど低下しており、これまでほかのプログ

Github

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

GitHubで1番人気のあるプロジェクトはどれだ! 2016年版スター数ランキング - Qiita
GitHubは、ソフトウェア開発の為に広く利用されているバージョン管理システムGit用のwebサービスです。GitHub上には多くのオープンソースプロジェクトが「リポジトリ」という単位で公開されていて、ユーザーは各リポジトリにスター(...
GitHubリポジトリのスター数ランキングを表示する - Qiita
以下のURLでGitHubのリポジトリスター数ランキングを表示することができます。 ちなみに、2...

Googleトレンド

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

Google トレンド
Google での最新の急上昇ワードを視覚化されたデータで確認し、周囲で人気の話題をチェックしましょう。

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

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

f:id:cycle8b:20170513131641p:plain

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

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

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

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

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

昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita
Excel は滅びぬ! Excel の力こそ日本企業の夢だからだ! VBA 実装してて学んだこととかのメモ。 JavaJava してたかはあまり関係ないかも。 #エディタの使い方 ##エディタを表示する `Alt + F11` で...

労働市場から判断する

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

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

求人数や給与

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

プログラミング言語、職種/ポジションから求人を探す|IT/Webプログラマー 転職のpaiza [パイザ]
転職・就活情報から未経験向け求人や動画学習まで、IT/WEBエンジニアに特化した総合求職・学習サイト「paiza(パイザ)」。プログラミングスキルチェックを提供し、学歴や職歴ではなく「技術がある人」が評価され、活躍できる社会の実現を目指したサービスを提供しています。

http://hrog.net/2014102910652.html

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

気になる会社の求人

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

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

リクナビ|リクルートの就職・転職・派遣の求人情報サイト
リクルートが提供する就職と転職、派遣に関する求人情報サイト。企業の採用情報や就職イベントなど就活情報の提供を行う「リクナビ」、社会人のための転職、求人サイト「リクナビNEXT(リクナビネクスト)」、派遣のお仕事探しサイト「リクナビ派遣」を中心に、就職、転職、派遣の求人情報を掲載中

専門家に相談する

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

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

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

未来を予測する

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

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

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

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

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

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

コメント

Recommended
Recommended
僕は数年前から、ある…