This is a question I get on asktom frequently – what are the things I need to know, what do I have to do to become expert, where is the list of key things I need to do with regards to Oracle. It is a hard sounding question that has an easy answer.
If you are still wet behind the ears – or even just damp – then the definitive place to start is the Oracle Server Concepts Guide. Not only is this free - but it is your guide to understanding how the database works. If you understand something - you can use that thing. If you don't, well, simply put - you won't be able to effectively use it. Getting a solid knowledge of how a transaction is done, what locking and concurrency controls are and how they work, how the database makes the data durable on disk (redo, undo management) - all of it is key to effectively using the database.
If you don't know who can see what data, which version of data, at what points in time - confusion will abound and data integrity will be lost. Getting a good basic knowledge of how the database manages data is the only way for you to know how to code a correct program.
Once you've mastered the material in that document - I would suggest taking a look at the 2-Day guides. They are a good way to get spun up on the necessary knowledge for either a Developer or DBA track. There is the 2-Day Developers Guide and the 2-Day DBA Guide. These documents are designed to get you going - you won't be an expert after reading them, but you'll know the gist of what it is you need to know, to learn. You'll have a good idea of what is available feature wise at the very least.
After these 2-Day guides (you can read either one or both), you might want to move onto some of the other overview guides - the 2-Day Performance would be a must read for anyone (followed by the Performance Guide itself eventually).
While all of this is going on - you should also be communicating - a lot. Constantly. Get on the forums - http://otn.oracle.com/forums, start writing - start asking questions (after reading the guidelines!!), start participating. It is the way I learned much of what I know now myself. But communicate - a lot. You won't be able to progress forward in a vacuum. Share everything you have in your head - and find others that will share back with you. You'll find you not only get to learn (and to teach eventually) from people all over the world - but you may end up calling some of them your really good friends.
And then add time, a lot of time. Maybe years of time. You will not become really good at what you are doing in six months, not in a year, probably not in five years. It will take a while - you need to have lots of different experiences, encounter many different situations, attempt and fail to solve many problems - before you'll become really good at what you do. You might feel like you are expert in a year - but trust me - you aren't. And four years later you'll realize how little you knew and how much more you have to learn.
I learn something new everyday about Oracle, just the other day something about Total Recall but many things in general, technical and otherwise - and I've been doing Oracle things for a long time.