1
/
5

新人エンジニアがRobotic Crowdを支えるために学んだ技術

 株式会社チュートリアルでWebエンジニアを担当しています有賀です。
この記事は『Tutorial Advent Calendar 2020』の11日目です。


はじめに

 私は業務未経験からWebエンジニアに転職して約9ヶ月になるのですが、まだまだエンジニアとしての自分の知識、経験のなさを日々痛感しています。その中でも、アサインされるタスクをなんとかこなしていくために学んできたことを使用した技術書(サイト)の紹介を中心に書き溜めていこうと思います。

想定する読者

  • 未経験でエンジニア転職した新人エンジニアの方
  • チュートリアルでエンジニアとして働くことに興味のある方

Robotic Crowdを支えるために学んだ技術

 弊社ではRobotic Crowdというクラウド型RPAを提供しています。
 RPAは普段の生活ではあまり馴染みのないプロダクトです。そのため、開発を行っていく上では技術面以外にも、そもそもRPAとは何ぞやというところから理解を深めていかなければならず、幅広い知識が必要になりました。

Robotic Crowdの技術スタック

  • プログラミング言語:Ruby, JavaScript, Node.js, Go, Java
  • フレームワーク:Ruby on Rails, Vue.js
  • インフラ:GCP, Kubernetes(GKE), Firebase
  • DB:PostgreSQL, MySQL、Firestore

目次

  • RPA関連
  • コンピューターサイエンス全般
  • Ruby, Ruby on Rails
  • Javascript、Node.js
  • Vue.js
  • SQL、データベース周り
  • インフラ、クラウド
  • その他、プログラミング全般

RPA関連

  1. いちばんやさしいRPAの教本 人気講師が教える現場のための業務自動化ノウハウ 「いちばんやさしい教本」

 最初の1冊にオススメの本です。実際に現場でRPAを活用してきた著者がそもそもRPAとは何か? 何ができて何ができないのか?自動化する業務の向き不向きは? どんな製品・サービスがあるのか?どうやって選定し導入すればよいのか? 費用対効果は?など読者が欲しい情報を簡潔に説明してくれるので、エンジニアではない方でも抵抗感なく読めるのではないかと思います。なんと今ならAmazon Kindle Unlimited対象でサービス加入者は無料で読めます!!

2.成功と失敗で学ぶ RPA

 大手企業で実際にどのようにRPAが活用され、効果を出しているかを様々な事例から学ぶことができます。「成功と失敗で学ぶ RPA」が比較的規模が小さい企業向けの事例が中心に紹介されてますので、合わせて読むことでRPAを自社の業務でどのように適用すればいいかなどの知識がつくと思います。

3.事例で学ぶRPA 基本から導入、運用までのロードマップ

 基本的には上記の1,2で基本的な知識は抑えられるのですが、弊社チュートリアルの事例も掲載されてますので、紹介しました。興味のある方はぜひ(笑)


コンピューターサイエンス全般

1.webを支える技術

 少し古い本ですがエンジニア必読と言われるとても有名な1冊です。現代にいたるまでのWeb周辺を支える技術についてその歴史から詳しく解説していますが、私は最初にこの本を読んだとき途中で挫折しました。。Web開発の経験が浅い段階では、文章中に出てくる知識がどのように使用されるのか全体像が全く掴めず心が折れかけました。以下で紹介するようなもう少し図が多めで説明がわかりやすい優しめの本と併用することをお勧めします。

2.イラスト図解式 この一冊で全部わかるWeb技術の基本

 IT関連の技術書でありがちな初心者殺しの専門用語を使用した説明を可能な限り省いていて、図や例を使用した説明がわかりやすく「webを支える技術」で挫折した方にはオススメの1冊です。Webの全体像から、HTTPでやりとりする仕組み、さまざまなデータ形式、セキュリティ、システムの構築・運用といったトピックに対して大まかな概要が掴めるようになると思います。

3.キタミ式イラストIT塾 基本情報技術者

 こちらも2と同じく図解を使った説明が非常に分かりやすい1冊です。私自身は文系で情報系の学部は出ていないので、すっぽり抜け落ちてる2進数やCPU、メモリ管理などのコンピュターサイエンスの基礎知識を頭にマッピングするのに役立ちました。実務的にはこの知識がより直接的に役立つ場面は今のところあまりありませんが、時間を見つけて各トピックの知識を深めていきたいと思っています。

4.新しいLinuxの教科書

 Web界隈では主流となっているLinuxについて、コマンド周りの知識を中心に必要十分な知識を身に着ける知識をつけることができると良書だと思います。この本を一通り読み終えたら、あとは実践あるのみだと思います!


Ruby, Ruby on Rails

 Robotic CrowdのバックエンドにはRailsが採用されています。Railsのドキュメントは大量に世の中に出回っていますが玉石混交なので個人的に読んで良かったものを紹介します。

1.プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで

 私はRubyをほとんど勉強せずにRailsで目に見える成果物を開発するところから学習を始めたのですが、すぐに限界が来てしまい購入しました。Ruby、Rails界隈では有名な伊藤淳一さんが著者であり、私のような初学者であってもステップバイステップでRails開発の実務に最低限必要になる知識を身に付けることができる本当におすすめできる良書です。ただ、メタプロミングのような高度なテーマについては詳しく扱っていないので、その場合は公式のリファレンスやパーフェクトRubyを参照すると良いかもしれません。

2.Rails Tutorial

 Rails学習者なら多くの人が経験したことがあるであろう評判の高いチュートリアルです。最新のRails6系にも対応しています。ただ若干内容的に古かったりする点もあるので、テストフレームワークをMinitestからRspecに変更したり、一度チュートリアル通りに作成した後にフロントをVue.jsやReactなどにリプレイスしてRailsをAPIサーバーとして開発してみるとより現在の開発現場で役立つ知識が身に付くのではないかと思います。

3.Railsガイド

 RailsTutorialと同じ著者の方が中心に運営されているRailsのリファレンスです。非常にわかりやすいい日本語情報でまとめられているので初学者の頃から実務に入った現在までお世話になっています。暇な時に今まで読んだことがないページなどを読んでみるととても幸せになれます。


Javascript、Node.js

 Robotic Crowdではフロント部分とRPAのアクションと呼ばれるロボットが実行する1つ1つの動作の指示の処理やCloud FunctionsにNode.js、Javascriptが広く活用されていて、実務上でも一番触れる機会が多いという印象です。私は実務に入るまでJavascriptをドットインストールでざっくり学んだ経験しかなかったため、実務に入ってから最も苦戦しました。。

1.改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

 Javascript版の「プロを目指す人のためのRuby入門」といった印象で、Javascriptの基本的な文法から実践的なトピックまで基本的にはこの1冊でほとんど抑えられると思います。

2.JavaScript Primer

 Javascriptの基本的な文法などについて体系的に学べる無料のWEBテキストです。無料とは思えない内容の充実度なので本での学習が合わない方はこちらがおすすめです!

3.無職やめ太郎

 私が大好きな有名qiitaの投稿者の方です。投稿しているテーマはJavascriptに限らないですが、Javascript関連の記事は特に質が高いと思います。何度も心を折られかけた非同期周りの処理の理解はこの方の記事に救われました。参考: 4歳娘「パパ、Promiseやasync/awaitって何?」

4.N予備校 Node.jsコース

 たまたまコロナ期間に1年間無料で開放されていたので受講しましたが、環境構築、npmやyarnなどのパッケージ管理ツールの使い方や基本的なデータ構造からアルゴリズム、ファイル処理、簡単なアプリケーションの作成まで非常にわかりやすく解説しており、思いかけず発見した良教材でした。足りない知識は他の言語の経験などがあれば調べながら、実務にも対応していけると思います。


Vue.js

 Robotic CrowdのフロントにはVue.jsが採用されています。私は実務に入るまでほとんどVueを触れたことがなかったので以下の教材を使いながら学習しました。

1.超Vue.js2完全パック

 よしぴーさんという方が出されているUdemyの講座です。私はこれで手を動かしながら全体感を掴んだあとに、公式リファレンスを読みながら理解を深めて行きました。少し喋り方に特徴があるのと難しい込みいった内容になると多少説明が雑になる印象はありますが、随時変数やオブジェクトをデバッグをしながら解説をしてくれるのでVueの導入教材としてとりあえず全体のイメージをおおまかに掴んで、手を動かして何かを作る目的としてはとても良い動画教材だと思います。

2.Vue公式ドキュメント

 Vueの公式ドキュメントです。日本語に翻訳されているので英語のドキュメントアレルギーの私でも苦手意識がなく読むことができました。日本語のドキュメントを読んで内容を理解した後に英語版を読むことで英語のドキュメントを読む練習にもなると思います!


SQL、データベース周り

1.スッキリわかるSQL入門

 豊富な図解と丁寧な解説つきでSQLを初めて学ぶ人の最初の1冊としておすすめの本です。Railsから入った人あるあるだと思いますが、ActiveRecordという優秀なORMがあるために、SQLをほとんど理解しないまま実務に入る方も多いと思います。SQLの知識は現場では必須のためRails開発に入る前に学習すべきだったと反省しています。

2.達人に学ぶDB設計 徹底指南書

 この本はDBの設計に関する基礎知識を丁寧に解説しています。エンジニアとして知っておくべき、必須の知識が凝縮されている様な本です。特に、論理設計の項目は本書の半分近くを締めており、正規化や関数従属に関する基礎的な理論部分が丁寧に解説されている点が特におすすめです。他のDBの技術書を読んでいた時に、いまいち正規化のプロセスが感覚的にしか説明されていない事が多かったのに対し、明確な論理によって説明がなされていたのは非常にわかりやすく助かりました。
 この本を読んだから、すぐにDBの設計が実務でできるというわけではありませんが、少なくとも望ましい形と望ましくない形を知っているだけでも、いくぶんかマシな設計になることは間違いないと思います。

3.SQLアンチパターン

 この本はデータベース設計とシステム開発に関するアンチパターンとその代替手段をまとめたものです。私自身まだ全ては読み切れていないのですが、普通に設計、開発していたら気づけない、ついやってしましがちなアンチパターンがまとめられているので本格的な設計に入る前に一度通して読んでおきたいと思った1冊でした。


インフラ、クラウド

1.AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得

 インフラ、クラウド周りの知識は専門的な用語が多用されたり、公式のドキュメントの説明が初心者にとっては理解できないことも多く苦労する方も多いと思います。こちらのUdemyの講座はそんな初学者の方には最適な一冊であると自信を持っておすすめできます。AWSのEC2サーバー上にWordpressをインストールして公開するまでの流れをハンズオン形式で行っていくのですが、EC2、VPC、Route53、RDS、ELB、S3、IAM、CloudWatch、独自ドメインの取得、設定、冗長化などの基礎的な知識が抑えられているので、AWSのその他のマネージメントサービスを扱う際にもその知識がベースとなって自己解決できる幅が広がったと実感しています。他にも同じようなことをハンズオンで行う書籍などはありますが、説明のわかりやすさなども踏まえるとこの教材が一番だと感じています。

2.Google Cloud Platform エンタープライズ設計ガイド

 GCPの各種サービスの紹介がざっくりされている入門書的な位置付けの本です。正直、GCP関連の技術書はあまりおすすめできるものが少なく、質のいいAWS関連の書籍や教材で学んでからGCPをドキュメントを参照しながら学ぶ方法が効率がいいのかなと最近は感じています。

3.はじめてみよう Google Cloud Platform

 Google公式のハンズオン形式の無料チュートリアルです。Robotic Crowdでも本番環境がGKEで運用されているため、その基礎理解のために受講しました。動画公開から約1年経過して動画の内容と実際のサービスで異なる箇所があると思いますが、その差分をドキュメントを読みながら、上手く自己解決することでより深い理解につながると思います。

4.Firebase公式ドキュメント

 Robotic Crowdではユーザのワークフローの実行ログの保存、取得などをFirebaseを利用して行っています。Firebase自体のUI,UXも比較的わかりやすく使いやすいですが、公式ドキュメントが非常にわかりやすく書かれているので、基本的には公式ドキュメントでやりたいことは実現できるかなという印象です。


その他、プログラミング全般

1.サル先生のGit入門

 私のような新米エンジニアには安心のサルでもわかるシリーズです。個人開発の時は結構適当に使っていたGitでしたが、本格的な実務に入ると理解の甘さから何度もヒヤリとする場面があり、改めて基礎から勉強しようと思いこちらのサイトから始めました。タイトルから想像できる内容より充実しており、実務で実際に使う操作の9割はこちらの知識で対応できているため、非常におすすめのweb教材です。

2.オブジェクト指向設計実践ガイド

 オブジェクト指向の説明で急にAnimalクラスなどが登場して困惑した方におすすめのRubyでオブジェクト指向のコンセプトや具体的な実装パターンなどが書かれている本です。特にコーディングの設計に関する知識は現場に入るまで、その重要性などに気づく機会も少なく知識が浅い方がほとんどだと思うので、一読するだけでも設計に関する知識や理解度が変わってくると思います。未経験の方が学習しやすいRubyでオブジェクト指向について学習できるのもおすすめのポイントです。

3.リーダブルコード

 全プログラマー必読といわれる有名な書籍です。現場で開発、運用していく上での変数、メソッドの名前の付け方や読みやすいコードの書き方などについて指針が紹介されています。私自身、独学の時にはこの辺の知識をほとんど意識せず現場に入ってから指摘されまくった経験があるので早い段階でこの本に出会えればよかったと感じています。
 この本のいいところは内容ももちろんなのですが、職業としてエンジニアをやられている方なら一度はほぼ確実に内容に目を通したことがあることだと思います。なので現場毎に異なるコーディング規約を確認する際にも、リーダブルコードの知識をベースにして色々と議論することができるようになると思います。


おわりに

 なかなかの大ボリュームでしまりがない内容になってしまいましたが、私がこの1年間で学んだ技術をおすすめの教材と共に紹介してきました。チュートリアルでエンジニアとして働くことに興味のある新人、若手エンジニアの方の参考になれば幸いです。

Invitation from オートロ株式会社
If this story triggered your interest, have a chat with the team?
オートロ株式会社's job postings
9 Likes
9 Likes

Weekly ranking

Show other rankings
Like Tatsuya Aruga's Story
Let Tatsuya Aruga's company know you're interested in their content