てくすた

ピクスタ株式会社のエンジニア・デザイナーがつづるよもやまテクニカルブログです

オンプレ+ASP.NETからクラウド+Railsに慣れるまでのMy Short History

 こんにちは、ピクスタ開発部エンジニアのid:shoutataniと申します。最近バイクを購入したので、用もなしに都内を走り回って道路を覚えたおかげで、電車より道路網のほうが詳しい今日この頃です。
 さて、今回は私がピクスタでのRails開発業務に慣れるまでの日々を簡単にご紹介したいと思います。

f:id:shoutatani:20181011123740j:plain Fast&Slow / PIXTA(ピクスタ)

入社前

入社前のスキル状況

 前職では、Windows系マシン + Visual Studio + SQL Serverな、どっぷりMicrosoft環境&GUI環境でASP.NET Webアプリケーションを作成していました。本番環境もWindows Serverを使ったオンプレ環境だったため、まず社内でAWSとかRailsを耳にすることはほとんどありませんでした。

まずはmacOSでRubyを体に叩き込む

 Rubyをプライベートで触ったことがありましたが、基礎から叩き込みたいと思ったので、「プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで」いわゆるチェリー本を読み込み、自前のMacBook Proで手を動かしつつ理解を進めました。

 結果としてこの本は大変役に立ち、後のRails開発において十分威力を発揮してくれています!体系立ててRubyの理解を行うにはぴったりでした。

ターミナル操作に慣れる

 さて、Rubyの学習を続けていくにつれて、ターミナルの知識が不足していてSSHの操作やファイル操作などにもたついている自分に気が付きました。無知の知ですね。
 それまで、WindowsでコマンドプロンプトやPowerShellを使っていましたが、Linux系は未知のゾーンだったため、「これから学ぶmacOSターミナル」を購入してターミナル操作についても学習を行いました。

これから学ぶmacOSターミナル

これから学ぶmacOSターミナル

 CUI操作については継続的に知識習得・改善していくものだと思っているので、新しく学んだコマンドについてはDropBox Paperなどにまとめつつ現在も習得続行中です。

Rails TutorialでRailsに慣れる

 上記の「Rubyを体に叩き込む」学習と同時に、Rails Tutorialを用いてRailsの習得も進めました。 railstutorial.jp
これはRailsの習得に役立っただけではなく、Rubyの再学習や、Git習得の足掛かりにもなったので大変よかったです!Git習得に関しては、それまでTeam Foundation ServerやSVN、VSSといった中央集権型のVCS(バージョンコントロールシステム)にしか触れたことがなかったので、分散型VCSであるGitの簡単なチュートリアルがRails Tutorialに含まれているのはGoodでした!
 とはいえ一回Rails Tutorialをやるだけで完全に理解したとはいえなかったので、「Ruby on Rails 5の上手な使い方 現場のエンジニアが教えるRailsアプリケーション開発の実践手法」を読み込みつつ理解を深めました。

Ruby on Rails 5の上手な使い方 現場のエンジニアが教えるRailsアプリケーション開発の実践手法 (Web Engineer's Books)

Ruby on Rails 5の上手な使い方 現場のエンジニアが教えるRailsアプリケーション開発の実践手法 (Web Engineer's Books)

  • 作者: 太田智彬,寺下翔太,手塚亮,宗像亜由美,株式会社リクルートテクノロジーズ
  • 出版社/メーカー: 翔泳社
  • 発売日: 2018/01/24
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (1件) を見る
 前職ではASP.NET Web Forms を用いたWebアプリケーションの開発を行っていたのですが、Railsを学んでみて思ったこととしては、Webアプリケーションの基本部分についてはASP.NETもRailsも必要とする知識はほとんど変わらないということです。HTTPプロトコル、SassやJavaScript、SQLの知識といった、Webアプリケーションを作成を作成するうえで必須な知識は広く役に立つと改めて思いました。

入社後

Dockerでの開発に慣れる

 ピクスタの開発環境はDockerで構築されていたので、まずはDockerの操作に慣れる必要がありました。Docker=難しいといった謎な先入観があって戦々恐々でしたが、社内のDockerのチュートリアルを行うと共に、「プログラマのためのDocker教科書 第2版」で足りない知識を補完することで、Dockerの概念をしっかり理解して怖いものなしの状態になりました。

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化

 Windowsの仮想マシンを構成するのに比べて軽量かつ取扱いも簡単なので、自宅の開発環境もDocker化してしまいました。ローカル環境を汚さずに気軽に環境構築ができるのは本当に良い時代です。

AWSに慣れる

 ピクスタでは、プロダクション(本番)環境や動作確認環境はAWS(Amazon Web Services)で構築されています。したがって、AWS上のあらゆるサービスを使えるようにならなければいけません。AWSについても社内チュートリアルがあったので、そのチュートリアルでAWSの使い方を一通り習得することができました。
 プライベートでもAWSのアカウントを開設して更に使いこなせるように習得中の日々です。本番環境と同様の環境をプライベートでも格安で持てる時代、素晴らしいです。

MySQLに慣れる

 それまでSQL ServerやOracleといったRDBMSの経験しかありませんでしたが、ピクスタで初めてMySQLに触れました。
 SQL ServerのときはSQL Server Management Studioという強力なGUIツールに慣れていたこともあって、CUIベースでSQL操作をするのに最初は慣れませんでしたが、慣れてしまえば何てことはありませんでした。
 SQL ServerであってもMySQLであっても、以前SQLを勉強した本「SQL 第2版 ゼロからはじめるデータベース操作」の基本はずっと役に立っています。SQLの知識は一生モノですね。

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

おわりに

 オンプレであろうとクラウドであろうと、ASP.NETであろうとRailsであろうと、Webアプリケーションである限りご近所さんです。何も身構える必要はありません。継続的に学習していく習慣と意欲さえあれば、人は何でも習得していけると思っています。
 それよりも、成長させていきたいピクスタのサービス開発に携われていることこそが、開発のモチベーションの一番の源泉になっています。好きなサービスを育てていける環境、最高です。
 ピクスタのサービスを成長させていきたいエンジニアを募集中です!

recruit.pixta.co.jp