プログラミングを始める前に必要な自己分析

プログラミングを始めたばかりの人によくある質問が
「何の言語から始めたらいいですか?」という問い。

これは先日、現役のエンジニアの方と会った際も
話されていて、すごく重要なポイントだと感じましたが、
プログラミングは、最初に自分が何をするのか
明確に決めておかないと、勉強内容が決まりません。

今回は、プログラミングを始めたり、
エンジニアを目指すにあたって、最低限これだけは
自分で決めておかなければいけない、
そんな点について解説していきたいと思います。

いくら稼ぎたいのか?

プログラミングを学びたい動機で
「リモートワークをしたい」
「海外ノマドになりたい」という声が
最近、よくTwitter界隈で呟かれています。

実際に、海外で働いている人はたくさんおり、
何故か海外で開催されているスクール、
海外在住の情報発信者なども目立っています。

ですが、フリーランスエンジニアとして
必要なスキルを付け、案件を受けるだけなら、
1ヶ月も勉強をすれば、準備期間としては十分です。

HTML、CSS、JAVAで武装して
WordPressを触れるようになるだけなら、
2週間もあれば十分じゃないかと思います。

ですが、Wordpressやランディングページの
コーディングができますという程度の場合、
それ位のことができるエンジニアの人は世の中に
大量にいる為、作業単価が頭打ちになります。

私の同期のフリーランスデザイナーで
コーディングに加えてプロレベルのデザインで
合計15万円くらいの単価でやってる人がいたので、
さすがに5~10万円くらいが限度ではないかと。

クラウドワークスなどの、クラウドソーシング
受注案件も、一つの案件に数十人が殺到し、
競争は非常に激しくなります。

なので、月に50~100万円以上の単価を狙う場合、
より高度なスキルをしっかり身につけた上で、
正社員として実務経験を積んでフリーランスを狙う方が
より望ましい選択肢になります。

しかし、逆にどんなに低単価でも、田舎に移住したり
海外ノマドになること自体を最優先したい場合は、
客先の常駐勤務を軸にする訳にはいきません。

そして、家族を抱えており、単価を上げるよりも
職を失うリスクを下げることを最優先する場合は
正社員として働き続ける前提の活動が必要になります。

独身であればお金にそこまで執着しなくても大丈夫ですが、
子供二人奥さん一人を扶養する場合、都心なら世帯年収で
800万円以上、地方なら600万円以上無いと、ひと昔前の
普通の生活水準をギリギリ守れるかどうかという水準です。

更にフリーランスの場合、社会保険料なども考えると
会社員の手取りの2倍以上は稼がないと割に合わない為、
より多く稼げるかどうかという計算が必要です。

このように、いくら稼ぎたいのかによって
選択肢がどうしても絞られてくる為、
自分がいくら稼ぐ必要があるのかを
最初に確認しておくことをお勧めします。

何を作りたいのか?

プログラミングには、大きく分けて
フロントエンド(WEBの見た目を操作する技術)と
バックエンド(サーバ等の見えない部分を運用する技術)の
二つに大別されます。

フロントエンドはWEBサイトのデザインに直結するので
こちらの方が華やかに見えますが、サーバ周りの方が
データを直接扱う技術が多く、いかに少ない情報処理量で
円滑にサービスを動かすかなど、職人気質な人には
黒子のようなこの役割を好む人も多数存在します。

また、WEBサービスを作る場合はJAVAやPHP、
Rubyなどが多く使われ、スマホアプリなどを作る場合は
swiftという言語を使うところが最近は多いです。

また、地方に行けばいくほど、最新技術を使っている会社数は
減る一方なので、最近なら田舎に移住してエンジニアになるなら
RubyよりもJavaやPHPを優先して学んだ方が良くなります。

いずれにしても、最終的に何を作りたいかによって、使う言語や
ポートフォリオに載せる制作物も全く変わってくる為、

「何の言語から学んだらいいですか?」と質問することは、
「私は何をしたいのか自分で理解できていません」と
宣言をしているのと、同じようなものです。

目的意識が無いと、就職や転職で面接を担当する人からも、
本当にこの人はプログラマーとしてやっていくつもりがあるのかと
不安に思われてしまうかもしれないので、注意が必要です。

技術料を売りたいのか?商売をしたいのか?

キャリアの最終地点が会社員として働き続けることではない場合、
フリーランスになるか、自分で何かを作って直接売るかの
2パターンになります。

前者の場合は、より少ない時間で高単価で働くことで、
後者の場合は、技術以外の商売を成功させる要素
(経営の知識、営業力、ビジネスの総合力)が
それぞれ重要になってきます。

また、元々エンジニアの方の中には、利益を稼ぐことよりも
仕事のやりがいを優先したり、技術を磨くことそれ自体が
生きる目的と化しているタイプの方もいます。

どれが正解という共通解は無く、自分の生活で
何を優先するかによって、採るべき選択肢は変わるので、
最初にそれを決めてしまった方がいいです。

よほど大きな会社でレガシーな技術を扱わない限り、
エンジニアは継続的に勉強を続けることが必須なので、
目標が無い状態で走り始めるのは、辛いものがあります。

まとめ

上記で挙げた通り、

・いくら稼ぎたいのか
・何を作りたいのか
・最終的に技術を売るのか、自社製品を売るのか

これらは、決めないと勉強が出来ない訳ではないものの、
勉強を始める上で目標や旗印を立てる為には
必ずどこかで自己分析をしておく必要があるものです。

もし、プログラミングを1から学ぼうと思う場合は、
何の言語を学ぶかを考える前に、各質問について
答えられるようになるまで、自分のアタマで考えましょう。