
『将来はプログラマーになって稼ぎたい』
『転職してプログラマーになって年収をあげたい』
『子どもの将来の事を考えてプログラミングを教えたいけど、プログラマーの仕事はきついのでは?』
『ニュースでプログラマーってよく聞くけど、どうゆう仕事をしているの?』
など、プログラマーとはどういう仕事なのかを知りたい人は多いでしょう。
この記事は、学生時代から延べ15年以上プログラミングをしているフリーランスプログラマーの筆者が、プログラマーのリアルについて徹底解説します。
仕事内容から必要なスキル、年収事情、働く環境など、過去の自身の経験と周りの友人プログラマーからの情報をもとにまとめました。
かなり長文になりますが、これを読めばプログラマーの仕事について完全に理解することができます。
プログラマーとは
「プログラマー」とは、さまざまなプログラミング言語を用いてプログラミングを行い、WEBサイトやスマホアプリ、ゲーム、車のエンジンの制御などのシステムを開発する仕事です。
世の中のありとあらゆる機械やシステムがプログラムによって動いているため、プログラマーという職業は幅広い業界で必要とされています。
『ITエンジニア』や単に『エンジニア』とも呼ばれますが、エンジニアはSE(システムエンジニア)の意味も含むため、厳密には異なります。
プログラマーの仕事内容
プログラマーは、システムエンジニアによって作られた仕様書の通りにプログラミングをするのが基本的な仕事です。
プログラミングと一口に言っても、作るものによってプログラミング言語が変わりますし、プログラミング言語以外に覚える内容も大きく変わってきます。
勤める会社や所属する開発チームによっては、プログラミング業務よりテスト業務が多かったり、環境によって左右されることは前提として覚えておいてください。
代表的なプログラマーの種類について仕事内容を見ていきましょう。
WEBプログラマー
WEBプログラマーが作るのは、WEBサイトです。企業ホームページ、ECサイト、SNSなど、ブラウザ上で動くシステムはすべてWEBプログラマーが作っています。
WEBサイトはブラウザ上で動作するフロントエンドと、裏側で処理をしてブラウザにデータを届けるバックエンドがあります。
それぞれを作るプログラマーを、フロントエンドエンジニア、バックエンドエンジニアといいます。
フロントエンド開発で使われるプログラミング言語は、「HTML」「CSS」「Javascript」の3つです。Javascriptには複数の開発フレームワークがあり、「React」「Vue.js」「Angular」が人気です。
バックエンド開発で使われるプログラミング言語は、「PHP」「Ruby」「Java」「Go」「Python」など数多くの言語があり、開発するシステムや会社の好みによって使われる言語が変わります。
ゲームプログラマー
ゲームプログラマーは、ディレクターやデザイナーが作った仕様通りにプログラミングをして、キャラクターの動きやBGMやエフェクトなどを構築していきます。
現在のゲームはPlayStation、Nintendo Switchなどのコンシューマーゲーム、PCやSNS上で多くの人と一緒に楽しめるソーシャルゲームなどが人気です。
コンシューマーゲームの開発にはC++、ソーシャルゲームの開発には主にC#が使われています。ゲームプログラマーを目指す人は、これらの言語を学べばよいでしょう。
組み込みプログラマー
組み込みプログラマーの仕事は、車や家電、産業機器、医療機器など、あらゆる機械にプログラムを実装して制御できるようにします。
家電などすべてのモノがインターネットにつながる「IoT」の時代に突入しているため、いま組み込みプログラマーの需要は高まっています。
組み込みに使われるプログラミング言語は主に、アセンブラ、C、C++です。
プログラマーに必要なスキル・技術
プログラマーになるには、まずプログラミングが最低限出来ないといけません。
プログラミング能力は図りにくいものですが、最低限仕様書通りに一人でプログラムを完成させられる能力が必要です。実務未経験でもこの最低限のスキルがあれば雇ってくれる会社は見つかるでしょう。
任された業務の規模にもよりますが、一人で最後までプログラミングを遂行する場合と、複数人で1つのプロジェクトを担当する場合があります。
複数人で円滑に仕事が進められるように、最低限のコミュニケーション能力も必要です。
プログラマーのジャンルによってプログラミング以外に必要なスキルが異なりますので、見ていきましょう。
関連記事
プログラマーのコミュニケーション能力については、さまざまなところで議論が巻き起こっているが、この件に関しては個性や将来のビジョンなどによって変わるから答えは1つじゃない。
いまはダイバーシティ、インクルージョンの時代だよ。[…]
WEBプログラマー
名称の通りWEBに関する知識が必要になります。
クライアントとサーバーがどのように通信して制御されているのか、ブラウザのCookieなどの仕組み、Googleなどの検索エンジンで上位表示するためのSEOの知識も必要です。
知識があればあるほど重宝され、給料にも反映されます。
関連記事
WEBサイトを運用する上でSEOは必要不可欠な要素です。社内で内製でSEO対策をしたり、外部業者を使ってSEO対策をしたりさまざまです。
フロントエンドエンジニアがHTMLを構築する場合に、SEOのことをどれだけ知[…]
ゲームプログラマー
ゲームを作るプラットフォームやハードウェアについての知識はもちろんのこと、ネットワークに関する知識も必要です。
また、キャラクターや物の動きを設計するために数学や物理のスキルが必要になる場合もあります。
組み込みプログラマー
さまざまなモノに組み込みますから、組み込み対象となるさまざまなコンピューターやOSの知識が必要になります。
組み込みに多く使われるOSは「ITRON」や「T-Kernel」など聞きなれないOSです。組み込みプログラマーを目指す人は詳しく勉強しておきましょう。
プログラマーになるために資格は必要?
結論から言っておくと、プログラマーになるのに資格は必要ありません。
プログラマーは実力社会になるため、いくら情報系の資格をたくさん持っていてもプログラミングができないと仕事はありません。
ただし、未経験からプログラマーを目指す方は、面接時などの能力や熱量の目安になるため、以下の資格を取っておくとよいでしょう。
基本情報技術者試験
ITに関する幅広い基本知識を身に着けられます。これを取っておくと専門用語が多く飛び交う会話を理解できるなど、就職した後にも役立つでしょう。
PHP技術者認定試験
PHPの知識・技術を学べる試験です。PHPプログラマーを目指す人は合格して面接時のアピールポイントの1つとして使いましょう。
Ruby技術者認定試験
Rubyで開発を行う際に必要な知識を学ぶことができます。こちらもRubyエンジニアを志す人はとっておいてもよいでしょう。
C言語プログラミング能力認定試験
C言語のプログラミング能力を測れる試験です。1級~3級までありますが、1級は難易度が高く、合格すれば面接時にC言語のプログラミング能力を大いにアピールできるでしょう。
Oracle Certified Java Programmer
Oracle社が認定するJavaの資格です。Bronze、Silver、Goldと難易度が上がっていきますが、Javaプログラマーを目指す方はGoldを取得して面接時にアピールしましょう。
Python 3 エンジニア認定基礎試験
Python3の基礎知識を認定してくれる試験です。これを持っているから「PythonでAIを作れます!」とはなりませんが、知識レベルの判断目安となるでしょう。