プログラミング初心者が最初に習得したい言語

アプリ開発

プログラミング言語は数十種類もあります。

代表的な言語として、C言語、Java、PHP、Ruby、JavaScriptなどがありますが、

これら多数ある中で、果たしてプログラミング初心者はどの言語から習得すべきでしょうか。

その一つの答えとして、やりたいことができる言語から入るのが良いと思います。

Webサイトが作りたいならPHPやJavaScriptを覚えるのも良いですし、

ロボットの制御がしたいならC言語から学ぶのも良いでしょう。

好きこそものの上手なれという言葉の通り、興味のあることから始めるのは非常に良いことです。

一方、特にやりたいことがないのであれば、理想としてはC言語から入門したほうが良いです。

本記事では、プログラミング初心者が最初にC言語から学ぶべき理由について記載していきます。




C言語を習得すれば他の言語が簡単に習得できる

プログラミング言語には、機械語に近い「低級言語」から人の思考に近い「高級言語」があります。

C言語、Java、PHP、Ruby、JavaScriptなどはすべて高級言語に分類されますが、微妙に高低差があります。

これら言語を低いほうから順に並べると以下のようになります。

←低い C言語 < Java=PHP < Ruby=JavaScript 高い→

C言語は適度に低級で習得難易度は他の高級言語と比べて高めです。

よってC言語がマスターできれば、他の言語を習得しやすくなります。

C言語とJavaScriptの比較例として、数を合計するプログラムを見てみましょう。

C言語

 
int i, sum = 0;
int num[5] = {1,2,3,4,5};
for(i=0; i<5; i++){
sum = sum + num[i];
}

JavaScript

 
var num = {1,2,3,4,5};
var sum = num.reduce(function(x,y){return x+y;});

このような単純な例であっても、C言語よりもJavaScriptのほうが短く書くことができます。

この差は、ゲームなどグラフィカルな処理を書く場合には、もっと顕著になります。

IT技術のセンスが身につく

C言語でプログラミングをする上で、避けられないのがメモリ管理です。

メモリ管理とは、プログラムで利用するデータの一時保管場所の確保、解放のことを指します。

JavaやJavaScriptなどの言語は、メモリ管理をコンピュータがやってくれます。

C言語はプログラム内でメモリを管理する必要があります。

例えば、大きめのテキストファイルを開いて解析するプログラムを書く場合、

プログラム上で、以下手順を踏む必要があります。
1.テキストファイルのサイズから確保すべきメモリサイズを計算
2.メモリの確保
3.テキストファイルからメモリ上にデータ読み込み
4.データの処理
5.処理終了後のメモリ開放

このような処理を書くにはコンピュータの構造についてある程度詳しくなる必要があります。

例えば、二次記憶装置(HDD、SSD)に保存してあるテキストファイルを開いて、メモリ上に展開し、処理後にメモリ上から削除する。

といったように、そもそもコンピュータがどのように動いているのかを理解している必要があります。IT技術に詳しい人は感覚で(当たり前のこととして)それらを理解しています。

逆に言えば低級言語を学ぶとIT技術に詳しくなれます。

また、メモリ管理は手間ではありますが、うまくやればとても効率的なプログラムを作成することができます。

現在はPCの性能も高く、実行速度やメモリ使用量をあまり気にする必要はありませんが、最近流行りのIoTで、計算能力の低い機器にプログラムを組み込む場合は、実行効率が良いプログラムを書けないと話になりません。

メモリ管理は今どきの高級言語にはない概念ですので、将来の職業選択の幅が広がるという意味でも最初にC言語を学ぶことは良いことだと思います。

まとめ

初心者が最初に習得すべき言語としてC言語をピックアップしました。

ただ、何かやってみたいことがあるのであれば、それが実現できる言語から習得すればよいと思います。

そうでない場合は、理想的にはC言語から始めたほうが良いです。

例えば、小中学校の履修科目に加えるならC言語が良いと思います。

C言語→C++→Java→Ruby→JavaScriptと使う言語を推移させてきた筆者は、C言語を使えと言われたら、少しためらいます。

その理由は、一度、高級言語(私の場合JavaScript)に慣れてしまうと、面倒で低級言語を使う気になれないからです。

子どもの将来の可能性を考えると、まずC言語から学ぶのが良いと思います。

コメント

タイトルとURLをコピーしました