どうも、ウェブ系ウシジマくんです。
2018年8月、Rubyのエンジニアになって半年が経過しました。
最近「フリーランスのエンジニアを目指しています!」という質問をされることがあったので、今回は「未経験者からRubyのフリーランスエンジニアになるために必要なこと」をテーマに書いていきたいと思います。
未経験からRubyでフリーランスエンジニアになるには
未経験からRubyのエンジニアを目指すのであれば、まずは初心者向けオンライン学習サービスを利用して、プログラミングに慣れることから、はじめるといいです。
オンライン学習サービスでいうと、Progateやドットインストールがメジャーですね。
この段階では、あくまでもプログラミングに慣れることがメインなので、ここですべてを理解しようと思わなくて大丈夫。
サラッと操作方法や動かし方を学んだ後には、Skill Hacksで基礎固めを行うのがいいでしょう。
もし、マンツーマンで教わりながら、学習していてわからないことがあった時にすぐ聞きたい!というあなたは、プログラミングスクール向きですね。
自分にあった方法で基礎を学ぶことができたら、IT企業に就職して実務経験を積みましょう。
Rubyであれば、スタートアップやベンチャーが多いので、未経験でもポートフォリオがあれば採用してくれる企業が多いですし。
できれば、自社でコンテンツを開発している企業か、請負型企業に就職した方が、スキルは伸ばしやすいと思います。
企業で1年~2年くらい実務経験を積めば、もうフリーランスとして営業できるくらいのスキルは十分でしょう。
Rubyのフリーランスエンジニアにおける平均単価
Rubyのフリーランスエンジニアとして営業をかけた場合、未経験〜実務経験1年くらいのスキルだと、40~50万くらいが平均相場になりますね。
2~3年になると、55~65万、3年以上だと80万以上になることも。
Ruby単体というよりかは、フレームワークであるRubyonRailsができるという前提の単価にはなりますけどね。
Rails自体はマスターするために必要となる知識が膨大なので、はじめは「ここだけは負けない」という分野を作っておくだけでも、営業活動で面談を受ける際に自信を持って受け答えできると思いますよ。
未経験からフリーランスを目指すのにRubyがオススメな理由
よく「未経験からエンジニアを目指す場合、どの言語を選んだらいいですか?」と聞かれるのですが、ぶっちゃけ、「どの言語を最初に習得するかは、重要ではない」です。
プログラミング自体は、
- 画面への出力
- 基本的な数学演算処理
- 変数への格納
- 関数、メソッド、モジュール
- 論理演算子
- 条件分岐
- ループ
これら7つについては、どの言語でも共通しています。
なので、ぶっちゃけ、「自分が学びやすい」と思った言語を選んぶべきがひとつの答えなのかなと僕は考えています。
とはいえ、プログラミング言語の中には、実行するための準備(コンパイル)するためのコードも自分で書く必要がある言語もあります。
仕組みを理解するのに学習コストが高くつくので、基礎を覚えるまでも大変。
逆にRubyやPHP、Pythonをはじめとした動的言語は、自力でコンパイルする必要がありません。
そのため、書いたコードをすぐに動かせるので、理解しやすい分学習コストが低いのです。
とりわけRubyに関しては、発明者が日本人というのもあり、自然言語に近い形でコードを書けるのが特徴なので、そこが初心者でも取り組みやすいと言われる所以ですね。
また、Rubyはコミュニティが非常に活発であるため、最新情報もキャッチアップしやすいのも、大きいメリットですね。
さらに、JavaやPHPなどに比べると、リモートワークに寛容な会社が多い傾向があるので、
「場所に囚われずに仕事をしたい」
と考えている人も、マスターする価値は十分にあると言えるでしょう。
フリーランスになるなら身に付けたい、Rubyを短期間で習得するための考え方
Rubyをはじめとしたプログラミング言語を効率よく身につけるためには、
考えるときに、抽象化するクセをつける
ことが重要です。
技術本や動画、チュートリアルなどの教材を使って、具体的にプログラミングを学ぶことも重要なのですが、それだけではなかなか上達はしません。
例えば、Rubyの基礎を学んでいるときに、
「変数にはわかりやすい名前をつけなければならない」と
という文章が書いてあるとしましょう。
これをただ単に暗記しようとすると、学べることは一つだけです。
抽象化して理解するためには、
「変数にわかりやすい名前をつける理由はなんでだろう?」
と疑問をもち、仮設を立てるようにするとGOODです。
仮説
・そのほうが読みやすいから
・変数に何を入れているかいちいち確認する必要がなくなるから
・etc…
更に、
・今書いているコードは、あとになって自分以外の誰かが保守する可能性があるから
なども話として聞いたりもするでしょう。この理由は、「誰かが言っていたから」だけではなく、明確にメリットがある理由です。
このように、自分の考えを織り交ぜつつ、ググりつつ、考えることが非常に重要。
これを踏まえた上で、誰かが「変数は多少正確じゃなくても短いほうがいい」と言ったとしましょう。
ちゃんと考えて、自分の考えを持った状態なら、そこをベースになんでその考えなのかを推察し、質問することができますよね。
話し合って、メリットとデメリットがあることを把握し、比較検討しつつ決定していくというフローが取れます。
このような考えを持って学習していくと、一つの概念から多くのことを学べるようになるので、効率よくプログラミングを上達させることが可能。
一見時間がかかるかもしれませんが、実は最短ルートなので、是非、意識してみてください。
まとめ:Rubyは未経験からフリーランスを目指すのに敷居が低い言語
Ruby自体は未経験からフリーランスエンジニアを目指すのに敷居が低く、単価も比較的高いので、最初に選ぶプログラミング言語としては最適だと思います。
もちろん、使いこなすためには、覚えることは多いものの、一度基礎をマスターすれば、あとは実務経験を積んでいく中で応用的な使い方を身につけていくだけ。
コツコツと学習を続けていけば、生活や仕事に困ることはなくなると思うので、チャレンジしてみてはいかがでしょうか。