プログラムを学ぶならCがおすすめ!メモリ管理ができないと良いエンジニアにはなれません。

オブジェクト指向を用いての開発が一般的になり、どこの開発現場で分業…各モジュールを別々のベンダーが開発することがあたりまえになっている昨今で最も主流になっている言語はJAVAです。

今や大抵のWEBシステムはJAVAで動いており、JAVAさえやっとけば就職はなんとでもなる状態。。。

ただ、JAVAがあたりまえになっていく状態と比例して、システムの内部構造を組み込むことができる優秀なエンジニアがどんどんいなくなっています。

JAVAは非常に優秀なプログラミング言語で、他言語と比べライブラリが充実していること、オブジェクト指向による開発効率と保守性に優れていること、メモリ管理をやってくれること、プラットフォームに依存しないなど、大規模なシステムであればあるほど他言語よりも遥かに柔軟な開発が可能となっています。

しかし、そのオールマイティ性が故にエンジニアの技量低下(というより意識低下)を招いています。

特に顕著なのが、エンジニア自身がメモリ管理ができない点。。。
JAVAはCなどの構造化言語と違って、GCという仕組みが用意されており、JAVAそのものがメモリを管理してくれるため、エンジニア自身がそれを意識する必要は基本的にはありません。
ガーベッジコレクション

ただ、メモリの状態を把握せずに行うコーディングは予期せぬバグを生みだす原因になります。
メモリ管理ができないエンジニアは大規模システムの設計、要件定義などはもちろんですが、実装においてもできればやらせたくないのが本音です。。。
実運用でOutofmemoryなど発動させた日には、お客さんのところまで上席連れて謝りに行くレベルの失態。。。

それと違ってCは、メモリ管理を自身で行わなければなりません。
実装によっては、システムそのものを破壊してしまう可能性もありますので、メモリについて嫌でも意識するようになり、冗長的でなく無駄のない実装方法が身に付きます。

Cで開発を行っている所はもうほとんどありませんので、勉強したとしてもそれを武器に就職することは難しいですが、プログラミング言語そのものの内部構造を理解しているというのは大変な強みになります。

JAVA等のオブジェクト指向言語を学ぶ前に骨董言語のCでプログラムの基礎実装を学ぶことが、なんだかんだで一人前になる早道だったり……。

ページ先頭へ