Some questions for the Pro's
Miscellaneous Forums/General Discussion/Some questions for the Pro's
I'm considering going back to school to persue programming as a career and would like some input from those that do it as a profession.
What do you like/dislike most about your job?
What is your average day like?Stressfull? Not stressfull?
Where do you see the profession going in the next 10 years with the rise in outsourcing to other countries,etc..? In other words do you think the job market will be expanding or shrinking?
Those are all the questions I have for now but please feel free to include any other thoughts you may have.
Thank you.
You may find your days very stressfull.
Bare in mind that as a programmer you can be asked to program anything - which might be really, really, really dull and boring.
In the programming world (under commercial development), you don't really get to pick and choose - you get assigned.
You become a 'programmer' just like a 'secretary' - you do what you are told and do the work you are asked to do.
Personally, I think the glory days of being a coder are gone. Certainly for a games coder. Back in the 80's it was fun. Nowadays, I think people are either better off being a indie coder, or become very good at a particular aspect (become a specialist - ie concentrate on AI, etc) - the industry likes specialists and you have more chance to pick what you want to do.
Further reading (I've not read it myself yet):
http://aplawrence.com/Blog/B1134.html
Be a software engineer, not a programmer.
Be a software engineer, not a programmer.
Better still, be a 'developer' - wear many hats. Don't be labelled as a 'programmer' unless you want to be exploited.
What do you like/dislike most about your job?
When clients ask for changes from the original specification and having to sort out messy code from other developers. I've not come by a company yet who has a proper development methodology - most tasks are to maintain other people's code, and messy code leaves too many holes for you to break the system.
What is your average day like?Stressfull? Not stressfull?
Usually - especially near deadlines. To work unreasonable hours is not uncommon. I'm telling you, I'll have a fit one day...
Where do you see the profession going in the next 10 years with the rise in outsourcing to other countries,etc..? In other words do you think the job market will be expanding or shrinking?
Open source is a big threat; at the end of the day, you just can't make money programming if nobody is willing to pay for it.
I think there will be more money in providing support services to open source software in 10 years, but I'll continue making money from programming in the meantime :-)
Yeah it's not a glory game. On Friday I was asked to replace all instances of 'if (pointer)' with 'if(pointer!=NULL)'. There was a load of code and it seems like a pointless task at the end of the day. I pointed out to the software lead that it made no odds, to which he responded that 'clever' code was often confusing. My comeback was that I agreed but this was not an attempt at 'clever' or convoluted code, and besides it was allowed by the coding standards the project was aligned with. Still ended up having to do it, though. Programming is only really interesting if you're also designing the software.. and software documentation is a pain in the ****. Indie coding sounds great but it's a lot of effort and even the 'big boys' don't make much cash for their efforts.
Couldn't you just do search and replace? ^_^
I'll give you two sets of quic answers. The first set assumes you mean programming applications/websites for business and the other assumes you mean programming games. As pointed out, the term "developer" is in (and has been for some time).
Business
--------
I did Delphi and SQL stock control/accounting systems for 9 years.
1) Liked: talking to customers, designing to their requirements, delivering finished product. The pay was also good + I travelled and saw lots of the U.K.
2) Disliked: impossible deadlines set by other people, technical problems, team members letting me down. Later on the travelling was a bind.
3) Average day: some bits having fun, other bits stressful. Later on I got much better at time management/organisation so it was less stressful and more rewarding.
4) too complex to think about right now but good question. Actually I think that if you can excel in a certain area, you'll always be in demand providing your skillbase is current.
Games
-----
1) Like: designing and selling my own games :-) Working with other nice people. Playing games is research!
2) Dislike: forum sniping etc. Not much money at all (at the moment), technical problems (solved most now :-))
3) very relaxed days, do what I feel like when I feel like moreorless BUT I still have a very organised system, and I push myself, otherwise I'd never finish anything.
4) Some talk about making games for China soon as the market is/will be huge. Casual game market growing but also big boys (Eidos etc) are getting in there plus established companies are now spending lots of money to make games meaning it's harder to compete as a small company.
OK, so what are your priorities? Money? If so, go the business route. Being you own boss? Go the game route (only applies if you are make your own games, not if you code them for other people...) Fame and Fortune? Uh ... I'll let you know when I get there :-)
Hope this helps a bit.
Well the thing in the brackets varied and I think I would have had problems if I threw a wildcard at it.
The key to reduce the stress is to build your own code library that you can easily re-use with the comfort of knowing that it's tried and tested.
Also, document the systems you develop and comment your code. I can't stress how important this is for any project with more than 1 programmer - and even for those with just 1 programmer. It's said that more than 80% of development teams don't do this. Without documenting the system and no commenting, new and existing members of the project will constantly introduce new bugs and cause new problems.
..well..I would say, it depending on what you are looking for..as for me, I'm working as a software designer/programmer for hardware (CNC)..so, I find it very nice since I dont have to deal with peoples but with machines anyway, so there is no weird requirements regarding time from customers and usually its big systems so its fitting time properly..and I like it a lot as well as extremely good money out of it..as for games, I do belive its a big satisfaction to do programming for games, but as someone already mentioned, if you do that within big systems /Activision, EA, EIDOS../ it will be more/less slavery job..I do belive withing small game team, is possible to achieve big productivity and very good money, while big excitement and enjoyment is still there...
What do you like/dislike most about your job?
Likes : I like the pay (if you're fortunate to be in a company that has no issues paying decent salaries) and the IT environment. You get to learn alot depending on the programming tasks you do, thus building experiences. Plus, you get to do what you like most : coding!
Dislikes : The pay (depending on which company you're in, they could be shooting for the ultra low end so the higher ups can have more pocket change). Boring programing tasks and projects. Some of these projects (especially the government ones) are so frickin boring that it almost appears pointless. What makes it worst is that other coders and PMs are so into it...while you're busy thinking about hitting the bars and clubs later that night.
Also, programming is not a very physically active job - even though some programmers manage to develop all sorts of joints, back, neck, hands...etc problems. The nature of the job also encourages consumption of soda and other unhealthy snacks. You WILL gain weight and develop all these weird issues if you don't spend some time in the gym....God forbid if theres a fast food restaurant on the bottom floor of your building...
What is your average day like?Stressfull? Not stressfull?
Heh, my average day is going into the office. Chatting with the other coders about games..etc. Reading email. Surfing the web. Scanning eBay. Scanning forums. If I feel like it, do some coding tasks. Go to lunch. Come back, surf the web some more. Squeeze in whatever you can to complete that tasks. Surf the web some more. Chat some more. Bill for all the "hard work" I did that day. Go home. Get paid every 2 weeks.
Granted thats if I don't have any pressing deadlines or anything required immediately. Otherwise its straight to coding (put the earphones on get on for the highspeed ride down coding lane) nonstop and the whole world arounds you shut down - unless your working on a team whereas you'll have to interact with them.
As far as stressful, its not. Its rather boring actually. And programming becomes boring when you HAVE to do it, not when you WANT to do it. But when sudden deadlines or requirement requests appear out of nowhere, then it *may* get really annoying. I personally like it better under pressure because I'm at my best when I am anyways. Also, occasionaly you may end up working insane hours (18+) and on weekends.....
Where do you see the profession going in the next 10 years with the rise in outsourcing to other countries,etc..? In other words do you think the job market will be expanding or shrinking?
It'll expand, too many factors will prevent it from shrinking. I'm not too worried about the outsourcing thing either. Due to the fact that a lot of these work that are outsource are sometimes beyond the understanding of some of the coders in these other countries. A few of our clients have outsource our original contracts to India only to result in disaster and comming back to us. Just because its cheaper to go overseas, doesn't mean its better.
From a self employed point of view writing custom apps for small / medium companies.
What do you like/dislike most about your job?
Like: Not having a boss pestering you as to when a certain job will be finished.
Dislike: Customers changing the spec/scope of a program half way through. Although the more experience you get the better you learn to read in what they are really after.
What is your average day like?Stressfull? Not stressfull?
90% of the time really good. The other 10% is when it takes longer than expected, but again experience helps a huge amount.
Where do you see the profession going in the next 10 years with the rise in outsourcing to other countries,etc..? In other words do you think the job market will be expanding or shrinking?
For what I do, definately expanding. I feel many small companies don't realise they they can have custom software written for them which doesn't cost £100,000.
From my experience so far when a company realises that they can ask for software to be written that does a specific task suited for them they are more than happy and in 100% of cases so far they have always come back asking for other programs.
So for me, I'd say I'm in an expanding area.
Also, document the systems you develop and comment your code. I can't stress how important this is for any project with more than 1 programmer - and even for those with just 1 programmer. It's said that more than 80% of development teams don't do this. Without documenting the system and no commenting, new and existing members of the project will constantly introduce new bugs and cause new problems.
Undocumented code can however keep you in a job! ;)
Undocumented code can however keep you in a job! ;)
Programmers and car repairshops could share some similairities; they both "repair" just enough so the owner have to combe back very soon for a "checkup". I've spent enogh on cars to have decided to buy a new car.
I'd say watch out for 2 type of people in life: the software develeopers and car mechanics ;).
As a qualified software engineer I feel confident saying that software engineering is tedious and hateful, and that in general IT related industries are populated with the type of people who no one in their right mind would choose to spend the majority of their working day around.
This goes doubly for the game industry; you'll not find as large a gathering of borderline autistic nerds, geeks and social misfits (many of whom will have rampaging "sensitive" egos) in any other place or industry.
Undocumented code can however keep you in a job! ;)
Or you can loose one. ;)
Repeat
If Documentation="" Then Warning:+1
If Warning>3 Then End
Forever
Great stuff folks. Thank you.
To clarify a little, my ambitions are leading me to the business app/web programming side of things. Not game programming, for now.
One more question about education reqs. Would a 2 year associate degree be sufficient or is a 4 year B.S. mandatory?
Heh, no degree is required to do this stuff. Just as long as you know what you're doing. I know plenty of people with Bachelors in CIS and still don't know sh*t while there tons of bedroom coders who are just plain genius.
However...the current IT industry don't always agree with that concept. A 2 year associates would be sufficient to maybe get your foot in the door (and getting your foot in the door maybe all that matters) but a bachelors is definately a better choice.
Neuro is quite right:
Just as long as you know what you're doing.
If you're gonna get into developing stuff for banks, payroll, travel industry you can rather get a education into commerce majoring in Finance, minors would be business administration, IT-project management.
In the long run non-developer (programming) IT-jobs pays much better, and you get to see the world outside your cubicle AND work in a office with woman. IT departments are typically a 100% male domain.
Neuro is right - up to a point.
A bachelor degree isn't required to "know your stuff", but it is increasingly becoming a minimum educational standard that employers expect a potential employee to have reached. You can have all the skills in the world, but without recognised qualifications to prove it (or significant prior work experience in your chosen field to prove it) you will be unemployable. Without this education or work experience as proof, you won't be able to show a potential employer how good you are because you won't even be invited to an interview.
Look, you'll read a lot of posts from people here who strongly object to what I'm about to say, but don't dismiss it out of hand: people who don't have a degree always hate to admit that what I wrote above is true. This is partly a self-defense mechanism - a knee jerk "I don't need no stinkin' degree!" reaction to any graduate who dares suggest that formal higher education might - gasp - be a good thing. It's an emotional response to a perceived criticism. Basically, what I'm trying to say is that you should always consider why people give the advice they do - what their motivations are - rather than simply accept the advice that you like.
..well..I will not argue about things JustLuke said...but from my experiance one things is for sure..I'm holding Master degree (since october last year) and in real world where I use to deal with tasks I have to achieve, i didnt get almost any useful solution trough my bachelor degree/master what can help me in real world..theoretically yes, but its really more/less useless when i have to do my stuff with CNC's..
To clarify a little, my ambitions are leading me to the business app/web programming side of things. Not game programming, for now.
It's the better choice. My original ambition was to become a games developer, but the final straw was when Codemasters came to our uni and basically said that they wouldn't pay us a great salary (which I didn't expect anyway), but that we should be grateful to see our names in their games. Along with all the horror stories you hear in the games development industry, I thought this type of attitude stunk and decided to switch my focus onto an industry where I'd get a bit more respect.
If you get into contracting, you can make a lot of money. What you have to remember though is that what you earn when you're working has to cover you for when you're not. As a general rule, every day you work as a contractor should cover you for a day you're not working and that it's an average of about a month to find a new contract to work on.
Programmers and car repairshops could share some similairities; they both "repair" just enough so the owner have to combe back very soon for a "checkup".
Ha ha. I like that. There are good mechanics and bad mechanics - just like programmers. I'd like to think I was one of the good guys :-D.
A bachelor degree isn't required to "know your stuff", but it is increasingly becoming a minimum educational standard that employers expect a potential employee to have reached.
I'm not too sure about that. I'd agree this is true for bigger companies such as IBM, but not for the average company. After graduating 3 years ago, I've not been asked once anything about my degree; I think (to most businesses of an average size) that many employers are now recognising that just because someone has a paper to say they can do something, this isn't always the case. My last employer who I worked for on a permanent job told me that she didn't view having a degree as a major indication of how good someone was.
As for my degree, I originally started on a software development course, but found that the teaching method just wasn't for me. I later switched to a information systems project management focused course. After graduating, I learnt more in 1 year of working in the real industry than I did in 4 years at uni. Maybe some people learn better in the class, but this wasn't the case for me.
I think that you missed my point.
I kind of agree with what you are saying, but only to the extent that using a degree to get a job is increasingly only relevant to getting a job with a big company. At the end of the day, it's down to what you want - working for big and small companies are two different things.
Before I went to uni, most jobs asked for a 2:1 as a minimum, then they also wanted a 2 years experience also. There's a catch 22 situation, where even when you get your degree, you still need to get the initial experience to get recognised, hence a degree is still no guarantee of getting your foot in the door.
What I done was to get experience while I was studying; the uni had a good student placement service, where you could apply for projects that local businesses wanted a student to complete/develop for them. This was great for me because I got to develop a database system for solicitors firm, develop a website and develop promotion literature - all of which went on my CV.
I also kept in touch with the marketing manager from the solicitors firm who joined another solicitors firm and put a word in with their IT department to get me to design their website. So that was another item to put on my CV; she also hired me to design various marketing material including designing their Yellow Pages advert - more great things to put on my CV.
All this helped to get my first permanent job after uni, in which I picked up skills in ASP, PHP, HTML, CSS and the rest. And surprisingly, it was contacts that I made through working in the permanent job I had that landed me the contract that I've been working on for the past 3 months - of course, this project will look great on my CV because it's quite high profile.
I guesss what I'm saying is that even though a degree is nice to have, in my experience, my degree hasn't done much for any success that I've had, but it's been more about making contacts and taking advantage of opportunities that arise.
And surprisingly, it was contacts that I made through working in the permanent job I had that
Yeah i agree with this also. Besides of what you know, but also of
who you know which may help you with your career. Getting some good contacts and networking with higher ups can always lead to something potentially better.
After graduating 3 years ago, I've not been asked once anything about my degree; I think (to most businesses of an average size) that many employers are now recognising that just because someone has a paper to say they can do something, this isn't always the case.
Actually, thats always the case. Employers do know that having a degree doesnt always mean sh*t as far as knowlege or experience. But as long as its on your resume, employers usually won't even mention it because its typically already expected if your sitting there being interviewed. No one has ever asked me about my degree and no one even bothers to talk about because its generally nowadays accepted as the norm that you probably should have one if you're working here. But I have heard that in the late 80s and 90s that it was common for companies to hire talent without degrees. I don't think its the same case anymore..
From what I understand as was explained to me by the HR guys, is that having a degree means that you actually put some type of effort to learning and was willing to be taught new things, not to mention that some serious time and money was spent doing it, and that this was
officially acknowleged that you successfully accomplished it, which to some employers is enough to get you through the door for an interview. Also, just because you know how to do something, doesn't always mean the company will want you to do it that way. You have to let them know that you're willing to learn
their way also...
But it won't guarantee that you'll be hired if you don't know what you're talking about - LOL like i did with my interview with Northrop Gruman. Wasn't my fault though, i was only 6 months out of college and they were interviewing for a senior project developer!
... having a degree means that you actually put some type of effort to learning and was willing to be taught new things...
I forgot to mention that my friends brother runs a 3D design studio and was saying the same thing. Bit of a shame that you have to waste 2-4 years just to prove that you can put the effort into completing something. Oh well, at least you get to earn your debt back :-).
To be honest a degree helps a lot, but its not all that special. Most of the guys who come to us with a degree lack experience and dont know their hubs from their routers(speaking anal-itically).
Employers see a degree as a quick way of diposing of the unexperienced which is wrong. Looking/asking for degrees on CVs is a quick check if employers cant be bothered/have no time to read the experience - usually the case.
I would take a guy/gal with experience over a degree anyday. 5 minutes of questioning in an interview and a degree means f-all if you dont know what your discussing.
In short, get your degree, it will help anyway. I would take a degree too if i could afford it :( I managed to BS my way into my first job 10 years ago, because i knew my (self taught) stuff.
It is a viscious loop for noobs tho, which is why a degree helps:
10 if degree=0 then interview=0
30 if pastjob=0 then experience=0
20 if experience=0 then job=0
35 if interview and experience and job then goto* 50 else goto* 10
49 rem celebrate
50 yay$="POP! fizz glugglug"
*Never use gotos kids, they are addictive damage & your mental health, all for a quick fix :P
There's a catch 22 situation, where even when you get your degree, you still need to get the initial experience to get recognised, hence a degree is still no guarantee of getting your foot in the door.
heh, yah I recall the long talks about that catch 22 situation with my buddies who were struggling to get a job after getting our Bachelors. Its like you can't get your foot in the door unless you have real world experience and you cant have real world experience unless you get your foot through the door.
Thats where those seeminly useless days at the
Internship will eventually result in something good. Which was what set me apart from my cohorts...i actually did an internships, they didnt. I immediately got all the intervies and job offers....they just got interviews. Guess we should mention that internships are quite a big deal also.
10 if degree=0 then interview=0
30 if pastjob=0 then experience=0
20 if experience=0 then job=0
35 if interview and experience and job then goto* 50 else goto* 10
49 rem celebrate
50 yay$="POP! fizz glugglug"
Lol, don't forget :
25 if (know=important_person) AND IN (right_place) AND (right_time) then goto 50