Rubyのスキルに自信がありますか?Rubyは、TIOBE PCIでもトップ20に入っているメジャーな言語です。日本人のMatzこと、まつもとゆきひろ氏が開発したことでも有名ですね。日本だけでなく海外でも非常に人気があります。そのため、フリーランスとして仕事をする際にも案件に困ることはないでしょう。とはいえ、ごぞんじの通りプログラミング言語の知識だけでは仕事はできません。それでは一体どのような知識が求められているのでしょうか?
この記事では、
- これからフリーランスとして、Rubyの案件を受けようと考えている方
- すでにフリーランスとして、Rubyの案件をこなしている方
のために、フリーランスのRubyプログラマーに求められるスキルや経験を紹介していきます。
スキルや経験を持っているほど仕事の幅が広がります。ぜひご一読して、自分にないものは積極的に取り入れていきましょう。
Ruby
なぜ必要なのか?
あたりまえですが、RubyでプログラミングをするためにはRubyの知識が必要です。言語仕様はもちろん、標準ライブラリやRubyGemsなどRubyに含まれているものの知識も必要になってきます。現在も言語のバージョンアップが続いているため、バージョンによってどういった違いがあるかも知っておくべきでしょう。
重点的に取得しておくべきポイントは?
ほとんどの開発現場では、Rubyでの開発経験を重視しています。実務経験があるのが一番いいですが、個人的なプロジェクトでも評価の対象になります。実際に動くサービスなどを作っておくとよいでしょう。個人的なプロジェクトには、ソースを公開できるというメリットもあります。経験のあるエンジニアの方ならソースを見ればある程度の力量がわかるでしょうから、アピールするにはうってつけですね。
参考サイト
Ruby on Rails
なぜ必要なのか?
Ruby on Railsは、Rubyで最も人気のあるウェブアプリケーションフレームワークです。オープンソースで誰でも利用できるため、採用例が多く案件が豊富にあります。言語にRubyを採用する案件の半数以上でRuby on Railsが使われていますので、Rubyで仕事をしていくなら必須の知識でしょう。現在でも活発に開発が続けられていて将来性もあります。
重点的に取得しておくべきポイントは?
Ruby on RailsはMVC(Model-View-Controller)アーキテクチャを採用しているため、MVCパターンの本質を理解しておく必要があります。よく知らずにRailsを使っているとアンチパターンにハマってしまいがちです。チームメンバーに迷惑をかけることにもなってしまいますので、しっかり学習しておきましょう。また、Ruby同様、複数のバージョンが存在しているため、バージョン間の差異にも注意してください。
参考サイト
自動テストツール
なぜ必要なのか?
最近の開発現場では、TDD(テスト駆動開発)などのアジャイル開発手法を採用していることが多くなってきています。アジャイル開発では、ユニットテストを書くために自動テストツールが用いられます。そのため、自動テストツールの知識が必要とされるのです。仮に現場で使われていなくても自主的にバグチェックのためのテストを行うことは有効な手段です。
重点的に取得しておくべきポイントは?
Test::UnitやRSpec、minitestなどの主要な自動テストツールの使い方を理解しておきましょう。比較的シンプルなツールなので、それほど学習に時間がかかることもないでしょう。また、主なテスト手法の知識も必要です。ブラックボックステストやホワイトボックステストの各テスト手法がわかっているとよいでしょう。また、TDDやBDD(振る舞い駆動開発)などで書かれるテストは、一般的なユニットテストとは意味合いが違います。用途に応じたテストを書き分けられるようにしておきましょう。
参考サイト
クラウドサーバー
なぜ必要なのか?
Rubyで開発されるアプリケーションのほとんどはウェブアプリケーション(ウェブサイト)です。そのため、Rubyを動作させるためのサーバーが必要です。最近では、独自サーバーやレンタルサーバーを使うよりも、クラウドサーバーを使うことのほうが多くなってきています。そのほうが初期コストやランニングコストを抑えられるからです。そのため、クラウドサーバーについての知識を持っていたほうがよいでしょう。
重点的に取得しておくべきポイントは?
実際の案件を見てみると、アマゾンウェブサービス(AWS)の採用案件が多いことがわかります。やはりクラウドサーバーシェアトップなだけはありますね。RubyのほとんどはLinuxサーバーで実行されるため、LinuxサーバーでRubyを0から動かす練習をしておくとよいです。AWSは無料体験期間がありますので気軽に試せます。また、Herokuも有名所のひとつです。こちらも無料で試すことができます。
参考サイト
Git
なぜ必要なのか?
チームで開発をする場合には、ソースコード管理ソフトが必要不可欠です。もしソースコード管理ソフトがなければ、ファイルが誤って上書きされて変更が失われたり、最新ソースがどれだかわからなくなったりします。今一番人気なのはなんといってもGit(ギット)でしょう。後述するGitHubとも相性がよく、非常によく使われています。
重点的に取得しておくべきポイントは?
それほど複雑なことをする機会はあまりないと思われます。Gitの基本的なコマンドを抑えておけば十分でしょう。公式ドキュメントにチートシートがあります。ぜひ活用しましょう。
また、Gitの動作の仕組みや構造を理解しておくことをおすすめします。仕組みを理解していないと誤ったコマンド操作をしてしまうかもしれません。チーム全体に影響が及ぶ場合もありますので、くれぐれも注意しましょう。
参考サイト
GitHub
なぜ必要なのか?
ソースコード管理ソフトを使うためには、どこかにソースコードリポジトリ(ソースを共有する場所)を設置する必要があります。Gitの場合には、GitHubのプライベートリポジトリが利用されることが多いです。そのため、プルリクエストやマージなどGitHubでの開発の進め方の知識が必要になってきます。
重点的に取得しておくべきポイントは?
GitHubでの開発の流れを一通り体験しておきましょう。パブリックリポジトリであれば無料で利用できます。オープンソースソフトウェアの開発に参加してみるのもよいでしょう。実際にやってみないことには、なかなかイメージを掴みづらいので体験してみるほうが早いです。また、GitHub Flowをはじめとする開発フローが採用されている場合もあります。GitHubと合わせて学習しておきましょう。
参考サイト
アジャイル開発手法
なぜ必要なのか?
ソフトウェアを開発する際には、どんな現場でもなんらかの開発手法が採用されます。以前は昔ながらのウォータフォール開発が主流でしたが、近年ではアジャイル開発が流行っています。中でも、スクラムやエクストリームプログラミング(XP)、TDDが人気の手法です。プログラミングの仕方にも影響するため、プログラマーもしっかりと理解しておくべきでしょう。
重点的に取得しておくべきポイントは?
実際に試してみるのが一番いいのですが、チームメンバーがいないことには実践しようと思っても難しいでしょう。そのため、ひとまず概要やおおまかな流れだけでも掴んでおきましょう。ネット上の情報は散逸していてまとまった情報があまりないので、書籍から情報を得る方がおすすめです。案件を受注できたら実践してみましょう。
まとめ
あなたにないスキルや経験はありましたか?見つかったなら、参考サイトや書籍を活用して能動的に取得しておきましょう。受注率のアップや年収のアップにもつながります。フリーランスはサラリーマンよりも実力が重視されます。優秀なフリーランスになるためにも、日頃からコツコツとスキルアップをはかりましょう。あなたはどんな知識を取得しようと思いますか?
実際のフリーランスの案件を見てみよう
最近では「クラウドワークス テック」などのフリーランス専門のエージェントサービスもありますので、まずは実際に募集のあるお仕事の事例をチェックしてみると良いでしょう。
登録をすると、Web上では非公開の案件もご紹介を受けることができます。まずは色々なエージェントサービスへ無料登録するところからスタートしてみましょう。
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)