I've worked as a programmer for quite a while now (4 months) and i've learnt a lot during my time here that I thought id share with TSR, for any aspiring students looking into getting into the field and might want to gain some insight into the daily experience as a full time programmer.
* Pros
* Job security: Contrary to what people think in my experience we have probably one of the highest levels of employability, if you're a decent programmer you can find jobs pretty easily there's a massive demand. You also always know in the back of your head that if you get fired you can easily find a new job so there's that security aspect.
* Well paid: I started out on 28k, the senior devs are on 50kish and the managing senior developers are earning 60k+. The senior dev above me is about 28 and is earning 50k, not bad.The company wants to keep you, especially because in this market the company often needs the programmer far more than the programmer needs the company.
* Benefits: Extended from the well paid part, often we get a lot of in-work benefits that other positions don't have, google famously give their staff massages, free meals and other perks and many companies do this too, sometimes only specifically for programmers, at our company we have a games room for all employees, but it's not unheard of to have game rooms and certain perks only for the software team. Especially in software oriented teams.
* You're respected : Often times your managers won't know anything about the job you're doing, they're find it miraculous you can do some things, in the general hierarchy of the office you will find yourself seen as in a quite prestigious position as your other employees will be well aware of how integral your role is in the company and how valuable you are to the company as a primary creator of the company's wealth.
* It's often relaxed : It's not very strict and there is a kind of chill vibe in the team, most people who are programmers are generally very laid back people. Often times you're working with people who have very similar interests and it's likely your co-workers will be very like minded which creates a friendly space in the office.
* Cons
* A lot of responsibility: This is something I had no idea until I started the role. It is a high stress role in a sense, despite the tech-hippie vibe of the office you will always have a release around the corner, releases can be very stressful because if things go tits up it will be directly your fault and will cost the company a lot of money. The code you write is going to stick for years to come and if you **** up you're going to have to fix it sooner or later.
* It's tough work : You would think sitting at a desk typing code all day would be easy, a nice cushy office job. Oh how wrong I was. You're always using your mind in coding, all the time. It takes a lot of mental energy and when you get home you will be tired in a completely new way, you'll be absolutely mentally exhausted.
* Managers can have unrealistic expectations: Because managers don't understand how what you do works, sometimes they can fail to understand basic principles and expect results that are simply impossible.
It can be frustrating but luckily, from what I've seen the management often are forced to bow down to our final say when we insist against their wishes. In our company us programmers are also paid significantly more than the management team which is unusual I guess, but because of the high skill nature of what we do it's how things are always going to be.
* Little creative freedom: often you will have to just code according to a spec and you can't be creative, that sucks a bit because you want to input on design choices and graphics, sometimes you'll be given crap graphics and want them changed but won't be able to, sure you can suggest so but it's rarely done.