what's the most difficult part of being a software engineer?
#engineer #technology #civil-engineering #engineering #software
6 answers
Somil’s Answer
However, there can be many problems plaguing a Software Engineer. This is not an exhaustive list but will give you an idea of the kind of problems software engineers face.
Frustration
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.
Health Issues
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.
Odd hours
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.
Amit’s Answer
The hardest part of being a software engineer is not giving up when you feel discouraged. Software engineering is a field that is difficult to pick up and it is really challenging to develop code. There is a famous phrase in software engineering "No code works right the first time". When being a software engineer you need to be strong in the belief that maybe you don't have the right answer now but you are confident you can find the correct solution. People view fixing errors and bugs as annoying but for me, there is no greater feeling than solving a bug you've been wrestling with.
Amit recommends the following next steps:
David’s Answer
Background: I've been a software engineer in the silicon valley for 40 years
Some of the more difficult parts of this as a career:
Work/life balance: The work never ends. There's always improvements that can be made. Bugs to fix. Edge cases. You can easily miss out of anything else by just "fixing one more bug".
Health: It's a sedentary life style. Either sitting (or standing, as I do) all day. Focused on a screen that is 21 inches away. You need to learn to take care of your body in order to continue to work. Watch out for RSI (Repetitive Stress Injury) - particularly with your wrists and eyes.
Stress: Everyone wants their bug fixes faster, their feature next week.
Perfect vs Good-Enough: (related to stress & work/life balance) -- anything in software can be improved. But is it worth the time to improve it ? Is it good-enough for now? Or for the next few months? Or the next few years? Is there something else that needs work instead?
Becoming obsolete: The systems I worked on at the beginning of my career -- some of them exist (but don't work) in the Computer History museum (seriously!). I've had to continually learn throughout my career -- and, very important -- ensure I allocate time to "sharpen the saw".
Jason’s Answer
Being a software engineer is extremely rewarding and equally stressful, if you let it be. Software engineering is one of the few tech fields which doesn't require someone to have a college degree to become successful. With that, comes the thought of not being good enough, not knowing enough, and sometimes just feeling like "I'm just not cut out for this." It's a difficult place to be... there's good news.
We're not alone. There are a lot of kind, generous, and understanding folks in the dev community, some of whom deal with that very thing. They realize that being an engineer is about having a passion and love for what you do and a desire to build and create something for the world to see and use. That passion brings us together as people rallying around a common goal. There are folks willing to mentor and help guide us with kindness and understanding the likes of which I can only describe as amazing. It's a very reassuring feeling.
There are good days and not so good days. And that's okay. The take away here is that... folks have each other's back and we know that in the right environment and the right community we can all flourish and be successful. And that is a great place to be.
Youssef’s Answer
The best at it that I have seem take a compartmentalized approach to their work and focus on specific milestones that are tangible and measurable.
Pablo’s Answer
Usually, your work is to find solutions for problems that a client or company has.
When the work is stuck for external factors, its so frustrating.
For example when there is a bureaucratic process to get the job done, or the client is not sure or doesn't know what needs, or your team is ineffective or is not well organized.
When that happen you have to find ways to break the inertia and be pro active.