The technology industry spans so many different types of companies - app or software as a service companies which you often think of, but also banks, airlines, hotels and more -- they're all becoming software companies! (Did you know that Goldman Sachs employs more software developers than Facebook!) So with that in mind, I'd say there isn't one consistent disadvantage… it all depends on the type of company at which you choose to work.
Many companies in the technology field, especially those in Silicon Valley, struggle with two things:
1) Diversity. The tech industry has a bad track record of building strong, diverse teams that represent the world around us. If you're looking to join a company, talk to people, including your interviewers, about how they build an environment where you belong. Understand if they're committed to building a company that reflects you, and where you can do your best work.
2) Ethics. Many technology companies operate at staggering scale, and the industry is learning (too late) the impact that technology has on our lives, our health, and our society. You see this in stories about Facebook or Google struggling with very serious, potentially existential, ethical dilemmas. If you're looking at joining a technology company, ask good questions about how they make ethical decisions, what they feel their responsibility is to their customers and society at large -- and decide for yourself if you want this company on your resume, and if history will treat them well.
The only disadvantages I can think of are related to the sedentary nature of the work you do. You need to be aware of issues such eye-strain, carpal tunnel syndrome, back problems, weight gain, etc.
You need to remember to counteract these possible negative effects by using ergonomic furniture, proper posture, use breaks and exercises for your eyes and body, etc.
If you are active in your downtime, then some of these effects will not be a serious problem for you. In general the overall balance in your life will be important to maintain a healthy and active lifestyle and be productive in your job.
BTW, sleep deprivation can be another issue, especially as a programmer. You might get into the trap of "let me finish this module, too, before going to bed" and before you know it, it's 6am in the morning! You need to be able to control the urge to keep going, which is very common in this industry. I know from experience! ;-)
Personally speaking, here are some of the disadvantages that affected me with respect to my health
- Eye Strain - Staring into a laptop screen for such a long time strains the eye. But I make it up by doing some eye exercises or sometimes wearing computer reading glasses
- Sedentary nature of the job - this means you seldom get up and take a walk around. The only way to overcome this is to force yourself to take a quick 5 mins walk every hour
Hope this helps!
Still, the following will always be there:
Sleep timings not certain.
Keeping yourself updated by undergoing certifications on a regular basis will take lot of your time.
Computer industry can easily be one of the most lucrative jobs today. High growth industry, the best companies to work for are mostly software firms, plenty of job opportunities and ability to touch million of lives quickly through your work.
However, there can be many problems plaguing a Computer Engineer. This is not an exhaustive list but will give you an idea of the kind of problems software engineers face.
The kind of abilities required for programming and software engineering is general, attracts a class of people who are good at problem solving, reasoning, creativity, algorithms etc. However not everyone gets the right job were one get to deal with interesting problems everyday. There can be lot of monotonic work for months where you have to refactor code, implement trivial thing, implementing solutions which are already well defined, review code, write software specification and requirements, debug issues. Once in a few months you may get to work on something interesting but it can be really frustrating waiting for quality work.
Low Job Satisfaction
One of the major attraction in terms of job satisfaction is to work on path breaking solutions that thousands if not millions of people use everyday. But in reality, you may have to work on products which may get scrapped after years of development, products which are being used only internally in your company, products which are so business specific that only few customers use, or worse you may never get to know who is actually using the product you worked on so passionately.
8+ hours of sitting work everyday entails its own problems. Although most of the jobs are sitting jobs today, but specially in programming jobs, you may not need to discuss/ present/ collaborate for days to do your job. Glued to a computer screen daily for weeks can cause headaches, dry eyes, pain in wrist, elbow, shoulder, lower back and neck is common among software engineers who have been in industry for as low as 5 years.
Rapidly changing technology landscape
The technology is changing rapidly, the programming language/ platform/ software you are working on today may be obsolete tomorrow. You need to constantly upgrade yourself and keep on learning new things. It gets difficult as you put on years of experience. Learning new things is easier with a clean slate. A fresh graduate armed with the knowledge of latest technology can soon outpace the experienced engineers if they are not willing to learn.
It's common for software engineers to work odd hours. Sometimes to collaborate with teams in different time zones, sometimes to catch up on your learning plans, and sometimes to finish off work which you couldn't get time for in the office because you were so busy interviewing candidates or understanding business requirements.
This disrupts your sleep cycle and makes you feel tired all the time. This may not be true for all companies and all profiles but it's a common occurrence.
* You would always have something pending to work-on, you would never feel bored of no work.
* Find some time to connect with real people, so you may feel refreshed.
* Take care of your health by working-out or walking, get some fresh air and sun light, most importantly make it a routine.
I do also want to emphasize one aspect that is very exaggerated in the software industry compared to others: the speed at which ideas/technologies/frameworks change. To keep advancing your career, you'll need to be constantly learning new things (which is very stress-inducing). As for myself, I enjoy learning new things (despite it being stressful), so I don't mind it as much, but you'll have to answer that question for yourself :)