手に職をつけようとプログラミングを始めたいけど、早く稼げるようになるには何をするのがおすすめですか?
プログラミングを覚えて副収入を得たいと考えているのですが、なにかオススメの学習方法とかありますか?
今回はこのような疑問に答えていきます。
- プログラミングを学ぶならどの分野の勉強をするかあらかじめ決めたほうが良い
- 「〇〇分野の開発をしたい」など決まっていなければ、Web開発がオススメ
- Web系の仕事は数多く、IT業界以外とも親和性が高い
転職・副業など様々な理由で未経験からエンジニアになろうと考えている人がだいぶ増えてきました。
その背景には「ドットインストール」や「Progate」など無料で学びやすいプログラミング教材が増えてきたこと、
リモートワークに憧れる人が少しずつ増えてきているからだと思います。
そのような時代の流れもあってか、「プログラミングを教えてください」とぼくに連絡をくださる方の中にこのような話をしてくださる方もいました。
今は給料の高さから東京に出てタクシーの運転手をしていますが、将来は地元に戻りリモートで東京や都市部など単価が高そうなところの仕事をしたいと考えています。
子どもがまだ小さく、家で面倒を見る必要があるので、プログラミングの仕事だと家でも作業が出来て収入も高いみたいなので、プログラミングを勉強始めました。
これら以外にも、プログラミングの学習をしたいと思っている人の共通点として、
「現状の仕事をずっと続けられるか不安」「手に職をつければ仕事に困らない」
が挙げられます。
つまり「食いっぱぐれないスキル」を身につけたいと思っていることです。
プログラミング学習で、できるだけ早く収入につなげたいという視点で考えた時にぼくがオススメする分野はWeb開発です。
目次
プログラミングの仕事の種類
まず、そもそもプログラミングにはどんな分野があるか下記に例をあげます。
- Web開発
- モバイルアプリ開発
- ゲーム開発
- その他多数…
このように種類がたくさんあり、分野ごとに学ぶ内容が違ってくるので、まずはどの分野を学ぶか決める必要があります。
一例ですが例えば、
- Web開発・・・HTML、CSS、JavaScript、データベース
- モバイルアプリ開発・・・Swift、Kotlin
- ゲーム開発・・・C++や数学の知識
このように分野によって勉強する内容がまったく異なってきます。
今回はプログラミングで早く稼げるようになるというのがテーマのため、
Web開発だとどうして他の分野と比べてすぐに稼ぎやすいのか話を進めていきます。
Web開発
Web開発はざっくりいうと以下の2種類に分けられます。
- フロントエンド開発
- バックエンド開発
それぞれの内容については過去に書いた以下の記事が参考になるかと思います。
ぼくがWeb開発をオススメしている理由は以下のとおりです。
- 数学の知識がなくても開発が出来る
- クラウドなどからのデータ取得にはWebのバックエンドが必ず使われている
- フロントエンドで使うJavaScriptでiPhone・Androidのアプリが作れる
数学の知識がなくても開発が出来る
ゲーム開発ではシンプルなゲームであれば数学の知識が必要になる場面はあまりないかもしれませんが、
ゲームパフォーマンスが必要になると「行列」を使ったり、独自のアニメーション処理を実装するとなると「当たり判定」を考えたり、
落下する系のゲームであれば「重力」や「ボールなどのバウンドの表現」などを計算する必要があります。
ぼくは高校・大学と文系だったのでこのような数学知識は持ち合わせていません。
このようなゲームに使う数学知識を既にお持ちのかたであればゲーム開発のハードルはそこまで高くないかもしれませんが、
ぼくみたいに文系出身の方であればプログラミングの勉強だけでなく数学の勉強もする必要があります。
仕事を見つけるという観点からも、Web開発の仕事と比べると「未経験者歓迎」なゲーム開発の仕事は数が少なくなります。
ユーザーが使うほとんどのサービスにはWebが使われている
「TwitterなどのSNS」、「Amazonなどの通販サイト」、「銀行口座と連携するアプリ」
これらはどれもWebの技術が使われています。
TwitterやAmazonはユーザー情報や商品情報をそれぞれが所有しているデータベースにデータが蓄積されていますし、
マネーフォワードなどに代表される家計簿サービス・アプリは、銀行で管理されている情報(口座情報や残高など)をWebを介してユーザーに提供します。
その他にも、IoTであればセンサーから取得したデータをインターネット(Web)を介してデータの蓄積を行いますし、
ゲームアプリやサービスの裏側であれば、ユーザー情報の管理や対戦相手とのマッチングはインターネットを介して行われます。
教育サービスで考えれば、生徒の学習記録をクラウドで管理すれば、生徒の学習記録や成績などを一元管理出来てどこからでもアクセスできるので、
先生にとっては管理の手間が減り生徒にとっては自分の学習記録や成績をいつでも見返して学習の効率化を図ることが出来ます。
教育サービス以外でもWebの技術を使って業務効率化を図れる業種はたくさんあります。
家計簿アプリなど金融系を扱うものでは「フィンテック(Fin-Tech)」、教育サービスだと「エドテック(Ed-Tech)」と言った言葉があるように、
別業界とWebを組み合わせる仕事がたくさん出てきています。
このことからもWeb開発の仕事が多い(今後も多くなっていく)というのはおわかりいただけたかと思います。
Webのフロントエンド技術を使ってスマホアプリが作れる
だいぶ前からJavaScriptを使ってスマホアプリを作ることが出来るツールは合ったのですが、
それでもiPhoneアプリを作るときは「Objective-C」「Swift」、Androidアプリを作る場合は「Java」「Kotlin」といった専用のプログラミング言語を使って開発するのが一般的でした。
しかしここ2~3年くらいでFacebookが提供している「React Native」というツールを使って、
さきほどあげた専用の言語だけでなく、JavaScriptでスマホアプリ作るのも一般的になってきました。
この「React Native」はWebページの開発に便利な「React」というツールがもともとあり、そこから派生して作られています。
そのため、Webのフロントエンド開発で「React」を使い、アプリ開発では「React Native」を使うことでJavaScriptを使うだけで、
Webアプリ・iPhoneアプリ・Androidアプリが作れるようになります。
このことからWebスキルを身につけることで、Web開発だけでなくスマホアプリ開発も仕事の選択肢に増やすことが出来るのです。
まとめ
Webの技術は今ではフィンテック・エドテックという言葉から代表されるように、他の業界と関わる仕事が多数あります。
これらの背景には業務改善・作業効率化が求められていることが考えられて、その流れは今後も無くならないのでWeb開発ができるようになると、
どの業界とも関われるようになり選択できる仕事の幅が広がります。
また、Web開発は他の技術分野(ゲーム開発・スマホアプリ開発・IoTなど)とデータ連携が取れるので、基本的にユーザーが使うサービスの根底にはWeb技術が使われています。
以上のことから、Web開発のスキルを身につけると仕事の母数が多いため稼ぎやすいという話をしてきました。
- ユーザーが使うほとんどのサービスにはWeb技術が使われている
- Web技術は様々な業界で使われているため仕事の選択肢が多く、仕事が見つけやすい
- Web技術を使ってスマホアプリ開発もできるため、アプリ開発の仕事も選択肢の1つにいれられる