2014/02/17

Stanform大学のDBコース、半分くらい終わりました

Stanford大学のオンラインコースを使って主にRDBを勉強しています。慣れてきたので、だいたいどういうものか紹介をしておきます。コースが修了できたら、また報告しますね。

DBコースを受講したわけ


最近まで、仕事では直接DBを触る機会が少なかったのですが、昨年の10月から海外勤務になり、業務内容が全面的にDBを扱う仕事に大きく変わったため、Stanford大学のオンラインコースを使って主にRDBを勉強しています。

元々は、何かオンラインのコースを取りたいなと思っていて、分野として候補がいくつかある中、丁度良いタイミングで始まったのがDBだったので、コレを選んだ次第です。

DBコースの内容


内容は以下の様な感じ。
  • Relational Database Overview
  • XML Data
  • JSON Data
  • Relational Algebra
  • SQL
  • Relational Design Theory
  • Querying XML
  • Unified Modeling Language
  • Indexes
  • Transactions
  • Constraints and Triggers
  • Views
  • Authorization
  • Recursion
  • Online Analytical Programming
  • NoSQL Systems
期待通り、SQLやテーブル設計などRDBの内容が中心ですが、XMLやJSONなども含まれています。

受講の仕方


基本的に開講と同時に全教材が開放されて、どこから進めても良い形式になっているようです。ただし、提出期限は上から順番になっているので、上からやった方が良いと思います。

各項目に対して進め方は各項目に対して以下を繰り返す感じです。
  • 講師の説明ビデオを聞く
  • 簡単な4択のクイズに答える(得点なし)
  • 基本問題
    • 選択問題(小得点)
    • 実際にクエリを書く問題(中得点)
  • チャレンジ問題
    • 実際にクエリを書く問題(高得点)

コースの修了について


基本的には回答を提出して自動採点する仕組みになっています。そして、回答を提出するたびに現在の修了状況が採点されます。基本問題をひと通り解けば、50%は完了し、コースは修了できるようです。もし良い成績を残したければ、チャレンジ問題にも挑戦した方が良いです。

教材が英語だけど大丈夫?


私の場合、今、日本人がいない職場にいて、英語で仕事しているので、英語のコースを受講する分は特に問題はありません。

ただし、まだ知識が浅い内容に対して、若干、早口で講義が行われると、ちょっとつらくなって何度も聞き直す必要があったりします。結局は、基本問題を解きながら、具体的な物を見つつ、教材を読み直して理解するという流れになりがちです^^; また、それでもよく分からない場合は、今回は日本語の教材がネット上に転がっているので、必要に応じてGoogleで調べながらやっています。

英語のヒアリングが苦手な人にはちょっときついかもしれません。

負荷について


内容や自分の知識レベルにもよるのでしょうが、コースを修了したい人は週3〜4時間、良い成績を残したい人は週7〜8時間くらいかけないとダメなようで、フルタイムの人なら同時期に1コースが限度だと思います。

進め方の工夫について


開講と同時に全教材と締め切りが公開されますので、それに合わせてプライベートの予定を含めて、スケジュールを組んでおくことをおすすめします。難しい問題で手こずる可能性がありますので、常に締め切りより1週間程度は前倒しで進めましょう。

また、チャレンジ問題は締め切りが後になっているので、ついつい後回しにしてしまいがちですが、スケジュールの余裕があるかぎりは、基本問題をやった後に、早めに手を付けた方が良いと思います。

--

ということで、今回は中間報告です。無事に修了できたら、再度ブログ上でレポートを書きますね。

CodezineのSeleniumチュートリアルをやっています

今の勤務先の業務に、Seleniumを使ったテストが予定されているので、実務でやる前に、自分でもSeleniumによるテスト自動化を体験しておこうと思ってチュートリアルで学習しています。

やっているのは以下の連載の第2回。

WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium2」入門 第2回:「Selenium2」のインストール手順と初めの一歩 

内容は以下の通り、簡単なサンプルを使って、Selenium IDEとSelenium Web Driverの基礎の基礎を学べる良記事です。

  • 環境設定
    • Selenium IDEのインストール
    • Selenium Web Driverのインストール(Javaライブラリ、ドライバの両方)
  • Selenium IDEでブラウザ操作の記録、JUnitテストコードのエキスポート
  • Selenium Web Driverでテストコードの実行

これの次は以下を試す予定です。

PageObjectパターンは、Selenium開発者の間で推奨されているデザインパターンです。テスト対象のWebページに対して、直接、Selenium Web Driver APIを使った低レベルなコードを書くのではなく、テスト対象のWebページの外部仕様を表現するクラスを用意し、そのクラスに対してテストコードを書くやり方です。コレをやるとテストコードがすっきりして、良いテストが書けるようになります。

このチュートリアルのあとは、一旦、所属チームの方針で決められているテスティングフレームワーク TestNG の勉強を「TestNG Beginner's Guide 」でやって、本格的なSeleniumの勉強を「Selenium Testing Tools Cookbook 」でやろうと思います。