Welcome, Patrick! (We've already been chatting by email.)
Some general job advice that could be obvious but is worth mentioning anyway:
- Your best bet for deciding what to study may be to read job descriptions at startups where you could imagine working. Those are the types of skills that would also be useful if you eventually put together your own company. Working at a big company can be okay, too, if you can't get a startup job immediately -- at least you'll get name recognition and meet colleagues who might join you in starting a company later on.
has links to a lot of the more well known startups.
- Does your school have an alumni database? When I was in college, I used it extensively to contact people with jobs at companies I might want to work for, and most of them were very generous with their time -- even calling me for hour-long chats. That said, many more people didn't reply to my mails (especially random people with no college connection), so don't be discouraged if you contact 15 people and only 1-2 reply.
- It's kind of strange, but most software companies really do ask a lot of puzzle / logic questions in interviews, so one of the most efficient things to study can be various "programming interview" questions you find online. Of course, you need to also know some basics about software as well.
However, since you're an entry-level employee, probably 80%+ of what you do when you start working will be stuff you've never seen before, which is expected. Companies hire college grads in order to develop their skills over the next 1-2 years, not because they expect them to be ready to contribute at a high level upon hire. As a result, good companies care more about raw intelligence and passion than knowledge of a specific programming language, say. (That's why there's such emphasis on puzzle questions in interviews.)
Good luck! And if you don't find that programming suits your taste, there are plenty of other options, e.g., regular business careers.