I struggled with this at first as well. You really do not need CodeSmith. I went that route as well after starting with Michael Washington's tutorial and realized I could do without it in the end. I did his tutorial in C# though, which made it even more difficult to get going, but then went on to create my own modules; some very extensive (and still WIP but functioning well).
It's daunting at first, but once you get past the DAL structure, it is pretty simple although somewhat tedious. Think reusability and make sure you understand the core model of web user controls in .net. I've already re-engineered some thigns several times since I found they were repeating, and improved my code in the process.
If all else fails, use one of hte older DNN versions using .Net 1.1, and use the CodeSmith.