こんにちは!Ryo です! 入社して早2ヶ月が経ちました。今回は、門下生として参加しいてる永和道場についてお話ししていこうと思います。
永和道場とは
AI時代のジュニアエンジニアの土台を鍛えることを目的とした育成塾です。10年以上の経験をもつ師範のもと現在はRDBMSを中心に、毎日稽古に励んでいます。
参加のきっかけ
入社し、1か月ほど経ったタイミングで永和道場に参加しました。
データベースの基礎的な内容については学んでいました。ただ、学んだ知識が十分に定着しておらず、SQLに対しては苦手意識が残っていました。
入社後、実務の中でSQLを読む機会があり、Active Recordの使い方には少しずつ慣れてきた一方で、その裏側にあるSQLやデータベースについては、まだ理解が足りていないと感じることがありました。
そんな中で永和道場が開催されることを知り、SQLやデータベースについて基礎から学び直し、SQLへの苦手意識をなくそうと思い、永和道場に参加しました。
永和道場で学んだこと
永和道場では、SQLの書き方だけではなく、データベースについて基礎から幅広く学びました。
講義では、データの物理配置やディスク、RAIDといったデータベースを支える仕組みから、モデリング、ER図、関数従属性などのデータベース設計に関する内容まで扱いました。普段Railsを使っているだけでは、なかなか意識することのない部分について学べたのが印象に残っています。
また、パフォーマンスの悪いSQLを題材に、どのように改善できるかを考える機会もありました。CASE式やウィンドウ関数などを使ってSQLを書き換え、実際に課題として自分でSQLを書くことで理解を深めていきました。
普段Active Recordを使っていると、CASE式やウィンドウ関数を自分で書く機会はあまりありませんでした。そのため、SQLではこういう書き方ができるのかと驚くことも多く、SQLそのものが持つ表現力を知れたことが特に印象に残っています。Active Recordの使い方を覚えるだけでなく、その裏側にあるSQLについて知ることの大切さも感じました。
さらに印象に残ったのは、パフォーマンス上の問題をSQLの書き方だけで解決しようとしない、という考え方です。
SQLを工夫すれば改善できることもありますが、場合によってはデータベース設計そのものを見直したほうがよいこともあります。一つの技術だけですべてを解決しようとする「スーパーソルジャー病」に陥らず、それぞれの方法のメリット・デメリットやトレードオフを考えながら解決策を選ぶことの大切さを学びました。
また、講義を聞くだけではなく、門下生同士で一緒に取り組む機会もありました。モデリングについて意見を出し合ったり、課題で分からないところを一緒に考えたりと、みんなでワイワイしながら取り組めたのも楽しかったです。
一人で考えているだけでは気づかなかった考え方に触れることもあり、他の門下生と一緒に学ぶことも永和道場の魅力の一つだと感じました。
参加して感じた変化
永和道場に参加したことで、SQLに対する苦手意識が以前より減りました。
参加前はSQLを読むことに難しさを感じていましたが、講義で基礎から学び、課題で実際にSQLを書くことで、以前よりもSQLを読めるようになったと感じています。また、課題に取り組む中で、自分で考えてSQLを書き、問題を解けるようになったことも嬉しかったです。
普段使っているActive Recordに対する意識にも変化がありました。これまではActive Recordの書き方に意識が向いていましたが、今ではコードを書くときに、裏側でどのようなSQLが発行されるのかも意識するようになりました。
今回の永和道場を通して、SQLへの苦手意識を減らすことができただけでなく、Active RecordとSQLの繋がりも意識できるようになったことが、参加して良かったと感じたところです。 今後も実務でSQLに触れながら、今回学んだことを定着させていこうと思います。