Help me become a hacker
SandB0x: For spaghetti code problems the classic book is Refactoring. He has a whole chapter on "Code Smells" and most of the book is basically an extensive catalogue of techniques you can use to eliminate these.More modern languages like Ruby will allow even cleaner ways of doing things than described in Refactoring (Java), but you can get a good sense for smells common to all languages.Some other thoughts:What science are you studying? There's often scope to do something computational for your thesis/project/dissertation - modelling some physical or biological process.Other ideas:
Try and get an internship at a software company. Often a science degree is sufficient and you'll be able to learn about working in teams, using source control, and observe the kinds of things you like and dislike in a workplace.You could also do a CS conversion course once you've finished this degree.