だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

プログラム言語の勉強って最初に何から学べば良い? 理系出身web屋が教えるポイントまとめ

初心者の人がプログラムを覚えようとすると、ほとんどの場合、戸惑ってしまいます。プログラム言語の種類は大量にあって、どの言語からスタートすれば良いのかわからないからです。

なので、本記事では、著者の体験を織り交ぜつつ、各種プログラム言語のポイントをざっくり紹介したいと思います。(本当に初心者向けの内容なので、ガチプログラマーの人は読まない+読んでもマジ突っ込みしないでね!)

初心者が最初に覚えるべきプログラム言語とは?

著者のプログラム経歴

まずは著者のプログラム経歴を紹介しておこうと思います。ざっくりと、以下の感じです。

・普通の高校生時代
⇒プログラムまったくの未経験

・理系大学生(機械科)時代
⇒授業でC言語を少しやる
⇒研究で組込系マイコンを扱うためC言語を少しやる

・大学院
⇒新しい研究でVBAをやる。

・大手メーカーのエンジニア時代
業務の名の下、色んな言語をやることになる。
⇒JAVA
⇒Visual Basic
⇒Visual Studio(C++)
⇒制御系ソフトウェアのMATLAB
⇒Fortran など

・中小企業のWEBディレクター
転職。この時、新しく以下を勉強した。
⇒HTML+CSS
⇒Javascript
⇒j-query
⇒PHP など

・フリーランス(現在)
まあ色々やってます。(省略)

学生時代はあんまりちゃんと勉強しておらず、社会人になってから業務で強制されて、しぶしぶ習得したという、なんとも後ろ向きな感じの経歴です。

ただまあ、この時の大事な要点としては、「プログラムは年齢を重ねてからの勉強でも十分に習得可能!」ってことです。なので、これからスタートする人は、まずは焦らないことが大事。

……で、何から覚えればいいの?

うん。みんな早く結論が知りたいはずなので、さっさと紹介しようと思うのですが……じつは正直なところ、コレといった答えはありません。

なぜかといえば、使用者の目的によって、習得すべき言語というのは変わるからです。

どうして言語がたくさんあるのか考えてみよう!

そもそも、どうしてプログラム言語ってたくさんあるんでしょうか。

初心者からすれば、一つでいいじゃん、バカなの? まとめてくれよ、とか思いたくなります。

ただ、これにはちゃんとした理由があって、それは各分野ごとに専門の言語があったほうが都合が良いから、です。

つまり、目的に応じて、覚えるべき言語は異なる、ということです。

目的によって習得すべき言語は変わる!

では、いったいどういう目的があって、どのように覚えるべき言語が異なってくるのでしょうか。

以下、カンタンに紹介していきたいと思います。

ソフトウェア設計メインの場合

クライアントで使うようなソフトウェアを中心に触っていきたいと考える人であれば、覚えるべき言語は以下のようになるでしょう。

・JAVA
・javascript
・PHP
・Ruby
・他、適宜!

まあ断言できるのは、最初の一歩として、JAVAとjavascriptはどっちも知っておいた方が良いです。なぜなら、ほとんどの場面で使うことになるからです。

サーバーやDBあたりも関連させたいならPHP、webアプリも使っていきたいのであればRuby。まあ、ソフトウェアは範囲が広いので、他にも色々と覚えていくことがドンドン派生して増えていきます。(最初にJAVAかjsでしっかり基礎固めしておくと、習得も早いです。・・・たぶん。)

アプリメインの場合

スマホで扱うアプリをメインに勉強したいなら、下記の具合です。

・JAVA
・Swift
・他、適宜!

Android系であれば、JAVA。i-OS系であればSwiftです。

どちらの開発環境も無料でゲットできますので、まずはインストールしてみて、あれこれ触ってみましょう。

サーバーメインの場合

いわゆるサーバーサイドのプログラムってやつです。ほぼWeb開発と同義。

クライアント側のソフトウェアメインではなくて、サーバーメインとした活動をしていくのであれば、覚えるべき言語は下記の感じです。

・JAVA
・PHP
・Ruby
・Perl
・各種DB
・他、適宜!

サーバー側は、あんまりライトにスタートできる分野ではないので、ちょっととっつきにくいかもしれないです。

なぜかといえば、プログラム言語も覚えないといけないのですが、それと併せてデータベースの勉強も必須になるからです。また、OSもLinuxの知識が必要になったり、これからはオンプレミスではなくて、クラウドサーバー時代ですので、その代表たるAWSなどの理解も欲しいところです。勉強すること盛り沢山です。

ただ、サーバー周りのことも含めて詳しくなると、これからの時代、ほぼほぼ、食いはぐれないと思います。仕事に繋がる、将来に役立つ、の視点で考えるなら、サーバーの分野に飛び込んでいくことは、けっこうオススメです。

人工知能などの機械学習の場合

ここ数年で急激に伸びてきた分野ですね。なので、正直、知りません!

むしろ著者が知りたいくらいなのですが、ざっと調べた感じだと、下記の具合です。

・C
・C++
・Python

あとは、膨大な量のデータの蓄積が必要になるので、やはりサーバーのことも少し触れないといけないみたいです。

人工知能って、本当にビジネス分野で台頭してきているのって感じる方もいるかもしれませんが、けっこうちゃんと流行っているようです。

実用例としては、ペッパーくん、Siri、Cortanaなどがありますし、また、自動車業界など大型のインフラ分野でも開発に注力しているようです。シンギュラリティ時代の準備は着々と進んでいるようです。

ハードウェアを操作する目的の場合

IT/WEBからは少し離れて。

モーターやアクチュエータ。組込系などのハードウェアが絡んでくる場合は、プログラム言語の具合がガラッと変わってきます。

・C言語
・C++
・JAVA
・Python
・他、適宜!

数値解析などがメインになってくる場合、C言語を最初にスタートしておいたほうが良いです。なぜなら、数値解析関連のソフトっていうのは、けっこうCベースになっていることが多いからです。また、組込系なども、Cベースであることが多いです。企業でも、少し昔の機械などを使っていることは多く、C言語に触れる機会は盛り沢山です。

この時に大事なこととして、数値解析や組込では、とにかく「処理が軽くなる・計算が速い・プログラム容量が軽くなる」といった点が重要となります。そのための工夫方法まで覚えることが大事です。

あとは、昨今では、ラズベリーパイなど、JABA、Pythonベースのマイコンなどもありますので、これからはCと併せて、JAVAやPythonなども覚えていくと良いかと思います。とくに、これからの若者は、会社のリニューアル精神を押しつけられがちなので、JAVAなどにしていこうという動きがあったら真っ先に押しつけられることでしょう。

あと、上記には書きませんでしたが、かなり古い設備などでは、Fortrunなどの言語が使われていることもありますが、まあ、これはCやJAVAの基礎があれば十分に理解できると思います。(なにしろ制御文がなくなるだけの言語ですので・・・。)

大量のデータ処理を自動でこなしたい目的の場合

ちょっとプログラムからは離れるのですが、"マクロ"という概念があります。

エクセルなんかの事務処理をすべて自動化することができるわけで、これらを覚えたいなら下記です。

・VBA

じつは、エクセルを持っていれば、その中でカンタンに言語を扱えるんですよね。

社会人になると、大量のデータを扱うことが多いのですが、この時にマクロを知っているか知らないかで、作業効率は大幅に激変します。

プログラム言語からは趣が少し異なりますが、ぜひ知っておきたいところです。(ちなみにVBAは、VBという言語と、ほぼ同等の機能を持つものです。)

まとめ

結局、なんだかんだでJAVAかC言語が安定?

自分でまとめてみて思ったのですが、たぶん、この二つっていうのは、今も昔も変わらず、基礎の言語になるんじゃないでしょうか。

プログラム勉強に終わりなし

すべてのケースに共通することなんですが、プログラム言語の勉強に終わりってないです。

常に進化しているし、常に問題が起きます。そのため、都度調べて、解決していく力っていうのが一番大事です。

また、言語だけの話でなく、最近はフレームワークというのも大量発生しているので、そもそも言語ではなくてフレームワークから勉強をしていくケースというのもあるでしょう。

いや、もう。まったく。あれこれあれこれ。

ホント、何から勉強すればいいのやら……(冒頭に戻る)

大事なことは一つの軸を固めておくこと!

まあ、どの目的であっても、一つの言語において、しっかり基礎を固めていれば、あとはその応用で習得も早いです。基礎の部分は、だいたい、どの言語も同じだからです。(けっこう独特なクセを持っているモノもありますが、一つの仕組みを理解していれば習得も早いです。)

なので、まずはコレ、と思ったら、それ一つをしっかり覚えることが大事です。

勉強は座学で終わらずに一つのナニカを作ってみよう

これは実体験も交えてのアドバイスですが、プログラムの勉強をする際は、本一冊を読み解く、というものではなくて、なんでもいいから作りたいものを考えてみて、実際にチャレンジしてみることが大事です。

ハッキリ言いますが、本読んで、演習問題を解く、なんて作業は、すぐに飽きます。なんも楽しくないです。

プログラムの最大の楽しみは、「実際に作ってみたモノが綺麗に動いてくれる瞬間」です。とくに、その過程においてエラーが大量だったら、感動もさらに増えます。

逆に、そこで諦めてしまったり、そもそもチャレンジをしなければ、感動は一切得られません。これはイコール、プログラムをやろうと思う機会は永遠になくなってしまいます。

勉強をしようと思ったら、なんでもいいから作ってみて、"達成感"を積み重ねていくことが、一番の習得方法です。

就職すればイヤでも覚えるよ!

一番のコツ。それは、戦場に突撃することです。

まあ、実際、自分もこういうパターンで覚えていったんですよね。職場でゴリゴリ覚えさせられる。ただそれだけ。(っていうか、覚えないとどうしようもない)

なので、絶対にやらなきゃいけない状況に自分を追い込むことも、時には大事です。ちなみにやりすぎると、もれなく体調崩すか、精神に支障をきたすので、服用はほどほどに……。

今回、省いたもの

ゲーム分野だったり、画像解析だったり。はたまた医療関連やロボティクスだったり。まあ、他にもたくさんの色んな分野があるわけですが、そのへんはまったく知らないので、省略しています。(プログラムって、今や本当にあらゆる社会と密接に繋がっているという点は、なかなか感慨深いものです。)

ページ上部に戻る