8 answers
Updated
1097 views
What is the hardest part of your as a software engineer? ?
I go to P-TECH in 10th grade. I was wondering what's the hardest part of being a software engineer so I can prepare for what I might have up ahead in the future if I want to be a software engineer.
Login to comment
8 answers
Updated
Jonathan’s Answer
From my experience as a recent graduate, I find that software engineers have to be flexible in multiple dimensions. There will often be priorities that shift and move around due to changing goals, criterion for success, and many more reasons that could cause change. Learning to not attach too firmly to any given idea or task and keeping an open mindset to learn and adapt to whatever may come your way will help a lot in the long run.
Imposter syndrome is also a challenge for most software engineers. There are plenty of amazingly smart people out there that you'll get to work with. Plenty of people who are capable of so much that it may seem insurmountable to you at first. But this typically goes away the more time you spend in the field, and learning to change feelings of inability to feelings of inspiration will help tremendously. I'd recommend seeking out amazing peers around you and seeking feedback or teachings from them. Having a well developed growth mindset will help when entering the field, while also shaping you to be flexible for anything that comes in the future.
Imposter syndrome is also a challenge for most software engineers. There are plenty of amazingly smart people out there that you'll get to work with. Plenty of people who are capable of so much that it may seem insurmountable to you at first. But this typically goes away the more time you spend in the field, and learning to change feelings of inability to feelings of inspiration will help tremendously. I'd recommend seeking out amazing peers around you and seeking feedback or teachings from them. Having a well developed growth mindset will help when entering the field, while also shaping you to be flexible for anything that comes in the future.
Thank you so much!
Diego
Updated
Jacob’s Answer
The level of difficulty you experience in different aspects of your career largely depends on your personality traits and the particular stage of your career you're at.
For instance, as someone who generally leans towards introversion, I found the communication aspect of my job quite challenging. It seemed odd to spend hours discussing a change that could be coded in just 30 minutes. However, I soon realized the importance of these discussions as changes could potentially lead to numerous side effects. Over the years, I've grown to appreciate and enjoy these conversational aspects of the job, even though I still identify as an introvert.
When I was a rookie engineer, I found it tough to relinquish control over my code and allow others to modify it. Being self-taught, it was a novel experience for me to have others scrutinize, question, and alter my code. It was disheartening to see my hours of hard work being rewritten just days after being merged. However, with time and experience, I've learned to detach myself from my work and not take these changes personally. Now, it doesn't bother me at all.
I would recommend getting involved in one or two open-source projects. This will give you a taste of the feedback process and better prepare you for what lies ahead. It certainly would have helped me to have this understanding earlier in my career.
For instance, as someone who generally leans towards introversion, I found the communication aspect of my job quite challenging. It seemed odd to spend hours discussing a change that could be coded in just 30 minutes. However, I soon realized the importance of these discussions as changes could potentially lead to numerous side effects. Over the years, I've grown to appreciate and enjoy these conversational aspects of the job, even though I still identify as an introvert.
When I was a rookie engineer, I found it tough to relinquish control over my code and allow others to modify it. Being self-taught, it was a novel experience for me to have others scrutinize, question, and alter my code. It was disheartening to see my hours of hard work being rewritten just days after being merged. However, with time and experience, I've learned to detach myself from my work and not take these changes personally. Now, it doesn't bother me at all.
I would recommend getting involved in one or two open-source projects. This will give you a taste of the feedback process and better prepare you for what lies ahead. It certainly would have helped me to have this understanding earlier in my career.
Thanks for the help.
Diego
Updated
Dave’s Answer
Being a Software Engineer can be a very rewarding and challenging career. As a Software Engineer, I am challenged by hard problems constantly.
You'll need to learn to adapt to a constantly changing technology landscape. Just because you spent a long time learning a tool or technology does not guarantee it will still be relevant year later. Learning becomes one of the most important skills in your career. The quicker you can apply what you know to a new paradigm will give you an advantage. I know change can be a challenge, but I also find learning new things rewarding!
The next hardest problem I've experienced is working with other people (engineers, stakeholders, customers, etc...). You'll want to have good communication skills so you can understand other's needs or ideas as well as advocating for things you want. You'll rarely be solving a challenging problem on your own, so be prepared to work with others! Be the person that you want to work with and good things will follow!
Finally, I see burn out as a large challenge. It's easy to get pushed into unreasonable deadlines in your career, and you can face pressure to work a lot of hours to achieve these goals. Be willing to push back when the asks are not reasonable. Especially with remote work, you can easily work 60-70 hours a week if you open up your work computer while watching TV. Make sure you reserve time for doing things you enjoy doing outside of work!
Best of luck!
You'll need to learn to adapt to a constantly changing technology landscape. Just because you spent a long time learning a tool or technology does not guarantee it will still be relevant year later. Learning becomes one of the most important skills in your career. The quicker you can apply what you know to a new paradigm will give you an advantage. I know change can be a challenge, but I also find learning new things rewarding!
The next hardest problem I've experienced is working with other people (engineers, stakeholders, customers, etc...). You'll want to have good communication skills so you can understand other's needs or ideas as well as advocating for things you want. You'll rarely be solving a challenging problem on your own, so be prepared to work with others! Be the person that you want to work with and good things will follow!
Finally, I see burn out as a large challenge. It's easy to get pushed into unreasonable deadlines in your career, and you can face pressure to work a lot of hours to achieve these goals. Be willing to push back when the asks are not reasonable. Especially with remote work, you can easily work 60-70 hours a week if you open up your work computer while watching TV. Make sure you reserve time for doing things you enjoy doing outside of work!
Best of luck!
Thank you for sharing your perspective.
Diego
Updated
James’s Answer
Hi Diego,
Here are a few of the hardest parts of being a software engineer:
- Change: change is both a blessing and a curse, and you need to expect and embrace it as a software engineer. This covers not just constant advances in the industry (as Joan has said in her excellent answer), but also within businesses, projects and teams. Project requirements always change while you're working on them. It's also common to need to frequently adapt or rework existing solutions due to changes in platforms, pipelines, or other foundational technologies.
- Multi-tasking: it's actually pretty rare to be able to focus your efforts on a specific task. You'll typically be balancing a few different items, while being interrupted with questions or issues relating to other tasks you've worked on before.
- Communication: ok - communication itself may not seem hard. But you might be working with a range of different software engineers, managers, project managers, stakeholders, users, etc. They'll have different viewpoints, skill sets and desired outcomes, and potentially be widely geographically distributed.
However, all of those points could also be viewed as positives - or as opportunities to show what you can do!
Hopefully that helps, and doesn't discourage you from pursuing a career in software engineering.
Here are a few of the hardest parts of being a software engineer:
- Change: change is both a blessing and a curse, and you need to expect and embrace it as a software engineer. This covers not just constant advances in the industry (as Joan has said in her excellent answer), but also within businesses, projects and teams. Project requirements always change while you're working on them. It's also common to need to frequently adapt or rework existing solutions due to changes in platforms, pipelines, or other foundational technologies.
- Multi-tasking: it's actually pretty rare to be able to focus your efforts on a specific task. You'll typically be balancing a few different items, while being interrupted with questions or issues relating to other tasks you've worked on before.
- Communication: ok - communication itself may not seem hard. But you might be working with a range of different software engineers, managers, project managers, stakeholders, users, etc. They'll have different viewpoints, skill sets and desired outcomes, and potentially be widely geographically distributed.
However, all of those points could also be viewed as positives - or as opportunities to show what you can do!
Hopefully that helps, and doesn't discourage you from pursuing a career in software engineering.
Thank you so much!
Diego
Updated
Farhana’s Answer
I see two things that can be challenging within software engineering - imposter syndrome and not having a growth mindset.
Imposter syndrome is something that is challenging to get rid of, especially when first starting out, but it's totally possible to thrive as a software engineer still. With practice and a great team to support you, the imposter syndrome won't be able to stop you!
A growth mindset is essential for software engineering. Having a fixed mindset slows you down in your career, because technology is ever so changing. Practicing having a growth mindset will set you up for success and keep you very marketable as a software engineer.
Best of luck! Enjoy high school, the fact that you're thinking about how to best prepare for software engineering shows that you have great things ahead of you
Imposter syndrome is something that is challenging to get rid of, especially when first starting out, but it's totally possible to thrive as a software engineer still. With practice and a great team to support you, the imposter syndrome won't be able to stop you!
A growth mindset is essential for software engineering. Having a fixed mindset slows you down in your career, because technology is ever so changing. Practicing having a growth mindset will set you up for success and keep you very marketable as a software engineer.
Best of luck! Enjoy high school, the fact that you're thinking about how to best prepare for software engineering shows that you have great things ahead of you
Thank you so much!
Diego
Updated
Mary’s Answer
The most challenging aspect of being a software engineer is realizing that school can't teach you everything you'll need for your career. This realization might catch a budding software engineer off guard. However, once you embrace the fact that learning is a constant part of your journey, it can transform into a thrilling adventure. The best piece of wisdom I can offer is to relentlessly pursue the solution when tackling problems. Never surrender in your quest for answers.
Thank you, this is really helpful.
Diego
Updated
Joan’s Answer
Hello Diego!
Embarking on a journey in Software Engineering is indeed a thrilling adventure.
Software engineers encounter a wide array of challenges in their professional life. Some of these common hurdles encompass:
*Staying updated with the ceaselessly changing technology and industry patterns.
*Cooperating effectively with diverse teams, including those outside of engineering.
*Striking a balance between the necessity for innovation and the demand for stability and reliability in the software they create.
*Guaranteeing that the software they develop is scalable, maintainable, and performs optimally.
*Grasping the customer's needs, the technology, challenges, and the potential opportunities.
These are merely a handful of examples of the challenges that software engineers might encounter. The specific challenges can differ based on the role, industry, and the company one works for.
Being a software engineer can also be an extremely gratifying career. Some of the perks of being a software engineer include:
*The chance to work on challenging and intriguing projects that can significantly influence people's lives.
*The ability to continually learn and evolve, as the realm of software engineering is perpetually advancing.
*The prospect of a lucrative salary and robust job security, given the high demand for proficient software engineers.
*The pleasure of seeing your work materialize and being utilized by others.
*The opportunity to collaborate with a team of skilled and enthusiastic individuals to solve intricate problems.
These are merely a handful of examples of the benefits of being a software engineer. The specific benefits can differ based on the role, industry, and the company one works for.
I trust this information assists you in your quest to become a software engineer. Keep striving!
Embarking on a journey in Software Engineering is indeed a thrilling adventure.
Software engineers encounter a wide array of challenges in their professional life. Some of these common hurdles encompass:
*Staying updated with the ceaselessly changing technology and industry patterns.
*Cooperating effectively with diverse teams, including those outside of engineering.
*Striking a balance between the necessity for innovation and the demand for stability and reliability in the software they create.
*Guaranteeing that the software they develop is scalable, maintainable, and performs optimally.
*Grasping the customer's needs, the technology, challenges, and the potential opportunities.
These are merely a handful of examples of the challenges that software engineers might encounter. The specific challenges can differ based on the role, industry, and the company one works for.
Being a software engineer can also be an extremely gratifying career. Some of the perks of being a software engineer include:
*The chance to work on challenging and intriguing projects that can significantly influence people's lives.
*The ability to continually learn and evolve, as the realm of software engineering is perpetually advancing.
*The prospect of a lucrative salary and robust job security, given the high demand for proficient software engineers.
*The pleasure of seeing your work materialize and being utilized by others.
*The opportunity to collaborate with a team of skilled and enthusiastic individuals to solve intricate problems.
These are merely a handful of examples of the benefits of being a software engineer. The specific benefits can differ based on the role, industry, and the company one works for.
I trust this information assists you in your quest to become a software engineer. Keep striving!
Updated
Casey’s Answer
I think the hardest part, especially for someone who is looking to enter the industry, is realizing that school will only get you so far. Coding is only a small portion of the job. You will need to learn how to effectively work with other engineers, how to review the work of others, how to communicate with folks who aren't engineers. Schools also tend to teach you coding in a way that doesn't translate to the real world very well. While there is value in getting a formal education, you will need to be ready to learn so much more on the job.
I hope this doesn't discourage you from pursuing this career path, though! Companies who hire entry-level engineers know they will need to help these folks level-up their skills. You will get the opportunity to learn on the job and will not be expected to know everything up front. You will always be learning new things throughout your career and that's okay!
I hope this doesn't discourage you from pursuing this career path, though! Companies who hire entry-level engineers know they will need to help these folks level-up their skills. You will get the opportunity to learn on the job and will not be expected to know everything up front. You will always be learning new things throughout your career and that's okay!