Code. Collaborate. Read code. Solve problems. Debugcode. Refactor code. Code more.
What programs would you like to write? Pick oneand dive in. Let the software engineering challenges guide your book learning,not the other way around. You will internalize more of the "bookknowledge" as you contemplate how to apply it to the problem you aretrying
to solve. You will become better.
/**************************************************/
Hands on experience is usually the most effective wayto learn quickly. That being said, learning on the job with production codeisn't always the safest course.
One good option is to look around at open sourceprojects, find some that are interesting to you, and contribute. Or start a newopen source project. I find this path tends to make you think a little morethan doing side projects that nobody else will ever see.
It also helps withyour ability to collaborate, which is often just as important as your technicalskills.