I've been thinking about this a lot lately. Right now I work at a little web company, am almost done with school, and have written an iPhone app, but I'm not sure what else I need to focus my learning energies on. I've decided I want to do software programming, so I've been actively reading everything I can get my hands on that deals with Objective-C / C++ (Cocoa, OpenGL, etc). But those are not the things I'm talking about. I know I need to "master" a language or two. What I'm talking about are the other "things". Things such as learning and using source control, design patterns, etc.
What thing (or things, just one per response), would you say I should concurrently be focusing on? You can consider in your answer that I'm wanting to do the aforementioned career path, but you don't have to. I just want a nice list of things to research, and actually use in my career.
NOTE:
I asked this question on Stackoverflow, and after a few good answers, it got closed, and I was told i should move it here.
Here is the original: http://stackoverflow.com/questions/4452857/what-are-the-most-necessary-non-language-specific-things-a-programmer-needs-to-kn
One thing is, a lot of the answers were about people skills, which is fine, and I do agree, but I was looking more for programming specific kind of things, like, i don't know, learning Hexadecimal, or design patterns (maybe specific), etc.