A very good start, to get you rolling in the right direction, is Microsoft site for SharePoint Development, at http://www.mssharepointdeveloper.com/. This will get you a long way towards understanding what you need to prioritize in your learning efforts.
To answer your second question, in short: yes, you can create pages that use code-behind, just like regular ASP.net. The longer answer is a bit beyond the scope here since it requires a better understanding of how SharePoint works with master pages, customized pages, and the layouts or application pages concepts in SharePoint.