This may seem like a very general question, but how does a programming
job work?
Generally there is a contract between you and the company asking that you provide services that make the software or system and get paid accordingly. In some start-ups, the pay may be equity in the company while other places may just pay an hourly rate with various combinations of options and cash in between existing for development jobs that can involve business analysis, software architecture, testing, system administration as well as the development itself. Also, companies may use different methodologies as some may prefer waterfall, some agile and others some hybrid of the two.
How should I prepare for such an environment before I actually delve
into it?
Consider what kind of environment do you work best:
How structured do you want things to be: Are you wanting to program from documents or could someone tell you a general idea and you'd know how to design system and get a prototype up and running quickly?
Do you often want to work alone or do you want to do pair programming? There are also other team dynamics that could be used depending on social needs.
Do you want to start on new projects that haven't been done or work on existing code bases that may have some smells here and there?
Which practices do you know like continuous integration, continuous improvement, unit testing, integration testing, database normalized forms, etc.?
These could help you as some places may be rather lax in the rules and others could be quite militant in some cases.