50 Career Mistakes in Software Engineering
#003
Becoming a software engineer can be hard!
All the studying, learning and trying to put the pieces of the puzzle together.
After all the hard work, you apply to many jobs and boom!
You did it, you are now being paid to be a software engineer.
👋 Hello, I’m Eric! I write and make videos about all things software engineering!
Items after article:
- Codingwithroby update.
- Last week's Coding Solution.
- Next week's coding challenge added after solution.
- Producitivty Tip 🤓
Despite the hard work and success in securing a job, even experienced software engineers can make critical mistakes.
This guide explores the 50 most common career mistakes software developers make, offering insights you might not expect.
1. Staying Stagnant:
First and foremost, not staying updated with the latest technologies and programming languages can really hold you back. It’s crucial to invest time in mastering the fundamental concepts that form the backbone of software development. Make sure you are consistently growing everyday.
2. Writing Messy Code:
Writing code without proper indentation or comments and not following coding standards, can lead to a lot of confusion and wasted time. This will impact interviews and lead to more bugs within your application. Clean, well-documented code is not just for others; it’s for your future self as well.
3. Ignoring Soft Skills:
Software development is not just about writing code; it’s also about communicating effectively with your team members and stakeholders, and developing strong problem-solving and critical-thinking skills. You will have to communicate every single day, so practice it. I believe it is the foundation of being a great software engineer.
4. Skipping Tests:
Not writing unit tests or ignoring the importance of integration and system testing can lead to buggy software, unhappy users, and a lot of stress for you. Look into unit testing and following best testing practices like TDD, also known as test driven development. More and more companies are adding unit testing to their interviews as user satisfaction is at an all time high.
5. Overlooking User Experience:
The end-user experience should always be at the forefront of your mind when developing software. A user-friendly interface can make or break a product. Always remember, if you have no users you have no product.
6. Being Resistant to Change:
The tech world is always evolving, and being reluctant to adopt new tools or methodologies can leave you behind. Don’t stick to outdated practices when better options are available. If you don’t this could lead you to a hole that you cannot get out of.
7. Ignoring Version Control:
Not using version control systems like Git can lead to chaos, especially when working in a team. Proper management of branches and commits is non-negotiable. Whether you are a solo developer or work on a team, you will want to use version control. Want an extra bonus point? Use Git.
8. Procrastinating:
Time management is key in software development. Procrastinating and missing deadlines can harm your reputation and career. If you think something will take longer than originally estimated, speak up and let someone know. If you are a procrastinator comment below what your biggest time consuming activity is.
9. Neglecting Security:
Security should always be a top priority. Overlooking vulnerabilities in your code and not following secure coding practices can have serious consequences.
10. Hesitating to Ask for Help:
Don’t be afraid to ask for help when you’re stuck. The software development community is full of resources and people willing to lend a hand. Use Google, use GenAI (ChatGPT) and use your peers.
11. Neglecting Code Quality:
Never neglect the quality of your code. Writing clean, efficient, and well-documented code is essential. It not only makes your life easier in the long run but also helps your colleagues who might work on the same codebase.
12. Find yourself a mentee
I truly believe the best way to learn is to teach. This is a main reason I am on here. I love being a mentor and helping others learn in the software development world. If you cannot find a mentee, ask your company if you can help with future interns, I can almost guarantee you will enjoy it!
13. Improving yourself based on imposter syndrome
Even today I still get imposter syndrome at times. It is part of the software development world because there is so much you need to learn and know at all times. You may feel very confident in your coding ability until you need to write a single script and you get completely stuck. That is ok, everyone goes through it. Keep grinding.
14. Ignoring the Importance of Code Reviews:
Don’t underestimate the importance of code reviews. Participating in code reviews helps catch bugs, ensures coding standards are maintained, and fosters knowledge sharing within the team. I have learned an absolute ton due to code reviews. If you have someone more senior than you on the team. Look at their code and learn how they think.
15. Failing to Communicate Effectively:
Work on your communication skills. Effective communication is key in software development, where you need to collaborate with team members, stakeholders, and sometimes clients. Clear and concise communication can make a world of difference. I always say communication is the absolute most important skill you can have in life, not just software development.
16. Avoiding Challenges:
Don’t shy away from challenges. Embracing challenging tasks can lead to significant personal and professional growth. It pushes you out of your comfort zone and helps you develop new skills. So, if you get the ticket to create an AWS deployment pipeline, don’t get scared. Embrace the challenge.
17. Not Learning Continuously:
Prioritize continuous learning. The tech field is constantly evolving, and staying current is crucial. Dedicate time to learning new languages, tools, and best practices. This will help you evolve within your craft.
18. Ignoring Feedback:
Always be open to feedback. Constructive criticism is invaluable for growth. Learn to take feedback positively and use it to improve your skills and work. I like to use the burger method. It goes by giving a positive, then the improvement and then end with a positive. It makes you think of a burger and you are sandwiching the improvement between the positives, which is the bread.
19. Not Taking Breaks:
Remember to take breaks. Software development can be intense, and regular breaks help prevent burnout, keep your mind fresh, and boost productivity.
20. Having a Negative Attitude:
Maintain a positive attitude. A positive mindset can significantly impact your work, relationships with colleagues, and overall job satisfaction. Stay optimistic, even in challenging situations.
21. Not Setting Career Goals:
It’s crucial to set clear career goals. Knowing where you want to go in your career will help you make better decisions and stay motivated. Don’t just drift along; be proactive about your career trajectory.
22. Underestimating Documentation:
Never underestimate the power of good documentation. Whether it’s commenting on unclear business logic, putting extra thought into variable/function naming or creating user manuals. Documentation is key to maintaining and understanding software in the long run that can be maintainable for years to come.
23. Avoiding Networking:
Is all about networking. Building a strong professional network can open up opportunities for mentorship, learning, and career advancement. Don’t isolate yourself; get out there and connect with others in your field. My new journey has been on LinkedIn so feel free to start your journey and follow me
24. Not Embracing Failure:
Don’t be afraid of failure. Failure is an integral part of learning and growth. Embrace it, learn from it, and use it as a stepping stone to success. But one key note here, do not use your users to help you find failures in your code or application, make sure you still test regularly.
25. Ignoring Work-Life Balance:
Work-life balance is key. Burning out can stifle your creativity and productivity. Make sure to take breaks, spend time with loved ones, and engage in activities outside of work. Remember tech can be a big part of your life, just don’t make it all of your life.
26. Sticking to One Technology:
Avoid sticking to just one technology or language. The tech world is vast and constantly evolving. Diversify your skill set to stay relevant and open up more career opportunities. Try and aim to be a generalist over a specialist. And if you must be a specialist be a specialized generalist.
27. Ignoring Design Principles:
Don’t ignore design principles. A good software developer understands the importance of software design patterns and principles. They ensure that your code is scalable, maintainable, and efficient.
28. Not Seeking Feedback:
Always seek feedback. Constructive criticism can help you see things from a different perspective and improve your skills. Don’t take it personally; use it to grow.
29. Being Overconfident:
Avoid being overconfident. Confidence is great, but overconfidence can lead to mistakes and missed learning opportunities. Stay humble and open to learning. One of my favorite quotes that I have been saying so long that I don’t know if I read it somewhere or if I invented it myself is that, “you don’t know what you don’t know. So always be eager to learn.
30. Neglecting Physical Health:
Don’t neglect your physical health. Long hours in front of the computer can take a toll on your body. Make sure to take breaks, exercise regularly, and pay attention to your posture. I have tried to make some hobbies of mine not involve the computer to help me move around.
31. Get enough rest
If you are not getting enough sleep your mind will not work and be as sharp as it normally is. Many times in my career I have been stuck on a bug and I went on a walk and took a small nap and was able to figure out the solution within minutes. Do not skip on resting your brain.
32. Ignoring the Basics:
Never ignore the basics. Having a strong grasp of fundamental programming concepts is crucial. Don’t rush to learn the latest frameworks without understanding the underlying principles and why you should use it instead of something else. It is always fun to use the most shiny new tool, but they are not always better.
33. Not Learning from Mistakes:
Always learn from your mistakes. Every developer makes mistakes, but the key is to learn from them and avoid repeating them in the future. Albert Einstein is often credited with saying, "Insanity is doing the same thing over and over and expecting a different result". When you make a mistake learn and move on. Another thing I often tell myself is that you “win some and learn some”.
34. Avoiding Complex Projects:
Don’t avoid complex projects. Taking on challenging projects can help you build confidence and develop new skills. When you are learning to code it is scary to try and tackle your first complex project that may not be a todo app. That is where true learning happens, embrace it.
35. Not Sharing Knowledge:
Share your knowledge. Teaching others is a great way to solidify your own understanding and contribute to the development community. This is what I am doing right now!
36. Neglecting Your Portfolio:
Don’t neglect your portfolio. A strong portfolio showcases your skills and projects, and is crucial for job hunting and freelance opportunities. Now, not everyone needs a strong portfolio, but it absolutely helps when getting your first job or trying to learn a new programming language.
37. Not Seeking Mentorship:
Seek out mentors. Having a mentor can provide you with invaluable guidance, support, and insights that can accelerate your career growth. I still credit my biggest growth was not going to college, it was finding a mentor at my very first job. Those first 6 months of my new job is where I grew the most in my entire career.
38. Not Being Adaptable:
Be adaptable. The tech industry is constantly changing, being able to adapt to new situations and technologies is a valuable skill. For example, much of the world went remote in 2020, and many people had to learn how to handle this. You must be adaptable.
39. Ignoring User Feedback:
Don’t ignore user feedback. Users are the ultimate judges of your software. Listen to their feedback, understand their needs, and strive to improve the user experience. The easier it is for a user to use the application, the better.
40. Being Afraid to Say “I Don’t Know”:
Don’t be afraid to say “I don’t know”. It’s impossible to know everything in the tech world. Being honest about what you don’t know shows humility and a willingness to learn. I see this all of the time during interviews. If you do not know, either A) ask for clarification or B) just say “I don’t know”. Both of these solutions are much better than starting to rattle into nonsense.
41. Not Celebrating Small Wins:
Celebrate your small wins. Every achievement, no matter how small, is a step forward in your career. Take time to celebrate and acknowledge your progress. I always tell my team and mentees that it is about being better than yesterday.
42. Not learning to say No.
You have a limited amount of time within a day. Do not completely swamp yourself with trying to learn an absurd amount of data within a few days or even a few weeks. Life is a marathon not a sprint. Take a deep breath and move forward one step at a time.
43. Not Setting Boundaries:
Set boundaries. It’s important to have a clear separation between work, learning and personal time to prevent burnout while maintaining a healthy work-life balance.
44. Avoiding Responsibility:
Don’t avoid responsibility. Taking ownership of your work and your mistakes shows maturity and accountability, which is crucial for building trust with your team.
45. Not Asking Questions:
Don’t be afraid to ask questions. Asking questions is a sign of curiosity and a desire to learn. Don’t hold back; seek answers and deepen your understanding. I am sure my first company felt like they were always answering my questions because I asked a lot of them.
46. Ignoring the Importance of a Good Resume:
Don’t underestimate the importance of a good resume. Your resume is often the first impression you make on potential employers, so make sure it’s polished and reflects your skills and experiences accurately. Something to add to your resume is what you did, but keep them measurable. Instead of saying “increased performance of our OAuth login”, say you “decreased OAuth response time by 28%”. The 28% is measurable and it makes the company also want a 28% performance increase.
47. Not Practicing Coding Interviews:
Practice coding interviews. Even if you’re not job hunting right now, staying sharp with coding interviews can open up opportunities and boost your confidence. I do want to clarify this does not just mean Leetcode. When people hear coding challenges I know my first thought is also Leetcode or HackerRank. But other things to keep in your head are principles that may be asked during an interview. For example do you remember the four pillars of object oriented programming? That could be something brought up during an interview that you may want to know. And just for the record the 4 pillars are abstraction, encapsulation, inheritance and polymorphism.
48. Not doing KISS
This means keeping it simple, stupid. Keeping your solutions simple and easy to understand is essential for maintaining over a long time
49. YAGNI
We are quickly going over “You aren’t gonna need it”. Unless told otherwise, do not over engineer your solution. Keep it simple.
50. Believe in Yourself
And now number 50 is by far the most important - believe in yourself. If you do not believe in yourself, nobody else will. Staying consistent and not giving up will help so much with believing in yourself.
To help keep yourself accountable, comment below what you want to do and how you will get there.
Here is an extra bonus as well, so I guess we can call this number 51.
Be yourself. Be authentic. Be unique. Be you.
Codingwithroby Update:
- YouTube content getting ready for 2 videos a week for the month of January. Not going to lie, this was more work than I was expecting. I have been slightly sick and they has been so much cool stuff coming out lately. Hard to choose what to show!
- New video last week
Coding Solution from last week
The question was to use list comprehension to modify this code:
The answer would like:
Coding Challenge for the week
Create a .txt file within your directory. Inside the .txt file add:
"The quick brown fox jumps over the lazy dog. The dog was not amused."
Write a program that analyzes a given text file and returns the 10 most frequently used words along with their counts. Ignore punctuation and make the analysis case-insensitive.
Solution should look like:
the: 3
dog: 2
quick: 1
brown: 1
fox: 1
jumps: 1
over: 1
lazy: 1
was: 1
not: 1
Productivity tip:
Use Focus Blocks: Spend 1–2 hours each day in deep work, uninterrupted by meetings, Slack, or email. Tools like Forest or even just putting your phone in another room can make a huge difference.
Alright that is all,
Cheers friends!
Eric
Responses