I am in my fourth year of college, and I realize a little too late that I enjoy programming more than the major I was previously enrolled. The minute I found this out I finished all the necessary lower division for a computer science undergraduate within the previous two quarters. I am now at a crossroad and in need of some serious advice because due to my inexperience in the field, I do not know which specific branch of study I should take.
I just need to know what topics are particularly useful for any undergraduate student to know when later he/she is trying to find a job. For example: concurrency, database, user interface design... I do not have the option of exploring them (because of the tight budget I am in) although if I had the choice I would take it.
I know what I am asking is perhaps broad, and I do try to make it as specific as I can. So I am very thankful for any feedback that you can give to me.