Yeah that's not going to be easy. It's not specifically hard, but getting the pieces together may take some effort.
For starters, you should look at existing skin code to get familiar with the tags, etc (if you're not already).
You should establish a test server on your local machine with a working copy of DotNetNuke, start your skin file, and you can do as I do, work in DW with my browsers open and just refresh when you want to test something, same as anything else.
You should do some quick research into the tags that you're going to need based on what you want accomplished.
For example: I'd assume your sidebar to be a vertical links menu, css'ed to be Display:Block with a BG, and some a:states.
In other words: <dnn:LINKS runat="server" ID="dnnLinks" Level="Child" Alignment="Vertical" CssClass="dnnLinks" Separator="<hr />" />
I forget how to disable it when you're on the root menu, but that's okay, here's a quick tip:
You can put multiple layouts in one skin package and that way have two or more skins that utilize the same CSS, XML, data in general.
That said, you could place your side menu in Layout A, which would be your default. On your main page, you'd use Layout B which simply replaces that div or table cell.