Debugging Your Learning Process: 7 Common Mistakes Every Software/QA Engineer Should Avoid

In my opinion, is one of the most vital components of a fulfilling and successful life. Through the process of learning, we not only broaden our horizons by adopting new mindsets but also enhance our capabilities by acquiring valuable new skills. This ongoing journey of education and self-improvement enables us to tackle new challenges and become better every day.

This is especially true in the software development industry. Whether you're a tester, a developer, or a project manager, the world of software engineering is constantly evolving. New opportunities to learn and grow come up every day. However, it's easy to fall into common mistakes when learning new things. Often, we start something but don't finish it, or we only put in minimal effort, resulting in little actual knowledge gained.

In this blog post, I want to discuss 7 common mistakes people make when learning new things, especially as a software engineer or software QA engineer. While the examples will be specific to these fields, many of these points are universally applicable. If you've ever felt stuck in your learning journey or are simply looking for new ways to enhance your learning, let's dive in and see if you recognize yourself making any of these mistakes.

1. Learning Automation Just Because It's Trendy

I've discussed test automation and coding in general in the past, and I believe they are valuable skills for anyone looking to develop as a QA engineer. However, a common mistake I see is people learning automation simply because it seems necessary these days. While many positions today do require some knowledge of automation in testing, there are still plenty of jobs in the testing world that do not require this skill.

So, the question you should ask yourself is, "Why do you want to learn test automation?" Do you aspire to become a test automation engineer or SDET in the future? If you're only learning it because you think it's necessary for the current job market but have no interest in working in that specific field, then why are you even doing it? You'll end up learning something you're not passionate about, which could lead to dissatisfaction and misery in your future job.

DO THIS INSTEAD:

Instead of diving blindly into test automation and potentially hating every second of it, start with the theory behind it. Ask yourself: Why should a software company consider test automation for a project? What are the benefits and downsides? What can be automated and what cannot? By understanding the underlying theory rather than just jumping into coding, you'll gain a better grasp of what it means to automate processes. This might even spark an interest in coding for you.

However, if you find that you still don't enjoy what you're learning, that's valuable insight too. It means test automation may not be the right path for you, and you should focus on gaining knowledge in another area. There's no single skill that everyone must know. There's a vast array of things to learn, and you should never force yourself to learn something you don't enjoy.

2. Chasing the Latest Frameworks for Adding a New Line to the CV

Another common mistake, especially when it comes to coding and test automation, is the desire to learn a new programming language or testing framework just to add it to your CV. Frameworks pop up like smash burger joints - it feels like there's a new one every day. If we're being honest, they all somehow sell the same burger.

People often hope that having a long list of testing frameworks on their CV will impress hiring managers so much that they'll get hired without even an interview. However, the reality is quite different. I once spoke with an engineering manager at a large company, and he said that when he sees a candidate with a lengthy list of frameworks they're familiar with, he comes to one conclusion: they're good at reading documentation. So, don't make the mistake of mindlessly learning new programming languages in the hope of looking like an all-knowing oracle.

DO THIS INSTEAD:

When learning a new programming language or testing framework, ask yourself why you want to learn it and what it offers you. There's nothing wrong with experimenting with a new, shiny tool or framework that everyone is talking about, but consider what you can genuinely learn from it and how you can apply it. Understanding the practical benefits and applications will make your learning experience more meaningful and productive.

A good example is the programming language Python. I once mentioned that it is a beginner-friendly language, even for software testers. Another big plus, in my opinion, is that Python is the main programming language for machine learning and data science. So, if you want to increase your knowledge in these areas, learning Python would be a great first step.

Another example is Java. It is one of the most popular programming languages worldwide, and many applications are written in it. Furthermore, due to its popularity, there are numerous established frameworks for testing, such as JUnit and JMeter. By learning Java, you not only gain a solid foundation in a widely used language but also open the door to learning about unit testing and performance testing in the long run.

3. Attempting to Multitask During Learning Sessions

So, you've decided to learn something new and found some good resources, like articles and videos. You start watching them, but since your time is limited, you multitask. Perhaps you're already an experienced engineer and feel you don't need the introductory explanations, so you let the video play in the background while you work or do something else. This way, you think you'll absorb the information on the fly and also stay productive.

Unfortunately, it doesn't work that way. I wouldn't recommend this approach. I've made the same mistake in the past, thinking I would catch the important parts of the video while multitasking. However, I ended up just working with someone talking in the background. As a result, I didn't do a great job at my current task and didn't gain much knowledge from the video either.

DO THIS INSTEAD:

We often overestimate our ability to multitask. In my opinion, we can't multitask effectively at all, but that's a topic for another blog. When it comes to learning, you should never do it on the side. Take the time to specifically arrange a daily timeslot dedicated to learning. For example, set aside an hour from 8 to 9 AM where your sole focus is on learning. During this hour, nothing else matters—no distractions and no other tasks. Treat this hour like an important task at work, and you will be much more focused and gain far more from the learning material.

4. Neglecting Hands-On Practice

This is one of the most common mistakes people make, especially when learning how to code or acquiring technical skills in general. As I described earlier, people often find good resources and watch informative videos about new frameworks and their capabilities but never actually do the hands-on work. They just sit in front of a computer, hoping that all the knowledge will magically appear when they need it.

When you learn something, you don't just need to hear it - you also need to apply it! This is especially true when learning to code. Simply watching someone else do the work will not make you better. If your goal were to learn to play basketball, for example, you wouldn't just watch 100 NBA games and then believe you are now a pro athlete. You would understand that practice and action are crucial parts of learning. The same applies to coding or any technical skill. Doing the work yourself is essential for truly grasping and mastering new concepts.

DO THIS INSTEAD:

Instead of just listening, do the actual work! Many coding videos today encourage you to write code along with the tutorial, but don't stop there. Create your own projects to push the boundaries of your knowledge even further. If you can't think of projects, search the internet or ask a chatbot like ChatGPT. They can provide numerous examples and even help you with potential solutions. This hands-on approach is crucial for truly mastering new skills and understanding their applications.

By working on your own projects, you will inevitably encounter mistakes and challenges that you hadn't anticipated. This process will present new problems, allowing you to strengthen another crucial skill: problem-solving. The real world is full of unforeseen issues, and the more familiar you become with strategies to overcome these obstacles, the easier it will be in the future. However, you will never develop these skills if you don't start doing your own projects.

5. Switching Topics Too Frequently

If you are a lifelong learner like me, you always have new things you want to learn. When you find the time, you'll set everything up and start with something new. In the beginning, you'll be super motivated and totally into it. But then you come across another article. This article claims that the topic you're trying to learn is outdated and suggests you should focus on something else. So, you switch topics, not wanting to waste time on outdated information.

However, if you keep repeating this behavior, you end up knowing a lot of names and topics but without deep knowledge in any area. This constant switching prevents you from truly mastering any subject.

People tend to lack consistency when learning new things, often driven by the fear of missing out on the latest trends. However, when you analyze the landscape, you'll always find articles suggesting you should focus on something else. For example, I've seen numerous articles over the past five years claiming that nobody will use Cypress anymore. Despite such claims, Cypress remains widely used.

This tendency to jump from one topic to another in search of the newest and most relevant information can be counterproductive. People end up with fragmented knowledge and no deep understanding of any single topic.

DO THIS INSTEAD:

Instead of falling into the ADHD world of learning, you should set up a clear plan and stick to it. This involves not only setting aside time each day for learning but also establishing a broader timeline for how long you'll dedicate to mastering a new skill. I recommend committing to at least 30 days. Whether you spend an hour or just 10 minutes a day, consistent effort over 30 days will provide good spaced repetition, helping you truly absorb and retain the knowledge.

After the initial 30 days, you can decide whether to extend your learning for another 30 days or move on to a new topic. By sticking to your plan, you will gain much more from your learning experience, ensuring that you develop a deeper understanding and practical skills rather than just a superficial familiarity.

6. Overlooking the Importance of Soft Skills

This is, in my opinion, a very common mistake among people working in the software industry. Many people think that since they are developers and engineers, soft skills are not that important and will be naturally acquired through work experience. They believe that technical jobs don't require soft skills, which are for people who can't do what we do. However, the reality is quite different.

I've written about this in my previous posts, and people tend to underestimate the importance of soft skills. There are many different soft skills someone could learn, but people often neglect them when it comes to learning new things. They solely concentrate on the technical aspects of the job but find themselves in meetings and discussions every day. Then, they become frustrated when they can't handle these situations effectively.

A significant portion of jobs in software development involve talking and interacting with other people. If you neglect the importance of improving these interactions, no one will be interested in hearing your technical knowledge.

DO THIS INSTEAD:

The next time you find yourself considering what to learn, also include the possibility of developing some new soft skills. Perhaps you want to learn more about effective communication within teams or about human psychology in general. As social creatures, we need to hone our social skills as much as possible.

Maybe you want to learn how to present better so you can effectively communicate your ideas and visions to others. Or perhaps you'd like to learn negotiation skills to ensure your desires and wishes are heard. There is a lot to learn when it comes to soft skills, and this is especially true for software development. Since software is primarily developed in teams, everyone should consider what they can learn to improve this dynamic. You will be surprised at how much your work improves when you have the right soft skills. Effective communication, teamwork, and problem-solving can significantly enhance your productivity and the overall success of your projects

7. Lacking Accountability in the Learning Process

So, you've decided to learn a new skill and have everything you need to start: a free video, a free e-book, and some free articles. But then you either never start or stop after a while. If this sounds like you, there's likely something missing from your learning journey: accountability!

Even though there's nothing wrong with using all the free information available, there's a certain problem with it: since it's free, you may not feel compelled to actually use it. It's perfectly fine to use free resources, but you should be aware of this psychological challenge. If something doesn't have much value to you, you might not see it as important.

DO THIS INSTEAD:

Instead of just thinking about learning, you should really commit to it - and hold yourself accountable! Ever wondered why people enroll in paid boot camps? It's because they’ve invested money into it, and that financial commitment adds value to the course. When you invest both your time and money into something, you're more likely to follow through and not quit just because you lost interest.

Even though I’m not advocating for paid courses specifically, it's important to understand the underlying psychology. Financial investment creates a sense of accountability and commitment that can significantly enhance your motivation and persistence

But accountability isn't just about monetary investment; it can also come from another person. If you want to learn a new skill and know someone familiar with that skill, tell them about your plan. Share your learning goals and ask if they’d be willing to be your accountability partner.

For example, if you're learning Python, you could talk to this person for about 10 minutes each day to discuss what you learned and how you plan to apply it. They can share their insights, offer advice, and provide feedback. If you didn't learn anything on a particular day, you’d need to explain why to your accountability partner which is very uncomfortable for most people.

This method not only helps keep you accountable but also enriches your learning experience with additional perspectives and support. Find a study partner or join a learning group. Sharing your goals with others or tracking your progress can help keep you motivated and on track.

I hope you can avoid these common mistakes in the future and start your learning journey with joy and excitement. Many people hesitate to learn new things because they fall into these pitfalls. So, don’t lose hope if your current learning journey isn’t going as planned. Reflect on your mistakes and adjust your approach. Remember, you have your whole life to learn new things.

Learning is a beautiful activity that truly helps us grow. Embrace the process, stay consistent, and enjoy the journey of growth and discovery. And with the right mindset, anyone can learn anything.

Previous
Previous

Time vs. Quality: Why we should Rethink Deadlines in Software Development

Next
Next

The HeadSpin Scandal: Are AI Testing Tools Overhyped?