プログラマーとは?
今回はコーダーからプログラマーへのキャリアチェンジについて、見ていきたいと思います。
ところで、コーダーとプログラマーの違いを説明できますでしょうか?
IT業界未経験の方や経験がまだまだ浅い方だと、たぶん、どっちも上位者が設計した指示書に従って、実際にキーボードを叩いてコードをコーディングする人、という認識ではないでしょうか?
この二つの職種でどう違うのか、完全には理解しておらず、モヤっとしているかもしれません。
しかし、一般的にコーダーとプログラマーは明確に異なる職種です。
そこで、まずは「そもそもコーダーとプログラマーはどこが違うの?」というところから、整理しておきましょう。
まず、プログラマーですが「システムエンジニアなどの上位者が作った指示書に従い、プログラミング言語を使って、プログラムのソースコードを作る技術者」です。
ご存知の通り、プログラミング言語にはJavaやPython、C++、Ruby、PHP、Kotlin、Swiftなどなど、様々な種類があります。
それぞれのプログラミング言語に得意・不得意があり、作成したいシステムの目的や特性などで、利用されるプログラミング言語は変更されます。
プログラマーも、CやC++は書けるけど、Swiftはさっぱり書けないなど、人によって言語スキルにばらつきがあります。
コーダーとは?
プログラマーについて分かってきたところで、次はコーダーについて見ていきましょう。
コーダーとは「マークアップエンジニアなど上位者が作った指示書に従い、マークアップ言語を使って、マークアップのソースコードを作る技術者」です。
実は、プログラマーとコーダーが作る“ソースコード”ってまったく別物なのです。
そもそも「マークアップ言語ってなに?」と思ってしまった方も多いと思いますが、答えはHTMLです。
HTMLでソースコードを書くことを“タブ打ち”と呼ぶ方がいますが、タブとは“特定の文字列に特別な意味を与えるもの”です。
例えば“〈title〉ここにタイトル</title>”とタブを打つと、「“ここにタイトル”がタイトルという特別な意味を持つ」のです。
このように、タブという“マーク”を付けることで、目立たせる(=アップする)言語だから、マークアップ言語というわけです。
プログラミング言語とマークアップ言語はどちらもコンピューターでも理解ができる言語という点では共通点がありますが、目的や役割が異なるため、プログラミング言語を扱う職種をプログラマー、マークアップ言語を扱う職種をコーダーと区別しているのです。
ちなみに、マークアップ言語はHTML以外にもTEXやSGML、XHTMLなどがあります。
2019年の案件状況としては、HTML5が圧倒的多数ですが、ぽつぽつXHTML5の案件もあるかな、という状況です。
もちろん、HTML5(XHTML5)ということは、それらマークアップ言語の飾りつけに欠かせないCSS3も使うことが前提です。
これらマークアップ言語は、Webブラウザーに表示される“画面”を作ることが主な目的ですので、プログラマーが様々な領域で活躍しているのとは反対に、Web系システムのフロントサイドでしか、あまり、お目にかからない職種のように思います。
少なくとも、私はエンタープライズシステムを担うSIerでの勤務が長いですが、その領域ではコーダーという職種の人、名乗っている人にお会いしたことがありません。
コーダーからプログラマーになるには オススメの言語
コーダー当人たちが意識しているかどうかは定かではありませんが、実際のところ、コーダーもプログラミング言語を扱っている場合が少なからずあると思います。
マークアップ言語やプログラミング言語が分かる方であれば、ご存知かと思いますがHTMLとCSSの組み合わせだけでは動きのある表現ができない、という弱点があります。
アクセス数を表示するアクセスカウンターやサイト上に現在時刻を知らせる時計を設置しているサイトがありますが、それらはHTMLではなく、JavaScriptなどのプログラミング言語(特にフロントエンド言語と言われるもの)で作成されていることが多いです。
そのため、「HTMLとCSSが基本だけど、たまにはJavaScriptでプログラミングするよ」というコーダーが多いですし、そういうコーダーを欲しがる現場も多いように思います。
ちなみにJavaScriptの重要な特徴として、JavaScriptはHTML中に埋め込みすることができるため、HTMLやCSSが分かる方であれば、JavaScriptの扱い方もそれほど苦労しないかと思います。
そして、このJavaScriptですが、もともとの守備領域である「動きのあるWebサイトの作成」以外にも使われるようになってきています。
いま特に注目を集めているのが、androidなどのスマートフォンアプリ。
スマホのアプリには、三パターンの作成方法があります。
一つ目はWebブラウザー上で動くWebアプリ、二つ目はダウンロードして利用するネイティブアプリ、そして、Webアプリとネイティブアプリの中間的な性質を持つハイブリッドアプリです。
ハイブリッドアプリのどういったところが中間的なのかというと、ベース部分はネイティブアプリ同様にダウンロードするのですが、表示するコンテンツ部分はWebアプリの仕組みを利用しています。
「Google Playストア」からダウンロードしているはずなのに、電波状況が悪いとローディングに時間がかかったり、あまつさえ「電波状況が悪いので時間が経ってから再起動してください」とエラー画面を表示させるスマートフォンゲームがありますよね。
これは、そのゲームアプリがハイブリッドアプリのため、電波状況が悪いと、Webサイトが見られないのと同様に、アプリのコンテンツが見られないことを意味しています。
そして、ハイブリッドアプリのコンテンツ部分はWebサイトと同じ技術、つまり、JavaScriptとHTML、CSSです。
コーダーが使う技術そのままでスマートフォンアプリが作成可能という意味で、コーダーからプログラマーへとキャリアチェンジを考えている方にJavaScriptは大変おススメなプログラミング言語です。
他におススメの言語としては、汎用言語として様々なシステムで動作しているJavaも良いかと思います。
Web系システムはもちろん、企業や官公庁のエンタープライズシステム、車や電化製品の中で頑張っている組み込み系システムにも使われています。
当面は案件に困らない言語です。
Java以外ですと、人工知能(AI)開発でよく利用されると同時に、ポストJava候補の一つとして徐々に利用領域を広げているPythonもおススメです。
コーダーからプログラマー 年収は変わるのか?
コーダーよりプログラマーの方が平均年収は高いとされます。
理由としては、プログラマーとの比較で、全体的にコーダーはアルバイトが多く、しかも年収の伸びが悪い、という点が挙げられます。
アルバイトはボーナスがない分、正社員に比べて年収が安くなりがちです。
結果、アルバイトの比重が高いと、その分、平均年収も下がってしまいます。
しかも、JavaやPythonなどのニーズの高い言語のプログラマーになると、ほんの一握りのプログラマーですが、年収2000万円に届く方もいるそうです。
ところが、コーダーの場合、アルバイトであっても正社員であっても年収はそこまで伸びません。
給与、年収という意味ではコーダーの待遇はプログラマーに劣っていると言えます。
まとめ:とりあえずプログラミング言語を1つ習得しよう
すでにお伝えした通り、コーダーはプログラマーより年収が低い傾向にあります。
年収という観点で見れば、コーダーからプログラマーへのキャリアチェンジは大いにアリです。
年収アップを目指す方は、プログラミング言語を習得してプログラマーになるべきです。
なお今回は、JavaScript、Java、Pythonをおススメ言語として紹介しましたが、プログラミング言語は他にもあります。
“好きこそものの上手なれ”という言葉がありますが、「iOSアプリが作りたいからSwiftを学ぶ」といった風に、興味のある言語を選ぶ方が、学習を進めるうえでモチベーションを維持しやすいです。
プログラミング初心者の方は、あまり将来性などで悩まず、まずは、気になったプログラミング言語を1つ扱えるようになることを目指しましょう